ETH Price: $1,840.85 (-2.30%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve241166712025-12-29 7:00:5957 days ago1766991659IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.000001880.04044272
Approve158885292022-11-03 9:12:471209 days ago1667466767IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0006036124.86351824
Approve158086422022-10-23 5:12:471220 days ago1666501967IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0005988312.86140405
Claim Tokens158086212022-10-23 5:08:351220 days ago1666501715IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0007139512.48348475
Claim Tokens155986232022-09-23 21:05:591249 days ago1663967159IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0007096212.40780356
Claim Tokens155779292022-09-20 23:21:351252 days ago1663716095IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.000458058.00906608
Claim Tokens155750372022-09-20 13:38:231253 days ago1663681103IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0010069717.60695457
Approve155741162022-09-20 10:31:471253 days ago1663669907IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.000094573.89586197
Claim Tokens155642822022-09-19 1:26:351254 days ago1663550795IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.00035926.28072159
Claim Tokens155617772022-09-18 17:00:111254 days ago1663520411IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0013244617.82789011
Claim Tokens155553602022-09-17 19:23:471255 days ago1663442627IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.000521117.0144648
Claim Tokens155296592022-09-13 23:13:181259 days ago1663110798IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.000563937.59078147
Claim Tokens155021032022-09-09 9:55:371264 days ago1662717337IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0013222323.11919067
Claim Tokens154914722022-09-07 16:58:491265 days ago1662569929IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0020927936.59240921
Claim Tokens154695502022-09-04 4:23:331269 days ago1662265413IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.00038995.24824725
Claim Tokens154188292022-08-27 1:46:521277 days ago1661564812IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.000742399.99289099
Claim Tokens154185922022-08-27 0:51:001277 days ago1661561460IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.000568877.65734032
Claim Tokens154141582022-08-26 7:49:221278 days ago1661500162IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.000547479.57258507
Claim Tokens154057102022-08-24 23:09:431279 days ago1661382583IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0005589.75675229
Claim Tokens153905612022-08-22 13:47:151282 days ago1661176035IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.001418924.80950104
Claim Tokens153900152022-08-22 11:33:501282 days ago1661168030IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0006552111.45639346
Claim Tokens153677512022-08-18 22:52:061285 days ago1660863126IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0006878512.02718321
Claim Tokens153665732022-08-18 18:32:331285 days ago1660847553IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0007735513.5256091
Claim Tokens153428242022-08-15 0:11:191289 days ago1660522279IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0012005816.16033902
Claim Tokens153280452022-08-12 16:36:191292 days ago1660322179IN
0xC3aF7Bb3...f8FFd57Fa
0 ETH0.0022867239.98338427
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Plasma

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-01-16
*/

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

/*
    ERC20I (ERC20 0xInuarashi Edition)
    Minified and Gas Optimized
    From the efforts of the 0x Collective
    https://0xcollective.net
*/

contract ERC20I {
    // Token Params
    string public name;
    string public symbol;
    constructor(string memory name_, string memory symbol_) {
        name = name_;
        symbol = symbol_;
    }

    // Decimals
    uint8 public constant decimals = 18;

    // Supply
    uint256 public totalSupply;
    
    // Mappings of Balances
    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;

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

    // Internal Functions
    function _mint(address to_, uint256 amount_) internal virtual {
        totalSupply += amount_;
        balanceOf[to_] += amount_;
        emit Transfer(address(0x0), to_, amount_);
    }
    function _burn(address from_, uint256 amount_) internal virtual {
        balanceOf[from_] -= amount_;
        totalSupply -= amount_;
        emit Transfer(from_, address(0x0), amount_);
    }
    function _approve(address owner_, address spender_, uint256 amount_) internal virtual {
        allowance[owner_][spender_] = amount_;
        emit Approval(owner_, spender_, amount_);
    }

    // Public Functions
    function approve(address spender_, uint256 amount_) public virtual returns (bool) {
        _approve(msg.sender, spender_, amount_);
        return true;
    }
    function transfer(address to_, uint256 amount_) public virtual returns (bool) {
        balanceOf[msg.sender] -= amount_;
        balanceOf[to_] += amount_;
        emit Transfer(msg.sender, to_, amount_);
        return true;
    }
    function transferFrom(address from_, address to_, uint256 amount_) public virtual returns (bool) {
        if (allowance[from_][msg.sender] != type(uint256).max) {
            allowance[from_][msg.sender] -= amount_; }
        balanceOf[from_] -= amount_;
        balanceOf[to_] += amount_;
        emit Transfer(from_, to_, amount_);
        return true;
    }

    // 0xInuarashi Custom Functions
    function multiTransfer(address[] memory to_, uint256[] memory amounts_) public virtual {
        require(to_.length == amounts_.length, "ERC20I: To and Amounts length Mismatch!");
        for (uint256 i = 0; i < to_.length; i++) {
            transfer(to_[i], amounts_[i]);
        }
    }
    function multiTransferFrom(address[] memory from_, address[] memory to_, uint256[] memory amounts_) public virtual {
        require(from_.length == to_.length && from_.length == amounts_.length, "ERC20I: From, To, and Amounts length Mismatch!");
        for (uint256 i = 0; i < from_.length; i++) {
            transferFrom(from_[i], to_[i], amounts_[i]);
        }
    }
}

abstract contract ERC20IBurnable is ERC20I {
    function burn(uint256 amount_) external virtual {
        _burn(msg.sender, amount_);
    }
    function burnFrom(address from_, uint256 amount_) public virtual {
        uint256 _currentAllowance = allowance[from_][msg.sender];
        require(_currentAllowance >= amount_, "ERC20IBurnable: Burn amount requested exceeds allowance!");

        if (allowance[from_][msg.sender] != type(uint256).max) {
            allowance[from_][msg.sender] -= amount_; }

        _burn(from_, amount_);
    }
}

// Open0x Ownable (by 0xInuarashi)
abstract contract Ownable {
    address public owner;
    event OwnershipTransferred(address indexed oldOwner_, address indexed newOwner_);
    constructor() { owner = msg.sender; }
    modifier onlyOwner {
        require(owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    function _transferOwnership(address newOwner_) internal virtual {
        address _oldOwner = owner;
        owner = newOwner_;
        emit OwnershipTransferred(_oldOwner, newOwner_);    
    }
    function transferOwnership(address newOwner_) public virtual onlyOwner {
        require(newOwner_ != address(0x0), "Ownable: new owner is the zero address!");
        _transferOwnership(newOwner_);
    }
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0x0));
    }
}

interface iSpaceYetis {
    function balanceOf(address address_) external view returns (uint256);
}

interface iPlasmaOld {
    
    struct Yield {
        uint40 lastUpdatedTime_;
        uint176 pendingRewards_;
    }

    function addressToYield(address address_) external view returns (Yield memory);
    function getTotalClaimableTokens(address address_) external view returns (uint256);
    function raw_getTotalClaimableTokens(address address_) external view returns (uint256);
    function balanceOf(address address_) external view returns (uint256);
}

contract Plasma is ERC20IBurnable, Ownable {
    constructor() ERC20I("Plasma", "PLASMA") {}

    // Interface with Space Yetis
    iSpaceYetis public SpaceYetis = iSpaceYetis(0x33a39af0F83E9D46a055e6eEbde3296D26d916F4);
    function setSpaceYetis(address address_) external onlyOwner {
        SpaceYetis = iSpaceYetis(address_); }
    
    // Interface with Plasma (Old)
    iPlasmaOld public PO = iPlasmaOld(0x194cc053324C919f9c0Aa0caAbC3ac7c15fF6375);
    function setPlasmaOld(address address_) external onlyOwner {
        PO = iPlasmaOld(address_); }

    // Times
    uint40 public yieldStartTime = 1640221200; // 2021-12-22_20-00 EST
    uint40 public yieldEndTime = 1955754000; // 2031-12-22_20-00 EST
    function setYieldEndTime(uint40 yieldEndTime_) external onlyOwner {
        yieldEndTime = yieldEndTime_; }

    // Yield Info
    uint256 public globalModulus = (10 ** 14); // 14 Digits Expansion and Compression
    uint40 public yieldRatePerYeti = uint40(5 ether / globalModulus); // Yield Rate Compressed

    struct Yield {
        uint40 lastUpdatedTime_;
        uint176 pendingRewards_;
    }

    mapping(address => Yield) public addressToYield;

    // Events
    event Claim(address to_, uint256 amount_);
    event CreditsDeducted(address from_, uint256 amount_);
    event CreditsAdded(address to_, uint256 amount_);

    // Controllers
    mapping(address => bool) public plasmaControllers;
    modifier onlyControllers { 
        require(plasmaControllers[msg.sender], "You are not a controller!"); _; }
    function setControllers(address address_, bool bool_) external onlyOwner {
        plasmaControllers[address_] = bool_; }

    // Credit System
    function deductCredits(address from_, uint256 amount_) external onlyControllers {
        require(amount_ % globalModulus == 0, 
            "Amount does not conform to Global Modulus standard!");

        uint176 _compressedAmount = uint176(amount_ / globalModulus);

        require(addressToYield[from_].pendingRewards_ >= _compressedAmount, 
            "Not enough credit balance to deduct!");

        // Deduct the credits 
        addressToYield[from_].pendingRewards_ -= _compressedAmount;
        emit CreditsDeducted(from_, amount_);
    }
    function addCredits(address to_, uint256 amount_) external onlyControllers {
        require(amount_ % globalModulus == 0,
            "Amount does not conform to Global Modulus standard!");
        
        uint176 _compressedAmount = uint176(amount_ / globalModulus); 

        // Add the credits
        addressToYield[to_].pendingRewards_ += _compressedAmount;
        emit CreditsAdded(to_, amount_);
    }

    // ERC20 Burn by Controllers
    function burnByController(address from_, uint256 amount_) external onlyControllers {
        _burn(from_, amount_);
    }

    // ERC20 Airdrop for Migration
    function airdropMigration(address[] calldata addresses_) external onlyOwner {
        for (uint256 i = 0; i < addresses_.length; i++) {
            // Migration Logic for Claimed Tokens
            require( balanceOf[addresses_[i]] == 0,
                "This address already has balance!");

            // Check the old contract balance of the tokens
            uint256 _balanceOfPO = PO.balanceOf(addresses_[i]);

            _mint(addresses_[i], _balanceOfPO);
        }
    }
    function airdropMigration2(address[] calldata addresses_, uint256[] calldata amounts_) external onlyOwner {
        require(addresses_.length == amounts_.length,
            "Array length mismatch!");

        for (uint256 i = 0; i < addresses_.length; i++) {
            _mint(addresses_[i], amounts_[i]);
        }
    }

    // Migrator : This is to unstuck these addresses
    function migrateSetNewTimestampOnAddresses(address[] calldata addresses_) external onlyOwner {
        for (uint256 i = 0; i < addresses_.length; i++) {
            addressToYield[addresses_[i]].lastUpdatedTime_ = uint40(block.timestamp);
        }
    }

    // Internal View Functions
    function __getSmallerValueUint40(uint40 a, uint40 b) internal pure returns (uint40) {
        return a < b ? a : b; 
    }
    function __getTimestamp() internal view returns (uint40) {
        return __getSmallerValueUint40( uint40(block.timestamp), yieldEndTime );
    }
    function __getYieldRate(address address_) internal view returns (uint40) {
        return uint40( uint40(SpaceYetis.balanceOf(address_)) * yieldRatePerYeti );
    }
    function __calculateYieldReward(address address_) internal view returns (uint176) {
        // Expand the Values
        uint256 _totalYieldRate = uint256(__getYieldRate(address_));
        if (_totalYieldRate == 0) { return 0; }
        uint256 _time = uint256(__getTimestamp());
        uint256 _lastUpdate = uint256(addressToYield[address_].lastUpdatedTime_);

        if (_lastUpdate > yieldStartTime) {
            return uint176( (_totalYieldRate * (_time - _lastUpdate) / 1 days) );
        } else { return 0; }
    }

    // Migration Logic
    bool public migrationEnabled = true;
    function setMigrationEnabled(bool bool_) external onlyOwner {
        migrationEnabled = bool_; }
    
    function migrateRewards() public {
        __migrateRewards(msg.sender);
    }

    function migrateRewardsFor(address address_) public {
        __migrateRewards(address_);
    }

    // Internal Write Functions
    function __migrateRewards(address address_) internal {
        require(migrationEnabled,
            "Migration is not enabled!");

        uint40 _time = __getTimestamp();
        uint40 _lastUpdate = addressToYield[address_].lastUpdatedTime_;

        // If _lastUpdate is not 0, the migration logic already ran!
        require(_lastUpdate == 0,
            "You have already migrated!");
        
        // First, set the time (0) to _time. This starts yield generation.
        addressToYield[address_].lastUpdatedTime_ = _time;

        // Second, we check for any pending rewards from PO.
        uint176 _pendingRewards = uint176(PO.raw_getTotalClaimableTokens(address_));

        // Then, we update the contract's pending rewards to PO rewards if it is > 0
        if (_pendingRewards > 0) {
            addressToYield[address_].pendingRewards_ = _pendingRewards;
        }

        // Hooray! Credits Migration has been done.

    }
    function __updateYieldReward(address address_) internal {
        // We don't need to expand these as we're not doing arithmetics on them
        uint40 _time = __getTimestamp(); 
        uint40 _lastUpdate = addressToYield[address_].lastUpdatedTime_;

        // This is not triggered in the case that the user has never minted / held a token before.
        if (_lastUpdate > 0) {
            addressToYield[address_].pendingRewards_ += __calculateYieldReward(address_);
        } else {
            /*
                /!\ Migration Logic Here! /!\
                People are calling this function through Character Transfer passively.
                Due to this, we need to be able to hook it on the first transfer to migrate
                the required datas of the old Plasma contract.
                
                In this condition, the default _lastUpdate of the address will be 0. 
                We call the necessary migration logic.

                We also run an IF statement on State Storage to reduce gas cost in the future
                for cross-contract checking.
            */

            if (migrationEnabled) {
                __migrateRewards(address_);
            }
        }

        // This sets the new timestamp for pending rewards calculation. If already ended yield, skip.
        if (_lastUpdate != yieldEndTime) {
            addressToYield[address_].lastUpdatedTime_ = _time;
        }
    }
    function __claimYieldReward(address address_) internal { 
        uint176 _pendingRewards = addressToYield[address_].pendingRewards_;

        if (_pendingRewards > 0) {
            addressToYield[address_].pendingRewards_ = 0;

            uint256 _expandedReward = uint256( uint256(_pendingRewards) * globalModulus);

            _mint(address_, _expandedReward);
            emit Claim(address_, _expandedReward);
        }
    }

    // Public Write Functions
    function updateReward(address address_) public {
        __updateYieldReward(address_);
    }
    function claimTokens() public {
        __updateYieldReward(msg.sender);
        __claimYieldReward(msg.sender);
    }
    function claimTokensFor(address address_) public onlyControllers {
        __updateYieldReward(address_);
        __claimYieldReward(address_);
    }

    // Public View Functions
    function getStorageClaimableTokens(address address_) public view returns (uint256) {
        return uint256( uint256(addressToYield[address_].pendingRewards_) * globalModulus);
    }
    function getPendingClaimableTokens(address address_) public view returns (uint256) {
        return uint256( uint256(__calculateYieldReward(address_)) * globalModulus);
    }
    function getTotalClaimableTokens(address address_) public view returns (uint256) {
        return uint256( ( uint256(addressToYield[address_].pendingRewards_) + uint256(__calculateYieldReward(address_)) ) * globalModulus );
    }
    function getYieldRateOfAddress(address address_) public view returns (uint256) {
        return uint256( uint256(__getYieldRate(address_)) * globalModulus); 
    }
    function raw_getStorageClaimableTokens(address address_) public view returns (uint256) {
        return uint256(addressToYield[address_].pendingRewards_);
    }
    function raw_getPendingClaimableTokens(address address_) public view returns (uint256) {
        return uint256(__calculateYieldReward(address_));
    }
    function raw_getTotalClaimableTokens(address address_) public view returns (uint256) {
        return uint256( uint256(addressToYield[address_].pendingRewards_) + uint256(__calculateYieldReward(address_)) );
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to_","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to_","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"CreditsAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from_","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"CreditsDeducted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner_","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner_","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"PO","outputs":[{"internalType":"contract iPlasmaOld","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SpaceYetis","outputs":[{"internalType":"contract iSpaceYetis","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"addCredits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"addressToYield","outputs":[{"internalType":"uint40","name":"lastUpdatedTime_","type":"uint40"},{"internalType":"uint176","name":"pendingRewards_","type":"uint176"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses_","type":"address[]"}],"name":"airdropMigration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses_","type":"address[]"},{"internalType":"uint256[]","name":"amounts_","type":"uint256[]"}],"name":"airdropMigration2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"burnByController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"claimTokensFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"deductCredits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"getPendingClaimableTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"getStorageClaimableTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"getTotalClaimableTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"getYieldRateOfAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"globalModulus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"migrateRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"migrateRewardsFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses_","type":"address[]"}],"name":"migrateSetNewTimestampOnAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"migrationEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"to_","type":"address[]"},{"internalType":"uint256[]","name":"amounts_","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"from_","type":"address[]"},{"internalType":"address[]","name":"to_","type":"address[]"},{"internalType":"uint256[]","name":"amounts_","type":"uint256[]"}],"name":"multiTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"plasmaControllers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"raw_getPendingClaimableTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"raw_getStorageClaimableTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"raw_getTotalClaimableTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"},{"internalType":"bool","name":"bool_","type":"bool"}],"name":"setControllers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"bool_","type":"bool"}],"name":"setMigrationEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"setPlasmaOld","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"setSpaceYetis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint40","name":"yieldEndTime_","type":"uint40"}],"name":"setYieldEndTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner_","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"updateReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"yieldEndTime","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"yieldRatePerYeti","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"yieldStartTime","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"}]

6080604052600680546001600160a01b0319167333a39af0f83e9d46a055e6eebde3296d26d916f4179055600780547c749270100061c3ca10194cc053324c919f9c0aa0caabc3ac7c15ff63756001600160f01b0319909116179055655af3107a400060088190556200007b90674563918244f40000620001df565b6009805464ffffffffff191664ffffffffff92909216919091179055600c805460ff19166001179055348015620000b157600080fd5b5060405180604001604052806006815260200165506c61736d6160d01b81525060405180604001604052806006815260200165504c41534d4160d01b81525081600090805190602001906200010892919062000139565b5080516200011e90600190602084019062000139565b5050600580546001600160a01b03191633179055506200023f565b828054620001479062000202565b90600052602060002090601f0160209004810192826200016b5760008555620001b6565b82601f106200018657805160ff1916838001178555620001b6565b82800160010185558215620001b6579182015b82811115620001b657825182559160200191906001019062000199565b50620001c4929150620001c8565b5090565b5b80821115620001c45760008155600101620001c9565b600082620001fd57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c908216806200021757607f821691505b602082108114156200023957634e487b7160e01b600052602260045260246000fd5b50919050565b612458806200024f6000396000f3fe608060405234801561001057600080fd5b50600436106102a05760003560e01c8063820aed1911610167578063c071bd3d116100ce578063e520a6e811610087578063e520a6e814610691578063e701fa4f146106a4578063eb0d22be146106b7578063ee0b04be146106c0578063ef3baf6b146106d3578063f2fde38b146106e657600080fd5b8063c071bd3d146105be578063c4fedb141461061c578063c7e6cc3f1461062d578063d363440c14610640578063d5d2f3c214610653578063dd62ed3e1461066657600080fd5b806395d89b411161012057806395d89b41146105575780639b3901351461055f578063a3f0a43a14610572578063a9059cbb14610585578063ba52158014610598578063bfe5c983146105ab57600080fd5b8063820aed19146104e557806382596f01146104f8578063871ff4051461050b578063877e139b1461051e5780638da5cb5b1461053157806394a3b4b91461054457600080fd5b80634dfc50c01161020b57806370a08231116101c457806370a082311461046c578063715018a61461048c578063752fd6101461049457806379cc6790146104a75780637bde17a3146104ba5780637c073ede146104cd57600080fd5b80634dfc50c0146103f5578063518e9e6f14610418578063521c27f21461042b578063632447c91461043e578063649d35fd14610451578063669459931461046457600080fd5b806323b872dd1161025d57806323b872dd14610372578063313ce56714610385578063314ca0391461039f57806335b944bf146103cd57806342966c68146103da57806348c54b9d146103ed57600080fd5b806302b343b1146102a557806306fdde03146102f1578063095ea7b3146103065780630d5fb5a61461032957806318160ddd146103545780631e89d5451461035d575b600080fd5b6102de6102b3366004611e09565b6001600160a01b03166000908152600a6020526040902054600160281b90046001600160b01b031690565b6040519081526020015b60405180910390f35b6102f96106f9565b6040516102e891906120f5565b610319610314366004611ebd565b610787565b60405190151581526020016102e8565b60075461033c906001600160a01b031681565b6040516001600160a01b0390911681526020016102e8565b6102de60025481565b61037061036b36600461201d565b61079d565b005b610319610380366004611e57565b610863565b61038d601281565b60405160ff90911681526020016102e8565b6007546103b790600160c81b900464ffffffffff1681565b60405164ffffffffff90911681526020016102e8565b600c546103199060ff1681565b6103706103e836600461209c565b610969565b610370610976565b610319610403366004611e09565b600b6020526000908152604090205460ff1681565b610370610426366004611ee7565b61098a565b610370610439366004612081565b610b52565b61037061044c366004611e09565b610b8f565b6102de61045f366004611e09565b610b98565b610370610bd5565b6102de61047a366004611e09565b60036020526000908152604090205481565b610370610bde565b6102de6104a2366004611e09565b610c12565b6103706104b5366004611ebd565b610c33565b6103706104c8366004611f95565b610d3c565b6007546103b790600160a01b900464ffffffffff1681565b60065461033c906001600160a01b031681565b610370610506366004611ebd565b610e2c565b610370610519366004611ebd565b610fd0565b61037061052c366004611e09565b6110df565b60055461033c906001600160a01b031681565b610370610552366004611e93565b61112b565b6102f9611180565b61037061056d3660046120ce565b61118d565b6102de610580366004611e09565b6111df565b610319610593366004611ebd565b61122d565b6102de6105a6366004611e09565b6112b7565b6103706105b9366004611f29565b6112f8565b6105f76105cc366004611e09565b600a6020526000908152604090205464ffffffffff811690600160281b90046001600160b01b031682565b6040805164ffffffffff90931683526001600160b01b039091166020830152016102e8565b6009546103b79064ffffffffff1681565b6102de61063b366004611e09565b6113d6565b61037061064e366004611e09565b6113f5565b610370610661366004611e09565b6113fe565b6102de610674366004611e24565b600460209081526000928352604080842090915290825290205481565b61037061069f366004611ee7565b61144a565b6103706106b2366004611ebd565b6114f0565b6102de60085481565b6103706106ce366004611e09565b61152d565b6102de6106e1366004611e09565b61156e565b6103706106f4366004611e09565b611588565b6000805461070690612340565b80601f016020809104026020016040519081016040528092919081815260200182805461073290612340565b801561077f5780601f106107545761010080835404028352916020019161077f565b820191906000526020600020905b81548152906001019060200180831161076257829003601f168201915b505050505081565b6000610794338484611621565b50600192915050565b80518251146108035760405162461bcd60e51b815260206004820152602760248201527f4552433230493a20546f20616e6420416d6f756e7473206c656e677468204d69604482015266736d617463682160c81b60648201526084015b60405180910390fd5b60005b825181101561085e5761084b838281518110610824576108246123d6565b602002602001015183838151811061083e5761083e6123d6565b602002602001015161122d565b50806108568161237b565b915050610806565b505050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146108c8576001600160a01b0384166000908152600460209081526040808320338452909152812080548492906108c2908490612329565b90915550505b6001600160a01b038416600090815260036020526040812080548492906108f0908490612329565b90915550506001600160a01b0383166000908152600360205260408120805484929061091d908490612289565b92505081905550826001600160a01b0316846001600160a01b03166000805160206124038339815191528460405161095791815260200190565b60405180910390a35060019392505050565b6109733382611682565b50565b61097f336116fc565b610988336117fb565b565b6005546001600160a01b031633146109b45760405162461bcd60e51b81526004016107fa9061219d565b60005b8181101561085e57600360008484848181106109d5576109d56123d6565b90506020020160208101906109ea9190611e09565b6001600160a01b0316815260208101919091526040016000205415610a5b5760405162461bcd60e51b815260206004820152602160248201527f54686973206164647265737320616c7265616479206861732062616c616e63656044820152602160f81b60648201526084016107fa565b6007546000906001600160a01b03166370a08231858585818110610a8157610a816123d6565b9050602002016020810190610a969190611e09565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610ad557600080fd5b505afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906120b5565b9050610b3f848484818110610b2457610b246123d6565b9050602002016020810190610b399190611e09565b826118b6565b5080610b4a8161237b565b9150506109b7565b6005546001600160a01b03163314610b7c5760405162461bcd60e51b81526004016107fa9061219d565b600c805460ff1916911515919091179055565b610973816116fc565b6008546001600160a01b0382166000908152600a60205260408120549091610bcf91600160281b90046001600160b01b03166122b5565b92915050565b61098833611926565b6005546001600160a01b03163314610c085760405162461bcd60e51b81526004016107fa9061219d565b6109886000611aeb565b6000600854610c2083611b3d565b6001600160b01b0316610bcf91906122b5565b6001600160a01b038216600090815260046020908152604080832033845290915290205481811015610ccd5760405162461bcd60e51b815260206004820152603860248201527f4552433230494275726e61626c653a204275726e20616d6f756e74207265717560448201527f6573746564206578636565647320616c6c6f77616e636521000000000000000060648201526084016107fa565b6001600160a01b038316600090815260046020908152604080832033845290915290205460001914610d32576001600160a01b038316600090815260046020908152604080832033845290915281208054849290610d2c908490612329565b90915550505b61085e8383611682565b81518351148015610d4e575080518351145b610db15760405162461bcd60e51b815260206004820152602e60248201527f4552433230493a2046726f6d2c20546f2c20616e6420416d6f756e7473206c6560448201526d6e677468204d69736d617463682160901b60648201526084016107fa565b60005b8351811015610e2657610e13848281518110610dd257610dd26123d6565b6020026020010151848381518110610dec57610dec6123d6565b6020026020010151848481518110610e0657610e066123d6565b6020026020010151610863565b5080610e1e8161237b565b915050610db4565b50505050565b336000908152600b602052604090205460ff16610e5b5760405162461bcd60e51b81526004016107fa906121d2565b600854610e689082612396565b15610e855760405162461bcd60e51b81526004016107fa9061214a565b600060085482610e9591906122a1565b6001600160a01b0384166000908152600a60205260409020549091506001600160b01b03808316600160281b909204161015610f1f5760405162461bcd60e51b8152602060048201526024808201527f4e6f7420656e6f756768206372656469742062616c616e636520746f206465646044820152637563742160e01b60648201526084016107fa565b6001600160a01b0383166000908152600a602052604090208054829190600590610f5a908490600160281b90046001600160b01b0316612301565b92506101000a8154816001600160b01b0302191690836001600160b01b031602179055507f1d9ca186c626e0ca14771900912a91678cb02770905264643d1f0d1cd2fded5e8383604051610fc39291906001600160a01b03929092168252602082015260400190565b60405180910390a1505050565b336000908152600b602052604090205460ff16610fff5760405162461bcd60e51b81526004016107fa906121d2565b60085461100c9082612396565b156110295760405162461bcd60e51b81526004016107fa9061214a565b60006008548261103991906122a1565b6001600160a01b0384166000908152600a6020526040902080549192508291600590611076908490600160281b90046001600160b01b031661225e565b92506101000a8154816001600160b01b0302191690836001600160b01b031602179055507fed46984c46e11f42ec323727ba7d99dc16be2d248a8aaa8982d492688497f09d8383604051610fc39291906001600160a01b03929092168252602082015260400190565b6005546001600160a01b031633146111095760405162461bcd60e51b81526004016107fa9061219d565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111555760405162461bcd60e51b81526004016107fa9061219d565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001805461070690612340565b6005546001600160a01b031633146111b75760405162461bcd60e51b81526004016107fa9061219d565b6007805464ffffffffff909216600160c81b0264ffffffffff60c81b19909216919091179055565b60006008546111ed83611b3d565b6001600160a01b0384166000908152600a6020526040902054611223916001600160b01b0390811691600160281b900416612289565b610bcf91906122b5565b3360009081526003602052604081208054839190839061124e908490612329565b90915550506001600160a01b0383166000908152600360205260408120805484929061127b908490612289565b90915550506040518281526001600160a01b0384169033906000805160206124038339815191529060200160405180910390a350600192915050565b60006112c282611b3d565b6001600160a01b0383166000908152600a6020526040902054610bcf916001600160b01b0390811691600160281b900416612289565b6005546001600160a01b031633146113225760405162461bcd60e51b81526004016107fa9061219d565b82811461136a5760405162461bcd60e51b81526020600482015260166024820152754172726179206c656e677468206d69736d617463682160501b60448201526064016107fa565b60005b838110156113cf576113bd85858381811061138a5761138a6123d6565b905060200201602081019061139f9190611e09565b8484848181106113b1576113b16123d6565b905060200201356118b6565b806113c78161237b565b91505061136d565b5050505050565b60006008546113e483611bdb565b64ffffffffff16610bcf91906122b5565b61097381611926565b6005546001600160a01b031633146114285760405162461bcd60e51b81526004016107fa9061219d565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146114745760405162461bcd60e51b81526004016107fa9061219d565b60005b8181101561085e5742600a6000858585818110611496576114966123d6565b90506020020160208101906114ab9190611e09565b6001600160a01b031681526020810191909152604001600020805464ffffffffff191664ffffffffff92909216919091179055806114e88161237b565b915050611477565b336000908152600b602052604090205460ff1661151f5760405162461bcd60e51b81526004016107fa906121d2565b6115298282611682565b5050565b336000908152600b602052604090205460ff1661155c5760405162461bcd60e51b81526004016107fa906121d2565b611565816116fc565b610973816117fb565b600061157982611b3d565b6001600160b01b031692915050565b6005546001600160a01b031633146115b25760405162461bcd60e51b81526004016107fa9061219d565b6001600160a01b0381166116185760405162461bcd60e51b815260206004820152602760248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616044820152666464726573732160c81b60648201526084016107fa565b61097381611aeb565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216600090815260036020526040812080548392906116aa908490612329565b9250508190555080600260008282546116c39190612329565b90915550506040518181526000906001600160a01b03841690600080516020612403833981519152906020015b60405180910390a35050565b6000611706611c6e565b6001600160a01b0383166000908152600a602052604090205490915064ffffffffff1680156117995761173883611b3d565b6001600160a01b0384166000908152600a602052604090208054600590611770908490600160281b90046001600160b01b031661225e565b92506101000a8154816001600160b01b0302191690836001600160b01b031602179055506117ad565b600c5460ff16156117ad576117ad83611926565b60075464ffffffffff828116600160c81b909204161461085e576001600160a01b0383166000908152600a60205260409020805464ffffffffff841664ffffffffff19909116179055505050565b6001600160a01b0381166000908152600a6020526040902054600160281b90046001600160b01b03168015611529576001600160a01b0382166000908152600a60205260408120805465010000000000600160d81b031916905560085461186b906001600160b01b0384166122b5565b905061187783826118b6565b604080516001600160a01b0385168152602081018390527f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d49101610fc3565b80600260008282546118c89190612289565b90915550506001600160a01b038216600090815260036020526040812080548392906118f5908490612289565b90915550506040518181526001600160a01b03831690600090600080516020612403833981519152906020016116f0565b600c5460ff166119785760405162461bcd60e51b815260206004820152601960248201527f4d6967726174696f6e206973206e6f7420656e61626c6564210000000000000060448201526064016107fa565b6000611982611c6e565b6001600160a01b0383166000908152600a602052604090205490915064ffffffffff1680156119f35760405162461bcd60e51b815260206004820152601a60248201527f596f75206861766520616c7265616479206d696772617465642100000000000060448201526064016107fa565b6001600160a01b038381166000818152600a6020526040808220805464ffffffffff191664ffffffffff88161790556007549051630174a42b60e71b815260048101939093529092169063ba5215809060240160206040518083038186803b158015611a5e57600080fd5b505afa158015611a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9691906120b5565b90506001600160b01b03811615610e26576001600160a01b0384166000908152600a6020526040902080546001600160b01b038316600160281b0265010000000000600160d81b031990911617905550505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080611b4983611bdb565b64ffffffffff16905080611b605750600092915050565b6000611b6a611c6e565b6001600160a01b0385166000908152600a602052604090205460075464ffffffffff928316935090821691600160a01b90910416811115611bd05762015180611bb38284612329565b611bbd90856122b5565b611bc791906122a1565b95945050505050565b506000949350505050565b6009546006546040516370a0823160e01b81526001600160a01b03848116600483015260009364ffffffffff169216906370a082319060240160206040518083038186803b158015611c2c57600080fd5b505afa158015611c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6491906120b5565b610bcf91906122d4565b6000611c8d42600760199054906101000a900464ffffffffff16611c92565b905090565b60008164ffffffffff168364ffffffffff1610611caf5781611cb1565b825b9392505050565b80356001600160a01b0381168114611ccf57600080fd5b919050565b60008083601f840112611ce657600080fd5b50813567ffffffffffffffff811115611cfe57600080fd5b6020830191508360208260051b8501011115611d1957600080fd5b9250929050565b600082601f830112611d3157600080fd5b81356020611d46611d418361223a565b612209565b80838252828201915082860187848660051b8901011115611d6657600080fd5b60005b85811015611d8c57611d7a82611cb8565b84529284019290840190600101611d69565b5090979650505050505050565b600082601f830112611daa57600080fd5b81356020611dba611d418361223a565b80838252828201915082860187848660051b8901011115611dda57600080fd5b60005b85811015611d8c57813584529284019290840190600101611ddd565b80358015158114611ccf57600080fd5b600060208284031215611e1b57600080fd5b611cb182611cb8565b60008060408385031215611e3757600080fd5b611e4083611cb8565b9150611e4e60208401611cb8565b90509250929050565b600080600060608486031215611e6c57600080fd5b611e7584611cb8565b9250611e8360208501611cb8565b9150604084013590509250925092565b60008060408385031215611ea657600080fd5b611eaf83611cb8565b9150611e4e60208401611df9565b60008060408385031215611ed057600080fd5b611ed983611cb8565b946020939093013593505050565b60008060208385031215611efa57600080fd5b823567ffffffffffffffff811115611f1157600080fd5b611f1d85828601611cd4565b90969095509350505050565b60008060008060408587031215611f3f57600080fd5b843567ffffffffffffffff80821115611f5757600080fd5b611f6388838901611cd4565b90965094506020870135915080821115611f7c57600080fd5b50611f8987828801611cd4565b95989497509550505050565b600080600060608486031215611faa57600080fd5b833567ffffffffffffffff80821115611fc257600080fd5b611fce87838801611d20565b94506020860135915080821115611fe457600080fd5b611ff087838801611d20565b9350604086013591508082111561200657600080fd5b5061201386828701611d99565b9150509250925092565b6000806040838503121561203057600080fd5b823567ffffffffffffffff8082111561204857600080fd5b61205486838701611d20565b9350602085013591508082111561206a57600080fd5b5061207785828601611d99565b9150509250929050565b60006020828403121561209357600080fd5b611cb182611df9565b6000602082840312156120ae57600080fd5b5035919050565b6000602082840312156120c757600080fd5b5051919050565b6000602082840312156120e057600080fd5b813564ffffffffff81168114611cb157600080fd5b600060208083528351808285015260005b8181101561212257858101830151858201604001528201612106565b81811115612134576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526033908201527f416d6f756e7420646f6573206e6f7420636f6e666f726d20746f20476c6f62616040820152726c204d6f64756c7573207374616e646172642160681b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526019908201527f596f7520617265206e6f74206120636f6e74726f6c6c65722100000000000000604082015260600190565b604051601f8201601f1916810167ffffffffffffffff81118282101715612232576122326123ec565b604052919050565b600067ffffffffffffffff821115612254576122546123ec565b5060051b60200190565b60006001600160b01b03828116848216808303821115612280576122806123aa565b01949350505050565b6000821982111561229c5761229c6123aa565b500190565b6000826122b0576122b06123c0565b500490565b60008160001904831182151516156122cf576122cf6123aa565b500290565b600064ffffffffff808316818516818304811182151516156122f8576122f86123aa565b02949350505050565b60006001600160b01b0383811690831681811015612321576123216123aa565b039392505050565b60008282101561233b5761233b6123aa565b500390565b600181811c9082168061235457607f821691505b6020821081141561237557634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561238f5761238f6123aa565b5060010190565b6000826123a5576123a56123c0565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209975d0aecd1056c723e33eaea59adc4081142b59d2a7c01bd0df039e9176a68b64736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102a05760003560e01c8063820aed1911610167578063c071bd3d116100ce578063e520a6e811610087578063e520a6e814610691578063e701fa4f146106a4578063eb0d22be146106b7578063ee0b04be146106c0578063ef3baf6b146106d3578063f2fde38b146106e657600080fd5b8063c071bd3d146105be578063c4fedb141461061c578063c7e6cc3f1461062d578063d363440c14610640578063d5d2f3c214610653578063dd62ed3e1461066657600080fd5b806395d89b411161012057806395d89b41146105575780639b3901351461055f578063a3f0a43a14610572578063a9059cbb14610585578063ba52158014610598578063bfe5c983146105ab57600080fd5b8063820aed19146104e557806382596f01146104f8578063871ff4051461050b578063877e139b1461051e5780638da5cb5b1461053157806394a3b4b91461054457600080fd5b80634dfc50c01161020b57806370a08231116101c457806370a082311461046c578063715018a61461048c578063752fd6101461049457806379cc6790146104a75780637bde17a3146104ba5780637c073ede146104cd57600080fd5b80634dfc50c0146103f5578063518e9e6f14610418578063521c27f21461042b578063632447c91461043e578063649d35fd14610451578063669459931461046457600080fd5b806323b872dd1161025d57806323b872dd14610372578063313ce56714610385578063314ca0391461039f57806335b944bf146103cd57806342966c68146103da57806348c54b9d146103ed57600080fd5b806302b343b1146102a557806306fdde03146102f1578063095ea7b3146103065780630d5fb5a61461032957806318160ddd146103545780631e89d5451461035d575b600080fd5b6102de6102b3366004611e09565b6001600160a01b03166000908152600a6020526040902054600160281b90046001600160b01b031690565b6040519081526020015b60405180910390f35b6102f96106f9565b6040516102e891906120f5565b610319610314366004611ebd565b610787565b60405190151581526020016102e8565b60075461033c906001600160a01b031681565b6040516001600160a01b0390911681526020016102e8565b6102de60025481565b61037061036b36600461201d565b61079d565b005b610319610380366004611e57565b610863565b61038d601281565b60405160ff90911681526020016102e8565b6007546103b790600160c81b900464ffffffffff1681565b60405164ffffffffff90911681526020016102e8565b600c546103199060ff1681565b6103706103e836600461209c565b610969565b610370610976565b610319610403366004611e09565b600b6020526000908152604090205460ff1681565b610370610426366004611ee7565b61098a565b610370610439366004612081565b610b52565b61037061044c366004611e09565b610b8f565b6102de61045f366004611e09565b610b98565b610370610bd5565b6102de61047a366004611e09565b60036020526000908152604090205481565b610370610bde565b6102de6104a2366004611e09565b610c12565b6103706104b5366004611ebd565b610c33565b6103706104c8366004611f95565b610d3c565b6007546103b790600160a01b900464ffffffffff1681565b60065461033c906001600160a01b031681565b610370610506366004611ebd565b610e2c565b610370610519366004611ebd565b610fd0565b61037061052c366004611e09565b6110df565b60055461033c906001600160a01b031681565b610370610552366004611e93565b61112b565b6102f9611180565b61037061056d3660046120ce565b61118d565b6102de610580366004611e09565b6111df565b610319610593366004611ebd565b61122d565b6102de6105a6366004611e09565b6112b7565b6103706105b9366004611f29565b6112f8565b6105f76105cc366004611e09565b600a6020526000908152604090205464ffffffffff811690600160281b90046001600160b01b031682565b6040805164ffffffffff90931683526001600160b01b039091166020830152016102e8565b6009546103b79064ffffffffff1681565b6102de61063b366004611e09565b6113d6565b61037061064e366004611e09565b6113f5565b610370610661366004611e09565b6113fe565b6102de610674366004611e24565b600460209081526000928352604080842090915290825290205481565b61037061069f366004611ee7565b61144a565b6103706106b2366004611ebd565b6114f0565b6102de60085481565b6103706106ce366004611e09565b61152d565b6102de6106e1366004611e09565b61156e565b6103706106f4366004611e09565b611588565b6000805461070690612340565b80601f016020809104026020016040519081016040528092919081815260200182805461073290612340565b801561077f5780601f106107545761010080835404028352916020019161077f565b820191906000526020600020905b81548152906001019060200180831161076257829003601f168201915b505050505081565b6000610794338484611621565b50600192915050565b80518251146108035760405162461bcd60e51b815260206004820152602760248201527f4552433230493a20546f20616e6420416d6f756e7473206c656e677468204d69604482015266736d617463682160c81b60648201526084015b60405180910390fd5b60005b825181101561085e5761084b838281518110610824576108246123d6565b602002602001015183838151811061083e5761083e6123d6565b602002602001015161122d565b50806108568161237b565b915050610806565b505050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146108c8576001600160a01b0384166000908152600460209081526040808320338452909152812080548492906108c2908490612329565b90915550505b6001600160a01b038416600090815260036020526040812080548492906108f0908490612329565b90915550506001600160a01b0383166000908152600360205260408120805484929061091d908490612289565b92505081905550826001600160a01b0316846001600160a01b03166000805160206124038339815191528460405161095791815260200190565b60405180910390a35060019392505050565b6109733382611682565b50565b61097f336116fc565b610988336117fb565b565b6005546001600160a01b031633146109b45760405162461bcd60e51b81526004016107fa9061219d565b60005b8181101561085e57600360008484848181106109d5576109d56123d6565b90506020020160208101906109ea9190611e09565b6001600160a01b0316815260208101919091526040016000205415610a5b5760405162461bcd60e51b815260206004820152602160248201527f54686973206164647265737320616c7265616479206861732062616c616e63656044820152602160f81b60648201526084016107fa565b6007546000906001600160a01b03166370a08231858585818110610a8157610a816123d6565b9050602002016020810190610a969190611e09565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610ad557600080fd5b505afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906120b5565b9050610b3f848484818110610b2457610b246123d6565b9050602002016020810190610b399190611e09565b826118b6565b5080610b4a8161237b565b9150506109b7565b6005546001600160a01b03163314610b7c5760405162461bcd60e51b81526004016107fa9061219d565b600c805460ff1916911515919091179055565b610973816116fc565b6008546001600160a01b0382166000908152600a60205260408120549091610bcf91600160281b90046001600160b01b03166122b5565b92915050565b61098833611926565b6005546001600160a01b03163314610c085760405162461bcd60e51b81526004016107fa9061219d565b6109886000611aeb565b6000600854610c2083611b3d565b6001600160b01b0316610bcf91906122b5565b6001600160a01b038216600090815260046020908152604080832033845290915290205481811015610ccd5760405162461bcd60e51b815260206004820152603860248201527f4552433230494275726e61626c653a204275726e20616d6f756e74207265717560448201527f6573746564206578636565647320616c6c6f77616e636521000000000000000060648201526084016107fa565b6001600160a01b038316600090815260046020908152604080832033845290915290205460001914610d32576001600160a01b038316600090815260046020908152604080832033845290915281208054849290610d2c908490612329565b90915550505b61085e8383611682565b81518351148015610d4e575080518351145b610db15760405162461bcd60e51b815260206004820152602e60248201527f4552433230493a2046726f6d2c20546f2c20616e6420416d6f756e7473206c6560448201526d6e677468204d69736d617463682160901b60648201526084016107fa565b60005b8351811015610e2657610e13848281518110610dd257610dd26123d6565b6020026020010151848381518110610dec57610dec6123d6565b6020026020010151848481518110610e0657610e066123d6565b6020026020010151610863565b5080610e1e8161237b565b915050610db4565b50505050565b336000908152600b602052604090205460ff16610e5b5760405162461bcd60e51b81526004016107fa906121d2565b600854610e689082612396565b15610e855760405162461bcd60e51b81526004016107fa9061214a565b600060085482610e9591906122a1565b6001600160a01b0384166000908152600a60205260409020549091506001600160b01b03808316600160281b909204161015610f1f5760405162461bcd60e51b8152602060048201526024808201527f4e6f7420656e6f756768206372656469742062616c616e636520746f206465646044820152637563742160e01b60648201526084016107fa565b6001600160a01b0383166000908152600a602052604090208054829190600590610f5a908490600160281b90046001600160b01b0316612301565b92506101000a8154816001600160b01b0302191690836001600160b01b031602179055507f1d9ca186c626e0ca14771900912a91678cb02770905264643d1f0d1cd2fded5e8383604051610fc39291906001600160a01b03929092168252602082015260400190565b60405180910390a1505050565b336000908152600b602052604090205460ff16610fff5760405162461bcd60e51b81526004016107fa906121d2565b60085461100c9082612396565b156110295760405162461bcd60e51b81526004016107fa9061214a565b60006008548261103991906122a1565b6001600160a01b0384166000908152600a6020526040902080549192508291600590611076908490600160281b90046001600160b01b031661225e565b92506101000a8154816001600160b01b0302191690836001600160b01b031602179055507fed46984c46e11f42ec323727ba7d99dc16be2d248a8aaa8982d492688497f09d8383604051610fc39291906001600160a01b03929092168252602082015260400190565b6005546001600160a01b031633146111095760405162461bcd60e51b81526004016107fa9061219d565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111555760405162461bcd60e51b81526004016107fa9061219d565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001805461070690612340565b6005546001600160a01b031633146111b75760405162461bcd60e51b81526004016107fa9061219d565b6007805464ffffffffff909216600160c81b0264ffffffffff60c81b19909216919091179055565b60006008546111ed83611b3d565b6001600160a01b0384166000908152600a6020526040902054611223916001600160b01b0390811691600160281b900416612289565b610bcf91906122b5565b3360009081526003602052604081208054839190839061124e908490612329565b90915550506001600160a01b0383166000908152600360205260408120805484929061127b908490612289565b90915550506040518281526001600160a01b0384169033906000805160206124038339815191529060200160405180910390a350600192915050565b60006112c282611b3d565b6001600160a01b0383166000908152600a6020526040902054610bcf916001600160b01b0390811691600160281b900416612289565b6005546001600160a01b031633146113225760405162461bcd60e51b81526004016107fa9061219d565b82811461136a5760405162461bcd60e51b81526020600482015260166024820152754172726179206c656e677468206d69736d617463682160501b60448201526064016107fa565b60005b838110156113cf576113bd85858381811061138a5761138a6123d6565b905060200201602081019061139f9190611e09565b8484848181106113b1576113b16123d6565b905060200201356118b6565b806113c78161237b565b91505061136d565b5050505050565b60006008546113e483611bdb565b64ffffffffff16610bcf91906122b5565b61097381611926565b6005546001600160a01b031633146114285760405162461bcd60e51b81526004016107fa9061219d565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146114745760405162461bcd60e51b81526004016107fa9061219d565b60005b8181101561085e5742600a6000858585818110611496576114966123d6565b90506020020160208101906114ab9190611e09565b6001600160a01b031681526020810191909152604001600020805464ffffffffff191664ffffffffff92909216919091179055806114e88161237b565b915050611477565b336000908152600b602052604090205460ff1661151f5760405162461bcd60e51b81526004016107fa906121d2565b6115298282611682565b5050565b336000908152600b602052604090205460ff1661155c5760405162461bcd60e51b81526004016107fa906121d2565b611565816116fc565b610973816117fb565b600061157982611b3d565b6001600160b01b031692915050565b6005546001600160a01b031633146115b25760405162461bcd60e51b81526004016107fa9061219d565b6001600160a01b0381166116185760405162461bcd60e51b815260206004820152602760248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616044820152666464726573732160c81b60648201526084016107fa565b61097381611aeb565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216600090815260036020526040812080548392906116aa908490612329565b9250508190555080600260008282546116c39190612329565b90915550506040518181526000906001600160a01b03841690600080516020612403833981519152906020015b60405180910390a35050565b6000611706611c6e565b6001600160a01b0383166000908152600a602052604090205490915064ffffffffff1680156117995761173883611b3d565b6001600160a01b0384166000908152600a602052604090208054600590611770908490600160281b90046001600160b01b031661225e565b92506101000a8154816001600160b01b0302191690836001600160b01b031602179055506117ad565b600c5460ff16156117ad576117ad83611926565b60075464ffffffffff828116600160c81b909204161461085e576001600160a01b0383166000908152600a60205260409020805464ffffffffff841664ffffffffff19909116179055505050565b6001600160a01b0381166000908152600a6020526040902054600160281b90046001600160b01b03168015611529576001600160a01b0382166000908152600a60205260408120805465010000000000600160d81b031916905560085461186b906001600160b01b0384166122b5565b905061187783826118b6565b604080516001600160a01b0385168152602081018390527f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d49101610fc3565b80600260008282546118c89190612289565b90915550506001600160a01b038216600090815260036020526040812080548392906118f5908490612289565b90915550506040518181526001600160a01b03831690600090600080516020612403833981519152906020016116f0565b600c5460ff166119785760405162461bcd60e51b815260206004820152601960248201527f4d6967726174696f6e206973206e6f7420656e61626c6564210000000000000060448201526064016107fa565b6000611982611c6e565b6001600160a01b0383166000908152600a602052604090205490915064ffffffffff1680156119f35760405162461bcd60e51b815260206004820152601a60248201527f596f75206861766520616c7265616479206d696772617465642100000000000060448201526064016107fa565b6001600160a01b038381166000818152600a6020526040808220805464ffffffffff191664ffffffffff88161790556007549051630174a42b60e71b815260048101939093529092169063ba5215809060240160206040518083038186803b158015611a5e57600080fd5b505afa158015611a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9691906120b5565b90506001600160b01b03811615610e26576001600160a01b0384166000908152600a6020526040902080546001600160b01b038316600160281b0265010000000000600160d81b031990911617905550505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080611b4983611bdb565b64ffffffffff16905080611b605750600092915050565b6000611b6a611c6e565b6001600160a01b0385166000908152600a602052604090205460075464ffffffffff928316935090821691600160a01b90910416811115611bd05762015180611bb38284612329565b611bbd90856122b5565b611bc791906122a1565b95945050505050565b506000949350505050565b6009546006546040516370a0823160e01b81526001600160a01b03848116600483015260009364ffffffffff169216906370a082319060240160206040518083038186803b158015611c2c57600080fd5b505afa158015611c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6491906120b5565b610bcf91906122d4565b6000611c8d42600760199054906101000a900464ffffffffff16611c92565b905090565b60008164ffffffffff168364ffffffffff1610611caf5781611cb1565b825b9392505050565b80356001600160a01b0381168114611ccf57600080fd5b919050565b60008083601f840112611ce657600080fd5b50813567ffffffffffffffff811115611cfe57600080fd5b6020830191508360208260051b8501011115611d1957600080fd5b9250929050565b600082601f830112611d3157600080fd5b81356020611d46611d418361223a565b612209565b80838252828201915082860187848660051b8901011115611d6657600080fd5b60005b85811015611d8c57611d7a82611cb8565b84529284019290840190600101611d69565b5090979650505050505050565b600082601f830112611daa57600080fd5b81356020611dba611d418361223a565b80838252828201915082860187848660051b8901011115611dda57600080fd5b60005b85811015611d8c57813584529284019290840190600101611ddd565b80358015158114611ccf57600080fd5b600060208284031215611e1b57600080fd5b611cb182611cb8565b60008060408385031215611e3757600080fd5b611e4083611cb8565b9150611e4e60208401611cb8565b90509250929050565b600080600060608486031215611e6c57600080fd5b611e7584611cb8565b9250611e8360208501611cb8565b9150604084013590509250925092565b60008060408385031215611ea657600080fd5b611eaf83611cb8565b9150611e4e60208401611df9565b60008060408385031215611ed057600080fd5b611ed983611cb8565b946020939093013593505050565b60008060208385031215611efa57600080fd5b823567ffffffffffffffff811115611f1157600080fd5b611f1d85828601611cd4565b90969095509350505050565b60008060008060408587031215611f3f57600080fd5b843567ffffffffffffffff80821115611f5757600080fd5b611f6388838901611cd4565b90965094506020870135915080821115611f7c57600080fd5b50611f8987828801611cd4565b95989497509550505050565b600080600060608486031215611faa57600080fd5b833567ffffffffffffffff80821115611fc257600080fd5b611fce87838801611d20565b94506020860135915080821115611fe457600080fd5b611ff087838801611d20565b9350604086013591508082111561200657600080fd5b5061201386828701611d99565b9150509250925092565b6000806040838503121561203057600080fd5b823567ffffffffffffffff8082111561204857600080fd5b61205486838701611d20565b9350602085013591508082111561206a57600080fd5b5061207785828601611d99565b9150509250929050565b60006020828403121561209357600080fd5b611cb182611df9565b6000602082840312156120ae57600080fd5b5035919050565b6000602082840312156120c757600080fd5b5051919050565b6000602082840312156120e057600080fd5b813564ffffffffff81168114611cb157600080fd5b600060208083528351808285015260005b8181101561212257858101830151858201604001528201612106565b81811115612134576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526033908201527f416d6f756e7420646f6573206e6f7420636f6e666f726d20746f20476c6f62616040820152726c204d6f64756c7573207374616e646172642160681b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526019908201527f596f7520617265206e6f74206120636f6e74726f6c6c65722100000000000000604082015260600190565b604051601f8201601f1916810167ffffffffffffffff81118282101715612232576122326123ec565b604052919050565b600067ffffffffffffffff821115612254576122546123ec565b5060051b60200190565b60006001600160b01b03828116848216808303821115612280576122806123aa565b01949350505050565b6000821982111561229c5761229c6123aa565b500190565b6000826122b0576122b06123c0565b500490565b60008160001904831182151516156122cf576122cf6123aa565b500290565b600064ffffffffff808316818516818304811182151516156122f8576122f86123aa565b02949350505050565b60006001600160b01b0383811690831681811015612321576123216123aa565b039392505050565b60008282101561233b5761233b6123aa565b500390565b600181811c9082168061235457607f821691505b6020821081141561237557634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561238f5761238f6123aa565b5060010190565b6000826123a5576123a56123c0565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209975d0aecd1056c723e33eaea59adc4081142b59d2a7c01bd0df039e9176a68b64736f6c63430008070033

Deployed Bytecode Sourcemap

5057:10184:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14695:162;;;;;;:::i;:::-;-1:-1:-1;;;;;14808:24:0;14773:7;14808:24;;;:14;:24;;;;;:40;-1:-1:-1;;;14808:40:0;;-1:-1:-1;;;;;14808:40:0;;14695:162;;;;13424:25:1;;;13412:2;13397:18;14695:162:0;;;;;;;;259:18;;;:::i;:::-;;;;;;;:::i;1533:162::-;;;;;;:::i;:::-;;:::i;:::-;;;7538:14:1;;7531:22;7513:41;;7501:2;7486:18;1533:162:0;7373:187:1;5443:77:0;;;;;-1:-1:-1;;;;;5443:77:0;;;;;;-1:-1:-1;;;;;7050:32:1;;;7032:51;;7020:2;7005:18;5443:77:0;6886:203:1;509:26:0;;;;;;2357:294;;;;;;:::i;:::-;;:::i;:::-;;1944:368;;;;;;:::i;:::-;;:::i;450:35::-;;483:2;450:35;;;;;14127:4:1;14115:17;;;14097:36;;14085:2;14070:18;450:35:0;13955:184:1;5719:39:0;;;;;-1:-1:-1;;;5719:39:0;;;;;;;;;13634:12:1;13622:25;;;13604:44;;13592:2;13577:18;5719:39:0;13460:194:1;10191:35:0;;;;;;;;;3091:93;;;;;;:::i;:::-;;:::i;13598:121::-;;;:::i;6462:49::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7983:492;;;;;;:::i;:::-;;:::i;10233:98::-;;;;;;:::i;:::-;;:::i;13497:95::-;;;;;;:::i;:::-;;:::i;13915:184::-;;;;;;:::i;:::-;;:::i;10343:80::-;;;:::i;577:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;4366:105;;;:::i;14105:176::-;;;;;;:::i;:::-;;:::i;3190:406::-;;;;;;:::i;:::-;;:::i;2657:377::-;;;;;;:::i;:::-;;:::i;5647:41::-;;;;;-1:-1:-1;;;5647:41:0;;;;;;5193:87;;;;;-1:-1:-1;;;;;5193:87:0;;;6786:562;;;;;;:::i;:::-;;:::i;7354:420::-;;;;;;:::i;:::-;;:::i;5287:108::-;;;;;;:::i;:::-;;:::i;3672:20::-;;;;;-1:-1:-1;;;;;3672:20:0;;;6634:122;;;;;;:::i;:::-;;:::i;284:20::-;;;:::i;5789:108::-;;;;;;:::i;:::-;;:::i;14287:231::-;;;;;;:::i;:::-;;:::i;1701:237::-;;;;;;:::i;:::-;;:::i;15023:215::-;;;;;;:::i;:::-;;:::i;8481:329::-;;;;;;:::i;:::-;;:::i;6206:47::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;6206:47:0;;-1:-1:-1;;;;;6206:47:0;;;;;;;13861:12:1;13849:25;;;13831:44;;-1:-1:-1;;;;;13911:32:1;;;13906:2;13891:18;;13884:60;13804:18;6206:47:0;13659:291:1;6011:64:0;;;;;;;;;14524:165;;;;;;:::i;:::-;;:::i;10431:97::-;;;;;;:::i;:::-;;:::i;5527:98::-;;;;;;:::i;:::-;;:::i;628:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;8872:258;;;;;;:::i;:::-;;:::i;7816:123::-;;;;;;:::i;:::-;;:::i;5924:41::-;;;;;;13725:152;;;;;;:::i;:::-;;:::i;14863:154::-;;;;;;:::i;:::-;;:::i;4153:207::-;;;;;;:::i;:::-;;:::i;259:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1533:162::-;1609:4;1626:39;1635:10;1647:8;1657:7;1626:8;:39::i;:::-;-1:-1:-1;1683:4:0;1533:162;;;;:::o;2357:294::-;2477:8;:15;2463:3;:10;:29;2455:81;;;;-1:-1:-1;;;2455:81:0;;9650:2:1;2455:81:0;;;9632:21:1;9689:2;9669:18;;;9662:30;9728:34;9708:18;;;9701:62;-1:-1:-1;;;9779:18:1;;;9772:37;9826:19;;2455:81:0;;;;;;;;;2552:9;2547:97;2571:3;:10;2567:1;:14;2547:97;;;2603:29;2612:3;2616:1;2612:6;;;;;;;;:::i;:::-;;;;;;;2620:8;2629:1;2620:11;;;;;;;;:::i;:::-;;;;;;;2603:8;:29::i;:::-;-1:-1:-1;2583:3:0;;;;:::i;:::-;;;;2547:97;;;;2357:294;;:::o;1944:368::-;-1:-1:-1;;;;;2056:16:0;;2035:4;2056:16;;;:9;:16;;;;;;;;2073:10;2056:28;;;;;;;;-1:-1:-1;;2056:49:0;2052:112;;-1:-1:-1;;;;;2122:16:0;;;;;;:9;:16;;;;;;;;2139:10;2122:28;;;;;;;:39;;2154:7;;2122:16;:39;;2154:7;;2122:39;:::i;:::-;;;;-1:-1:-1;;2052:112:0;-1:-1:-1;;;;;2174:16:0;;;;;;:9;:16;;;;;:27;;2194:7;;2174:16;:27;;2194:7;;2174:27;:::i;:::-;;;;-1:-1:-1;;;;;;;2212:14:0;;;;;;:9;:14;;;;;:25;;2230:7;;2212:14;:25;;2230:7;;2212:25;:::i;:::-;;;;;;;;2269:3;-1:-1:-1;;;;;2253:29:0;2262:5;-1:-1:-1;;;;;2253:29:0;-1:-1:-1;;;;;;;;;;;2274:7:0;2253:29;;;;13424:25:1;;13412:2;13397:18;;13278:177;2253:29:0;;;;;;;;-1:-1:-1;2300:4:0;1944:368;;;;;:::o;3091:93::-;3150:26;3156:10;3168:7;3150:5;:26::i;:::-;3091:93;:::o;13598:121::-;13639:31;13659:10;13639:19;:31::i;:::-;13681:30;13700:10;13681:18;:30::i;:::-;13598:121::o;7983:492::-;3867:5;;-1:-1:-1;;;;;3867:5:0;3876:10;3867:19;3859:64;;;;-1:-1:-1;;;3859:64:0;;;;;;;:::i;:::-;8075:9:::1;8070:398;8090:21:::0;;::::1;8070:398;;;8193:9;:24;8203:10;;8214:1;8203:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8193:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8193:24:0;;:29;8184:93:::1;;;::::0;-1:-1:-1;;;8184:93:0;;13078:2:1;8184:93:0::1;::::0;::::1;13060:21:1::0;13117:2;13097:18;;;13090:30;13156:34;13136:18;;;13129:62;-1:-1:-1;;;13207:18:1;;;13200:31;13248:19;;8184:93:0::1;12876:397:1::0;8184:93:0::1;8378:2;::::0;8355:20:::1;::::0;-1:-1:-1;;;;;8378:2:0::1;:12;8391:10:::0;;8402:1;8391:13;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8378:27;::::0;-1:-1:-1;;;;;;8378:27:0::1;::::0;;;;;;-1:-1:-1;;;;;7050:32:1;;;8378:27:0::1;::::0;::::1;7032:51:1::0;7005:18;;8378:27:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8355:50;;8422:34;8428:10;;8439:1;8428:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8443:12;8422:5;:34::i;:::-;-1:-1:-1::0;8113:3:0;::::1;::::0;::::1;:::i;:::-;;;;8070:398;;10233:98:::0;3867:5;;-1:-1:-1;;;;;3867:5:0;3876:10;3867:19;3859:64;;;;-1:-1:-1;;;3859:64:0;;;;;;;:::i;:::-;10304:16:::1;:24:::0;;-1:-1:-1;;10304:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10233:98::o;13497:95::-;13555:29;13575:8;13555:19;:29::i;13915:184::-;14077:13;;-1:-1:-1;;;;;14033:24:0;;13989:7;14033:24;;;:14;:24;;;;;:40;13989:7;;14025:65;;-1:-1:-1;;;14033:40:0;;-1:-1:-1;;;;;14033:40:0;14025:65;:::i;:::-;14009:82;13915:184;-1:-1:-1;;13915:184:0:o;10343:80::-;10387:28;10404:10;10387:16;:28::i;4366:105::-;3867:5;;-1:-1:-1;;;;;3867:5:0;3876:10;3867:19;3859:64;;;;-1:-1:-1;;;3859:64:0;;;;;;;:::i;:::-;4431:32:::1;4458:3;4431:18;:32::i;14105:176::-:0;14179:7;14259:13;;14223:32;14246:8;14223:22;:32::i;:::-;-1:-1:-1;;;;;14215:41:0;:57;;;;:::i;3190:406::-;-1:-1:-1;;;;;3294:16:0;;3266:25;3294:16;;;:9;:16;;;;;;;;3311:10;3294:28;;;;;;;;3341;;;;3333:97;;;;-1:-1:-1;;;3333:97:0;;12653:2:1;3333:97:0;;;12635:21:1;12692:2;12672:18;;;12665:30;12731:34;12711:18;;;12704:62;12802:26;12782:18;;;12775:54;12846:19;;3333:97:0;12451:420:1;3333:97:0;-1:-1:-1;;;;;3447:16:0;;;;;;:9;:16;;;;;;;;3464:10;3447:28;;;;;;;;-1:-1:-1;;3447:49:0;3443:112;;-1:-1:-1;;;;;3513:16:0;;;;;;:9;:16;;;;;;;;3530:10;3513:28;;;;;;;:39;;3545:7;;3513:16;:39;;3545:7;;3513:39;:::i;:::-;;;;-1:-1:-1;;3443:112:0;3567:21;3573:5;3580:7;3567:5;:21::i;2657:377::-;2807:3;:10;2791:5;:12;:26;:61;;;;;2837:8;:15;2821:5;:12;:31;2791:61;2783:120;;;;-1:-1:-1;;;2783:120:0;;11533:2:1;2783:120:0;;;11515:21:1;11572:2;11552:18;;;11545:30;11611:34;11591:18;;;11584:62;-1:-1:-1;;;11662:18:1;;;11655:44;11716:19;;2783:120:0;11331:410:1;2783:120:0;2919:9;2914:113;2938:5;:12;2934:1;:16;2914:113;;;2972:43;2985:5;2991:1;2985:8;;;;;;;;:::i;:::-;;;;;;;2995:3;2999:1;2995:6;;;;;;;;:::i;:::-;;;;;;;3003:8;3012:1;3003:11;;;;;;;;:::i;:::-;;;;;;;2972:12;:43::i;:::-;-1:-1:-1;2952:3:0;;;;:::i;:::-;;;;2914:113;;;;2657:377;;;:::o;6786:562::-;6581:10;6563:29;;;;:17;:29;;;;;;;;6555:67;;;;-1:-1:-1;;;6555:67:0;;;;;;;:::i;:::-;6895:13:::1;::::0;6885:23:::1;::::0;:7;:23:::1;:::i;:::-;:28:::0;6877:106:::1;;;;-1:-1:-1::0;;;6877:106:0::1;;;;;;;:::i;:::-;6996:25;7042:13;;7032:7;:23;;;;:::i;:::-;-1:-1:-1::0;;;;;7077:21:0;::::1;;::::0;;;:14:::1;:21;::::0;;;;:37;6996:60;;-1:-1:-1;;;;;;7077:58:0;;::::1;-1:-1:-1::0;;;7077:37:0;;::::1;;:58;;7069:121;;;::::0;-1:-1:-1;;;7069:121:0;;10058:2:1;7069:121:0::1;::::0;::::1;10040:21:1::0;10097:2;10077:18;;;10070:30;10136:34;10116:18;;;10109:62;-1:-1:-1;;;10187:18:1;;;10180:34;10231:19;;7069:121:0::1;9856:400:1::0;7069:121:0::1;-1:-1:-1::0;;;;;7235:21:0;::::1;;::::0;;;:14:::1;:21;::::0;;;;:58;;7276:17;;7235:21;:37:::1;::::0;:58:::1;::::0;7276:17;;-1:-1:-1;;;7235:58:0;::::1;-1:-1:-1::0;;;;;7235:58:0::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;7235:58:0::1;;;;;-1:-1:-1::0;;;;;7235:58:0::1;;;;;;7309:31;7325:5;7332:7;7309:31;;;;;;-1:-1:-1::0;;;;;7286:32:1;;;;7268:51;;7350:2;7335:18;;7328:34;7256:2;7241:18;;7094:274;7309:31:0::1;;;;;;;;6866:482;6786:562:::0;;:::o;7354:420::-;6581:10;6563:29;;;;:17;:29;;;;;;;;6555:67;;;;-1:-1:-1;;;6555:67:0;;;;;;;:::i;:::-;7458:13:::1;::::0;7448:23:::1;::::0;:7;:23:::1;:::i;:::-;:28:::0;7440:105:::1;;;;-1:-1:-1::0;;;7440:105:0::1;;;;;;;:::i;:::-;7566:25;7612:13;;7602:7;:23;;;;:::i;:::-;-1:-1:-1::0;;;;;7668:19:0;::::1;;::::0;;;:14:::1;:19;::::0;;;;:56;;7566:60;;-1:-1:-1;7566:60:0;;7668:35:::1;::::0;:56:::1;::::0;7566:60;;-1:-1:-1;;;7668:56:0;::::1;-1:-1:-1::0;;;;;7668:56:0::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;7668:56:0::1;;;;;-1:-1:-1::0;;;;;7668:56:0::1;;;;;;7740:26;7753:3;7758:7;7740:26;;;;;;-1:-1:-1::0;;;;;7286:32:1;;;;7268:51;;7350:2;7335:18;;7328:34;7256:2;7241:18;;7094:274;5287:108:0;3867:5;;-1:-1:-1;;;;;3867:5:0;3876:10;3867:19;3859:64;;;;-1:-1:-1;;;3859:64:0;;;;;;;:::i;:::-;5358:10:::1;:34:::0;;-1:-1:-1;;;;;;5358:34:0::1;-1:-1:-1::0;;;;;5358:34:0;;;::::1;::::0;;;::::1;::::0;;5287:108::o;6634:122::-;3867:5;;-1:-1:-1;;;;;3867:5:0;3876:10;3867:19;3859:64;;;;-1:-1:-1;;;3859:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6718:27:0;;;::::1;;::::0;;;:17:::1;:27;::::0;;;;:35;;-1:-1:-1;;6718:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6634:122::o;284:20::-;;;;;;;:::i;5789:108::-;3867:5;;-1:-1:-1;;;;;3867:5:0;3876:10;3867:19;3859:64;;;;-1:-1:-1;;;3859:64:0;;;;;;;:::i;:::-;5866:12:::1;:28:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;5866:28:0::1;-1:-1:-1::0;;;;5866:28:0;;::::1;::::0;;;::::1;::::0;;5789:108::o;14287:231::-;14359:7;14495:13;;14457:32;14480:8;14457:22;:32::i;:::-;-1:-1:-1;;;;;14405:24:0;;;;;;:14;:24;;;;;:40;14397:93;;-1:-1:-1;;;;;14449:41:0;;;;-1:-1:-1;;;14405:40:0;;;14397:93;:::i;:::-;14395:113;;;;:::i;1701:237::-;1800:10;1773:4;1790:21;;;:9;:21;;;;;:32;;1815:7;;1790:21;1773:4;;1790:32;;1815:7;;1790:32;:::i;:::-;;;;-1:-1:-1;;;;;;;1833:14:0;;;;;;:9;:14;;;;;:25;;1851:7;;1833:14;:25;;1851:7;;1833:25;:::i;:::-;;;;-1:-1:-1;;1874:34:0;;13424:25:1;;;-1:-1:-1;;;;;1874:34:0;;;1883:10;;-1:-1:-1;;;;;;;;;;;1874:34:0;13412:2:1;13397:18;1874:34:0;;;;;;;-1:-1:-1;1926:4:0;1701:237;;;;:::o;15023:215::-;15099:7;15195:32;15218:8;15195:22;:32::i;:::-;-1:-1:-1;;;;;15143:24:0;;;;;;:14;:24;;;;;:40;15135:93;;-1:-1:-1;;;;;15187:41:0;;;;-1:-1:-1;;;15143:40:0;;;15135:93;:::i;8481:329::-;3867:5;;-1:-1:-1;;;;;3867:5:0;3876:10;3867:19;3859:64;;;;-1:-1:-1;;;3859:64:0;;;;;;;:::i;:::-;8606:36;;::::1;8598:84;;;::::0;-1:-1:-1;;;8598:84:0;;11948:2:1;8598:84:0::1;::::0;::::1;11930:21:1::0;11987:2;11967:18;;;11960:30;-1:-1:-1;;;12006:18:1;;;11999:52;12068:18;;8598:84:0::1;11746:346:1::0;8598:84:0::1;8700:9;8695:108;8715:21:::0;;::::1;8695:108;;;8758:33;8764:10;;8775:1;8764:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8779:8;;8788:1;8779:11;;;;;;;:::i;:::-;;;;;;;8758:5;:33::i;:::-;8738:3:::0;::::1;::::0;::::1;:::i;:::-;;;;8695:108;;;;8481:329:::0;;;;:::o;14524:165::-;14594:7;14666:13;;14638:24;14653:8;14638:14;:24::i;:::-;14630:33;;:49;;;;:::i;10431:97::-;10494:26;10511:8;10494:16;:26::i;5527:98::-;3867:5;;-1:-1:-1;;;;;3867:5:0;3876:10;3867:19;3859:64;;;;-1:-1:-1;;;3859:64:0;;;;;;;:::i;:::-;5597:2:::1;:25:::0;;-1:-1:-1;;;;;;5597:25:0::1;-1:-1:-1::0;;;;;5597:25:0;;;::::1;::::0;;;::::1;::::0;;5527:98::o;8872:258::-;3867:5;;-1:-1:-1;;;;;3867:5:0;3876:10;3867:19;3859:64;;;;-1:-1:-1;;;3859:64:0;;;;;;;:::i;:::-;8981:9:::1;8976:147;8996:21:::0;;::::1;8976:147;;;9095:15;9039:14;:29;9054:10;;9065:1;9054:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9039:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;9039:29:0;:72;;-1:-1:-1;;9039:72:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;9019:3;::::1;::::0;::::1;:::i;:::-;;;;8976:147;;7816:123:::0;6581:10;6563:29;;;;:17;:29;;;;;;;;6555:67;;;;-1:-1:-1;;;6555:67:0;;;;;;;:::i;:::-;7910:21:::1;7916:5;7923:7;7910:5;:21::i;:::-;7816:123:::0;;:::o;13725:152::-;6581:10;6563:29;;;;:17;:29;;;;;;;;6555:67;;;;-1:-1:-1;;;6555:67:0;;;;;;;:::i;:::-;13801:29:::1;13821:8;13801:19;:29::i;:::-;13841:28;13860:8;13841:18;:28::i;14863:154::-:0;14941:7;14976:32;14999:8;14976:22;:32::i;:::-;-1:-1:-1;;;;;14968:41:0;;14863:154;-1:-1:-1;;14863:154:0:o;4153:207::-;3867:5;;-1:-1:-1;;;;;3867:5:0;3876:10;3867:19;3859:64;;;;-1:-1:-1;;;3859:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4243:25:0;::::1;4235:77;;;::::0;-1:-1:-1;;;4235:77:0;;8822:2:1;4235:77:0::1;::::0;::::1;8804:21:1::0;8861:2;8841:18;;;8834:30;8900:34;8880:18;;;8873:62;-1:-1:-1;;;8951:18:1;;;8944:37;8998:19;;4235:77:0::1;8620:403:1::0;4235:77:0::1;4323:29;4342:9;4323:18;:29::i;1307:193::-:0;-1:-1:-1;;;;;1404:17:0;;;;;;;:9;:17;;;;;;;;:27;;;;;;;;;;;;;:37;;;1457:35;;13424:25:1;;;1457:35:0;;13397:18:1;1457:35:0;;;;;;;1307:193;;;:::o;1104:197::-;-1:-1:-1;;;;;1179:16:0;;;;;;:9;:16;;;;;:27;;1199:7;;1179:16;:27;;1199:7;;1179:27;:::i;:::-;;;;;;;;1232:7;1217:11;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;1255:38:0;;13424:25:1;;;1279:3:0;;-1:-1:-1;;;;;1255:38:0;;;-1:-1:-1;;;;;;;;;;;1255:38:0;13412:2:1;13397:18;1255:38:0;;;;;;;;1104:197;;:::o;11543:1466::-;11691:12;11706:16;:14;:16::i;:::-;-1:-1:-1;;;;;11755:24:0;;11734:18;11755:24;;;:14;:24;;;;;:41;11691:31;;-1:-1:-1;11755:41:0;;11913:15;;11909:869;;11989:32;12012:8;11989:22;:32::i;:::-;-1:-1:-1;;;;;11945:24:0;;;;;;:14;:24;;;;;:76;;:40;;:76;;;;-1:-1:-1;;;11945:76:0;;-1:-1:-1;;;;;11945:76:0;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;11945:76:0;;;;;-1:-1:-1;;;;;11945:76:0;;;;;;11909:869;;;12688:16;;;;12684:83;;;12725:26;12742:8;12725:16;:26::i;:::-;12912:12;;;12897:27;;;-1:-1:-1;;;12912:12:0;;;;12897:27;12893:109;;-1:-1:-1;;;;;12941:24:0;;;;;;:14;:24;;;;;:49;;;;;-1:-1:-1;;12941:49:0;;;;;;11599:1410;;11543:1466;:::o;13015:443::-;-1:-1:-1;;;;;13108:24:0;;13082:23;13108:24;;;:14;:24;;;;;:40;-1:-1:-1;;;13108:40:0;;-1:-1:-1;;;;;13108:40:0;13165:19;;13161:290;;-1:-1:-1;;;;;13201:24:0;;13244:1;13201:24;;;:14;:24;;;;;:44;;-1:-1:-1;;;;;;13201:44:0;;;13324:13;;13297:40;;-1:-1:-1;;;;;13297:24:0;;:40;:::i;:::-;13262:76;;13355:32;13361:8;13371:15;13355:5;:32::i;:::-;13407;;;-1:-1:-1;;;;;7286:32:1;;7268:51;;7350:2;7335:18;;7328:34;;;13407:32:0;;7241:18:1;13407:32:0;7094:274:1;907:191:0;995:7;980:11;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;1013:14:0;;;;;;:9;:14;;;;;:25;;1031:7;;1013:14;:25;;1031:7;;1013:25;:::i;:::-;;;;-1:-1:-1;;1054:36:0;;13424:25:1;;;-1:-1:-1;;;;;1054:36:0;;;1071:3;;-1:-1:-1;;;;;;;;;;;1054:36:0;13412:2:1;13397:18;1054:36:0;13278:177:1;10569:968:0;10641:16;;;;10633:67;;;;-1:-1:-1;;;10633:67:0;;10463:2:1;10633:67:0;;;10445:21:1;10502:2;10482:18;;;10475:30;10541:27;10521:18;;;10514:55;10586:18;;10633:67:0;10261:349:1;10633:67:0;10713:12;10728:16;:14;:16::i;:::-;-1:-1:-1;;;;;10776:24:0;;10755:18;10776:24;;;:14;:24;;;;;:41;10713:31;;-1:-1:-1;10776:41:0;;10908:16;;10900:68;;;;-1:-1:-1;;;10900:68:0;;11178:2:1;10900:68:0;;;11160:21:1;11217:2;11197:18;;;11190:30;11256:28;11236:18;;;11229:56;11302:18;;10900:68:0;10976:350:1;10900:68:0;-1:-1:-1;;;;;11065:24:0;;;;;;;:14;:24;;;;;;:49;;-1:-1:-1;;11065:49:0;;;;;;;11223:2;;:40;;-1:-1:-1;;;11223:40:0;;;;;7032:51:1;;;;11065:24:0;;11223:2;;:30;;7005:18:1;;11223:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11189:75;-1:-1:-1;;;;;;11367:19:0;;;11363:110;;-1:-1:-1;;;;;11403:24:0;;;;;;:14;:24;;;;;:58;;-1:-1:-1;;;;;11403:58:0;;-1:-1:-1;;;11403:58:0;-1:-1:-1;;;;;;11403:58:0;;;;;;10622:915;;;10569:968;:::o;3949:198::-;4044:5;;;-1:-1:-1;;;;;4060:17:0;;;-1:-1:-1;;;;;;4060:17:0;;;;;;;4093:42;;4044:5;;;4060:17;4044:5;;4093:42;;4024:17;;4093:42;4013:134;3949:198;:::o;9625:534::-;9698:7;9748:23;9782:24;9797:8;9782:14;:24::i;:::-;9774:33;;;-1:-1:-1;9822:20:0;9818:39;;-1:-1:-1;9853:1:0;;9625:534;-1:-1:-1;;9625:534:0:o;9818:39::-;9867:13;9891:16;:14;:16::i;:::-;-1:-1:-1;;;;;9949:24:0;;9919:19;9949:24;;;:14;:24;;;;;:41;10022:14;;9883:25;;;;;-1:-1:-1;9949:41:0;;;;-1:-1:-1;;;10022:14:0;;;;10008:28;;10004:148;;;10112:6;10089:19;10097:11;10089:5;:19;:::i;:::-;10070:39;;:15;:39;:::i;:::-;:48;;;;:::i;:::-;10053:68;9625:534;-1:-1:-1;;;;;9625:534:0:o;10004:148::-;-1:-1:-1;10148:1:0;;9625:534;-1:-1:-1;;;;9625:534:0:o;9453:166::-;9593:16;;9559:10;;:30;;-1:-1:-1;;;9559:30:0;;-1:-1:-1;;;;;7050:32:1;;;9559:30:0;;;7032:51:1;9518:6:0;;9593:16;;;9559:10;;:20;;7005:18:1;;9559:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9552:57;;;;:::i;9300:147::-;9349:6;9375:64;9407:15;9425:12;;;;;;;;;;;9375:23;:64::i;:::-;9368:71;;9300:147;:::o;9170:124::-;9246:6;9276:1;9272:5;;:1;:5;;;:13;;9284:1;9272:13;;;9280:1;9272:13;9265:20;9170:124;-1:-1:-1;;;9170:124:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:367::-;255:8;265:6;319:3;312:4;304:6;300:17;296:27;286:55;;337:1;334;327:12;286:55;-1:-1:-1;360:20:1;;403:18;392:30;;389:50;;;435:1;432;425:12;389:50;472:4;464:6;460:17;448:29;;532:3;525:4;515:6;512:1;508:14;500:6;496:27;492:38;489:47;486:67;;;549:1;546;539:12;486:67;192:367;;;;;:::o;564:679::-;618:5;671:3;664:4;656:6;652:17;648:27;638:55;;689:1;686;679:12;638:55;725:6;712:20;751:4;775:60;791:43;831:2;791:43;:::i;:::-;775:60;:::i;:::-;857:3;881:2;876:3;869:15;909:2;904:3;900:12;893:19;;944:2;936:6;932:15;996:3;991:2;985;982:1;978:10;970:6;966:23;962:32;959:41;956:61;;;1013:1;1010;1003:12;956:61;1035:1;1045:169;1059:2;1056:1;1053:9;1045:169;;;1116:23;1135:3;1116:23;:::i;:::-;1104:36;;1160:12;;;;1192;;;;1077:1;1070:9;1045:169;;;-1:-1:-1;1232:5:1;;564:679;-1:-1:-1;;;;;;;564:679:1:o;1248:673::-;1302:5;1355:3;1348:4;1340:6;1336:17;1332:27;1322:55;;1373:1;1370;1363:12;1322:55;1409:6;1396:20;1435:4;1459:60;1475:43;1515:2;1475:43;:::i;1459:60::-;1541:3;1565:2;1560:3;1553:15;1593:2;1588:3;1584:12;1577:19;;1628:2;1620:6;1616:15;1680:3;1675:2;1669;1666:1;1662:10;1654:6;1650:23;1646:32;1643:41;1640:61;;;1697:1;1694;1687:12;1640:61;1719:1;1729:163;1743:2;1740:1;1737:9;1729:163;;;1800:17;;1788:30;;1838:12;;;;1870;;;;1761:1;1754:9;1729:163;;1926:160;1991:20;;2047:13;;2040:21;2030:32;;2020:60;;2076:1;2073;2066:12;2091:186;2150:6;2203:2;2191:9;2182:7;2178:23;2174:32;2171:52;;;2219:1;2216;2209:12;2171:52;2242:29;2261:9;2242:29;:::i;2282:260::-;2350:6;2358;2411:2;2399:9;2390:7;2386:23;2382:32;2379:52;;;2427:1;2424;2417:12;2379:52;2450:29;2469:9;2450:29;:::i;:::-;2440:39;;2498:38;2532:2;2521:9;2517:18;2498:38;:::i;:::-;2488:48;;2282:260;;;;;:::o;2547:328::-;2624:6;2632;2640;2693:2;2681:9;2672:7;2668:23;2664:32;2661:52;;;2709:1;2706;2699:12;2661:52;2732:29;2751:9;2732:29;:::i;:::-;2722:39;;2780:38;2814:2;2803:9;2799:18;2780:38;:::i;:::-;2770:48;;2865:2;2854:9;2850:18;2837:32;2827:42;;2547:328;;;;;:::o;2880:254::-;2945:6;2953;3006:2;2994:9;2985:7;2981:23;2977:32;2974:52;;;3022:1;3019;3012:12;2974:52;3045:29;3064:9;3045:29;:::i;:::-;3035:39;;3093:35;3124:2;3113:9;3109:18;3093:35;:::i;3139:254::-;3207:6;3215;3268:2;3256:9;3247:7;3243:23;3239:32;3236:52;;;3284:1;3281;3274:12;3236:52;3307:29;3326:9;3307:29;:::i;:::-;3297:39;3383:2;3368:18;;;;3355:32;;-1:-1:-1;;;3139:254:1:o;3398:437::-;3484:6;3492;3545:2;3533:9;3524:7;3520:23;3516:32;3513:52;;;3561:1;3558;3551:12;3513:52;3601:9;3588:23;3634:18;3626:6;3623:30;3620:50;;;3666:1;3663;3656:12;3620:50;3705:70;3767:7;3758:6;3747:9;3743:22;3705:70;:::i;:::-;3794:8;;3679:96;;-1:-1:-1;3398:437:1;-1:-1:-1;;;;3398:437:1:o;3840:773::-;3962:6;3970;3978;3986;4039:2;4027:9;4018:7;4014:23;4010:32;4007:52;;;4055:1;4052;4045:12;4007:52;4095:9;4082:23;4124:18;4165:2;4157:6;4154:14;4151:34;;;4181:1;4178;4171:12;4151:34;4220:70;4282:7;4273:6;4262:9;4258:22;4220:70;:::i;:::-;4309:8;;-1:-1:-1;4194:96:1;-1:-1:-1;4397:2:1;4382:18;;4369:32;;-1:-1:-1;4413:16:1;;;4410:36;;;4442:1;4439;4432:12;4410:36;;4481:72;4545:7;4534:8;4523:9;4519:24;4481:72;:::i;:::-;3840:773;;;;-1:-1:-1;4572:8:1;-1:-1:-1;;;;3840:773:1:o;4618:821::-;4770:6;4778;4786;4839:2;4827:9;4818:7;4814:23;4810:32;4807:52;;;4855:1;4852;4845:12;4807:52;4895:9;4882:23;4924:18;4965:2;4957:6;4954:14;4951:34;;;4981:1;4978;4971:12;4951:34;5004:61;5057:7;5048:6;5037:9;5033:22;5004:61;:::i;:::-;4994:71;;5118:2;5107:9;5103:18;5090:32;5074:48;;5147:2;5137:8;5134:16;5131:36;;;5163:1;5160;5153:12;5131:36;5186:63;5241:7;5230:8;5219:9;5215:24;5186:63;:::i;:::-;5176:73;;5302:2;5291:9;5287:18;5274:32;5258:48;;5331:2;5321:8;5318:16;5315:36;;;5347:1;5344;5337:12;5315:36;;5370:63;5425:7;5414:8;5403:9;5399:24;5370:63;:::i;:::-;5360:73;;;4618:821;;;;;:::o;5444:595::-;5562:6;5570;5623:2;5611:9;5602:7;5598:23;5594:32;5591:52;;;5639:1;5636;5629:12;5591:52;5679:9;5666:23;5708:18;5749:2;5741:6;5738:14;5735:34;;;5765:1;5762;5755:12;5735:34;5788:61;5841:7;5832:6;5821:9;5817:22;5788:61;:::i;:::-;5778:71;;5902:2;5891:9;5887:18;5874:32;5858:48;;5931:2;5921:8;5918:16;5915:36;;;5947:1;5944;5937:12;5915:36;;5970:63;6025:7;6014:8;6003:9;5999:24;5970:63;:::i;:::-;5960:73;;;5444:595;;;;;:::o;6044:180::-;6100:6;6153:2;6141:9;6132:7;6128:23;6124:32;6121:52;;;6169:1;6166;6159:12;6121:52;6192:26;6208:9;6192:26;:::i;6229:180::-;6288:6;6341:2;6329:9;6320:7;6316:23;6312:32;6309:52;;;6357:1;6354;6347:12;6309:52;-1:-1:-1;6380:23:1;;6229:180;-1:-1:-1;6229:180:1:o;6414:184::-;6484:6;6537:2;6525:9;6516:7;6512:23;6508:32;6505:52;;;6553:1;6550;6543:12;6505:52;-1:-1:-1;6576:16:1;;6414:184;-1:-1:-1;6414:184:1:o;6603:278::-;6661:6;6714:2;6702:9;6693:7;6689:23;6685:32;6682:52;;;6730:1;6727;6720:12;6682:52;6769:9;6756:23;6819:12;6812:5;6808:24;6801:5;6798:35;6788:63;;6847:1;6844;6837:12;8018:597;8130:4;8159:2;8188;8177:9;8170:21;8220:6;8214:13;8263:6;8258:2;8247:9;8243:18;8236:34;8288:1;8298:140;8312:6;8309:1;8306:13;8298:140;;;8407:14;;;8403:23;;8397:30;8373:17;;;8392:2;8369:26;8362:66;8327:10;;8298:140;;;8456:6;8453:1;8450:13;8447:91;;;8526:1;8521:2;8512:6;8501:9;8497:22;8493:31;8486:42;8447:91;-1:-1:-1;8599:2:1;8578:15;-1:-1:-1;;8574:29:1;8559:45;;;;8606:2;8555:54;;8018:597;-1:-1:-1;;;8018:597:1:o;9028:415::-;9230:2;9212:21;;;9269:2;9249:18;;;9242:30;9308:34;9303:2;9288:18;;9281:62;-1:-1:-1;;;9374:2:1;9359:18;;9352:49;9433:3;9418:19;;9028:415::o;10615:356::-;10817:2;10799:21;;;10836:18;;;10829:30;10895:34;10890:2;10875:18;;10868:62;10962:2;10947:18;;10615:356::o;12097:349::-;12299:2;12281:21;;;12338:2;12318:18;;;12311:30;12377:27;12372:2;12357:18;;12350:55;12437:2;12422:18;;12097:349::o;14144:275::-;14215:2;14209:9;14280:2;14261:13;;-1:-1:-1;;14257:27:1;14245:40;;14315:18;14300:34;;14336:22;;;14297:62;14294:88;;;14362:18;;:::i;:::-;14398:2;14391:22;14144:275;;-1:-1:-1;14144:275:1:o;14424:183::-;14484:4;14517:18;14509:6;14506:30;14503:56;;;14539:18;;:::i;:::-;-1:-1:-1;14584:1:1;14580:14;14596:4;14576:25;;14424:183::o;14612:238::-;14652:3;-1:-1:-1;;;;;14719:10:1;;;14749;;;14779:12;;;14771:21;;14768:47;;;14795:18;;:::i;:::-;14831:13;;14612:238;-1:-1:-1;;;;14612:238:1:o;14855:128::-;14895:3;14926:1;14922:6;14919:1;14916:13;14913:39;;;14932:18;;:::i;:::-;-1:-1:-1;14968:9:1;;14855:128::o;14988:120::-;15028:1;15054;15044:35;;15059:18;;:::i;:::-;-1:-1:-1;15093:9:1;;14988:120::o;15113:168::-;15153:7;15219:1;15215;15211:6;15207:14;15204:1;15201:21;15196:1;15189:9;15182:17;15178:45;15175:71;;;15226:18;;:::i;:::-;-1:-1:-1;15266:9:1;;15113:168::o;15286:264::-;15325:7;15357:12;15396:2;15393:1;15389:10;15426:2;15423:1;15419:10;15482:3;15478:2;15474:12;15469:3;15466:21;15459:3;15452:11;15445:19;15441:47;15438:73;;;15491:18;;:::i;:::-;15531:13;;15286:264;-1:-1:-1;;;;15286:264:1:o;15555:231::-;15595:4;-1:-1:-1;;;;;15693:10:1;;;;15663;;15715:12;;;15712:38;;;15730:18;;:::i;:::-;15767:13;;15555:231;-1:-1:-1;;;15555:231:1:o;15791:125::-;15831:4;15859:1;15856;15853:8;15850:34;;;15864:18;;:::i;:::-;-1:-1:-1;15901:9:1;;15791:125::o;15921:380::-;16000:1;15996:12;;;;16043;;;16064:61;;16118:4;16110:6;16106:17;16096:27;;16064:61;16171:2;16163:6;16160:14;16140:18;16137:38;16134:161;;;16217:10;16212:3;16208:20;16205:1;16198:31;16252:4;16249:1;16242:15;16280:4;16277:1;16270:15;16134:161;;15921:380;;;:::o;16306:135::-;16345:3;-1:-1:-1;;16366:17:1;;16363:43;;;16386:18;;:::i;:::-;-1:-1:-1;16433:1:1;16422:13;;16306:135::o;16446:112::-;16478:1;16504;16494:35;;16509:18;;:::i;:::-;-1:-1:-1;16543:9:1;;16446:112::o;16563:127::-;16624:10;16619:3;16615:20;16612:1;16605:31;16655:4;16652:1;16645:15;16679:4;16676:1;16669:15;16695:127;16756:10;16751:3;16747:20;16744:1;16737:31;16787:4;16784:1;16777:15;16811:4;16808:1;16801:15;16827:127;16888:10;16883:3;16879:20;16876:1;16869:31;16919:4;16916:1;16909:15;16943:4;16940:1;16933:15;16959:127;17020:10;17015:3;17011:20;17008:1;17001:31;17051:4;17048:1;17041:15;17075:4;17072:1;17065:15

Swarm Source

ipfs://9975d0aecd1056c723e33eaea59adc4081142b59d2a7c01bd0df039e9176a68b

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

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