ETH Price: $2,616.57 (-4.49%)

Contract

0x166b322e25ea3577b310C1c893c754546a018e5F
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Tge202061632024-06-30 18:02:23222 days ago1719770543IN
0x166b322e...46a018e5F
0 ETH0.000093353.23629501
Set Tge199137332024-05-20 21:12:47263 days ago1716239567IN
0x166b322e...46a018e5F
0 ETH0.0015430453.49060498
Set Tge196412412024-04-12 18:15:23301 days ago1712945723IN
0x166b322e...46a018e5F
0 ETH0.0012478443.2574319
Set Tge195414592024-03-29 18:32:47315 days ago1711737167IN
0x166b322e...46a018e5F
0 ETH0.0006621922.95525132
Set Token195414402024-03-29 18:28:59315 days ago1711736939IN
0x166b322e...46a018e5F
0 ETH0.0011036123.82187377

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

Contract Source Code Verified (Exact Match)

Contract Name:
Vault

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

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

/**
 *Submitted for verification at Etherscan.io on 2024-03-12
*/

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

abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
        _status = _ENTERED;

        _;
        _status = _NOT_ENTERED;
    }
}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    function decimals() external view returns (uint8);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}



contract Vault is ReentrancyGuard {
    IERC20 public token;

    

    address owner;
    address dev;
    address teamMember1;
    address teamMember2;
    address teamMember3;
    address teamMember4;  
    address teamMember5;  
    address teamMember6;  
    address teamMember7;

   struct Team {
    address member;
    uint256 amountDue;
    uint256 amountClaimed;
    uint256 nextClaim;
    uint8 timesClaimed;
   }

   struct Partner {
    address member;
    uint256 amountDue;
    uint256 amountClaimed;
    uint256 nextClaim;
    uint8 timesClaimed;
   }

   
   uint8 public partnerLimit = 60;
   uint8 public partnerTotal = 0;

   uint8 public partnerVestingPeriods = 24;
   uint8 public teamVestingPeriods = 24;

   uint8 public partnerVestingPercent = 33; 
   uint8 public teamVestingPercent = 33;


    uint8 public tgePercent = 200; //This number is the % multiplied by 10

   

   
    mapping (address => Team) public team;
    mapping (address => Partner) public partner;
    

    
    uint256 public totalTLB = 3 * 10 **9 * 10 **18;
    uint256 public tge = 1711998000; //1711998000 April 1, 2024 (arbitrary)
    

    modifier onlyOwner() {
        require(msg.sender == owner, "Not the owner");
        _;
    }

    constructor(
        address  _owner,
        address _dev,
        address _teamMember1,
        address _teamMember2,
        address _teamMember3,
        address _teamMember4,
        address _teamMember5,
        address _teamMember6,
        address _teamMember7
    ) {

        owner = _owner;
        dev = _dev;
        teamMember1 = _teamMember1;
        teamMember2 = _teamMember2;
        teamMember3 = _teamMember3;
        teamMember4 = _teamMember4;
        teamMember5 = _teamMember5;
        teamMember6 = _teamMember6;
        teamMember7 = _teamMember7;

        team[_owner] = Team(
            _owner,
            (totalTLB * 8)/100,
            0,
            tge,
            0          
        );
        team[_dev] = Team(
            _dev,
            (totalTLB * 1)/100,
            0,
            tge,
            0
        );
        team[_teamMember1] = Team(
            _teamMember1,
            (totalTLB * 5)/1000,
            0,
            tge,
            0
        );
        team[_teamMember2] = Team(
            _teamMember2,
            (totalTLB * 5)/1000,
            0,
            tge,
            0
        );
        team[_teamMember3] = Team(
            _teamMember3,
            (totalTLB * 1)/100,
            0,
            tge,
            0
        );
        team[_teamMember4] = Team(
            _teamMember4,
            (totalTLB * 1)/100,
            0,
            tge,
            0
        );
         team[_teamMember5] = Team(
            _teamMember5,
            (totalTLB * 5)/1000,
            0,
            tge,
            0
        );
         team[_teamMember6] = Team(
            _teamMember6,
            (totalTLB * 25)/10000,
            0,
            tge,
            0
        );
         team[_teamMember7] = Team(
            _teamMember7,
            (totalTLB * 25)/10000,
            0,
            tge,
            0
        );    
    
    }

    function getVaultBalance() external view returns (uint256){
        return token.balanceOf(address(this));
    }


    //Added getclaim period function to let people know they can claim their next batch
    function getTeamClaimPeriod(address _addr) public view returns (uint256) {
        return team[_addr].nextClaim;
    }

    function getPartnerClaimPeriod(address _addr) public view returns (uint256) {
        return partner[_addr].nextClaim;
    }

    function getTeamAmountDue(address _addr) public view returns (uint256){
        return team[_addr].amountDue;
    }
    function getPartnerAmountDue(address _addr) public view returns (uint256){
        return partner[_addr].amountDue;
    }


    /* Add partner by address and %. You cannot add decimals, therefore, to calculate _percentInBasePoints
    * take the decimal that you want to add and multiply by 1000. For example,
    * 2% or 0.02 would be 20, and .2% or .002 would be 2.
    */
    function addPartner(address _partner, uint8 _percentInBasePoints) external onlyOwner {
        require(0 < _percentInBasePoints && _percentInBasePoints <= partnerLimit, "Added amount exceeds total partner limit");
        require(_percentInBasePoints + partnerTotal <= partnerLimit, "Added amount exceeds partner allocation limit");
        require(partner[_partner].member == address(0), "Partner already added!");
        partner[_partner] = Partner (
            _partner,
            (totalTLB * _percentInBasePoints)/1000,
            0,
            tge,
            0  
        );
        partnerTotal+= _percentInBasePoints;

    }

    

    function teamClaim() external nonReentrant {
        require(
            msg.sender == team[msg.sender].member,
            "Team Member not found!"
        );
        require(
            block.timestamp > team[msg.sender].nextClaim,
            "Not time for next vesting"
        );
        require(
            team[msg.sender].timesClaimed < teamVestingPeriods,
            "You're already fully vested!"
        );
        require(
            team[msg.sender].amountDue > 0,
            "You are not due to collect anymore."
        );

        

         if (team[msg.sender].timesClaimed == 0){
            uint256 amountReceived = (team[msg.sender].amountDue *
                tgePercent) / 1000;
            require(
                token.balanceOf(address(this)) >= amountReceived,
                "Insufficient balance of TLB held in contract to complete claim"
            );

            token.transfer(msg.sender, amountReceived );

            team[msg.sender].nextClaim = block.timestamp + 2629743; //2629743 1 month
            team[msg.sender].amountClaimed += amountReceived;
            team[msg.sender].timesClaimed++;
        }


        else if (team[msg.sender].timesClaimed == (teamVestingPeriods - 1)) {
            uint256 remainder = team[msg.sender].amountDue -
                team[msg.sender].amountClaimed;
            require(
                token.balanceOf(address(this)) >= remainder,
                "Insufficient balance of TLB held in contract to complete claim"
            );

            token.transfer(msg.sender, remainder);

            team[msg.sender].amountClaimed += remainder;
            team[msg.sender].timesClaimed++;
        } else if ((team[msg.sender].amountDue - team[msg.sender].amountClaimed) < (team[msg.sender].amountDue * teamVestingPercent)/1000) {
            uint256 remainder = team[msg.sender].amountDue -
                team[msg.sender].amountClaimed;
             require(
                token.balanceOf(address(this)) >= remainder,
                "Insufficient balance of TLB held in contract to complete claim"
            );

            token.transfer(msg.sender, remainder);

            team[msg.sender].amountClaimed += remainder;
            team[msg.sender].timesClaimed++;
        }
        
        else {
            uint256 amountReceived = (team[msg.sender].amountDue *
                teamVestingPercent) / 1000;
            require(
                token.balanceOf(address(this)) >= amountReceived,
                "Insufficient balance of TLB held in contract to complete claim"
            );

            token.transfer(msg.sender, amountReceived);

            team[msg.sender].nextClaim = block.timestamp + 2629743; //2629743 1 month;
            team[msg.sender].amountClaimed += amountReceived;
            team[msg.sender].timesClaimed++;
        }
    }

    
    function partnerClaim() external nonReentrant {
        require(
            msg.sender == partner[msg.sender].member,
            "Team Member not found!"
        );
        require(
            block.timestamp > partner[msg.sender].nextClaim,
            "Not time for next vesting"
        );
        require(
            partner[msg.sender].timesClaimed < partnerVestingPeriods,
            "You're already fully vested!"
        );
        require(
            partner[msg.sender].amountDue > 0,
            "You are not due to collect anymore."
        );

        

         if (partner[msg.sender].timesClaimed == 0){
            uint256 amountReceived = (partner[msg.sender].amountDue *
                tgePercent) / 1000;
            require(
                token.balanceOf(address(this)) >= amountReceived,
                "Insufficient balance of TLB held in contract to complete claim"
            );

            token.transfer(msg.sender, amountReceived );

            partner[msg.sender].nextClaim = block.timestamp + 2629743; //1 month
            partner[msg.sender].amountClaimed += amountReceived;
            partner[msg.sender].timesClaimed++;
        }


        else if (partner[msg.sender].timesClaimed == (partnerVestingPeriods - 1)) {
            uint256 remainder = partner[msg.sender].amountDue -
                partner[msg.sender].amountClaimed;
            require(
                token.balanceOf(address(this)) >= remainder,
                "Insufficient balance of TLB held in contract to complete claim"
            );

            token.transfer(msg.sender, remainder);

            partner[msg.sender].amountClaimed += remainder;
            partner[msg.sender].timesClaimed++;
        } else if ((partner[msg.sender].amountDue - partner[msg.sender].amountClaimed) < (partner[msg.sender].amountDue * partnerVestingPercent)/1000) {
            uint256 remainder = partner[msg.sender].amountDue -
                partner[msg.sender].amountClaimed;
             require(
                token.balanceOf(address(this)) >= remainder,
                "Insufficient balance of TLB held in contract to complete claim"
            );

            token.transfer(msg.sender, remainder);

            partner[msg.sender].amountClaimed += remainder;
            partner[msg.sender].timesClaimed++;
        }
        
        else {
            uint256 amountReceived = (partner[msg.sender].amountDue *
                partnerVestingPercent) / 1000;
            require(
                token.balanceOf(address(this)) >= amountReceived,
                "Insufficient balance of TLB held in contract to complete claim"
            );

            token.transfer(msg.sender, amountReceived);

            partner[msg.sender].nextClaim = block.timestamp + 2629743; //2592000;
            partner[msg.sender].amountClaimed += amountReceived;
            partner[msg.sender].timesClaimed++;
        }
    }

    function setTge(uint256 _newTge) external onlyOwner{
        tge = _newTge;
    }

    function setTgePercent(uint8 _percent) external onlyOwner {
        require(_percent > 0 && _percent <= 100, "Invalid percentage entered");
        tgePercent = _percent * 10;
    }

    function setToken(address _token) external onlyOwner {
        token = IERC20(_token);
    }

    
    
    function setVesting(
        uint8 _newTeamPeriod, 
        uint8 _newTeamPercent,
        uint8 _newPartnerPeriod,
        uint8 _newPartnerPercent
        )
        external
        onlyOwner
    {
        teamVestingPeriods = _newTeamPeriod;
        teamVestingPercent = _newTeamPercent;
        partnerVestingPeriods = _newPartnerPeriod;
        partnerVestingPercent = _newPartnerPercent;
    }

    function setPartnerLimit (uint8 _percent) external onlyOwner {
        require(_percent > 0 && _percent <= 100, "Invalid percentage entered");
        partnerLimit = _percent * 10;
    }

    

    function transferOwnership(address payable _newOwner) external onlyOwner {
        owner = _newOwner;
    }

    

   
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_dev","type":"address"},{"internalType":"address","name":"_teamMember1","type":"address"},{"internalType":"address","name":"_teamMember2","type":"address"},{"internalType":"address","name":"_teamMember3","type":"address"},{"internalType":"address","name":"_teamMember4","type":"address"},{"internalType":"address","name":"_teamMember5","type":"address"},{"internalType":"address","name":"_teamMember6","type":"address"},{"internalType":"address","name":"_teamMember7","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_partner","type":"address"},{"internalType":"uint8","name":"_percentInBasePoints","type":"uint8"}],"name":"addPartner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"getPartnerAmountDue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"getPartnerClaimPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"getTeamAmountDue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"getTeamClaimPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVaultBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"partner","outputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"amountDue","type":"uint256"},{"internalType":"uint256","name":"amountClaimed","type":"uint256"},{"internalType":"uint256","name":"nextClaim","type":"uint256"},{"internalType":"uint8","name":"timesClaimed","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"partnerClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"partnerLimit","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"partnerTotal","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"partnerVestingPercent","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"partnerVestingPeriods","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_percent","type":"uint8"}],"name":"setPartnerLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTge","type":"uint256"}],"name":"setTge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_percent","type":"uint8"}],"name":"setTgePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_newTeamPeriod","type":"uint8"},{"internalType":"uint8","name":"_newTeamPercent","type":"uint8"},{"internalType":"uint8","name":"_newPartnerPeriod","type":"uint8"},{"internalType":"uint8","name":"_newPartnerPercent","type":"uint8"}],"name":"setVesting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"team","outputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"amountDue","type":"uint256"},{"internalType":"uint256","name":"amountClaimed","type":"uint256"},{"internalType":"uint256","name":"nextClaim","type":"uint256"},{"internalType":"uint8","name":"timesClaimed","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"teamVestingPercent","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamVestingPeriods","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tge","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tgePercent","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTLB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052603c600a60146101000a81548160ff021916908360ff1602179055505f600a60156101000a81548160ff021916908360ff1602179055506018600a60166101000a81548160ff021916908360ff1602179055506018600a60176101000a81548160ff021916908360ff1602179055506021600a60186101000a81548160ff021916908360ff1602179055506021600a60196101000a81548160ff021916908360ff16021790555060c8600a601a6101000a81548160ff021916908360ff1602179055506b09b18ab5df7180b6b8000000600d5563660b0430600e55348015620000eb575f80fd5b5060405162004d0938038062004d09833981810160405281019062000111919062000e03565b60015f819055508860025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508760035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508660045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508560055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060a001604052808a73ffffffffffffffffffffffffffffffffffffffff16815260200160646008600d5462000392919062000f12565b6200039e919062000f89565b81526020015f8152602001600e5481526020015f60ff16815250600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015f6101000a81548160ff021916908360ff1602179055509050506040518060a001604052808973ffffffffffffffffffffffffffffffffffffffff16815260200160646001600d54620004b4919062000f12565b620004c0919062000f89565b81526020015f8152602001600e5481526020015f60ff16815250600b5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015f6101000a81548160ff021916908360ff1602179055509050506040518060a001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020016103e86005600d54620005d7919062000f12565b620005e3919062000f89565b81526020015f8152602001600e5481526020015f60ff16815250600b5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015f6101000a81548160ff021916908360ff1602179055509050506040518060a001604052808773ffffffffffffffffffffffffffffffffffffffff1681526020016103e86005600d54620006fa919062000f12565b62000706919062000f89565b81526020015f8152602001600e5481526020015f60ff16815250600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015f6101000a81548160ff021916908360ff1602179055509050506040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff16815260200160646001600d546200081c919062000f12565b62000828919062000f89565b81526020015f8152602001600e5481526020015f60ff16815250600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015f6101000a81548160ff021916908360ff1602179055509050506040518060a001604052808573ffffffffffffffffffffffffffffffffffffffff16815260200160646001600d546200093e919062000f12565b6200094a919062000f89565b81526020015f8152602001600e5481526020015f60ff16815250600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015f6101000a81548160ff021916908360ff1602179055509050506040518060a001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020016103e86005600d5462000a61919062000f12565b62000a6d919062000f89565b81526020015f8152602001600e5481526020015f60ff16815250600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015f6101000a81548160ff021916908360ff1602179055509050506040518060a001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020016127106019600d5462000b84919062000f12565b62000b90919062000f89565b81526020015f8152602001600e5481526020015f60ff16815250600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015f6101000a81548160ff021916908360ff1602179055509050506040518060a001604052808273ffffffffffffffffffffffffffffffffffffffff1681526020016127106019600d5462000ca7919062000f12565b62000cb3919062000f89565b81526020015f8152602001600e5481526020015f60ff16815250600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015f6101000a81548160ff021916908360ff16021790555090505050505050505050505062000fc0565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000dcd8262000da2565b9050919050565b62000ddf8162000dc1565b811462000dea575f80fd5b50565b5f8151905062000dfd8162000dd4565b92915050565b5f805f805f805f805f6101208a8c03121562000e245762000e2362000d9e565b5b5f62000e338c828d0162000ded565b995050602062000e468c828d0162000ded565b985050604062000e598c828d0162000ded565b975050606062000e6c8c828d0162000ded565b965050608062000e7f8c828d0162000ded565b95505060a062000e928c828d0162000ded565b94505060c062000ea58c828d0162000ded565b93505060e062000eb88c828d0162000ded565b92505061010062000ecc8c828d0162000ded565b9150509295985092959850929598565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000f1e8262000edc565b915062000f2b8362000edc565b925082820262000f3b8162000edc565b9150828204841483151762000f555762000f5462000ee5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f958262000edc565b915062000fa28362000edc565b92508262000fb55762000fb462000f5c565b5b828204905092915050565b613d3b8062000fce5f395ff3fe608060405234801561000f575f80fd5b506004361061018c575f3560e01c80636baa21ce116100dc578063ccd69b7411610095578063eaa374d01161006f578063eaa374d014610464578063ed12e8ef14610482578063f2fde38b146104a0578063fc0c546a146104bc5761018c565b8063ccd69b74146103f8578063e1c8d2ed14610416578063e2f0f42d146104465761018c565b80636baa21ce1461034857806370b49d3a14610364578063a7497fa514610382578063bdce047f146103a0578063bfe2a75b146103be578063c83880dc146103c85761018c565b80631b356a7e116101495780633de94925116101235780633de94925146102bc5780634ea8584a146102f0578063664bd5ac1461030e5780636ae146c21461033e5761018c565b80631b356a7e146102645780633593d0de1461028257806339b66128146102a05761018c565b80630c467fa6146101905780630f31f76c146101c4578063128ccc5f146101f45780631371fc3f14610210578063144fa6d71461022c57806316876fdd14610248575b5f80fd5b6101aa60048036038101906101a591906131f3565b6104da565b6040516101bb959493929190613260565b60405180910390f35b6101de60048036038101906101d991906131f3565b610537565b6040516101eb91906132b1565b60405180910390f35b61020e600480360381019061020991906132f4565b610580565b005b61022a600480360381019061022591906132f4565b61068e565b005b610246600480360381019061024191906131f3565b61079c565b005b610262600480360381019061025d919061331f565b61086e565b005b61026c61096f565b6040516102799190613383565b60405180910390f35b61028a610982565b6040516102979190613383565b60405180910390f35b6102ba60048036038101906102b5919061339c565b610995565b005b6102d660048036038101906102d191906131f3565b610d23565b6040516102e7959493929190613260565b60405180910390f35b6102f8610d80565b60405161030591906132b1565b60405180910390f35b610328600480360381019061032391906131f3565b610d86565b60405161033591906132b1565b60405180910390f35b610346610dcf565b005b610362600480360381019061035d9190613404565b611e1f565b005b61036c611eb8565b6040516103799190613383565b60405180910390f35b61038a611ecb565b60405161039791906132b1565b60405180910390f35b6103a8611ed1565b6040516103b59190613383565b60405180910390f35b6103c6611ee4565b005b6103e260048036038101906103dd91906131f3565b612f34565b6040516103ef91906132b1565b60405180910390f35b610400612f7d565b60405161040d9190613383565b60405180910390f35b610430600480360381019061042b91906131f3565b612f90565b60405161043d91906132b1565b60405180910390f35b61044e612fd9565b60405161045b9190613383565b60405180910390f35b61046c612fec565b6040516104799190613383565b60405180910390f35b61048a612fff565b60405161049791906132b1565b60405180910390f35b6104ba60048036038101906104b5919061346a565b61309e565b005b6104c4613170565b6040516104d191906134f0565b60405180910390f35b600c602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002015490806003015490806004015f9054906101000a900460ff16905085565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600301549050919050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461060f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060690613563565b60405180910390fd5b5f8160ff16118015610625575060648160ff1611155b610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065b906135cb565b60405180910390fd5b600a816106719190613616565b600a60146101000a81548160ff021916908360ff16021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461071d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071490613563565b60405180910390fd5b5f8160ff16118015610733575060648160ff1611155b610772576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610769906135cb565b60405180910390fd5b600a8161077f9190613616565b600a601a6101000a81548160ff021916908360ff16021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461082b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082290613563565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f490613563565b60405180910390fd5b83600a60176101000a81548160ff021916908360ff16021790555082600a60196101000a81548160ff021916908360ff16021790555081600a60166101000a81548160ff021916908360ff16021790555080600a60186101000a81548160ff021916908360ff16021790555050505050565b600a60159054906101000a900460ff1681565b600a60179054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b90613563565b60405180910390fd5b8060ff165f108015610a4b5750600a60149054906101000a900460ff1660ff168160ff1611155b610a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a81906136c2565b60405180910390fd5b600a60149054906101000a900460ff1660ff16600a60159054906101000a900460ff1682610ab891906136e0565b60ff161115610afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af390613784565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbf906137ec565b60405180910390fd5b6040518060a001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020016103e88360ff16600d54610c03919061380a565b610c0d9190613878565b81526020015f8152602001600e5481526020015f60ff16815250600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015f6101000a81548160ff021916908360ff16021790555090505080600a60158282829054906101000a900460ff16610d0791906136e0565b92506101000a81548160ff021916908360ff1602179055505050565b600b602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002015490806003015490806004015f9054906101000a900460ff16905085565b600d5481565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600301549050919050565b60025f5403610e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0a906138f2565b60405180910390fd5b60025f81905550600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edd9061395a565b60405180910390fd5b600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600301544211610f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5f906139c2565b60405180910390fd5b600a60179054906101000a900460ff1660ff16600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f9054906101000a900460ff1660ff161061100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100290613a2a565b60405180910390fd5b5f600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101541161108d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108490613ab8565b60405180910390fd5b5f600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f9054906101000a900460ff1660ff16036113ed575f6103e8600a601a9054906101000a900460ff1660ff16600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010154611145919061380a565b61114f9190613878565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111ac9190613ad6565b602060405180830381865afa1580156111c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111eb9190613b03565b101561122c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122390613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611288929190613bbc565b6020604051808303815f875af11580156112a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112c89190613c18565b506228206f426112d89190613c43565b600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003018190555080600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f82825461136b9190613c43565b92505081905550600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff16809291906113ce90613c76565b91906101000a81548160ff021916908360ff1602179055505050611e16565b6001600a60179054906101000a900460ff166114099190613c9e565b60ff16600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f9054906101000a900460ff1660ff1603611739575f600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020154600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546114ee9190613cd2565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161154b9190613ad6565b602060405180830381865afa158015611566573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158a9190613b03565b10156115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611627929190613bbc565b6020604051808303815f875af1158015611643573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116679190613c18565b5080600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8282546116b79190613c43565b92505081905550600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff168092919061171a90613c76565b91906101000a81548160ff021916908360ff1602179055505050611e15565b6103e8600a60199054906101000a900460ff1660ff16600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015461179a919061380a565b6117a49190613878565b600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020154600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546118309190613cd2565b1015611b0e575f600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020154600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546118c39190613cd2565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119209190613ad6565b602060405180830381865afa15801561193b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061195f9190613b03565b10156119a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199790613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016119fc929190613bbc565b6020604051808303815f875af1158015611a18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3c9190613c18565b5080600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f828254611a8c9190613c43565b92505081905550600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff1680929190611aef90613c76565b91906101000a81548160ff021916908360ff1602179055505050611e14565b5f6103e8600a60199054906101000a900460ff1660ff16600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010154611b70919061380a565b611b7a9190613878565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611bd79190613ad6565b602060405180830381865afa158015611bf2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c169190613b03565b1015611c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4e90613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611cb3929190613bbc565b6020604051808303815f875af1158015611ccf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf39190613c18565b506228206f42611d039190613c43565b600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003018190555080600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f828254611d969190613c43565b92505081905550600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff1680929190611df990613c76565b91906101000a81548160ff021916908360ff16021790555050505b5b5b60015f81905550565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea590613563565b60405180910390fd5b80600e8190555050565b600a60149054906101000a900460ff1681565b600e5481565b600a60189054906101000a900460ff1681565b60025f5403611f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1f906138f2565b60405180910390fd5b60025f81905550600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff29061395a565b60405180910390fd5b600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060030154421161207d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612074906139c2565b60405180910390fd5b600a60169054906101000a900460ff1660ff16600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f9054906101000a900460ff1660ff1610612120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211790613a2a565b60405180910390fd5b5f600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010154116121a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219990613ab8565b60405180910390fd5b5f600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f9054906101000a900460ff1660ff1603612502575f6103e8600a601a9054906101000a900460ff1660ff16600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015461225a919061380a565b6122649190613878565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016122c19190613ad6565b602060405180830381865afa1580156122dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123009190613b03565b1015612341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233890613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161239d929190613bbc565b6020604051808303815f875af11580156123b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123dd9190613c18565b506228206f426123ed9190613c43565b600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003018190555080600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8282546124809190613c43565b92505081905550600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff16809291906124e390613c76565b91906101000a81548160ff021916908360ff1602179055505050612f2b565b6001600a60169054906101000a900460ff1661251e9190613c9e565b60ff16600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f9054906101000a900460ff1660ff160361284e575f600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020154600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546126039190613cd2565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126609190613ad6565b602060405180830381865afa15801561267b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061269f9190613b03565b10156126e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d790613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161273c929190613bbc565b6020604051808303815f875af1158015612758573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061277c9190613c18565b5080600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8282546127cc9190613c43565b92505081905550600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff168092919061282f90613c76565b91906101000a81548160ff021916908360ff1602179055505050612f2a565b6103e8600a60189054906101000a900460ff1660ff16600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546128af919061380a565b6128b99190613878565b600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020154600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546129459190613cd2565b1015612c23575f600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020154600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546129d89190613cd2565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612a359190613ad6565b602060405180830381865afa158015612a50573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a749190613b03565b1015612ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aac90613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612b11929190613bbc565b6020604051808303815f875af1158015612b2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b519190613c18565b5080600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f828254612ba19190613c43565b92505081905550600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff1680929190612c0490613c76565b91906101000a81548160ff021916908360ff1602179055505050612f29565b5f6103e8600a60189054906101000a900460ff1660ff16600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010154612c85919061380a565b612c8f9190613878565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612cec9190613ad6565b602060405180830381865afa158015612d07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d2b9190613b03565b1015612d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6390613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612dc8929190613bbc565b6020604051808303815f875af1158015612de4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e089190613c18565b506228206f42612e189190613c43565b600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003018190555080600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f828254612eab9190613c43565b92505081905550600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff1680929190612f0e90613c76565b91906101000a81548160ff021916908360ff16021790555050505b5b5b60015f81905550565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101549050919050565b600a60199054906101000a900460ff1681565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101549050919050565b600a601a9054906101000a900460ff1681565b600a60169054906101000a900460ff1681565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161305a9190613ad6565b602060405180830381865afa158015613075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130999190613b03565b905090565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461312d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312490613563565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6131c282613199565b9050919050565b6131d2816131b8565b81146131dc575f80fd5b50565b5f813590506131ed816131c9565b92915050565b5f6020828403121561320857613207613195565b5b5f613215848285016131df565b91505092915050565b613227816131b8565b82525050565b5f819050919050565b61323f8161322d565b82525050565b5f60ff82169050919050565b61325a81613245565b82525050565b5f60a0820190506132735f83018861321e565b6132806020830187613236565b61328d6040830186613236565b61329a6060830185613236565b6132a76080830184613251565b9695505050505050565b5f6020820190506132c45f830184613236565b92915050565b6132d381613245565b81146132dd575f80fd5b50565b5f813590506132ee816132ca565b92915050565b5f6020828403121561330957613308613195565b5b5f613316848285016132e0565b91505092915050565b5f805f806080858703121561333757613336613195565b5b5f613344878288016132e0565b9450506020613355878288016132e0565b9350506040613366878288016132e0565b9250506060613377878288016132e0565b91505092959194509250565b5f6020820190506133965f830184613251565b92915050565b5f80604083850312156133b2576133b1613195565b5b5f6133bf858286016131df565b92505060206133d0858286016132e0565b9150509250929050565b6133e38161322d565b81146133ed575f80fd5b50565b5f813590506133fe816133da565b92915050565b5f6020828403121561341957613418613195565b5b5f613426848285016133f0565b91505092915050565b5f61343982613199565b9050919050565b6134498161342f565b8114613453575f80fd5b50565b5f8135905061346481613440565b92915050565b5f6020828403121561347f5761347e613195565b5b5f61348c84828501613456565b91505092915050565b5f819050919050565b5f6134b86134b36134ae84613199565b613495565b613199565b9050919050565b5f6134c98261349e565b9050919050565b5f6134da826134bf565b9050919050565b6134ea816134d0565b82525050565b5f6020820190506135035f8301846134e1565b92915050565b5f82825260208201905092915050565b7f4e6f7420746865206f776e6572000000000000000000000000000000000000005f82015250565b5f61354d600d83613509565b915061355882613519565b602082019050919050565b5f6020820190508181035f83015261357a81613541565b9050919050565b7f496e76616c69642070657263656e7461676520656e74657265640000000000005f82015250565b5f6135b5601a83613509565b91506135c082613581565b602082019050919050565b5f6020820190508181035f8301526135e2816135a9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61362082613245565b915061362b83613245565b925082820261363981613245565b915080821461364b5761364a6135e9565b5b5092915050565b7f416464656420616d6f756e74206578636565647320746f74616c20706172746e5f8201527f6572206c696d6974000000000000000000000000000000000000000000000000602082015250565b5f6136ac602883613509565b91506136b782613652565b604082019050919050565b5f6020820190508181035f8301526136d9816136a0565b9050919050565b5f6136ea82613245565b91506136f583613245565b9250828201905060ff81111561370e5761370d6135e9565b5b92915050565b7f416464656420616d6f756e74206578636565647320706172746e657220616c6c5f8201527f6f636174696f6e206c696d697400000000000000000000000000000000000000602082015250565b5f61376e602d83613509565b915061377982613714565b604082019050919050565b5f6020820190508181035f83015261379b81613762565b9050919050565b7f506172746e657220616c726561647920616464656421000000000000000000005f82015250565b5f6137d6601683613509565b91506137e1826137a2565b602082019050919050565b5f6020820190508181035f830152613803816137ca565b9050919050565b5f6138148261322d565b915061381f8361322d565b925082820261382d8161322d565b91508282048414831517613844576138436135e9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6138828261322d565b915061388d8361322d565b92508261389d5761389c61384b565b5b828204905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f6138dc601f83613509565b91506138e7826138a8565b602082019050919050565b5f6020820190508181035f830152613909816138d0565b9050919050565b7f5465616d204d656d626572206e6f7420666f756e6421000000000000000000005f82015250565b5f613944601683613509565b915061394f82613910565b602082019050919050565b5f6020820190508181035f83015261397181613938565b9050919050565b7f4e6f742074696d6520666f72206e6578742076657374696e67000000000000005f82015250565b5f6139ac601983613509565b91506139b782613978565b602082019050919050565b5f6020820190508181035f8301526139d9816139a0565b9050919050565b7f596f7527726520616c72656164792066756c6c792076657374656421000000005f82015250565b5f613a14601c83613509565b9150613a1f826139e0565b602082019050919050565b5f6020820190508181035f830152613a4181613a08565b9050919050565b7f596f7520617265206e6f742064756520746f20636f6c6c65637420616e796d6f5f8201527f72652e0000000000000000000000000000000000000000000000000000000000602082015250565b5f613aa2602383613509565b9150613aad82613a48565b604082019050919050565b5f6020820190508181035f830152613acf81613a96565b9050919050565b5f602082019050613ae95f83018461321e565b92915050565b5f81519050613afd816133da565b92915050565b5f60208284031215613b1857613b17613195565b5b5f613b2584828501613aef565b91505092915050565b7f496e73756666696369656e742062616c616e6365206f6620544c422068656c645f8201527f20696e20636f6e747261637420746f20636f6d706c65746520636c61696d0000602082015250565b5f613b88603e83613509565b9150613b9382613b2e565b604082019050919050565b5f6020820190508181035f830152613bb581613b7c565b9050919050565b5f604082019050613bcf5f83018561321e565b613bdc6020830184613236565b9392505050565b5f8115159050919050565b613bf781613be3565b8114613c01575f80fd5b50565b5f81519050613c1281613bee565b92915050565b5f60208284031215613c2d57613c2c613195565b5b5f613c3a84828501613c04565b91505092915050565b5f613c4d8261322d565b9150613c588361322d565b9250828201905080821115613c7057613c6f6135e9565b5b92915050565b5f613c8082613245565b915060ff8203613c9357613c926135e9565b5b600182019050919050565b5f613ca882613245565b9150613cb383613245565b9250828203905060ff811115613ccc57613ccb6135e9565b5b92915050565b5f613cdc8261322d565b9150613ce78361322d565b9250828203905081811115613cff57613cfe6135e9565b5b9291505056fea26469706673582212208a915ac0b122d259f63dc8224f699e3b41cad10ef4569257847ec80cc789a75864736f6c634300081800330000000000000000000000004512001ff4d93fe551bf5618eb2d93669281012c0000000000000000000000002fe70ef3db7ea49b5f14b5edf6208116458fa74a000000000000000000000000c4b04371320274d9e9892f7d0adf98f8d672906e0000000000000000000000006cb7f0c262650f4e06e153a9563d08f8659c99c3000000000000000000000000bda2146239b0fafa8ae89e51bef2c29953ef0d2b0000000000000000000000008ea187280f4857d5ca6a1a6926568b50c3f35f9f0000000000000000000000003ed0ecfa2348afbf0d1ae08636d874cdd311b66600000000000000000000000017ea6b0aed4786a97388c8797cd074de8806e2e0000000000000000000000000dccf6c087a9d0ed4a214829beab0810f05ef6fbc

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061018c575f3560e01c80636baa21ce116100dc578063ccd69b7411610095578063eaa374d01161006f578063eaa374d014610464578063ed12e8ef14610482578063f2fde38b146104a0578063fc0c546a146104bc5761018c565b8063ccd69b74146103f8578063e1c8d2ed14610416578063e2f0f42d146104465761018c565b80636baa21ce1461034857806370b49d3a14610364578063a7497fa514610382578063bdce047f146103a0578063bfe2a75b146103be578063c83880dc146103c85761018c565b80631b356a7e116101495780633de94925116101235780633de94925146102bc5780634ea8584a146102f0578063664bd5ac1461030e5780636ae146c21461033e5761018c565b80631b356a7e146102645780633593d0de1461028257806339b66128146102a05761018c565b80630c467fa6146101905780630f31f76c146101c4578063128ccc5f146101f45780631371fc3f14610210578063144fa6d71461022c57806316876fdd14610248575b5f80fd5b6101aa60048036038101906101a591906131f3565b6104da565b6040516101bb959493929190613260565b60405180910390f35b6101de60048036038101906101d991906131f3565b610537565b6040516101eb91906132b1565b60405180910390f35b61020e600480360381019061020991906132f4565b610580565b005b61022a600480360381019061022591906132f4565b61068e565b005b610246600480360381019061024191906131f3565b61079c565b005b610262600480360381019061025d919061331f565b61086e565b005b61026c61096f565b6040516102799190613383565b60405180910390f35b61028a610982565b6040516102979190613383565b60405180910390f35b6102ba60048036038101906102b5919061339c565b610995565b005b6102d660048036038101906102d191906131f3565b610d23565b6040516102e7959493929190613260565b60405180910390f35b6102f8610d80565b60405161030591906132b1565b60405180910390f35b610328600480360381019061032391906131f3565b610d86565b60405161033591906132b1565b60405180910390f35b610346610dcf565b005b610362600480360381019061035d9190613404565b611e1f565b005b61036c611eb8565b6040516103799190613383565b60405180910390f35b61038a611ecb565b60405161039791906132b1565b60405180910390f35b6103a8611ed1565b6040516103b59190613383565b60405180910390f35b6103c6611ee4565b005b6103e260048036038101906103dd91906131f3565b612f34565b6040516103ef91906132b1565b60405180910390f35b610400612f7d565b60405161040d9190613383565b60405180910390f35b610430600480360381019061042b91906131f3565b612f90565b60405161043d91906132b1565b60405180910390f35b61044e612fd9565b60405161045b9190613383565b60405180910390f35b61046c612fec565b6040516104799190613383565b60405180910390f35b61048a612fff565b60405161049791906132b1565b60405180910390f35b6104ba60048036038101906104b5919061346a565b61309e565b005b6104c4613170565b6040516104d191906134f0565b60405180910390f35b600c602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002015490806003015490806004015f9054906101000a900460ff16905085565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600301549050919050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461060f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060690613563565b60405180910390fd5b5f8160ff16118015610625575060648160ff1611155b610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065b906135cb565b60405180910390fd5b600a816106719190613616565b600a60146101000a81548160ff021916908360ff16021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461071d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071490613563565b60405180910390fd5b5f8160ff16118015610733575060648160ff1611155b610772576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610769906135cb565b60405180910390fd5b600a8161077f9190613616565b600a601a6101000a81548160ff021916908360ff16021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461082b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082290613563565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f490613563565b60405180910390fd5b83600a60176101000a81548160ff021916908360ff16021790555082600a60196101000a81548160ff021916908360ff16021790555081600a60166101000a81548160ff021916908360ff16021790555080600a60186101000a81548160ff021916908360ff16021790555050505050565b600a60159054906101000a900460ff1681565b600a60179054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b90613563565b60405180910390fd5b8060ff165f108015610a4b5750600a60149054906101000a900460ff1660ff168160ff1611155b610a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a81906136c2565b60405180910390fd5b600a60149054906101000a900460ff1660ff16600a60159054906101000a900460ff1682610ab891906136e0565b60ff161115610afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af390613784565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbf906137ec565b60405180910390fd5b6040518060a001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020016103e88360ff16600d54610c03919061380a565b610c0d9190613878565b81526020015f8152602001600e5481526020015f60ff16815250600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015f6101000a81548160ff021916908360ff16021790555090505080600a60158282829054906101000a900460ff16610d0791906136e0565b92506101000a81548160ff021916908360ff1602179055505050565b600b602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002015490806003015490806004015f9054906101000a900460ff16905085565b600d5481565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600301549050919050565b60025f5403610e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0a906138f2565b60405180910390fd5b60025f81905550600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edd9061395a565b60405180910390fd5b600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600301544211610f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5f906139c2565b60405180910390fd5b600a60179054906101000a900460ff1660ff16600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f9054906101000a900460ff1660ff161061100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100290613a2a565b60405180910390fd5b5f600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101541161108d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108490613ab8565b60405180910390fd5b5f600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f9054906101000a900460ff1660ff16036113ed575f6103e8600a601a9054906101000a900460ff1660ff16600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010154611145919061380a565b61114f9190613878565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111ac9190613ad6565b602060405180830381865afa1580156111c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111eb9190613b03565b101561122c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122390613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611288929190613bbc565b6020604051808303815f875af11580156112a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112c89190613c18565b506228206f426112d89190613c43565b600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003018190555080600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f82825461136b9190613c43565b92505081905550600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff16809291906113ce90613c76565b91906101000a81548160ff021916908360ff1602179055505050611e16565b6001600a60179054906101000a900460ff166114099190613c9e565b60ff16600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f9054906101000a900460ff1660ff1603611739575f600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020154600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546114ee9190613cd2565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161154b9190613ad6565b602060405180830381865afa158015611566573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158a9190613b03565b10156115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611627929190613bbc565b6020604051808303815f875af1158015611643573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116679190613c18565b5080600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8282546116b79190613c43565b92505081905550600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff168092919061171a90613c76565b91906101000a81548160ff021916908360ff1602179055505050611e15565b6103e8600a60199054906101000a900460ff1660ff16600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015461179a919061380a565b6117a49190613878565b600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020154600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546118309190613cd2565b1015611b0e575f600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020154600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546118c39190613cd2565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119209190613ad6565b602060405180830381865afa15801561193b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061195f9190613b03565b10156119a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199790613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016119fc929190613bbc565b6020604051808303815f875af1158015611a18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3c9190613c18565b5080600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f828254611a8c9190613c43565b92505081905550600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff1680929190611aef90613c76565b91906101000a81548160ff021916908360ff1602179055505050611e14565b5f6103e8600a60199054906101000a900460ff1660ff16600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010154611b70919061380a565b611b7a9190613878565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611bd79190613ad6565b602060405180830381865afa158015611bf2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c169190613b03565b1015611c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4e90613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611cb3929190613bbc565b6020604051808303815f875af1158015611ccf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf39190613c18565b506228206f42611d039190613c43565b600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003018190555080600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f828254611d969190613c43565b92505081905550600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff1680929190611df990613c76565b91906101000a81548160ff021916908360ff16021790555050505b5b5b60015f81905550565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea590613563565b60405180910390fd5b80600e8190555050565b600a60149054906101000a900460ff1681565b600e5481565b600a60189054906101000a900460ff1681565b60025f5403611f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1f906138f2565b60405180910390fd5b60025f81905550600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff29061395a565b60405180910390fd5b600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060030154421161207d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612074906139c2565b60405180910390fd5b600a60169054906101000a900460ff1660ff16600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f9054906101000a900460ff1660ff1610612120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211790613a2a565b60405180910390fd5b5f600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010154116121a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219990613ab8565b60405180910390fd5b5f600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f9054906101000a900460ff1660ff1603612502575f6103e8600a601a9054906101000a900460ff1660ff16600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015461225a919061380a565b6122649190613878565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016122c19190613ad6565b602060405180830381865afa1580156122dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123009190613b03565b1015612341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233890613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161239d929190613bbc565b6020604051808303815f875af11580156123b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123dd9190613c18565b506228206f426123ed9190613c43565b600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003018190555080600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8282546124809190613c43565b92505081905550600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff16809291906124e390613c76565b91906101000a81548160ff021916908360ff1602179055505050612f2b565b6001600a60169054906101000a900460ff1661251e9190613c9e565b60ff16600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f9054906101000a900460ff1660ff160361284e575f600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020154600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546126039190613cd2565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126609190613ad6565b602060405180830381865afa15801561267b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061269f9190613b03565b10156126e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d790613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161273c929190613bbc565b6020604051808303815f875af1158015612758573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061277c9190613c18565b5080600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8282546127cc9190613c43565b92505081905550600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff168092919061282f90613c76565b91906101000a81548160ff021916908360ff1602179055505050612f2a565b6103e8600a60189054906101000a900460ff1660ff16600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546128af919061380a565b6128b99190613878565b600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020154600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546129459190613cd2565b1015612c23575f600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020154600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101546129d89190613cd2565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612a359190613ad6565b602060405180830381865afa158015612a50573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a749190613b03565b1015612ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aac90613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612b11929190613bbc565b6020604051808303815f875af1158015612b2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b519190613c18565b5080600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f828254612ba19190613c43565b92505081905550600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff1680929190612c0490613c76565b91906101000a81548160ff021916908360ff1602179055505050612f29565b5f6103e8600a60189054906101000a900460ff1660ff16600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010154612c85919061380a565b612c8f9190613878565b90508060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612cec9190613ad6565b602060405180830381865afa158015612d07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d2b9190613b03565b1015612d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6390613b9e565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612dc8929190613bbc565b6020604051808303815f875af1158015612de4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e089190613c18565b506228206f42612e189190613c43565b600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003018190555080600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f828254612eab9190613c43565b92505081905550600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f81819054906101000a900460ff1680929190612f0e90613c76565b91906101000a81548160ff021916908360ff16021790555050505b5b5b60015f81905550565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101549050919050565b600a60199054906101000a900460ff1681565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101549050919050565b600a601a9054906101000a900460ff1681565b600a60169054906101000a900460ff1681565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161305a9190613ad6565b602060405180830381865afa158015613075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130999190613b03565b905090565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461312d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312490613563565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6131c282613199565b9050919050565b6131d2816131b8565b81146131dc575f80fd5b50565b5f813590506131ed816131c9565b92915050565b5f6020828403121561320857613207613195565b5b5f613215848285016131df565b91505092915050565b613227816131b8565b82525050565b5f819050919050565b61323f8161322d565b82525050565b5f60ff82169050919050565b61325a81613245565b82525050565b5f60a0820190506132735f83018861321e565b6132806020830187613236565b61328d6040830186613236565b61329a6060830185613236565b6132a76080830184613251565b9695505050505050565b5f6020820190506132c45f830184613236565b92915050565b6132d381613245565b81146132dd575f80fd5b50565b5f813590506132ee816132ca565b92915050565b5f6020828403121561330957613308613195565b5b5f613316848285016132e0565b91505092915050565b5f805f806080858703121561333757613336613195565b5b5f613344878288016132e0565b9450506020613355878288016132e0565b9350506040613366878288016132e0565b9250506060613377878288016132e0565b91505092959194509250565b5f6020820190506133965f830184613251565b92915050565b5f80604083850312156133b2576133b1613195565b5b5f6133bf858286016131df565b92505060206133d0858286016132e0565b9150509250929050565b6133e38161322d565b81146133ed575f80fd5b50565b5f813590506133fe816133da565b92915050565b5f6020828403121561341957613418613195565b5b5f613426848285016133f0565b91505092915050565b5f61343982613199565b9050919050565b6134498161342f565b8114613453575f80fd5b50565b5f8135905061346481613440565b92915050565b5f6020828403121561347f5761347e613195565b5b5f61348c84828501613456565b91505092915050565b5f819050919050565b5f6134b86134b36134ae84613199565b613495565b613199565b9050919050565b5f6134c98261349e565b9050919050565b5f6134da826134bf565b9050919050565b6134ea816134d0565b82525050565b5f6020820190506135035f8301846134e1565b92915050565b5f82825260208201905092915050565b7f4e6f7420746865206f776e6572000000000000000000000000000000000000005f82015250565b5f61354d600d83613509565b915061355882613519565b602082019050919050565b5f6020820190508181035f83015261357a81613541565b9050919050565b7f496e76616c69642070657263656e7461676520656e74657265640000000000005f82015250565b5f6135b5601a83613509565b91506135c082613581565b602082019050919050565b5f6020820190508181035f8301526135e2816135a9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61362082613245565b915061362b83613245565b925082820261363981613245565b915080821461364b5761364a6135e9565b5b5092915050565b7f416464656420616d6f756e74206578636565647320746f74616c20706172746e5f8201527f6572206c696d6974000000000000000000000000000000000000000000000000602082015250565b5f6136ac602883613509565b91506136b782613652565b604082019050919050565b5f6020820190508181035f8301526136d9816136a0565b9050919050565b5f6136ea82613245565b91506136f583613245565b9250828201905060ff81111561370e5761370d6135e9565b5b92915050565b7f416464656420616d6f756e74206578636565647320706172746e657220616c6c5f8201527f6f636174696f6e206c696d697400000000000000000000000000000000000000602082015250565b5f61376e602d83613509565b915061377982613714565b604082019050919050565b5f6020820190508181035f83015261379b81613762565b9050919050565b7f506172746e657220616c726561647920616464656421000000000000000000005f82015250565b5f6137d6601683613509565b91506137e1826137a2565b602082019050919050565b5f6020820190508181035f830152613803816137ca565b9050919050565b5f6138148261322d565b915061381f8361322d565b925082820261382d8161322d565b91508282048414831517613844576138436135e9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6138828261322d565b915061388d8361322d565b92508261389d5761389c61384b565b5b828204905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f6138dc601f83613509565b91506138e7826138a8565b602082019050919050565b5f6020820190508181035f830152613909816138d0565b9050919050565b7f5465616d204d656d626572206e6f7420666f756e6421000000000000000000005f82015250565b5f613944601683613509565b915061394f82613910565b602082019050919050565b5f6020820190508181035f83015261397181613938565b9050919050565b7f4e6f742074696d6520666f72206e6578742076657374696e67000000000000005f82015250565b5f6139ac601983613509565b91506139b782613978565b602082019050919050565b5f6020820190508181035f8301526139d9816139a0565b9050919050565b7f596f7527726520616c72656164792066756c6c792076657374656421000000005f82015250565b5f613a14601c83613509565b9150613a1f826139e0565b602082019050919050565b5f6020820190508181035f830152613a4181613a08565b9050919050565b7f596f7520617265206e6f742064756520746f20636f6c6c65637420616e796d6f5f8201527f72652e0000000000000000000000000000000000000000000000000000000000602082015250565b5f613aa2602383613509565b9150613aad82613a48565b604082019050919050565b5f6020820190508181035f830152613acf81613a96565b9050919050565b5f602082019050613ae95f83018461321e565b92915050565b5f81519050613afd816133da565b92915050565b5f60208284031215613b1857613b17613195565b5b5f613b2584828501613aef565b91505092915050565b7f496e73756666696369656e742062616c616e6365206f6620544c422068656c645f8201527f20696e20636f6e747261637420746f20636f6d706c65746520636c61696d0000602082015250565b5f613b88603e83613509565b9150613b9382613b2e565b604082019050919050565b5f6020820190508181035f830152613bb581613b7c565b9050919050565b5f604082019050613bcf5f83018561321e565b613bdc6020830184613236565b9392505050565b5f8115159050919050565b613bf781613be3565b8114613c01575f80fd5b50565b5f81519050613c1281613bee565b92915050565b5f60208284031215613c2d57613c2c613195565b5b5f613c3a84828501613c04565b91505092915050565b5f613c4d8261322d565b9150613c588361322d565b9250828201905080821115613c7057613c6f6135e9565b5b92915050565b5f613c8082613245565b915060ff8203613c9357613c926135e9565b5b600182019050919050565b5f613ca882613245565b9150613cb383613245565b9250828203905060ff811115613ccc57613ccb6135e9565b5b92915050565b5f613cdc8261322d565b9150613ce78361322d565b9250828203905081811115613cff57613cfe6135e9565b5b9291505056fea26469706673582212208a915ac0b122d259f63dc8224f699e3b41cad10ef4569257847ec80cc789a75864736f6c63430008180033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000004512001ff4d93fe551bf5618eb2d93669281012c0000000000000000000000002fe70ef3db7ea49b5f14b5edf6208116458fa74a000000000000000000000000c4b04371320274d9e9892f7d0adf98f8d672906e0000000000000000000000006cb7f0c262650f4e06e153a9563d08f8659c99c3000000000000000000000000bda2146239b0fafa8ae89e51bef2c29953ef0d2b0000000000000000000000008ea187280f4857d5ca6a1a6926568b50c3f35f9f0000000000000000000000003ed0ecfa2348afbf0d1ae08636d874cdd311b66600000000000000000000000017ea6b0aed4786a97388c8797cd074de8806e2e0000000000000000000000000dccf6c087a9d0ed4a214829beab0810f05ef6fbc

-----Decoded View---------------
Arg [0] : _owner (address): 0x4512001FF4d93fE551bF5618eB2D93669281012C
Arg [1] : _dev (address): 0x2fE70eF3DB7eA49b5f14B5edf6208116458fa74a
Arg [2] : _teamMember1 (address): 0xc4b04371320274d9e9892f7d0ADf98f8d672906E
Arg [3] : _teamMember2 (address): 0x6Cb7f0c262650f4E06e153A9563D08F8659C99c3
Arg [4] : _teamMember3 (address): 0xbdA2146239B0fAFA8ae89E51Bef2c29953eF0D2b
Arg [5] : _teamMember4 (address): 0x8ea187280f4857D5cA6a1A6926568b50c3f35f9f
Arg [6] : _teamMember5 (address): 0x3ED0eCfa2348AfbF0D1Ae08636D874cdd311b666
Arg [7] : _teamMember6 (address): 0x17ea6B0AeD4786a97388C8797CD074dE8806e2e0
Arg [8] : _teamMember7 (address): 0xdCcF6c087A9d0ed4a214829BEaB0810f05ef6fBc

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 0000000000000000000000004512001ff4d93fe551bf5618eb2d93669281012c
Arg [1] : 0000000000000000000000002fe70ef3db7ea49b5f14b5edf6208116458fa74a
Arg [2] : 000000000000000000000000c4b04371320274d9e9892f7d0adf98f8d672906e
Arg [3] : 0000000000000000000000006cb7f0c262650f4e06e153a9563d08f8659c99c3
Arg [4] : 000000000000000000000000bda2146239b0fafa8ae89e51bef2c29953ef0d2b
Arg [5] : 0000000000000000000000008ea187280f4857d5ca6a1a6926568b50c3f35f9f
Arg [6] : 0000000000000000000000003ed0ecfa2348afbf0d1ae08636d874cdd311b666
Arg [7] : 00000000000000000000000017ea6b0aed4786a97388c8797cd074de8806e2e0
Arg [8] : 000000000000000000000000dccf6c087a9d0ed4a214829beab0810f05ef6fbc


Deployed Bytecode Sourcemap

3389:12089:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4386:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;7061:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15146:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14420:184;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14612:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14726:412;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4033:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4115:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7706:651;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4342:37;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;4450:46;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6933:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8373:2930;;;:::i;:::-;;14329:83;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3997:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4503:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4159:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11317:3004;;;:::i;:::-;;7318:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4205:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7195:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4252:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4070:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6720:114;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15351:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3430:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4386:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7061:126::-;7128:7;7155;:14;7163:5;7155:14;;;;;;;;;;;;;;;:24;;;7148:31;;7061:126;;;:::o;15146:189::-;4642:5;;;;;;;;;;;4628:19;;:10;:19;;;4620:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;15237:1:::1;15226:8;:12;;;:31;;;;;15254:3;15242:8;:15;;;;15226:31;15218:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15325:2;15314:8;:13;;;;:::i;:::-;15299:12;;:28;;;;;;;;;;;;;;;;;;15146:189:::0;:::o;14420:184::-;4642:5;;;;;;;;;;;4628:19;;:10;:19;;;4620:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;14508:1:::1;14497:8;:12;;;:31;;;;;14525:3;14513:8;:15;;;;14497:31;14489:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14594:2;14583:8;:13;;;;:::i;:::-;14570:10;;:26;;;;;;;;;;;;;;;;;;14420:184:::0;:::o;14612:94::-;4642:5;;;;;;;;;;;4628:19;;:10;:19;;;4620:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;14691:6:::1;14676:5;;:22;;;;;;;;;;;;;;;;;;14612:94:::0;:::o;14726:412::-;4642:5;;;;;;;;;;;4628:19;;:10;:19;;;4620:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;14964:14:::1;14943:18;;:35;;;;;;;;;;;;;;;;;;15010:15;14989:18;;:36;;;;;;;;;;;;;;;;;;15060:17;15036:21;;:41;;;;;;;;;;;;;;;;;;15112:18;15088:21;;:42;;;;;;;;;;;;;;;;;;14726:412:::0;;;;:::o;4033:29::-;;;;;;;;;;;;;:::o;4115:36::-;;;;;;;;;;;;;:::o;7706:651::-;4642:5;;;;;;;;;;;4628:19;;:10;:19;;;4620:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;7814:20:::1;7810:24;;:1;:24;:64;;;;;7862:12;;;;;;;;;;;7838:36;;:20;:36;;;;7810:64;7802:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;7977:12;;;;;;;;;;;7938:51;;7961:12;;;;;;;;;;;7938:20;:35;;;;:::i;:::-;:51;;;;7930:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;8094:1;8058:38;;:7;:17;8066:8;8058:17;;;;;;;;;;;;;;;:24;;;;;;;;;;;;:38;;;8050:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8154:147;;;;;;;;8177:8;8154:147;;;;;;8234:4;8212:20;8201:31;;:8;;:31;;;;:::i;:::-;8200:38;;;;:::i;:::-;8154:147;;;;8253:1;8154:147;;;;8269:3;;8154:147;;;;8287:1;8154:147;;;;::::0;8134:7:::1;:17;8142:8;8134:17;;;;;;;;;;;;;;;:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8327:20;8312:12;;:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7706:651:::0;;:::o;4342:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4450:46::-;;;;:::o;6933:120::-;6997:7;7024:4;:11;7029:5;7024:11;;;;;;;;;;;;;;;:21;;;7017:28;;6933:120;;;:::o;8373:2930::-;257:1;405:7;;:19;397:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;257:1;471:7;:18;;;;8463:4:::1;:16;8468:10;8463:16;;;;;;;;;;;;;;;:23;;;;;;;;;;;;8449:37;;:10;:37;;;8427:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;8587:4;:16;8592:10;8587:16;;;;;;;;;;;;;;;:26;;;8569:15;:44;8547:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;8731:18;;;;;;;;;;;8699:50;;:4;:16;8704:10;8699:16;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:50;;;8677:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;8867:1;8838:4;:16;8843:10;8838:16;;;;;;;;;;;;;;;:26;;;:30;8816:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;8994:1;8961:4;:16;8966:10;8961:16;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:34;;::::0;8957:2339:::1;;9011:22;9097:4;9083:10;;;;;;;;;;;9037:56;;:4;:16;9042:10;9037:16;;;;;;;;;;;;;;;:26;;;:56;;;;:::i;:::-;9036:65;;;;:::i;:::-;9011:90;;9176:14;9142:5;;;;;;;;;;;:15;;;9166:4;9142:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;9116:172;;;;;;;;;;;;:::i;:::-;;;;;;;;;9305:5;;;;;;;;;;;:14;;;9320:10;9332:14;9305:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9412:7;9394:15;:25;;;;:::i;:::-;9365:4;:16;9370:10;9365:16;;;;;;;;;;;;;;;:26;;:54;;;;9486:14;9452:4;:16;9457:10;9452:16;;;;;;;;;;;;;;;:30;;;:48;;;;;;;:::i;:::-;;;;;;;;9515:4;:16;9520:10;9515:16;;;;;;;;;;;;;;;:29;;;:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;8996:562;8957:2339;;;9636:1;9615:18;;;;;;;;;;;:22;;;;:::i;:::-;9581:57;;:4;:16;9586:10;9581:16;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:57;;::::0;9577:1719:::1;;9655:17;9721:4;:16;9726:10;9721:16;;;;;;;;;;;;;;;:30;;;9675:4;:16;9680:10;9675:16;;;;;;;;;;;;;;;:26;;;:76;;;;:::i;:::-;9655:96;;9826:9;9792:5;;;;;;;;;;;:15;;;9816:4;9792:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;9766:167;;;;;;;;;;;;:::i;:::-;;;;;;;;;9950:5;;;;;;;;;;;:14;;;9965:10;9977:9;9950:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10038:9;10004:4;:16;10009:10;10004:16;;;;;;;;;;;;;;;:30;;;:43;;;;;;;:::i;:::-;;;;;;;;10062:4;:16;10067:10;10062:16;;;;;;;;;;;;;;;:29;;;:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;9640:465;9577:1719;;;10229:4;10209:18;;;;;;;;;;;10180:47;;:4;:16;10185:10;10180:16;;;;;;;;;;;;;;;:26;;;:47;;;;:::i;:::-;10179:54;;;;:::i;:::-;10145:4;:16;10150:10;10145:16;;;;;;;;;;;;;;;:30;;;10116:4;:16;10121:10;10116:16;;;;;;;;;;;;;;;:26;;;:59;;;;:::i;:::-;10115:118;10111:1185;;;10250:17;10316:4;:16;10321:10;10316:16;;;;;;;;;;;;;;;:30;;;10270:4;:16;10275:10;10270:16;;;;;;;;;;;;;;;:26;;;:76;;;;:::i;:::-;10250:96;;10422:9;10388:5;;;;;;;;;;;:15;;;10412:4;10388:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;10362:167;;;;;;;;;;;;:::i;:::-;;;;;;;;;10546:5;;;;;;;;;;;:14;;;10561:10;10573:9;10546:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10634:9;10600:4;:16;10605:10;10600:16;;;;;;;;;;;;;;;:30;;;:43;;;;;;;:::i;:::-;;;;;;;;10658:4;:16;10663:10;10658:16;;;;;;;;;;;;;;;:29;;;:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;10235:466;10111:1185;;;10741:22;10835:4;10813:18;;;;;;;;;;;10767:64;;:4;:16;10772:10;10767:16;;;;;;;;;;;;;;;:26;;;:64;;;;:::i;:::-;10766:73;;;;:::i;:::-;10741:98;;10914:14;10880:5;;;;;;;;;;;:15;;;10904:4;10880:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;10854:172;;;;;;;;;;;;:::i;:::-;;;;;;;;;11043:5;;;;;;;;;;;:14;;;11058:10;11070:14;11043:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11149:7;11131:15;:25;;;;:::i;:::-;11102:4;:16;11107:10;11102:16;;;;;;;;;;;;;;;:26;;:54;;;;11224:14;11190:4;:16;11195:10;11190:16;;;;;;;;;;;;;;;:30;;;:48;;;;;;;:::i;:::-;;;;;;;;11253:4;:16;11258:10;11253:16;;;;;;;;;;;;;;;:29;;;:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;10726:570;10111:1185;9577:1719;8957:2339;213:1:::0;514:7;:22;;;;8373:2930::o;14329:83::-;4642:5;;;;;;;;;;;4628:19;;:10;:19;;;4620:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;14397:7:::1;14391:3;:13;;;;14329:83:::0;:::o;3997:30::-;;;;;;;;;;;;;:::o;4503:31::-;;;;:::o;4159:39::-;;;;;;;;;;;;;:::o;11317:3004::-;257:1;405:7;;:19;397:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;257:1;471:7;:18;;;;11410:7:::1;:19;11418:10;11410:19;;;;;;;;;;;;;;;:26;;;;;;;;;;;;11396:40;;:10;:40;;;11374:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;11537:7;:19;11545:10;11537:19;;;;;;;;;;;;;;;:29;;;11519:15;:47;11497:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;11687:21;;;;;;;;;;;11652:56;;:7;:19;11660:10;11652:19;;;;;;;;;;;;;;;:32;;;;;;;;;;;;:56;;;11630:134;;;;;;;;;;;;:::i;:::-;;;;;;;;;11829:1;11797:7;:19;11805:10;11797:19;;;;;;;;;;;;;;;:29;;;:33;11775:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;11959:1;11923:7;:19;11931:10;11923:19;;;;;;;;;;;;;;;:32;;;;;;;;;;;;:37;;::::0;11919:2395:::1;;11976:22;12065:4;12051:10;;;;;;;;;;;12002:59;;:7;:19;12010:10;12002:19;;;;;;;;;;;;;;;:29;;;:59;;;;:::i;:::-;12001:68;;;;:::i;:::-;11976:93;;12144:14;12110:5;;;;;;;;;;;:15;;;12134:4;12110:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;12084:172;;;;;;;;;;;;:::i;:::-;;;;;;;;;12273:5;;;;;;;;;;;:14;;;12288:10;12300:14;12273:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12383:7;12365:15;:25;;;;:::i;:::-;12333:7;:19;12341:10;12333:19;;;;;;;;;;;;;;;:29;;:57;;;;12452:14;12415:7;:19;12423:10;12415:19;;;;;;;;;;;;;;;:33;;;:51;;;;;;;:::i;:::-;;;;;;;;12481:7;:19;12489:10;12481:19;;;;;;;;;;;;;;;:32;;;:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;11961:566;11919:2395;;;12611:1;12587:21;;;;;;;;;;;:25;;;;:::i;:::-;12550:63;;:7;:19;12558:10;12550:19;;;;;;;;;;;;;;;:32;;;;;;;;;;;;:63;;::::0;12546:1768:::1;;12630:17;12699:7;:19;12707:10;12699:19;;;;;;;;;;;;;;;:33;;;12650:7;:19;12658:10;12650:19;;;;;;;;;;;;;;;:29;;;:82;;;;:::i;:::-;12630:102;;12807:9;12773:5;;;;;;;;;;;:15;;;12797:4;12773:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;12747:167;;;;;;;;;;;;:::i;:::-;;;;;;;;;12931:5;;;;;;;;;;;:14;;;12946:10;12958:9;12931:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13022:9;12985:7;:19;12993:10;12985:19;;;;;;;;;;;;;;;:33;;;:46;;;;;;;:::i;:::-;;;;;;;;13046:7;:19;13054:10;13046:19;;;;;;;;;;;;;;;:32;;;:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;12615:477;12546:1768;;;13228:4;13205:21;;;;;;;;;;;13173:53;;:7;:19;13181:10;13173:19;;;;;;;;;;;;;;;:29;;;:53;;;;:::i;:::-;13172:60;;;;:::i;:::-;13135:7;:19;13143:10;13135:19;;;;;;;;;;;;;;;:33;;;13103:7;:19;13111:10;13103:19;;;;;;;;;;;;;;;:29;;;:65;;;;:::i;:::-;13102:130;13098:1216;;;13249:17;13318:7;:19;13326:10;13318:19;;;;;;;;;;;;;;;:33;;;13269:7;:19;13277:10;13269:19;;;;;;;;;;;;;;;:29;;;:82;;;;:::i;:::-;13249:102;;13427:9;13393:5;;;;;;;;;;;:15;;;13417:4;13393:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;13367:167;;;;;;;;;;;;:::i;:::-;;;;;;;;;13551:5;;;;;;;;;;;:14;;;13566:10;13578:9;13551:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13642:9;13605:7;:19;13613:10;13605:19;;;;;;;;;;;;;;;:33;;;:46;;;;;;;:::i;:::-;;;;;;;;13666:7;:19;13674:10;13666:19;;;;;;;;;;;;;;;:32;;;:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;13234:478;13098:1216;;;13752:22;13852:4;13827:21;;;;;;;;;;;13778:70;;:7;:19;13786:10;13778:19;;;;;;;;;;;;;;;:29;;;:70;;;;:::i;:::-;13777:79;;;;:::i;:::-;13752:104;;13931:14;13897:5;;;;;;;;;;;:15;;;13921:4;13897:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;13871:172;;;;;;;;;;;;:::i;:::-;;;;;;;;;14060:5;;;;;;;;;;;:14;;;14075:10;14087:14;14060:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14169:7;14151:15;:25;;;;:::i;:::-;14119:7;:19;14127:10;14119:19;;;;;;;;;;;;;;;:29;;:57;;;;14239:14;14202:7;:19;14210:10;14202:19;;;;;;;;;;;;;;;:33;;;:51;;;;;;;:::i;:::-;;;;;;;;14268:7;:19;14276:10;14268:19;;;;;;;;;;;;;;;:32;;;:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;13737:577;13098:1216;12546:1768;11919:2395;213:1:::0;514:7;:22;;;;11317:3004::o;7318:123::-;7383:7;7409;:14;7417:5;7409:14;;;;;;;;;;;;;;;:24;;;7402:31;;7318:123;;;:::o;4205:36::-;;;;;;;;;;;;;:::o;7195:117::-;7257:7;7283:4;:11;7288:5;7283:11;;;;;;;;;;;;;;;:21;;;7276:28;;7195:117;;;:::o;4252:29::-;;;;;;;;;;;;;:::o;4070:39::-;;;;;;;;;;;;;:::o;6720:114::-;6770:7;6796:5;;;;;;;;;;;:15;;;6820:4;6796:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6789:37;;6720:114;:::o;15351:109::-;4642:5;;;;;;;;;;;4628:19;;:10;:19;;;4620:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;15443:9:::1;15435:5;;:17;;;;;;;;;;;;;;;;;;15351:109:::0;:::o;3430:19::-;;;;;;;;;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:118::-;1263:24;1281:5;1263:24;:::i;:::-;1258:3;1251:37;1176:118;;:::o;1300:77::-;1337:7;1366:5;1355:16;;1300:77;;;:::o;1383:118::-;1470:24;1488:5;1470:24;:::i;:::-;1465:3;1458:37;1383:118;;:::o;1507:86::-;1542:7;1582:4;1575:5;1571:16;1560:27;;1507:86;;;:::o;1599:112::-;1682:22;1698:5;1682:22;:::i;:::-;1677:3;1670:35;1599:112;;:::o;1717:656::-;1918:4;1956:3;1945:9;1941:19;1933:27;;1970:71;2038:1;2027:9;2023:17;2014:6;1970:71;:::i;:::-;2051:72;2119:2;2108:9;2104:18;2095:6;2051:72;:::i;:::-;2133;2201:2;2190:9;2186:18;2177:6;2133:72;:::i;:::-;2215;2283:2;2272:9;2268:18;2259:6;2215:72;:::i;:::-;2297:69;2361:3;2350:9;2346:19;2337:6;2297:69;:::i;:::-;1717:656;;;;;;;;:::o;2379:222::-;2472:4;2510:2;2499:9;2495:18;2487:26;;2523:71;2591:1;2580:9;2576:17;2567:6;2523:71;:::i;:::-;2379:222;;;;:::o;2607:118::-;2678:22;2694:5;2678:22;:::i;:::-;2671:5;2668:33;2658:61;;2715:1;2712;2705:12;2658:61;2607:118;:::o;2731:135::-;2775:5;2813:6;2800:20;2791:29;;2829:31;2854:5;2829:31;:::i;:::-;2731:135;;;;:::o;2872:325::-;2929:6;2978:2;2966:9;2957:7;2953:23;2949:32;2946:119;;;2984:79;;:::i;:::-;2946:119;3104:1;3129:51;3172:7;3163:6;3152:9;3148:22;3129:51;:::i;:::-;3119:61;;3075:115;2872:325;;;;:::o;3203:749::-;3281:6;3289;3297;3305;3354:3;3342:9;3333:7;3329:23;3325:33;3322:120;;;3361:79;;:::i;:::-;3322:120;3481:1;3506:51;3549:7;3540:6;3529:9;3525:22;3506:51;:::i;:::-;3496:61;;3452:115;3606:2;3632:51;3675:7;3666:6;3655:9;3651:22;3632:51;:::i;:::-;3622:61;;3577:116;3732:2;3758:51;3801:7;3792:6;3781:9;3777:22;3758:51;:::i;:::-;3748:61;;3703:116;3858:2;3884:51;3927:7;3918:6;3907:9;3903:22;3884:51;:::i;:::-;3874:61;;3829:116;3203:749;;;;;;;:::o;3958:214::-;4047:4;4085:2;4074:9;4070:18;4062:26;;4098:67;4162:1;4151:9;4147:17;4138:6;4098:67;:::i;:::-;3958:214;;;;:::o;4178:470::-;4244:6;4252;4301:2;4289:9;4280:7;4276:23;4272:32;4269:119;;;4307:79;;:::i;:::-;4269:119;4427:1;4452:53;4497:7;4488:6;4477:9;4473:22;4452:53;:::i;:::-;4442:63;;4398:117;4554:2;4580:51;4623:7;4614:6;4603:9;4599:22;4580:51;:::i;:::-;4570:61;;4525:116;4178:470;;;;;:::o;4654:122::-;4727:24;4745:5;4727:24;:::i;:::-;4720:5;4717:35;4707:63;;4766:1;4763;4756:12;4707:63;4654:122;:::o;4782:139::-;4828:5;4866:6;4853:20;4844:29;;4882:33;4909:5;4882:33;:::i;:::-;4782:139;;;;:::o;4927:329::-;4986:6;5035:2;5023:9;5014:7;5010:23;5006:32;5003:119;;;5041:79;;:::i;:::-;5003:119;5161:1;5186:53;5231:7;5222:6;5211:9;5207:22;5186:53;:::i;:::-;5176:63;;5132:117;4927:329;;;;:::o;5262:104::-;5307:7;5336:24;5354:5;5336:24;:::i;:::-;5325:35;;5262:104;;;:::o;5372:138::-;5453:32;5479:5;5453:32;:::i;:::-;5446:5;5443:43;5433:71;;5500:1;5497;5490:12;5433:71;5372:138;:::o;5516:155::-;5570:5;5608:6;5595:20;5586:29;;5624:41;5659:5;5624:41;:::i;:::-;5516:155;;;;:::o;5677:345::-;5744:6;5793:2;5781:9;5772:7;5768:23;5764:32;5761:119;;;5799:79;;:::i;:::-;5761:119;5919:1;5944:61;5997:7;5988:6;5977:9;5973:22;5944:61;:::i;:::-;5934:71;;5890:125;5677:345;;;;:::o;6028:60::-;6056:3;6077:5;6070:12;;6028:60;;;:::o;6094:142::-;6144:9;6177:53;6195:34;6204:24;6222:5;6204:24;:::i;:::-;6195:34;:::i;:::-;6177:53;:::i;:::-;6164:66;;6094:142;;;:::o;6242:126::-;6292:9;6325:37;6356:5;6325:37;:::i;:::-;6312:50;;6242:126;;;:::o;6374:140::-;6438:9;6471:37;6502:5;6471:37;:::i;:::-;6458:50;;6374:140;;;:::o;6520:159::-;6621:51;6666:5;6621:51;:::i;:::-;6616:3;6609:64;6520:159;;:::o;6685:250::-;6792:4;6830:2;6819:9;6815:18;6807:26;;6843:85;6925:1;6914:9;6910:17;6901:6;6843:85;:::i;:::-;6685:250;;;;:::o;6941:169::-;7025:11;7059:6;7054:3;7047:19;7099:4;7094:3;7090:14;7075:29;;6941:169;;;;:::o;7116:163::-;7256:15;7252:1;7244:6;7240:14;7233:39;7116:163;:::o;7285:366::-;7427:3;7448:67;7512:2;7507:3;7448:67;:::i;:::-;7441:74;;7524:93;7613:3;7524:93;:::i;:::-;7642:2;7637:3;7633:12;7626:19;;7285:366;;;:::o;7657:419::-;7823:4;7861:2;7850:9;7846:18;7838:26;;7910:9;7904:4;7900:20;7896:1;7885:9;7881:17;7874:47;7938:131;8064:4;7938:131;:::i;:::-;7930:139;;7657:419;;;:::o;8082:176::-;8222:28;8218:1;8210:6;8206:14;8199:52;8082:176;:::o;8264:366::-;8406:3;8427:67;8491:2;8486:3;8427:67;:::i;:::-;8420:74;;8503:93;8592:3;8503:93;:::i;:::-;8621:2;8616:3;8612:12;8605:19;;8264:366;;;:::o;8636:419::-;8802:4;8840:2;8829:9;8825:18;8817:26;;8889:9;8883:4;8879:20;8875:1;8864:9;8860:17;8853:47;8917:131;9043:4;8917:131;:::i;:::-;8909:139;;8636:419;;;:::o;9061:180::-;9109:77;9106:1;9099:88;9206:4;9203:1;9196:15;9230:4;9227:1;9220:15;9247:271;9285:7;9308:18;9324:1;9308:18;:::i;:::-;9303:23;;9340:18;9356:1;9340:18;:::i;:::-;9335:23;;9393:1;9390;9386:9;9415:28;9431:11;9415:28;:::i;:::-;9404:39;;9475:11;9466:7;9463:24;9453:58;;9491:18;;:::i;:::-;9453:58;9293:225;9247:271;;;;:::o;9524:227::-;9664:34;9660:1;9652:6;9648:14;9641:58;9733:10;9728:2;9720:6;9716:15;9709:35;9524:227;:::o;9757:366::-;9899:3;9920:67;9984:2;9979:3;9920:67;:::i;:::-;9913:74;;9996:93;10085:3;9996:93;:::i;:::-;10114:2;10109:3;10105:12;10098:19;;9757:366;;;:::o;10129:419::-;10295:4;10333:2;10322:9;10318:18;10310:26;;10382:9;10376:4;10372:20;10368:1;10357:9;10353:17;10346:47;10410:131;10536:4;10410:131;:::i;:::-;10402:139;;10129:419;;;:::o;10554:188::-;10592:3;10611:18;10627:1;10611:18;:::i;:::-;10606:23;;10643:18;10659:1;10643:18;:::i;:::-;10638:23;;10684:1;10681;10677:9;10670:16;;10707:4;10702:3;10699:13;10696:39;;;10715:18;;:::i;:::-;10696:39;10554:188;;;;:::o;10748:232::-;10888:34;10884:1;10876:6;10872:14;10865:58;10957:15;10952:2;10944:6;10940:15;10933:40;10748:232;:::o;10986:366::-;11128:3;11149:67;11213:2;11208:3;11149:67;:::i;:::-;11142:74;;11225:93;11314:3;11225:93;:::i;:::-;11343:2;11338:3;11334:12;11327:19;;10986:366;;;:::o;11358:419::-;11524:4;11562:2;11551:9;11547:18;11539:26;;11611:9;11605:4;11601:20;11597:1;11586:9;11582:17;11575:47;11639:131;11765:4;11639:131;:::i;:::-;11631:139;;11358:419;;;:::o;11783:172::-;11923:24;11919:1;11911:6;11907:14;11900:48;11783:172;:::o;11961:366::-;12103:3;12124:67;12188:2;12183:3;12124:67;:::i;:::-;12117:74;;12200:93;12289:3;12200:93;:::i;:::-;12318:2;12313:3;12309:12;12302:19;;11961:366;;;:::o;12333:419::-;12499:4;12537:2;12526:9;12522:18;12514:26;;12586:9;12580:4;12576:20;12572:1;12561:9;12557:17;12550:47;12614:131;12740:4;12614:131;:::i;:::-;12606:139;;12333:419;;;:::o;12758:410::-;12798:7;12821:20;12839:1;12821:20;:::i;:::-;12816:25;;12855:20;12873:1;12855:20;:::i;:::-;12850:25;;12910:1;12907;12903:9;12932:30;12950:11;12932:30;:::i;:::-;12921:41;;13111:1;13102:7;13098:15;13095:1;13092:22;13072:1;13065:9;13045:83;13022:139;;13141:18;;:::i;:::-;13022:139;12806:362;12758:410;;;;:::o;13174:180::-;13222:77;13219:1;13212:88;13319:4;13316:1;13309:15;13343:4;13340:1;13333:15;13360:185;13400:1;13417:20;13435:1;13417:20;:::i;:::-;13412:25;;13451:20;13469:1;13451:20;:::i;:::-;13446:25;;13490:1;13480:35;;13495:18;;:::i;:::-;13480:35;13537:1;13534;13530:9;13525:14;;13360:185;;;;:::o;13551:181::-;13691:33;13687:1;13679:6;13675:14;13668:57;13551:181;:::o;13738:366::-;13880:3;13901:67;13965:2;13960:3;13901:67;:::i;:::-;13894:74;;13977:93;14066:3;13977:93;:::i;:::-;14095:2;14090:3;14086:12;14079:19;;13738:366;;;:::o;14110:419::-;14276:4;14314:2;14303:9;14299:18;14291:26;;14363:9;14357:4;14353:20;14349:1;14338:9;14334:17;14327:47;14391:131;14517:4;14391:131;:::i;:::-;14383:139;;14110:419;;;:::o;14535:172::-;14675:24;14671:1;14663:6;14659:14;14652:48;14535:172;:::o;14713:366::-;14855:3;14876:67;14940:2;14935:3;14876:67;:::i;:::-;14869:74;;14952:93;15041:3;14952:93;:::i;:::-;15070:2;15065:3;15061:12;15054:19;;14713:366;;;:::o;15085:419::-;15251:4;15289:2;15278:9;15274:18;15266:26;;15338:9;15332:4;15328:20;15324:1;15313:9;15309:17;15302:47;15366:131;15492:4;15366:131;:::i;:::-;15358:139;;15085:419;;;:::o;15510:175::-;15650:27;15646:1;15638:6;15634:14;15627:51;15510:175;:::o;15691:366::-;15833:3;15854:67;15918:2;15913:3;15854:67;:::i;:::-;15847:74;;15930:93;16019:3;15930:93;:::i;:::-;16048:2;16043:3;16039:12;16032:19;;15691:366;;;:::o;16063:419::-;16229:4;16267:2;16256:9;16252:18;16244:26;;16316:9;16310:4;16306:20;16302:1;16291:9;16287:17;16280:47;16344:131;16470:4;16344:131;:::i;:::-;16336:139;;16063:419;;;:::o;16488:178::-;16628:30;16624:1;16616:6;16612:14;16605:54;16488:178;:::o;16672:366::-;16814:3;16835:67;16899:2;16894:3;16835:67;:::i;:::-;16828:74;;16911:93;17000:3;16911:93;:::i;:::-;17029:2;17024:3;17020:12;17013:19;;16672:366;;;:::o;17044:419::-;17210:4;17248:2;17237:9;17233:18;17225:26;;17297:9;17291:4;17287:20;17283:1;17272:9;17268:17;17261:47;17325:131;17451:4;17325:131;:::i;:::-;17317:139;;17044:419;;;:::o;17469:222::-;17609:34;17605:1;17597:6;17593:14;17586:58;17678:5;17673:2;17665:6;17661:15;17654:30;17469:222;:::o;17697:366::-;17839:3;17860:67;17924:2;17919:3;17860:67;:::i;:::-;17853:74;;17936:93;18025:3;17936:93;:::i;:::-;18054:2;18049:3;18045:12;18038:19;;17697:366;;;:::o;18069:419::-;18235:4;18273:2;18262:9;18258:18;18250:26;;18322:9;18316:4;18312:20;18308:1;18297:9;18293:17;18286:47;18350:131;18476:4;18350:131;:::i;:::-;18342:139;;18069:419;;;:::o;18494:222::-;18587:4;18625:2;18614:9;18610:18;18602:26;;18638:71;18706:1;18695:9;18691:17;18682:6;18638:71;:::i;:::-;18494:222;;;;:::o;18722:143::-;18779:5;18810:6;18804:13;18795:22;;18826:33;18853:5;18826:33;:::i;:::-;18722:143;;;;:::o;18871:351::-;18941:6;18990:2;18978:9;18969:7;18965:23;18961:32;18958:119;;;18996:79;;:::i;:::-;18958:119;19116:1;19141:64;19197:7;19188:6;19177:9;19173:22;19141:64;:::i;:::-;19131:74;;19087:128;18871:351;;;;:::o;19228:249::-;19368:34;19364:1;19356:6;19352:14;19345:58;19437:32;19432:2;19424:6;19420:15;19413:57;19228:249;:::o;19483:366::-;19625:3;19646:67;19710:2;19705:3;19646:67;:::i;:::-;19639:74;;19722:93;19811:3;19722:93;:::i;:::-;19840:2;19835:3;19831:12;19824:19;;19483:366;;;:::o;19855:419::-;20021:4;20059:2;20048:9;20044:18;20036:26;;20108:9;20102:4;20098:20;20094:1;20083:9;20079:17;20072:47;20136:131;20262:4;20136:131;:::i;:::-;20128:139;;19855:419;;;:::o;20280:332::-;20401:4;20439:2;20428:9;20424:18;20416:26;;20452:71;20520:1;20509:9;20505:17;20496:6;20452:71;:::i;:::-;20533:72;20601:2;20590:9;20586:18;20577:6;20533:72;:::i;:::-;20280:332;;;;;:::o;20618:90::-;20652:7;20695:5;20688:13;20681:21;20670:32;;20618:90;;;:::o;20714:116::-;20784:21;20799:5;20784:21;:::i;:::-;20777:5;20774:32;20764:60;;20820:1;20817;20810:12;20764:60;20714:116;:::o;20836:137::-;20890:5;20921:6;20915:13;20906:22;;20937:30;20961:5;20937:30;:::i;:::-;20836:137;;;;:::o;20979:345::-;21046:6;21095:2;21083:9;21074:7;21070:23;21066:32;21063:119;;;21101:79;;:::i;:::-;21063:119;21221:1;21246:61;21299:7;21290:6;21279:9;21275:22;21246:61;:::i;:::-;21236:71;;21192:125;20979:345;;;;:::o;21330:191::-;21370:3;21389:20;21407:1;21389:20;:::i;:::-;21384:25;;21423:20;21441:1;21423:20;:::i;:::-;21418:25;;21466:1;21463;21459:9;21452:16;;21487:3;21484:1;21481:10;21478:36;;;21494:18;;:::i;:::-;21478:36;21330:191;;;;:::o;21527:167::-;21564:3;21587:22;21603:5;21587:22;:::i;:::-;21578:31;;21631:4;21624:5;21621:15;21618:41;;21639:18;;:::i;:::-;21618:41;21686:1;21679:5;21675:13;21668:20;;21527:167;;;:::o;21700:191::-;21738:4;21758:18;21774:1;21758:18;:::i;:::-;21753:23;;21790:18;21806:1;21790:18;:::i;:::-;21785:23;;21832:1;21829;21825:9;21817:17;;21856:4;21850;21847:14;21844:40;;;21864:18;;:::i;:::-;21844:40;21700:191;;;;:::o;21897:194::-;21937:4;21957:20;21975:1;21957:20;:::i;:::-;21952:25;;21991:20;22009:1;21991:20;:::i;:::-;21986:25;;22035:1;22032;22028:9;22020:17;;22059:1;22053:4;22050:11;22047:37;;;22064:18;;:::i;:::-;22047:37;21897:194;;;;:::o

Swarm Source

ipfs://8a915ac0b122d259f63dc8224f699e3b41cad10ef4569257847ec80cc789a758

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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