S Price: $0.465767 (+17.82%)

Contract

0xC2717B08D5AB57672C149C71e3A6979625AB8313

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create Tournamen...134473022025-03-13 12:16:1927 days ago1741868179IN
0xC2717B08...625AB8313
0 S0.0122378672.37997204
Distribute Prize...134465922025-03-13 12:12:1127 days ago1741867931IN
0xC2717B08...625AB8313
0 S0.0131394250.0001
End Tournament128843502025-03-10 17:09:2130 days ago1741626561IN
0xC2717B08...625AB8313
0 S0.00153150.0001
Submit Entry Fee127286942025-03-09 22:25:4930 days ago1741559149IN
0xC2717B08...625AB8313
1 S0.00281150.0001
Submit Entry Fee127187052025-03-09 21:17:2830 days ago1741555048IN
0xC2717B08...625AB8313
1 S0.0034155357.86
Submit Entry Fee127001692025-03-09 19:13:5930 days ago1741547639IN
0xC2717B08...625AB8313
1 S0.00281150.0001
Submit Entry Fee126739872025-03-09 16:33:1531 days ago1741537995IN
0xC2717B08...625AB8313
1 S0.00281150.0001
Submit Entry Fee126705242025-03-09 16:09:4231 days ago1741536582IN
0xC2717B08...625AB8313
1 S0.00281150.0001
Submit Entry Fee126597252025-03-09 14:50:0731 days ago1741531807IN
0xC2717B08...625AB8313
1 S0.00281150.0001
Submit Entry Fee126555192025-03-09 14:17:2631 days ago1741529846IN
0xC2717B08...625AB8313
1 S0.00281150.0001
Submit Entry Fee126506992025-03-09 13:44:1131 days ago1741527851IN
0xC2717B08...625AB8313
1 S0.00281150.0001
Submit Entry Fee126483092025-03-09 13:27:4531 days ago1741526865IN
0xC2717B08...625AB8313
1 S0.00281150.0001
Submit Entry Fee125192122025-03-08 19:56:5131 days ago1741463811IN
0xC2717B08...625AB8313
1 S0.00281150.0001
Submit Entry Fee124702482025-03-08 13:55:0732 days ago1741442107IN
0xC2717B08...625AB8313
1 S0.00281150.0001
Submit Entry Fee123410442025-03-07 21:17:1632 days ago1741382236IN
0xC2717B08...625AB8313
1 S0.00281150.0001
Submit Entry Fee122858972025-03-07 15:17:4733 days ago1741360667IN
0xC2717B08...625AB8313
1 S0.003092155
Submit Entry Fee122669102025-03-07 13:11:1933 days ago1741353079IN
0xC2717B08...625AB8313
1 S0.0032472955.01
Submit Entry Fee120794392025-03-06 15:55:5634 days ago1741276556IN
0xC2717B08...625AB8313
1 S0.0035713760.5
Submit Entry Fee120475822025-03-06 12:36:5934 days ago1741264619IN
0xC2717B08...625AB8313
1 S0.003092155
Submit Entry Fee118659172025-03-05 16:50:5935 days ago1741193459IN
0xC2717B08...625AB8313
1 S0.003092155
Submit Entry Fee118646332025-03-05 16:42:3835 days ago1741192958IN
0xC2717B08...625AB8313
1 S0.003092155
Submit Entry Fee118077822025-03-05 10:26:0635 days ago1741170366IN
0xC2717B08...625AB8313
1 S0.0034987659.27
Submit Entry Fee105548762025-02-27 15:27:4441 days ago1740670064IN
0xC2717B08...625AB8313
1 S0.0032472955.01
Submit Entry Fee100468122025-02-25 12:05:2743 days ago1740485127IN
0xC2717B08...625AB8313
1 S0.0048501163
Create Tournamen...82054602025-02-17 2:52:2251 days ago1739760742IN
0xC2717B08...625AB8313
0 S0.0030576155
View all transactions

Latest 15 internal transactions

Parent Transaction Hash Block From To
134465922025-03-13 12:12:1127 days ago1741867931
0xC2717B08...625AB8313
2.690625 S
134465922025-03-13 12:12:1127 days ago1741867931
0xC2717B08...625AB8313
0.590625 S
134465922025-03-13 12:12:1127 days ago1741867931
0xC2717B08...625AB8313
1.18125 S
134465922025-03-13 12:12:1127 days ago1741867931
0xC2717B08...625AB8313
2.3625 S
134465922025-03-13 12:12:1127 days ago1741867931
0xC2717B08...625AB8313
4.725 S
134465922025-03-13 12:12:1127 days ago1741867931
0xC2717B08...625AB8313
9.45 S
26239722025-01-05 20:50:1993 days ago1736110219
0xC2717B08...625AB8313
1.0625 S
26239722025-01-05 20:50:1993 days ago1736110219
0xC2717B08...625AB8313
0.5625 S
26239722025-01-05 20:50:1993 days ago1736110219
0xC2717B08...625AB8313
1.125 S
26239722025-01-05 20:50:1993 days ago1736110219
0xC2717B08...625AB8313
2.25 S
19184422024-12-29 16:47:53101 days ago1735490873
0xC2717B08...625AB8313
1.875 S
19184422024-12-29 16:47:53101 days ago1735490873
0xC2717B08...625AB8313
0.675 S
19184422024-12-29 16:47:53101 days ago1735490873
0xC2717B08...625AB8313
1.35 S
19184422024-12-29 16:47:53101 days ago1735490873
0xC2717B08...625AB8313
2.7 S
19184422024-12-29 16:47:53101 days ago1735490873
0xC2717B08...625AB8313
5.4 S
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x932B7C7e...6152Cec44
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
TournamentFactory

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at SonicScan.org on 2024-12-14
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.8.2 <0.9.0;

contract TournamentFactory {

    uint256 private constant DECIMALS_18 = 10**18;

    // Struct to store each tournament details
    struct Tournament {
        uint256 id;
        uint256 endDate;
        uint256 entryFee;
        uint256 prizePool;
        string  hashId;
    }
    

    address public owner;
    address public gameDev;
    uint256 private tournamentId;

    // Mapping of tournamentId => player's registration
    mapping(uint256 => mapping(address => bool)) public registeredPlayers;

    // Array to store history of tournaments
    Tournament[] public tournamentHistory;

    // Current active tournament
    Tournament public currentTournament;


    // Modifiers
    modifier onlyAdmin() {
        require((msg.sender == owner || msg.sender == gameDev), "Not admin!");
        _;
    }

    modifier activeTournament() {
        require(block.timestamp <= currentTournament.endDate, "Tournament is not active.");
        _;
    }

    modifier tournamentEnded() {
        require(block.timestamp > currentTournament.endDate, "Tournament has not ended yet.");
        _;
    }

    constructor() {
        // Set Game Owner address
        owner = address(0x5B38Da6a701c568545dCfcB03FcB875f56beddC4);

        // Set Game Developer address
        gameDev = address(0x315F9ECF3cf32a44fFb0d50ec5c828CBeF2B03B3);

        // Initialize history with a null(inactive) tournament
        tournamentId = 0;
        tournamentHistory.push(currentTournament);
    }

    // Change contract owner address
    function changeOwnership(address _newOwner) external {
        require(msg.sender == owner, "Only the current owner can change ownership.");
        require(_newOwner != address(0x00), "New owner address can not be zero.");
        owner = _newOwner;
    }

    // Change game developer address
    function changeGameDev(address _newGameDev) external {
        require(msg.sender == gameDev, "Only the current game developer can change ownership.");
        require(_newGameDev != address(0x00), "New gameDev address can not be zero.");
        gameDev = _newGameDev;
    }

    // Way to refund player's entry fee if necessary. 
    function refundEntryFee(address _player) external onlyAdmin activeTournament {

        require(registeredPlayers[currentTournament.id][_player], "Player has not registered for this tournament.");
        require(address(this).balance >= currentTournament.entryFee, "Not enough balance to refund.");

        payable(_player).transfer(currentTournament.entryFee);
        currentTournament.prizePool -= currentTournament.entryFee;
        registeredPlayers[currentTournament.id][_player] = false;

    }

    // Create a new tournament with the given parameters
    function createTournament(uint256 _timePeriod, uint256 _entryFee, string calldata _hashId) external onlyAdmin {
        
        require(_timePeriod > 0, "Tournament time period must be greater than 0.");

        // Initialize tournament values
        currentTournament.id = ++tournamentId;
        currentTournament.hashId = _hashId;
        currentTournament.endDate = (block.timestamp + _timePeriod);
        currentTournament.entryFee = _entryFee * DECIMALS_18;
        currentTournament.prizePool = 0;

    }

    // Way to end the current tournament if necessary. 
    function endTournament() external  onlyAdmin activeTournament {
        currentTournament.endDate = block.timestamp;
    }

    // Fetches if a player has registered for this tournament
    function hasRegistered(address _player) external view returns (bool) {
        return registeredPlayers[currentTournament.id][_player];
    }

    // Collect a player's entry fee. Refund if already registered
    function submitEntryFee() external payable activeTournament {
        
        require(registeredPlayers[currentTournament.id][msg.sender] == false, "Player address already registered.");
        require(msg.value >= currentTournament.entryFee, "Entry fee must be paid in full.");
        
        // Refund anything left over after paying entry fee
        payable(msg.sender).transfer(msg.value - currentTournament.entryFee);
        
        // Update prize pool & register player
        currentTournament.prizePool += currentTournament.entryFee;
        registeredPlayers[currentTournament.id][msg.sender] = true;

    }

    // Distribute the prize pool to the top 10 players
    function distributePrizes(address[] memory _winners) external payable onlyAdmin tournamentEnded {
        
        require(_winners.length > 0, "Must provide winners to distribute prizes.");
        
        uint256 prizePool = currentTournament.prizePool * 90 / 100;

        for (uint256 i = 0; i < _winners.length; i++) {
            
            // Calculate the player's prize
            uint256 prize = (prizePool / 2);
            
            // Break if contract balance not have enough
            if (prize > address(this).balance) {
                break;
            }

            // Transfer the calculated prize to the top players
            payable(_winners[i]).transfer(prize);
            prizePool -= prize;
                        
        }

        if (address(this).balance > 0) {
            // Transfer remaining 10% prize pool to the game developer
            payable(gameDev).transfer(address(this).balance);
        }
        
        // Add tournament to history before deactivating
        tournamentHistory.push(currentTournament);
        
        // Set current tournament to inactive 
        currentTournament = tournamentHistory[0];
        
    }

    // Fetches current tournament entry fee
    function getCurrentEntryFee() external view returns (uint256) {
        return currentTournament.entryFee;
    }

    // Fetches current tournament hash id
    function getCurrentHashId() external view returns (string memory) {
        return currentTournament.hashId;
    }

    // Fetches current tournament prize pool
    function getCurrentPrizePool() external view returns (uint256) {
        return currentTournament.prizePool;
    }

    // Fetches current tournament details               
    function getCurrentTournament() external view returns (uint256, uint256, uint256, uint256, string  memory) {
        return (
            currentTournament.id,
            currentTournament.endDate,
            currentTournament.entryFee,
            currentTournament.prizePool,
            currentTournament.hashId
        );
    }

    // Fetches previous tournament details
    function getPriorTournament(uint256 _tournamentId) external view returns (uint256, uint256, uint256, uint256, string  memory) {
        return (
            tournamentHistory[_tournamentId].id,
            tournamentHistory[_tournamentId].endDate,
            tournamentHistory[_tournamentId].entryFee,
            tournamentHistory[_tournamentId].prizePool,
            tournamentHistory[_tournamentId].hashId
        );        
    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_newGameDev","type":"address"}],"name":"changeGameDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_timePeriod","type":"uint256"},{"internalType":"uint256","name":"_entryFee","type":"uint256"},{"internalType":"string","name":"_hashId","type":"string"}],"name":"createTournament","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentTournament","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"endDate","type":"uint256"},{"internalType":"uint256","name":"entryFee","type":"uint256"},{"internalType":"uint256","name":"prizePool","type":"uint256"},{"internalType":"string","name":"hashId","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_winners","type":"address[]"}],"name":"distributePrizes","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"endTournament","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gameDev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentEntryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentHashId","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentPrizePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentTournament","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tournamentId","type":"uint256"}],"name":"getPriorTournament","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"name":"hasRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"name":"refundEntryFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"registeredPlayers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"submitEntryFee","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tournamentHistory","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"endDate","type":"uint256"},{"internalType":"uint256","name":"entryFee","type":"uint256"},{"internalType":"uint256","name":"prizePool","type":"uint256"},{"internalType":"string","name":"hashId","type":"string"}],"stateMutability":"view","type":"function"}]

Deployed Bytecode

0x608060405260043610610108575f3560e01c80638da5cb5b11610094578063b3e8818511610063578063b3e8818514610302578063bf9b9d481461032a578063ec4b40ee14610352578063ed1e80d514610392578063f7b24024146103d257610108565b80638da5cb5b1461024457806390eabd6a1461026e578063938a37ed1461029c578063a0d03526146102c657610108565b80634d633a8f116100db5780634d633a8f146101b457806355e93ede146101ca57806358c3a9d9146101f457806367033694146102105780636c4d89b11461021a57610108565b80630aa016951461010c5780632af4c31e146101365780632f50d6dc1461015e57806333500ca01461018c575b5f80fd5b348015610117575f80fd5b5061012061040e565b60405161012d91906116d7565b60405180910390f35b348015610141575f80fd5b5061015c6004803603810190610157919061175b565b61041a565b005b348015610169575f80fd5b50610172610557565b6040516101839594939291906117f6565b60405180910390f35b348015610197575f80fd5b506101b260048036038101906101ad919061175b565b610600565b005b3480156101bf575f80fd5b506101c86108e3565b005b3480156101d5575f80fd5b506101de610a1b565b6040516101eb91906116d7565b60405180910390f35b61020e6004803603810190610209919061198e565b610a27565b005b610218610d93565b005b348015610225575f80fd5b5061022e610fa3565b60405161023b91906119d5565b60405180910390f35b34801561024f575f80fd5b50610258611036565b6040516102659190611a04565b60405180910390f35b348015610279575f80fd5b50610282611059565b6040516102939594939291906117f6565b60405180910390f35b3480156102a7575f80fd5b506102b0611116565b6040516102bd9190611a04565b60405180910390f35b3480156102d1575f80fd5b506102ec60048036038101906102e7919061175b565b61113b565b6040516102f99190611a37565b60405180910390f35b34801561030d575f80fd5b5061032860048036038101906103239190611ad3565b6111a0565b005b348015610335575f80fd5b50610350600480360381019061034b919061175b565b611339565b005b34801561035d575f80fd5b5061037860048036038101906103739190611b44565b611479565b6040516103899594939291906117f6565b60405180910390f35b34801561039d575f80fd5b506103b860048036038101906103b39190611b44565b6115ce565b6040516103c99594939291906117f6565b60405180910390f35b3480156103dd575f80fd5b506103f860048036038101906103f39190611b6f565b611695565b6040516104059190611a37565b60405180910390f35b5f600560020154905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049e90611c1d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050c90611cab565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6005805f01549080600101549080600201549080600301549080600401805461057f90611cf6565b80601f01602080910402602001604051908101604052809291908181526020018280546105ab90611cf6565b80156105f65780601f106105cd576101008083540402835291602001916105f6565b820191905f5260205f20905b8154815290600101906020018083116105d957829003601f168201915b5050505050905085565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106a5575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6106e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106db90611d70565b60405180910390fd5b60056001015442111561072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072390611dd8565b60405180910390fd5b60035f60055f015481526020019081526020015f205f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166107c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bf90611e66565b60405180910390fd5b600560020154471015610810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080790611ece565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc60056002015490811502906040515f60405180830381858888f19350505050158015610858573d5f803e3d5ffd5b5060056002015460056003015f8282546108729190611f19565b925050819055505f60035f60055f015481526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610988575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6109c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109be90611d70565b60405180910390fd5b600560010154421115610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0690611dd8565b60405180910390fd5b42600560010181905550565b5f600560030154905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610acc575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290611d70565b60405180910390fd5b6005600101544211610b52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4990611f96565b60405180910390fd5b5f815111610b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8c90612024565b60405180910390fd5b5f6064605a600560030154610baa9190612042565b610bb491906120b0565b90505f5b8251811015610c59575f600283610bcf91906120b0565b905047811115610bdf5750610c59565b838281518110610bf257610bf16120e0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610c3c573d5f803e3d5ffd5b508083610c499190611f19565b9250508080600101915050610bb8565b505f471115610cc85760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610cc6573d5f803e3d5ffd5b505b60046005908060018154018082558091505060019003905f5260205f2090600502015f909190919091505f820154815f015560018201548160010155600282015481600201556003820154816003015560048201816004019081610d2c91906122bf565b50505060045f81548110610d4357610d426120e0565b5b905f5260205f20906005020160055f820154815f015560018201548160010155600282015481600201556003820154816003015560048201816004019081610d8b91906122bf565b509050505050565b600560010154421115610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd290611dd8565b60405180910390fd5b5f151560035f60055f015481526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7490612414565b60405180910390fd5b600560020154341015610ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebc9061247c565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc60056002015434610ef09190611f19565b90811502906040515f60405180830381858888f19350505050158015610f18573d5f803e3d5ffd5b5060056002015460056003015f828254610f32919061249a565b92505081905550600160035f60055f015481526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550565b606060056004018054610fb590611cf6565b80601f0160208091040260200160405190810160405280929190818152602001828054610fe190611cf6565b801561102c5780601f106110035761010080835404028352916020019161102c565b820191905f5260205f20905b81548152906001019060200180831161100f57829003601f168201915b5050505050905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f80606060055f0154600560010154600560020154600560030154600560040180805461108790611cf6565b80601f01602080910402602001604051908101604052809291908181526020018280546110b390611cf6565b80156110fe5780601f106110d5576101008083540402835291602001916110fe565b820191905f5260205f20905b8154815290600101906020018083116110e157829003601f168201915b50505050509050945094509450945094509091929394565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60035f60055f015481526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611245575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90611d70565b60405180910390fd5b5f84116112c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bd9061253d565b60405180910390fd5b60025f81546112d49061255b565b91905081905560055f01819055508181600560040191826112f69291906125ac565b508342611303919061249a565b600560010181905550670de0b6b3a7640000836113209190612042565b6005600201819055505f60056003018190555050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf906126e9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90612777565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f805f80606060048681548110611493576114926120e0565b5b905f5260205f2090600502015f0154600487815481106114b6576114b56120e0565b5b905f5260205f20906005020160010154600488815481106114da576114d96120e0565b5b905f5260205f20906005020160020154600489815481106114fe576114fd6120e0565b5b905f5260205f2090600502016003015460048a81548110611522576115216120e0565b5b905f5260205f20906005020160040180805461153d90611cf6565b80601f016020809104026020016040519081016040528092919081815260200182805461156990611cf6565b80156115b45780601f1061158b576101008083540402835291602001916115b4565b820191905f5260205f20905b81548152906001019060200180831161159757829003601f168201915b505050505090509450945094509450945091939590929450565b600481815481106115dd575f80fd5b905f5260205f2090600502015f91509050805f01549080600101549080600201549080600301549080600401805461161490611cf6565b80601f016020809104026020016040519081016040528092919081815260200182805461164090611cf6565b801561168b5780601f106116625761010080835404028352916020019161168b565b820191905f5260205f20905b81548152906001019060200180831161166e57829003601f168201915b5050505050905085565b6003602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b5f819050919050565b6116d1816116bf565b82525050565b5f6020820190506116ea5f8301846116c8565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61172a82611701565b9050919050565b61173a81611720565b8114611744575f80fd5b50565b5f8135905061175581611731565b92915050565b5f602082840312156117705761176f6116f9565b5b5f61177d84828501611747565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6117c882611786565b6117d28185611790565b93506117e28185602086016117a0565b6117eb816117ae565b840191505092915050565b5f60a0820190506118095f8301886116c8565b61181660208301876116c8565b61182360408301866116c8565b61183060608301856116c8565b818103608083015261184281846117be565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611888826117ae565b810181811067ffffffffffffffff821117156118a7576118a6611852565b5b80604052505050565b5f6118b96116f0565b90506118c5828261187f565b919050565b5f67ffffffffffffffff8211156118e4576118e3611852565b5b602082029050602081019050919050565b5f80fd5b5f61190b611906846118ca565b6118b0565b9050808382526020820190506020840283018581111561192e5761192d6118f5565b5b835b8181101561195757806119438882611747565b845260208401935050602081019050611930565b5050509392505050565b5f82601f8301126119755761197461184e565b5b81356119858482602086016118f9565b91505092915050565b5f602082840312156119a3576119a26116f9565b5b5f82013567ffffffffffffffff8111156119c0576119bf6116fd565b5b6119cc84828501611961565b91505092915050565b5f6020820190508181035f8301526119ed81846117be565b905092915050565b6119fe81611720565b82525050565b5f602082019050611a175f8301846119f5565b92915050565b5f8115159050919050565b611a3181611a1d565b82525050565b5f602082019050611a4a5f830184611a28565b92915050565b611a59816116bf565b8114611a63575f80fd5b50565b5f81359050611a7481611a50565b92915050565b5f80fd5b5f8083601f840112611a9357611a9261184e565b5b8235905067ffffffffffffffff811115611ab057611aaf611a7a565b5b602083019150836001820283011115611acc57611acb6118f5565b5b9250929050565b5f805f8060608587031215611aeb57611aea6116f9565b5b5f611af887828801611a66565b9450506020611b0987828801611a66565b935050604085013567ffffffffffffffff811115611b2a57611b296116fd565b5b611b3687828801611a7e565b925092505092959194509250565b5f60208284031215611b5957611b586116f9565b5b5f611b6684828501611a66565b91505092915050565b5f8060408385031215611b8557611b846116f9565b5b5f611b9285828601611a66565b9250506020611ba385828601611747565b9150509250929050565b7f4f6e6c79207468652063757272656e74206f776e65722063616e206368616e675f8201527f65206f776e6572736869702e0000000000000000000000000000000000000000602082015250565b5f611c07602c83611790565b9150611c1282611bad565b604082019050919050565b5f6020820190508181035f830152611c3481611bfb565b9050919050565b7f4e6577206f776e657220616464726573732063616e206e6f74206265207a65725f8201527f6f2e000000000000000000000000000000000000000000000000000000000000602082015250565b5f611c95602283611790565b9150611ca082611c3b565b604082019050919050565b5f6020820190508181035f830152611cc281611c89565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d0d57607f821691505b602082108103611d2057611d1f611cc9565b5b50919050565b7f4e6f742061646d696e21000000000000000000000000000000000000000000005f82015250565b5f611d5a600a83611790565b9150611d6582611d26565b602082019050919050565b5f6020820190508181035f830152611d8781611d4e565b9050919050565b7f546f75726e616d656e74206973206e6f74206163746976652e000000000000005f82015250565b5f611dc2601983611790565b9150611dcd82611d8e565b602082019050919050565b5f6020820190508181035f830152611def81611db6565b9050919050565b7f506c6179657220686173206e6f74207265676973746572656420666f722074685f8201527f697320746f75726e616d656e742e000000000000000000000000000000000000602082015250565b5f611e50602e83611790565b9150611e5b82611df6565b604082019050919050565b5f6020820190508181035f830152611e7d81611e44565b9050919050565b7f4e6f7420656e6f7567682062616c616e636520746f20726566756e642e0000005f82015250565b5f611eb8601d83611790565b9150611ec382611e84565b602082019050919050565b5f6020820190508181035f830152611ee581611eac565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f23826116bf565b9150611f2e836116bf565b9250828203905081811115611f4657611f45611eec565b5b92915050565b7f546f75726e616d656e7420686173206e6f7420656e646564207965742e0000005f82015250565b5f611f80601d83611790565b9150611f8b82611f4c565b602082019050919050565b5f6020820190508181035f830152611fad81611f74565b9050919050565b7f4d7573742070726f766964652077696e6e65727320746f2064697374726962755f8201527f7465207072697a65732e00000000000000000000000000000000000000000000602082015250565b5f61200e602a83611790565b915061201982611fb4565b604082019050919050565b5f6020820190508181035f83015261203b81612002565b9050919050565b5f61204c826116bf565b9150612057836116bf565b9250828202612065816116bf565b9150828204841483151761207c5761207b611eec565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6120ba826116bf565b91506120c5836116bf565b9250826120d5576120d4612083565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8154905061211b81611cf6565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261217e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612143565b6121888683612143565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6121c36121be6121b9846116bf565b6121a0565b6116bf565b9050919050565b5f819050919050565b6121dc836121a9565b6121f06121e8826121ca565b84845461214f565b825550505050565b5f90565b6122046121f8565b61220f8184846121d3565b505050565b5b81811015612232576122275f826121fc565b600181019050612215565b5050565b601f8211156122775761224881612122565b61225184612134565b81016020851015612260578190505b61227461226c85612134565b830182612214565b50505b505050565b5f82821c905092915050565b5f6122975f198460080261227c565b1980831691505092915050565b5f6122af8383612288565b9150826002028217905092915050565b8181036122cd5750506123a2565b6122d68261210d565b67ffffffffffffffff8111156122ef576122ee611852565b5b6122f98254611cf6565b612304828285612236565b5f601f831160018114612331575f841561231f578287015490505b61232985826122a4565b86555061239b565b601f19841661233f87612122565b965061234a86612122565b5f5b828110156123715784890154825560018201915060018501945060208101905061234c565b8683101561238e578489015461238a601f891682612288565b8355505b6001600288020188555050505b5050505050505b565b7f506c61796572206164647265737320616c7265616479207265676973746572655f8201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b5f6123fe602283611790565b9150612409826123a4565b604082019050919050565b5f6020820190508181035f83015261242b816123f2565b9050919050565b7f456e74727920666565206d757374206265207061696420696e2066756c6c2e005f82015250565b5f612466601f83611790565b915061247182612432565b602082019050919050565b5f6020820190508181035f8301526124938161245a565b9050919050565b5f6124a4826116bf565b91506124af836116bf565b92508282019050808211156124c7576124c6611eec565b5b92915050565b7f546f75726e616d656e742074696d6520706572696f64206d75737420626520675f8201527f726561746572207468616e20302e000000000000000000000000000000000000602082015250565b5f612527602e83611790565b9150612532826124cd565b604082019050919050565b5f6020820190508181035f8301526125548161251b565b9050919050565b5f612565826116bf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361259757612596611eec565b5b600182019050919050565b5f82905092915050565b6125b683836125a2565b67ffffffffffffffff8111156125cf576125ce611852565b5b6125d98254611cf6565b6125e4828285612236565b5f601f831160018114612611575f84156125ff578287013590505b61260985826122a4565b865550612670565b601f19841661261f86612122565b5f5b8281101561264657848901358255600182019150602085019450602081019050612621565b86831015612663578489013561265f601f891682612288565b8355505b6001600288020188555050505b50505050505050565b7f4f6e6c79207468652063757272656e742067616d6520646576656c6f706572205f8201527f63616e206368616e6765206f776e6572736869702e0000000000000000000000602082015250565b5f6126d3603583611790565b91506126de82612679565b604082019050919050565b5f6020820190508181035f830152612700816126c7565b9050919050565b7f4e65772067616d6544657620616464726573732063616e206e6f74206265207a5f8201527f65726f2e00000000000000000000000000000000000000000000000000000000602082015250565b5f612761602483611790565b915061276c82612707565b604082019050919050565b5f6020820190508181035f83015261278e81612755565b905091905056fea2646970667358221220091a8cbcfeaa59e43de63e5e08faddadf284f65d44645c1541166285edd788b964736f6c634300081a0033

Deployed Bytecode Sourcemap

68:7146:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5856:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1651:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;727:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;2300:512;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3469:124;;;;;;;;;;;;;:::i;:::-;;6191:116;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4583:1220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3882:637;;;:::i;:::-;;6021:116;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;373:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6373:341;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;400:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3664:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2878:526;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1957:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6766:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;647:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;523:69;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5856:114;5909:7;5936:17;:26;;;5929:33;;5856:114;:::o;1651:260::-;1737:5;;;;;;;;;;1723:19;;:10;:19;;;1715:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;1831:4;1810:26;;:9;:26;;;1802:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1894:9;1886:5;;:17;;;;;;;;;;;;;;;;;;1651:260;:::o;727:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2300:512::-;846:5;;;;;;;;;;832:19;;:10;:19;;;:44;;;;869:7;;;;;;;;;;;855:21;;:10;:21;;;832:44;823:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;986:17:::1;:25;;;967:15;:44;;959:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;2398:17:::2;:39;2416:17;:20;;;2398:39;;;;;;;;;;;:48;2438:7;2398:48;;;;;;;;;;;;;;;;;;;;;;;;;2390:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;2541:17;:26;;;2516:21;:51;;2508:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;2622:7;2614:25;;:53;2640:17;:26;;;2614:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;2709:17;:26;;;2678:17;:27;;;:57;;;;;;;:::i;:::-;;;;;;;;2797:5;2746:17;:39;2764:17;:20;;;2746:39;;;;;;;;;;;:48;2786:7;2746:48;;;;;;;;;;;;;;;;:56;;;;;;;;;;;;;;;;;;2300:512:::0;:::o;3469:124::-;846:5;;;;;;;;;;832:19;;:10;:19;;;:44;;;;869:7;;;;;;;;;;;855:21;;:10;:21;;;832:44;823:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;986:17:::1;:25;;;967:15;:44;;959:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;3570:15:::2;3542:17;:25;;:43;;;;3469:124::o:0;6191:116::-;6245:7;6272:17;:27;;;6265:34;;6191:116;:::o;4583:1220::-;846:5;;;;;;;;;;832:19;;:10;:19;;;:44;;;;869:7;;;;;;;;;;;855:21;;:10;:21;;;832:44;823:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1133:17:::1;:25;;;1115:15;:43;1107:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4726:1:::2;4708:8;:15;:19;4700:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4795:17;4850:3;4845:2;4815:17;:27;;;:32;;;;:::i;:::-;:38;;;;:::i;:::-;4795:58;;4871:9;4866:501;4890:8;:15;4886:1;:19;4866:501;;;4986:13;5015:1;5003:9;:13;;;;:::i;:::-;4986:31;;5116:21;5108:5;:29;5104:75;;;5158:5;;;5104:75;5268:8;5277:1;5268:11;;;;;;;;:::i;:::-;;;;;;;;5260:29;;:36;5290:5;5260:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;5324:5;5311:18;;;;;:::i;:::-;;;4912:455;4907:3;;;;;;;4866:501;;;;5407:1;5383:21;:25;5379:178;;;5505:7;;;;;;;;;;;5497:25;;:48;5523:21;5497:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;5379:178;5635:17;5658;5635:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5765:17;5783:1;5765:20;;;;;;;;:::i;:::-;;;;;;;;;;;;5745:17;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;4679:1124;4583:1220:::0;:::o;3882:637::-;986:17;:25;;;967:15;:44;;959:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;4026:5:::1;3971:60;;:17;:39;3989:17;:20;;;3971:39;;;;;;;;;;;:51;4011:10;3971:51;;;;;;;;;;;;;;;;;;;;;;;;;:60;;;3963:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;4102:17;:26;;;4089:9;:39;;4081:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;4254:10;4246:28;;:68;4287:17;:26;;;4275:9;:38;;;;:::i;:::-;4246:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;4414:17;:26;;;4383:17;:27;;;:57;;;;;;;:::i;:::-;;;;;;;;4505:4;4451:17;:39;4469:17;:20;;;4451:39;;;;;;;;;;;:51;4491:10;4451:51;;;;;;;;;;;;;;;;:58;;;;;;;;;;;;;;;;;;3882:637::o:0;6021:116::-;6072:13;6105:17;:24;;6098:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6021:116;:::o;373:20::-;;;;;;;;;;;;:::o;6373:341::-;6428:7;6437;6446;6455;6464:14;6513:17;:20;;;6548:17;:25;;;6588:17;:26;;;6629:17;:27;;;6671:17;:24;;6491:215;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6373:341;;;;;:::o;400:22::-;;;;;;;;;;;;;:::o;3664:143::-;3727:4;3751:17;:39;3769:17;:20;;;3751:39;;;;;;;;;;;:48;3791:7;3751:48;;;;;;;;;;;;;;;;;;;;;;;;;3744:55;;3664:143;;;:::o;2878:526::-;846:5;;;;;;;;;;832:19;;:10;:19;;;:44;;;;869:7;;;;;;;;;;;855:21;;:10;:21;;;832:44;823:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;3031:1:::1;3017:11;:15;3009:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;3162:12;;3160:14;;;;;:::i;:::-;;;;;;;3137:17;:20;;:37;;;;3212:7;;3185:17;:24;;:34;;;;;;;:::i;:::-;;3277:11;3259:15;:29;;;;:::i;:::-;3230:17;:25;;:59;;;;143:6;3329:9;:23;;;;:::i;:::-;3300:17;:26;;:52;;;;3393:1;3363:17;:27;;:31;;;;2878:526:::0;;;;:::o;1957:279::-;2043:7;;;;;;;;;;;2029:21;;:10;:21;;;2021:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;2150:4;2127:28;;:11;:28;;;2119:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;2217:11;2207:7;;:21;;;;;;;;;;;;;;;;;;1957:279;:::o;6766:443::-;6840:7;6849;6858;6867;6876:14;6925:17;6943:13;6925:32;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;6975:17;6993:13;6975:32;;;;;;;;:::i;:::-;;;;;;;;;;;;:40;;;7030:17;7048:13;7030:32;;;;;;;;:::i;:::-;;;;;;;;;;;;:41;;;7086:17;7104:13;7086:32;;;;;;;;:::i;:::-;;;;;;;;;;;;:42;;;7143:17;7161:13;7143:32;;;;;;;;:::i;:::-;;;;;;;;;;;;:39;;6903:290;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6766:443;;;;;;;:::o;647:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;523:69::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:99::-;1663:6;1697:5;1691:12;1681:22;;1611:99;;;:::o;1716:169::-;1800:11;1834:6;1829:3;1822:19;1874:4;1869:3;1865:14;1850:29;;1716:169;;;;:::o;1891:139::-;1980:6;1975:3;1970;1964:23;2021:1;2012:6;2007:3;2003:16;1996:27;1891:139;;;:::o;2036:102::-;2077:6;2128:2;2124:7;2119:2;2112:5;2108:14;2104:28;2094:38;;2036:102;;;:::o;2144:377::-;2232:3;2260:39;2293:5;2260:39;:::i;:::-;2315:71;2379:6;2374:3;2315:71;:::i;:::-;2308:78;;2395:65;2453:6;2448:3;2441:4;2434:5;2430:16;2395:65;:::i;:::-;2485:29;2507:6;2485:29;:::i;:::-;2480:3;2476:39;2469:46;;2236:285;2144:377;;;;:::o;2527:755::-;2752:4;2790:3;2779:9;2775:19;2767:27;;2804:71;2872:1;2861:9;2857:17;2848:6;2804:71;:::i;:::-;2885:72;2953:2;2942:9;2938:18;2929:6;2885:72;:::i;:::-;2967;3035:2;3024:9;3020:18;3011:6;2967:72;:::i;:::-;3049;3117:2;3106:9;3102:18;3093:6;3049:72;:::i;:::-;3169:9;3163:4;3159:20;3153:3;3142:9;3138:19;3131:49;3197:78;3270:4;3261:6;3197:78;:::i;:::-;3189:86;;2527:755;;;;;;;;:::o;3288:117::-;3397:1;3394;3387:12;3411:180;3459:77;3456:1;3449:88;3556:4;3553:1;3546:15;3580:4;3577:1;3570:15;3597:281;3680:27;3702:4;3680:27;:::i;:::-;3672:6;3668:40;3810:6;3798:10;3795:22;3774:18;3762:10;3759:34;3756:62;3753:88;;;3821:18;;:::i;:::-;3753:88;3861:10;3857:2;3850:22;3640:238;3597:281;;:::o;3884:129::-;3918:6;3945:20;;:::i;:::-;3935:30;;3974:33;4002:4;3994:6;3974:33;:::i;:::-;3884:129;;;:::o;4019:311::-;4096:4;4186:18;4178:6;4175:30;4172:56;;;4208:18;;:::i;:::-;4172:56;4258:4;4250:6;4246:17;4238:25;;4318:4;4312;4308:15;4300:23;;4019:311;;;:::o;4336:117::-;4445:1;4442;4435:12;4476:710;4572:5;4597:81;4613:64;4670:6;4613:64;:::i;:::-;4597:81;:::i;:::-;4588:90;;4698:5;4727:6;4720:5;4713:21;4761:4;4754:5;4750:16;4743:23;;4814:4;4806:6;4802:17;4794:6;4790:30;4843:3;4835:6;4832:15;4829:122;;;4862:79;;:::i;:::-;4829:122;4977:6;4960:220;4994:6;4989:3;4986:15;4960:220;;;5069:3;5098:37;5131:3;5119:10;5098:37;:::i;:::-;5093:3;5086:50;5165:4;5160:3;5156:14;5149:21;;5036:144;5020:4;5015:3;5011:14;5004:21;;4960:220;;;4964:21;4578:608;;4476:710;;;;;:::o;5209:370::-;5280:5;5329:3;5322:4;5314:6;5310:17;5306:27;5296:122;;5337:79;;:::i;:::-;5296:122;5454:6;5441:20;5479:94;5569:3;5561:6;5554:4;5546:6;5542:17;5479:94;:::i;:::-;5470:103;;5286:293;5209:370;;;;:::o;5585:539::-;5669:6;5718:2;5706:9;5697:7;5693:23;5689:32;5686:119;;;5724:79;;:::i;:::-;5686:119;5872:1;5861:9;5857:17;5844:31;5902:18;5894:6;5891:30;5888:117;;;5924:79;;:::i;:::-;5888:117;6029:78;6099:7;6090:6;6079:9;6075:22;6029:78;:::i;:::-;6019:88;;5815:302;5585:539;;;;:::o;6130:313::-;6243:4;6281:2;6270:9;6266:18;6258:26;;6330:9;6324:4;6320:20;6316:1;6305:9;6301:17;6294:47;6358:78;6431:4;6422:6;6358:78;:::i;:::-;6350:86;;6130:313;;;;:::o;6449:118::-;6536:24;6554:5;6536:24;:::i;:::-;6531:3;6524:37;6449:118;;:::o;6573:222::-;6666:4;6704:2;6693:9;6689:18;6681:26;;6717:71;6785:1;6774:9;6770:17;6761:6;6717:71;:::i;:::-;6573:222;;;;:::o;6801:90::-;6835:7;6878:5;6871:13;6864:21;6853:32;;6801:90;;;:::o;6897:109::-;6978:21;6993:5;6978:21;:::i;:::-;6973:3;6966:34;6897:109;;:::o;7012:210::-;7099:4;7137:2;7126:9;7122:18;7114:26;;7150:65;7212:1;7201:9;7197:17;7188:6;7150:65;:::i;:::-;7012:210;;;;:::o;7228:122::-;7301:24;7319:5;7301:24;:::i;:::-;7294:5;7291:35;7281:63;;7340:1;7337;7330:12;7281:63;7228:122;:::o;7356:139::-;7402:5;7440:6;7427:20;7418:29;;7456:33;7483:5;7456:33;:::i;:::-;7356:139;;;;:::o;7501:117::-;7610:1;7607;7600:12;7638:553;7696:8;7706:6;7756:3;7749:4;7741:6;7737:17;7733:27;7723:122;;7764:79;;:::i;:::-;7723:122;7877:6;7864:20;7854:30;;7907:18;7899:6;7896:30;7893:117;;;7929:79;;:::i;:::-;7893:117;8043:4;8035:6;8031:17;8019:29;;8097:3;8089:4;8081:6;8077:17;8067:8;8063:32;8060:41;8057:128;;;8104:79;;:::i;:::-;8057:128;7638:553;;;;;:::o;8197:819::-;8286:6;8294;8302;8310;8359:2;8347:9;8338:7;8334:23;8330:32;8327:119;;;8365:79;;:::i;:::-;8327:119;8485:1;8510:53;8555:7;8546:6;8535:9;8531:22;8510:53;:::i;:::-;8500:63;;8456:117;8612:2;8638:53;8683:7;8674:6;8663:9;8659:22;8638:53;:::i;:::-;8628:63;;8583:118;8768:2;8757:9;8753:18;8740:32;8799:18;8791:6;8788:30;8785:117;;;8821:79;;:::i;:::-;8785:117;8934:65;8991:7;8982:6;8971:9;8967:22;8934:65;:::i;:::-;8916:83;;;;8711:298;8197:819;;;;;;;:::o;9022:329::-;9081:6;9130:2;9118:9;9109:7;9105:23;9101:32;9098:119;;;9136:79;;:::i;:::-;9098:119;9256:1;9281:53;9326:7;9317:6;9306:9;9302:22;9281:53;:::i;:::-;9271:63;;9227:117;9022:329;;;;:::o;9357:474::-;9425:6;9433;9482:2;9470:9;9461:7;9457:23;9453:32;9450:119;;;9488:79;;:::i;:::-;9450:119;9608:1;9633:53;9678:7;9669:6;9658:9;9654:22;9633:53;:::i;:::-;9623:63;;9579:117;9735:2;9761:53;9806:7;9797:6;9786:9;9782:22;9761:53;:::i;:::-;9751:63;;9706:118;9357:474;;;;;:::o;9837:231::-;9977:34;9973:1;9965:6;9961:14;9954:58;10046:14;10041:2;10033:6;10029:15;10022:39;9837:231;:::o;10074:366::-;10216:3;10237:67;10301:2;10296:3;10237:67;:::i;:::-;10230:74;;10313:93;10402:3;10313:93;:::i;:::-;10431:2;10426:3;10422:12;10415:19;;10074:366;;;:::o;10446:419::-;10612:4;10650:2;10639:9;10635:18;10627:26;;10699:9;10693:4;10689:20;10685:1;10674:9;10670:17;10663:47;10727:131;10853:4;10727:131;:::i;:::-;10719:139;;10446:419;;;:::o;10871:221::-;11011:34;11007:1;10999:6;10995:14;10988:58;11080:4;11075:2;11067:6;11063:15;11056:29;10871:221;:::o;11098:366::-;11240:3;11261:67;11325:2;11320:3;11261:67;:::i;:::-;11254:74;;11337:93;11426:3;11337:93;:::i;:::-;11455:2;11450:3;11446:12;11439:19;;11098:366;;;:::o;11470:419::-;11636:4;11674:2;11663:9;11659:18;11651:26;;11723:9;11717:4;11713:20;11709:1;11698:9;11694:17;11687:47;11751:131;11877:4;11751:131;:::i;:::-;11743:139;;11470:419;;;:::o;11895:180::-;11943:77;11940:1;11933:88;12040:4;12037:1;12030:15;12064:4;12061:1;12054:15;12081:320;12125:6;12162:1;12156:4;12152:12;12142:22;;12209:1;12203:4;12199:12;12230:18;12220:81;;12286:4;12278:6;12274:17;12264:27;;12220:81;12348:2;12340:6;12337:14;12317:18;12314:38;12311:84;;12367:18;;:::i;:::-;12311:84;12132:269;12081:320;;;:::o;12407:160::-;12547:12;12543:1;12535:6;12531:14;12524:36;12407:160;:::o;12573:366::-;12715:3;12736:67;12800:2;12795:3;12736:67;:::i;:::-;12729:74;;12812:93;12901:3;12812:93;:::i;:::-;12930:2;12925:3;12921:12;12914:19;;12573:366;;;:::o;12945:419::-;13111:4;13149:2;13138:9;13134:18;13126:26;;13198:9;13192:4;13188:20;13184:1;13173:9;13169:17;13162:47;13226:131;13352:4;13226:131;:::i;:::-;13218:139;;12945:419;;;:::o;13370:175::-;13510:27;13506:1;13498:6;13494:14;13487:51;13370:175;:::o;13551:366::-;13693:3;13714:67;13778:2;13773:3;13714:67;:::i;:::-;13707:74;;13790:93;13879:3;13790:93;:::i;:::-;13908:2;13903:3;13899:12;13892:19;;13551:366;;;:::o;13923:419::-;14089:4;14127:2;14116:9;14112:18;14104:26;;14176:9;14170:4;14166:20;14162:1;14151:9;14147:17;14140:47;14204:131;14330:4;14204:131;:::i;:::-;14196:139;;13923:419;;;:::o;14348:233::-;14488:34;14484:1;14476:6;14472:14;14465:58;14557:16;14552:2;14544:6;14540:15;14533:41;14348:233;:::o;14587:366::-;14729:3;14750:67;14814:2;14809:3;14750:67;:::i;:::-;14743:74;;14826:93;14915:3;14826:93;:::i;:::-;14944:2;14939:3;14935:12;14928:19;;14587:366;;;:::o;14959:419::-;15125:4;15163:2;15152:9;15148:18;15140:26;;15212:9;15206:4;15202:20;15198:1;15187:9;15183:17;15176:47;15240:131;15366:4;15240:131;:::i;:::-;15232:139;;14959:419;;;:::o;15384:179::-;15524:31;15520:1;15512:6;15508:14;15501:55;15384:179;:::o;15569:366::-;15711:3;15732:67;15796:2;15791:3;15732:67;:::i;:::-;15725:74;;15808:93;15897:3;15808:93;:::i;:::-;15926:2;15921:3;15917:12;15910:19;;15569:366;;;:::o;15941:419::-;16107:4;16145:2;16134:9;16130:18;16122:26;;16194:9;16188:4;16184:20;16180:1;16169:9;16165:17;16158:47;16222:131;16348:4;16222:131;:::i;:::-;16214:139;;15941:419;;;:::o;16366:180::-;16414:77;16411:1;16404:88;16511:4;16508:1;16501:15;16535:4;16532:1;16525:15;16552:194;16592:4;16612:20;16630:1;16612:20;:::i;:::-;16607:25;;16646:20;16664:1;16646:20;:::i;:::-;16641:25;;16690:1;16687;16683:9;16675:17;;16714:1;16708:4;16705:11;16702:37;;;16719:18;;:::i;:::-;16702:37;16552:194;;;;:::o;16752:179::-;16892:31;16888:1;16880:6;16876:14;16869:55;16752:179;:::o;16937:366::-;17079:3;17100:67;17164:2;17159:3;17100:67;:::i;:::-;17093:74;;17176:93;17265:3;17176:93;:::i;:::-;17294:2;17289:3;17285:12;17278:19;;16937:366;;;:::o;17309:419::-;17475:4;17513:2;17502:9;17498:18;17490:26;;17562:9;17556:4;17552:20;17548:1;17537:9;17533:17;17526:47;17590:131;17716:4;17590:131;:::i;:::-;17582:139;;17309:419;;;:::o;17734:229::-;17874:34;17870:1;17862:6;17858:14;17851:58;17943:12;17938:2;17930:6;17926:15;17919:37;17734:229;:::o;17969:366::-;18111:3;18132:67;18196:2;18191:3;18132:67;:::i;:::-;18125:74;;18208:93;18297:3;18208:93;:::i;:::-;18326:2;18321:3;18317:12;18310:19;;17969:366;;;:::o;18341:419::-;18507:4;18545:2;18534:9;18530:18;18522:26;;18594:9;18588:4;18584:20;18580:1;18569:9;18565:17;18558:47;18622:131;18748:4;18622:131;:::i;:::-;18614:139;;18341:419;;;:::o;18766:410::-;18806:7;18829:20;18847:1;18829:20;:::i;:::-;18824:25;;18863:20;18881:1;18863:20;:::i;:::-;18858:25;;18918:1;18915;18911:9;18940:30;18958:11;18940:30;:::i;:::-;18929:41;;19119:1;19110:7;19106:15;19103:1;19100:22;19080:1;19073:9;19053:83;19030:139;;19149:18;;:::i;:::-;19030:139;18814:362;18766:410;;;;:::o;19182:180::-;19230:77;19227:1;19220:88;19327:4;19324:1;19317:15;19351:4;19348:1;19341:15;19368:185;19408:1;19425:20;19443:1;19425:20;:::i;:::-;19420:25;;19459:20;19477:1;19459:20;:::i;:::-;19454:25;;19498:1;19488:35;;19503:18;;:::i;:::-;19488:35;19545:1;19542;19538:9;19533:14;;19368:185;;;;:::o;19559:180::-;19607:77;19604:1;19597:88;19704:4;19701:1;19694:15;19728:4;19725:1;19718:15;19745:149;19794:6;19828:5;19822:12;19812:22;;19854:33;19880:6;19854:33;:::i;:::-;19844:43;;19745:149;;;:::o;19900:141::-;19949:4;19972:3;19964:11;;19995:3;19992:1;19985:14;20029:4;20026:1;20016:18;20008:26;;19900:141;;;:::o;20047:93::-;20084:6;20131:2;20126;20119:5;20115:14;20111:23;20101:33;;20047:93;;;:::o;20146:107::-;20190:8;20240:5;20234:4;20230:16;20209:37;;20146:107;;;;:::o;20259:393::-;20328:6;20378:1;20366:10;20362:18;20401:97;20431:66;20420:9;20401:97;:::i;:::-;20519:39;20549:8;20538:9;20519:39;:::i;:::-;20507:51;;20591:4;20587:9;20580:5;20576:21;20567:30;;20640:4;20630:8;20626:19;20619:5;20616:30;20606:40;;20335:317;;20259:393;;;;;:::o;20658:60::-;20686:3;20707:5;20700:12;;20658:60;;;:::o;20724:142::-;20774:9;20807:53;20825:34;20834:24;20852:5;20834:24;:::i;:::-;20825:34;:::i;:::-;20807:53;:::i;:::-;20794:66;;20724:142;;;:::o;20872:75::-;20915:3;20936:5;20929:12;;20872:75;;;:::o;20953:269::-;21063:39;21094:7;21063:39;:::i;:::-;21124:91;21173:41;21197:16;21173:41;:::i;:::-;21165:6;21158:4;21152:11;21124:91;:::i;:::-;21118:4;21111:105;21029:193;20953:269;;;:::o;21228:73::-;21273:3;21228:73;:::o;21307:189::-;21384:32;;:::i;:::-;21425:65;21483:6;21475;21469:4;21425:65;:::i;:::-;21360:136;21307:189;;:::o;21502:186::-;21562:120;21579:3;21572:5;21569:14;21562:120;;;21633:39;21670:1;21663:5;21633:39;:::i;:::-;21606:1;21599:5;21595:13;21586:22;;21562:120;;;21502:186;;:::o;21694:543::-;21795:2;21790:3;21787:11;21784:446;;;21829:38;21861:5;21829:38;:::i;:::-;21913:29;21931:10;21913:29;:::i;:::-;21903:8;21899:44;22096:2;22084:10;22081:18;22078:49;;;22117:8;22102:23;;22078:49;22140:80;22196:22;22214:3;22196:22;:::i;:::-;22186:8;22182:37;22169:11;22140:80;:::i;:::-;21799:431;;21784:446;21694:543;;;:::o;22243:117::-;22297:8;22347:5;22341:4;22337:16;22316:37;;22243:117;;;;:::o;22366:169::-;22410:6;22443:51;22491:1;22487:6;22479:5;22476:1;22472:13;22443:51;:::i;:::-;22439:56;22524:4;22518;22514:15;22504:25;;22417:118;22366:169;;;;:::o;22540:295::-;22616:4;22762:29;22787:3;22781:4;22762:29;:::i;:::-;22754:37;;22824:3;22821:1;22817:11;22811:4;22808:21;22800:29;;22540:295;;;;:::o;22840:1451::-;22951:3;22945:4;22942:13;22939:26;;22958:5;;;;22939:26;22989:34;23019:3;22989:34;:::i;:::-;23088:18;23080:6;23077:30;23074:56;;;23110:18;;:::i;:::-;23074:56;23154:38;23186:4;23180:11;23154:38;:::i;:::-;23239:67;23299:6;23291;23285:4;23239:67;:::i;:::-;23333:1;23362:2;23354:6;23351:14;23379:1;23374:672;;;;24090:1;24107:6;24104:77;;;24156:9;24151:3;24147:19;24141:26;24132:35;;24104:77;24207:67;24267:6;24260:5;24207:67;:::i;:::-;24201:4;24194:81;24063:222;23344:941;;23374:672;23426:4;23422:9;23414:6;23410:22;23452:36;23484:3;23452:36;:::i;:::-;23445:43;;23515:37;23547:4;23515:37;:::i;:::-;23574:1;23588:207;23602:7;23599:1;23596:14;23588:207;;;23681:9;23676:3;23672:19;23666:26;23658:6;23651:42;23732:1;23724:6;23720:14;23710:24;;23779:1;23768:9;23764:17;23751:30;;23625:4;23622:1;23618:12;23613:17;;23588:207;;;23823:6;23814:7;23811:19;23808:179;;;23881:9;23876:3;23872:19;23866:26;23924:48;23966:4;23958:6;23954:17;23943:9;23924:48;:::i;:::-;23916:6;23909:64;23831:156;23808:179;24033:1;24029;24021:6;24017:14;24013:22;24007:4;24000:36;23381:665;;;23344:941;;22929:1362;;;22840:1451;;;:::o;24297:221::-;24437:34;24433:1;24425:6;24421:14;24414:58;24506:4;24501:2;24493:6;24489:15;24482:29;24297:221;:::o;24524:366::-;24666:3;24687:67;24751:2;24746:3;24687:67;:::i;:::-;24680:74;;24763:93;24852:3;24763:93;:::i;:::-;24881:2;24876:3;24872:12;24865:19;;24524:366;;;:::o;24896:419::-;25062:4;25100:2;25089:9;25085:18;25077:26;;25149:9;25143:4;25139:20;25135:1;25124:9;25120:17;25113:47;25177:131;25303:4;25177:131;:::i;:::-;25169:139;;24896:419;;;:::o;25321:181::-;25461:33;25457:1;25449:6;25445:14;25438:57;25321:181;:::o;25508:366::-;25650:3;25671:67;25735:2;25730:3;25671:67;:::i;:::-;25664:74;;25747:93;25836:3;25747:93;:::i;:::-;25865:2;25860:3;25856:12;25849:19;;25508:366;;;:::o;25880:419::-;26046:4;26084:2;26073:9;26069:18;26061:26;;26133:9;26127:4;26123:20;26119:1;26108:9;26104:17;26097:47;26161:131;26287:4;26161:131;:::i;:::-;26153:139;;25880:419;;;:::o;26305:191::-;26345:3;26364:20;26382:1;26364:20;:::i;:::-;26359:25;;26398:20;26416:1;26398:20;:::i;:::-;26393:25;;26441:1;26438;26434:9;26427:16;;26462:3;26459:1;26456:10;26453:36;;;26469:18;;:::i;:::-;26453:36;26305:191;;;;:::o;26502:233::-;26642:34;26638:1;26630:6;26626:14;26619:58;26711:16;26706:2;26698:6;26694:15;26687:41;26502:233;:::o;26741:366::-;26883:3;26904:67;26968:2;26963:3;26904:67;:::i;:::-;26897:74;;26980:93;27069:3;26980:93;:::i;:::-;27098:2;27093:3;27089:12;27082:19;;26741:366;;;:::o;27113:419::-;27279:4;27317:2;27306:9;27302:18;27294:26;;27366:9;27360:4;27356:20;27352:1;27341:9;27337:17;27330:47;27394:131;27520:4;27394:131;:::i;:::-;27386:139;;27113:419;;;:::o;27538:233::-;27577:3;27600:24;27618:5;27600:24;:::i;:::-;27591:33;;27646:66;27639:5;27636:77;27633:103;;27716:18;;:::i;:::-;27633:103;27763:1;27756:5;27752:13;27745:20;;27538:233;;;:::o;27777:97::-;27836:6;27864:3;27854:13;;27777:97;;;;:::o;27880:1403::-;28004:44;28044:3;28039;28004:44;:::i;:::-;28113:18;28105:6;28102:30;28099:56;;;28135:18;;:::i;:::-;28099:56;28179:38;28211:4;28205:11;28179:38;:::i;:::-;28264:67;28324:6;28316;28310:4;28264:67;:::i;:::-;28358:1;28387:2;28379:6;28376:14;28404:1;28399:632;;;;29075:1;29092:6;29089:84;;;29148:9;29143:3;29139:19;29126:33;29117:42;;29089:84;29199:67;29259:6;29252:5;29199:67;:::i;:::-;29193:4;29186:81;29048:229;28369:908;;28399:632;28451:4;28447:9;28439:6;28435:22;28485:37;28517:4;28485:37;:::i;:::-;28544:1;28558:215;28572:7;28569:1;28566:14;28558:215;;;28658:9;28653:3;28649:19;28636:33;28628:6;28621:49;28709:1;28701:6;28697:14;28687:24;;28756:2;28745:9;28741:18;28728:31;;28595:4;28592:1;28588:12;28583:17;;28558:215;;;28801:6;28792:7;28789:19;28786:186;;;28866:9;28861:3;28857:19;28844:33;28909:48;28951:4;28943:6;28939:17;28928:9;28909:48;:::i;:::-;28901:6;28894:64;28809:163;28786:186;29018:1;29014;29006:6;29002:14;28998:22;28992:4;28985:36;28406:625;;;28369:908;;27979:1304;;;27880:1403;;;:::o;29289:240::-;29429:34;29425:1;29417:6;29413:14;29406:58;29498:23;29493:2;29485:6;29481:15;29474:48;29289:240;:::o;29535:366::-;29677:3;29698:67;29762:2;29757:3;29698:67;:::i;:::-;29691:74;;29774:93;29863:3;29774:93;:::i;:::-;29892:2;29887:3;29883:12;29876:19;;29535:366;;;:::o;29907:419::-;30073:4;30111:2;30100:9;30096:18;30088:26;;30160:9;30154:4;30150:20;30146:1;30135:9;30131:17;30124:47;30188:131;30314:4;30188:131;:::i;:::-;30180:139;;29907:419;;;:::o;30332:223::-;30472:34;30468:1;30460:6;30456:14;30449:58;30541:6;30536:2;30528:6;30524:15;30517:31;30332:223;:::o;30561:366::-;30703:3;30724:67;30788:2;30783:3;30724:67;:::i;:::-;30717:74;;30800:93;30889:3;30800:93;:::i;:::-;30918:2;30913:3;30909:12;30902:19;;30561:366;;;:::o;30933:419::-;31099:4;31137:2;31126:9;31122:18;31114:26;;31186:9;31180:4;31176:20;31172:1;31161:9;31157:17;31150:47;31214:131;31340:4;31214:131;:::i;:::-;31206:139;;30933:419;;;:::o

Swarm Source

ipfs://091a8cbcfeaa59e43de63e5e08faddadf284f65d44645c1541166285edd788b9

Block Transaction 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
[ Download: CSV Export  ]
[ 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.