Contract 0x586dAE24dd99ac8a240Cc475b052a9F737808073 2

Token Contract 
 
 
Txn Hash
Method
Block
From
To
Value
0xdd3ecbe0322579aed2e40a4d702cc68665aa9e23797eea95c28e015d984749fbSet Approval For...160751442022-11-29 10:46:591 hr 8 mins ago0x4a504e561d877c4e0d25cc6dc5d26a2335b22bea IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00051129 10.97652484
0x43667f3ff52044b5122240efeecf7fe375cbe3b18f96df7b928b44979040deb1Set Approval For...160712832022-11-28 21:50:2314 hrs 5 mins agoENS Name shonya.eth IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00053831 11.55654639
0xdfc07a7a162e312f606d23c65e67a698957bc8c16ed89b6e5e0584958ab113adSet Approval For...160615872022-11-27 13:20:591 day 22 hrs ago0x6df000635d86613626c5208d7c9d71b84e091220 IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.0005118 10.98739177
0x1874b2546bdfc2ed4fbe11af28fc4ccd152a7f7116f85eb590a314fff7bd22adSafe Transfer Fr...160615832022-11-27 13:20:111 day 22 hrs ago0xf851e6b54761e6690cca146db8ebd51975df7933 IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00059934 10.19062303
0x9a6aa9f5d8d8981d67b06a44879561c6fdae0d675b1f14c9566618258838439cSet Approval For...160607942022-11-27 10:41:592 days 1 hr ago0xd90f4010d38d9093f90011df4971597c5e3af2ab IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00051093 10.96880421
0xb0b18b9428f7d91b4a351b8c7be762ea56594e16d99749704b3cc66731fce10aSafe Transfer Fr...160607372022-11-27 10:30:352 days 1 hr ago0xf92e8f57795d50149319c5f4e28aef43afdb4645 IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00066125 11.25553355
0x43396274a90274c775b43112b766df7792b66e6ed3ffa542fc239d68890b568dSet Approval For...160499522022-11-25 22:22:473 days 13 hrs ago0xc6411ca5a80deb7abc0827da82e2ddb9c906614a IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00048594 10.43228138
0x960e4d235be46ccfc328e8597c1c4fa16cb50cf34f71b3c10d6c330b05df9a15Set Approval For...160196632022-11-21 16:44:357 days 19 hrs agoENS Name cryptojourney.eth IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00075842 16.2817829
0x722df4d1687ebd5759ec07b77a7789ce0577b807f5638564ebe20159b5bc97eeSet Approval For...160102782022-11-20 9:17:359 days 2 hrs ago0xa3e4338e7777742496ecbb73f8893a3e5af9e6f0 IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00059158 12.70006717
0x229e8c2c9e8637d5980953d04cd5c863b46f54e4cc5dcc4e1b1a07db5141239dSet Approval For...160077512022-11-20 0:49:479 days 11 hrs ago0xcb44461173a909db2554e6489b9a97e8673ebffe IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00051883 11.1383427
0xb7279896e1a023ad40066ec81820ebc3bde5f9e86080cd640f440a757abc3ff3Set Approval For...160047142022-11-19 14:39:599 days 21 hrs ago0x952010c3e83b9e99c892161c7bcf7b35c55d3b35 IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00056324 12.09181409
0x9c714f6c8d7f5ac8252bf2767dda6a0309149c33f8debcbcc903fb994cdb6809Set Approval For...160019022022-11-19 5:14:1110 days 6 hrs ago0x6a2955135f222a74cc5d610fde94ca11ccdd004f IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00057032 12.24368015
0xd327f331aa24d55e089b1ae8d73ab965990f5a27b20eb20ac1ca37217f6d6124Set Approval For...159992632022-11-18 20:23:5910 days 15 hrs ago0xdbff3647682ab66e2a74193fa8b59112c37b6911 IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00060283 12.94164019
0x7a86fff5761c56d242b55cf1e87f94800b2fba55a9c62b8585603e840da43935Set Approval For...159984102022-11-18 17:32:2310 days 18 hrs agoENS Name fubull.eth IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00045779 18.5576545
0x117d99d565973eec8790f7979e19c05d7e81d7aafd8e32008045e60437d862d5Set Approval For...159983832022-11-18 17:26:5910 days 18 hrs ago0x0b40391598a4ffdfe3df6e1bfc767287481f6d5d IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00085387 18.33090357
0x305d5f800d32af0003084db2a2c3affe8a0b426c37ca8245ce31912f4459346eSet Approval For...159983692022-11-18 17:24:1110 days 18 hrs agoENS Name fubull.eth IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00084946 18.2363365
0x03980f00be4cadcdb12ec0bf9931079ab47e452a7bac62a40f6a25fb30af1f25Set Approval For...159892442022-11-17 10:47:4712 days 1 hr ago0x6bbec209939727dad223c9d1e3b24f327c7dcdcd IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00055998 12
0xe085c60593f954c1016884e8f3e675a4f5579186f6c9e083a77c2280c8db1193Set Approval For...159892212022-11-17 10:43:1112 days 1 hr ago0x6bbec209939727dad223c9d1e3b24f327c7dcdcd IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00057519 12.34830926
0x8360faf06ef8fb31e724c191d4f4ee175c1cc25102c9261efb5770ed9e8bb329Safe Transfer Fr...159891962022-11-17 10:38:1112 days 1 hr ago0x331e1ba82b52b88c5ac9f920be978b8f5c171d36 IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00076389 13
0x5938758403e491c7a75b8cef6176690c980395e377eb1a2bde16ca4dfc3b3b40Set Approval For...159851772022-11-16 21:11:1112 days 14 hrs ago0x30a18f338ce9b981381b184250f94e0b4a7de8c0 IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00109631 23.53575644
0xf82be6abc94783c4dcb2d2f5ee215f5c8675a6b4a53a6ee955094572fac5b1b7Set Approval For...159827772022-11-16 13:06:3512 days 22 hrs ago0x14cf66001ae426c51e3374166320a27d7cc33c1d IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00069574 14.93634701
0x08514206d20493614235c356b53b0def0dc31bfb3669a3d95a612146fa4565b6Set Approval For...159770072022-11-15 17:45:1113 days 18 hrs agoENS Name mentol.eth IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00080584 17.29983253
0x2e09846df8023f4aabccccfc0db74a190680e32fe342f70a83fbf96bbb14828dSafe Transfer Fr...159575532022-11-13 0:34:4716 days 11 hrs ago0xab034c17908af4ec12499cb2fda4dccf145b6be8 IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00051795 12.43271547
0x2314a6a88e5fd15e15505d573a7f80b34eff0e5febf46c2c22b7ea4c948e9ae4Safe Transfer Fr...159575502022-11-13 0:34:1116 days 11 hrs ago0xab034c17908af4ec12499cb2fda4dccf145b6be8 IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00060958 13.12380765
0x4873eef742beea39a2b673eb215faa66d8c1cfb1ef578ff27f8475c1be45ac31Safe Transfer Fr...159575462022-11-13 0:33:2316 days 11 hrs ago0xab034c17908af4ec12499cb2fda4dccf145b6be8 IN  Gates Of Ethernity: GoE.Genesis Token0 Ether0.00088966 13.99705408
[ Download CSV Export 

OVERVIEW

Gates of Ethernity Genesis NFT by Ethernity Games Inc. An exclusive collection of 3000 Genesis GoE creatures. On top of being playable creatures within the upcoming game Gates of Ethernity, these NFTs give access to exclusive assets, consumables, skins within the Ethernity Games franchise.

Latest 7 internal transactions
Parent Txn Hash Block From To Value
0x32b23293a01165b1788e495b7207f9342dcdfc146311b23e8b5afd98bac5447c143038302022-03-01 22:27:18272 days 13 hrs ago Gates Of Ethernity: GoE.Genesis Token0xe5c4e12a479ed9023088556366606f758b0de20d10.5 Ether
0x88d1fa4d5c26d01053d5ae9d0ed488bc2412b6174d2f8dae89e233ca6eda7022142771352022-02-25 19:25:26276 days 16 hrs ago Gates Of Ethernity: GoE.Genesis Token0xe5c4e12a479ed9023088556366606f758b0de20d25 Ether
0x271565f1b3e5a1143c333f0ce6861cd787e00741a207527572b056d0d1fe3d85142771282022-02-25 19:24:08276 days 16 hrs ago Gates Of Ethernity: GoE.Genesis Token0xe5c4e12a479ed9023088556366606f758b0de20d25 Ether
0x2177d5f4472e2d05dee4aa10f874ee5996a8d4b120ad11a94a1ea686ed2251a3142771182022-02-25 19:22:00276 days 16 hrs ago Gates Of Ethernity: GoE.Genesis Token0xe5c4e12a479ed9023088556366606f758b0de20d30 Ether
0x01ddbd437a65dbbc0095654252a6b666201bf3d307fa3e289e1cbb0ac885a0f0142771132022-02-25 19:21:08276 days 16 hrs ago Gates Of Ethernity: GoE.Genesis Token0xe5c4e12a479ed9023088556366606f758b0de20d10 Ether
0x9c9af7e2d571fff96fc4ffd862a3dcec3ebc4afaac130195e327077c6420e7a1142771092022-02-25 19:20:02276 days 16 hrs ago Gates Of Ethernity: GoE.Genesis Token0xe5c4e12a479ed9023088556366606f758b0de20d10 Ether
0x92bad4c7b43d32ac7f6f6245981a678a7d3aff28b9cfc18aca205cf6127990cf142750812022-02-25 11:50:21277 days 5 mins ago Gates Of Ethernity: GoE.Genesis Token0xe5c4e12a479ed9023088556366606f758b0de20d0.01 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GoEGenesis

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-25
*/

/*
       .d8888b.                       8888888888            
      d88P  Y88b                      888                   
      888    888                      888                   
      888               .d88b.        8888888               
      888  88888       d88""88b       888                   
      888    888       888  888       888                   
      Y88b  d88P       Y88..88P       888                   
       "Y8888P88        "Y88P"        8888888888            
                                                            
                                                            
                                                            
 .d8888b.                                      d8b          
d88P  Y88b                                     Y8P          
888    888                                                  
888         .d88b.  88888b.   .d88b.  .d8888b  888 .d8888b  
888  88888 d8P  Y8b 888 "88b d8P  Y8b 88K      888 88K      
888    888 88888888 888  888 88888888 "Y8888b. 888 "Y8888b. 
Y88b  d88P Y8b.     888  888 Y8b.          X88 888      X88 
 "Y8888P88  "Y8888  888  888  "Y8888   88888P' 888  88888P' 
                                                            
                                                            
                                                            
*/
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0;

interface IGoEHelper {
    function isContract(address) external view returns (bool);
    function toString(uint256) external pure returns (string memory);
}

interface IGoE20Basic {
    function decimals() external view returns(uint256);
    function transferFrom(address,address,uint256) external returns (bool);    
    function allowance(address,address) external view returns (uint256);
    function transfer(address,uint256) external returns (bool);
    function balanceOf(address) external view returns (uint256); 
}

interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

interface IGoE721Basic is IERC165 {
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
    function balanceOf(address ) external view returns (uint256 );
    function ownerOf(uint256 ) external view returns (address );
    function safeTransferFrom(address ,address ,uint256 ) external;
    function transferFrom(address ,address ,uint256 ) external;
    function approve(address , uint256 ) external;
    function getApproved(uint256 ) external view returns (address );
    function setApprovalForAll(address , bool ) external;
    function isApprovedForAll(address , address ) external view returns (bool);
    function safeTransferFrom(address , address ,uint256 , bytes calldata ) external;
    function exists(uint256) external view returns(bool);
}

interface IGoE721Meta is IGoE721Basic {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function tokenURI(uint256) external view returns (string memory);
}

interface IGoEBridge {
    function formCrossChainGateRequest(uint256, uint256, address, bool) external view returns(bytes memory);
    function createCrossChainGateRequest(bytes memory _nRequest) external returns(bool);
}

contract ProxyData {
    // internal mapping for authorized address
    mapping(bytes32 => bool) internal authorized;
     // enum for authorization types
    enum AType {
        KEY,
        ADMIN,
        CONTRACT
    }
    address internal _owner;
}

contract GoEAccess is ProxyData {

    constructor(){

        authorized[_getKec(msg.sender, AType.KEY)] = true;
        _owner = 0xd928775286848A0624342252167c3FFc459bADed;
    }

    function _msgSender() internal view returns (address) {

        return msg.sender;
    }

    function _getKec(address a, AType t) internal pure returns(bytes32){

        return(keccak256(abi.encode(a, t)));
    }

    function _isAuthorized(address _addr) internal view returns(uint8){
        require(_addr != address(0), "GoEAccess: No Zero Addresses allowed");
        if(authorized[_getKec(_addr, AType.KEY)]){
            return 3;
        }
        else if(authorized[_getKec(_addr, AType.ADMIN)]){
            return 2;
        }
        else if(authorized[_getKec(_addr, AType.CONTRACT)]){
            return 1;
        }else{
            return 0;
        }
    }

    function authorizeAddress(AType addressType, address authorizedAddress) public keyAllowed {
        require(_isAuthorized(authorizedAddress) == 0, "GoEAccess: This address is already authorized");
        _authorizeAddress(addressType, authorizedAddress);
    }

    function _authorizeAddress(AType _at, address _a) internal {

        authorized[_getKec(_a, _at)] = true;
    }

    function _unauthorizeAddress(AType _at, address _a) internal {

        authorized[_getKec(_a, _at)] = false;
    }

    modifier keyAllowed() {
        require(_isAuthorized(_msgSender()) == 3, "GoEAccess: Key person only.");
        _;
    }

    modifier adminsAllowed() {
        require(_isAuthorized(_msgSender()) >= 2, "GoEAccess: Only allowed admins have access");
        _;
    }

    modifier contractsAllowed() {
        require(_isAuthorized(_msgSender()) >= 1, "GoEAccess: Only allowed contracts have access");
        _;
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function changeOwner(address _newOwner) public keyAllowed {
        _owner = _newOwner;
    }

}

contract GoE20Transactions { 
    /**
     * boring ERC20 function to send compliant tokens
     */
    function send20Token(address token, address reciever, uint256 amount) internal returns(bool){
        require(IGoE20Basic(token).balanceOf(address(this)) > amount, "GoE20Transactions: No enough balance");
        require(IGoE20Basic(token).transfer(reciever, amount), "GoE20Transactions: Cannot currently transfer");
        return true;
    }
    /**
     * boring ERC20 function to recieve compliant tokens
     */
    function recieve20Token(address token, address sender, uint256 amount) internal returns(bool) {
        require(IGoE20Basic(token).allowance(sender, address(this)) >= amount, "GoE20Transactions: Need to approve the token");
        require(IGoE20Basic(token).transferFrom(sender, address(this), amount), "GoE20Transactions: Need to transfer tokens ");
        return true;
    }
}

contract GoE721Data {
    /**
     * events required by Non-Fungible tokens implementation
     * more info @ https://eips.ethereum.org/EIPS/eip-721[EIP]
     */
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
    
    /**
     * variables used by ERC721 standard contracts with additional params : 
     * 
     * 1. `_attribProxy` parameter which provides onChain data attributes
     * for all Non-Fungible tokens produced by proxy implemented contracts.
     * 
     * 2. `_reservedAmount` a certain pre-specified amount of Non-Fungible tokens
     * for the contract to reserve.
     * 
     * 3. `_paused` a control variable for ERC721 {mint} function.
     */
    address _attribProxy;
    string  _name;
    string  _symbol;
    string  _baseUrl;
    string  _baseExtention;
    uint256  _mintIdx;
    uint256 _maxSupply;
    uint256 _reservedAmount;
    uint256 _nativeMintCost;
    bool _paused;

    /**
     * variables required by Non-Fungible tokens implementation
     * more info @ https://eips.ethereum.org/EIPS/eip-721[EIP]
     * to adhere to functionality requested by the EIP. Main fork from OpenZepplin
     * more info @ https://docs.openzeppelin.com/contracts/2.x/api/token/erc721
     */
    mapping(uint256 => address) _owners;
    mapping(address => uint256) _balances;
    mapping(uint256 => address) _tokenApprovals;
    mapping(address => mapping(address => bool)) _operatorApprovals;

    mapping(uint256 => uint256) _bridged;
    mapping(uint256 => address) _bridgeReference;
}

contract GoEGenesis is GoE721Data, GoE20Transactions, GoEAccess {

     constructor (address attribProxy_, string memory name_, string memory symbol_, string memory baseUri_, string memory baseExt_, uint256 maxSupply_, uint256 reservedAmount_, uint256 nativeMintCost_)  {
        _name = name_;
        _symbol = symbol_;
        _baseUrl = baseUri_;
        _baseExtention = baseExt_;
        _maxSupply = maxSupply_;
        _reservedAmount = reservedAmount_;
        _nativeMintCost = nativeMintCost_;
        _mintIdx = 1;
        _paused = true;
        _attribProxy = attribProxy_;
    }

    /**
     * @dev Less gas consumption if `_mintIdx` starts at 
     * a non-zero value, thus minting starts with tokenId = 1
     */
    function totalSupply() public view returns(uint256){

        return _mintIdx-1;
    }

    function maxSupply() public view returns(uint256) {
        
        return _maxSupply;
    }

    function mintCost() public view returns(uint256) {

        return _nativeMintCost;
    }

    function name() public view returns (string memory) {

        return _name;
    }

    function symbol() public view returns (string memory) {

        return _symbol;
    }

    function paused() public view returns (bool) {

        return _paused;
    }

    function tokenChain(uint256 tokenId) public view returns(uint256) {
        if(_bridged[tokenId] == 0){
            return block.chainid;
        }else{
            return _bridged[tokenId];
        }
    }

    function walletOfOwner(address wallet) public view returns(uint256[] memory walletNFTs){
        uint256 amnt = 0;
        for(uint256 i=1; i<_mintIdx; i++){
            if(ownerOf(i) == wallet){
                amnt += 1;
            }
        }
        walletNFTs = new uint256[](amnt);
        uint256 _idx = 0;
        for(uint256 i=1; i<_mintIdx; i++){
            if(ownerOf(i) == wallet){
                walletNFTs[_idx] = i;
                _idx += 1;
            }
        }
    }

    function tokenURI(uint256 tokenId) public view returns (string memory) {
        require(_exists(tokenId), "GoE721Basic: URI query for nonexistent token");
        string memory baseURI = _baseURI();
        string memory _strId = IGoEHelper(0x53Eb3E1E02C8Eb8d185a074520BD52ECe09F7A43).toString(tokenId);
        return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI , _strId , _baseExtention)) : "";
    }

    function contractURI() public view returns (string memory) {
        string memory baseURI = _baseURI();
        return string(abi.encodePacked(baseURI , "Genesis", _baseExtention));
    }
    
    function mint(address to, address) external payable  {
        require(!_paused, "GoE721Basic: minting is paused");
        require(_mintIdx <= (_maxSupply-_reservedAmount), "GoE721Basic: no more mints");
        require(msg.value >= _nativeMintCost, "GoE721Basic: Min payment of minting cost is required");
        _mint(to, _mintIdx);
        _mintIdx += 1;
    }

    function supportsInterface(bytes4 _interface) public pure returns (bool) {

        return (_interface == type(IGoE721Basic).interfaceId
                || 
                _interface == type(IGoE721Meta).interfaceId);
    }

    function balanceOf(address owner) public view returns (uint256) {
        require(owner != address(0), "GoE721Basic: balance query for the zero address");
        return _balances[owner];
    }
 
    function ownerOf(uint256 tokenId) public view returns (address) {
        address owner = _owners[tokenId];
        require(owner != address(0), "GoE721Basic: owner query for nonexistent token");
        return owner;
    }

    function approve(address to, uint256 tokenId) public{
        address owner = ownerOf(tokenId);
        require(to != owner, "GoE721Basic: approval to current owner");

        require(
            msg.sender == owner || isApprovedForAll(owner, msg.sender),
            "GoE721Basic: approve caller is not owner nor approved for all"
        );

        _approve(to, tokenId);
    }

    function getApproved(uint256 tokenId) public view returns (address) {
        require(_exists(tokenId), "GoE721Basic: approved query for nonexistent token");

        return _tokenApprovals[tokenId];
    }

    function setApprovalForAll(address operator, bool approved) public {
        require(operator != msg.sender, "GoE721Basic: approve to caller");

        _operatorApprovals[msg.sender][operator] = approved;
        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function isApprovedForAll(address owner, address operator) public view returns (bool) {

        return _operatorApprovals[owner][operator];
    }

    function transferFrom(address from,address to,uint256 tokenId) public {
        //solhint-disable-next-line max-line-length
        require(_isApprovedOrOwner(msg.sender, tokenId), "GoE721Basic: transfer caller is not owner nor approved");

        _transfer(from, to, tokenId);
    }

    function safeTransferFrom(address from,address to,uint256 tokenId) public {

        safeTransferFrom(from, to, tokenId, "");
    }

    function safeTransferFrom(address from,address to,uint256 tokenId,bytes memory _data) public {
        require(_isApprovedOrOwner(msg.sender, tokenId), "GoE721Basic: transfer caller is not owner nor approved");
        _safeTransfer(from, to, tokenId, _data);
    }

    function _baseURI() public view returns (string memory) {

        return _baseUrl;
    }

    function _safeTransfer(address from,address to,uint256 tokenId,bytes memory) internal  {

        _transfer(from, to, tokenId);
    }

    function exists(uint256 tokenId) external view returns(bool){
        return _exists(tokenId);
    }

    function _exists(uint256 tokenId) internal view  returns (bool) {

        return _owners[tokenId] != address(0);
    }

    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view  returns (bool) {
        require(_exists(tokenId), "GoE721Basic: operator query for nonexistent token");
        address owner = ownerOf(tokenId);
        return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));
    }

    function _mint(address to, uint256 tokenId) internal  {
        // require(to != address(0), "GoE: mint to the zero address");
        // require(!_exists(tokenId), "GoE: token already minted");
        _balances[to] += 1;
        _owners[tokenId] = to;

        emit Transfer(address(0), to, tokenId);
    }

    function _burn(uint256 tokenId) internal  {
        address owner = ownerOf(tokenId);
        // Clear approvals
        _approve(address(0), tokenId);

        _balances[owner] -= 1;
        delete _owners[tokenId];

        emit Transfer(owner, address(0), tokenId);
    }

    function _transfer(address from,address to,uint256 tokenId) internal  {
        require(ownerOf(tokenId) == from, "GoE721Basic: transfer of token that is not own");
        require(to != address(0), "GoE721Basic: transfer to the zero address");

        _approve(address(0), tokenId);

        _balances[from] -= 1;
        _balances[to] += 1;
        _owners[tokenId] = to;

        emit Transfer(from, to, tokenId);
    }

    function _approve(address to, uint256 tokenId) internal  {
        _tokenApprovals[tokenId] = to;
        emit Approval(ownerOf(tokenId), to, tokenId);
    }

    /**
     * onChain attributes contract for all Non-Fungible tokens "minted" by
     * the `_proxied` contract
     */
    function changeAttribProxy(address attribProxy_) external adminsAllowed {
        _attribProxy = attribProxy_;
    }

    function changeURLParams(string memory baseUri_, string memory baseExt_) external adminsAllowed {
        _baseUrl = baseUri_;
        _baseExtention = baseExt_;
    }

    function pauseToggle() external adminsAllowed {
        _paused = !_paused;
    }

    function changeMintCost(uint256 cost) external adminsAllowed {
        _nativeMintCost = cost;
    }

    function withdraw(address token, address to, uint256 amount) external keyAllowed {
        if(token == address(0)){
            require(payable(to).send(amount));
        }else{
            send20Token(token, to, amount);
        }
    }

    function policyMint(address _to, uint256 _amount) external contractsAllowed {
        require(_mintIdx+_amount <= _maxSupply, "GoE721Proxy: Total amounts more than reserved");
        for(uint256 i=0; i<_amount; i++){
            _mint(_to, _mintIdx);
            _mintIdx += 1;
        }
    }

    function switchToChain(uint256 tokenId, uint256 chainId) external contractsAllowed {
        address oldOwner = ownerOf(tokenId);
        require(_bridged[tokenId] == block.chainid || _bridged[tokenId] == 0, "GoE721Proxy: This token is already not on this chain");
        require(IGoEBridge(msg.sender).createCrossChainGateRequest(IGoEBridge(msg.sender).formCrossChainGateRequest(chainId, tokenId, oldOwner, true)), "GoE721Proxy: Cannot switch chains currently");
        _burn(tokenId);
        _bridged[tokenId] = chainId;
        _bridgeReference[tokenId] = oldOwner;
    }

    function switchFromChain(uint256 tokenId, address tokenOwner) external contractsAllowed {
        require(_bridged[tokenId] != block.chainid, "GoE721Proxy: This token is already on this chain");
        require(!_exists(tokenId), "GoE721Proxy: Bridge minting does not allow tokens that are already minted");
        _mint(tokenOwner, tokenId);
        _bridgeReference[tokenId] = tokenOwner;
        _bridged[tokenId] = block.chainid;
    }
   
    fallback () external payable {
        address addr = _attribProxy;
        assembly {
            let freememstart := mload(0x40)
            calldatacopy(freememstart, 0, calldatasize())
            let success := delegatecall(not(0), addr, freememstart, calldatasize(), freememstart, 0)
            returndatacopy(freememstart, 0, returndatasize())
            switch success
            case 0 { revert(freememstart, returndatasize()) }
            default { return(freememstart, returndatasize()) }
        }
    }

    receive() external payable {

    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"attribProxy_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"baseUri_","type":"string"},{"internalType":"string","name":"baseExt_","type":"string"},{"internalType":"uint256","name":"maxSupply_","type":"uint256"},{"internalType":"uint256","name":"reservedAmount_","type":"uint256"},{"internalType":"uint256","name":"nativeMintCost_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"_baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum ProxyData.AType","name":"addressType","type":"uint8"},{"internalType":"address","name":"authorizedAddress","type":"address"}],"name":"authorizeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"attribProxy_","type":"address"}],"name":"changeAttribProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"cost","type":"uint256"}],"name":"changeMintCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseUri_","type":"string"},{"internalType":"string","name":"baseExt_","type":"string"}],"name":"changeURLParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseToggle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"policyMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interface","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"switchFromChain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"switchToChain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenChain","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"walletNFTs","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b5060405162004e0238038062004e02833981810160405281019062000037919062000345565b60016010600062000050336000620001b460201b60201c565b815260200190815260200160002060006101000a81548160ff02191690831515021790555073d928775286848a0624342252167c3ffc459baded601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508660019080519060200190620000e2929190620001e9565b508560029080519060200190620000fb929190620001e9565b50846003908051906020019062000114929190620001e9565b5083600490805190602001906200012d929190620001e9565b5082600681905550816007819055508060088190555060016005819055506001600960006101000a81548160ff021916908315150217905550876000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050506200073e565b60008282604051602001620001cb929190620004ac565b60405160208183030381529060405280519060200120905092915050565b828054620001f790620005d5565b90600052602060002090601f0160209004810192826200021b576000855562000267565b82601f106200023657805160ff191683800117855562000267565b8280016001018555821562000267579182015b828111156200026657825182559160200191906001019062000249565b5b5090506200027691906200027a565b5090565b5b80821115620002955760008160009055506001016200027b565b5090565b6000620002b0620002aa8462000502565b620004d9565b905082815260208101848484011115620002cf57620002ce620006d3565b5b620002dc8482856200059f565b509392505050565b600081519050620002f5816200070a565b92915050565b600082601f830112620003135762000312620006ce565b5b81516200032584826020860162000299565b91505092915050565b6000815190506200033f8162000724565b92915050565b600080600080600080600080610100898b031215620003695762000368620006dd565b5b6000620003798b828c01620002e4565b985050602089015167ffffffffffffffff8111156200039d576200039c620006d8565b5b620003ab8b828c01620002fb565b975050604089015167ffffffffffffffff811115620003cf57620003ce620006d8565b5b620003dd8b828c01620002fb565b965050606089015167ffffffffffffffff811115620004015762000400620006d8565b5b6200040f8b828c01620002fb565b955050608089015167ffffffffffffffff811115620004335762000432620006d8565b5b620004418b828c01620002fb565b94505060a0620004548b828c016200032e565b93505060c0620004678b828c016200032e565b92505060e06200047a8b828c016200032e565b9150509295985092959890939650565b620004958162000538565b82525050565b620004a6816200058b565b82525050565b6000604082019050620004c360008301856200048a565b620004d260208301846200049b565b9392505050565b6000620004e5620004f8565b9050620004f382826200060b565b919050565b6000604051905090565b600067ffffffffffffffff82111562000520576200051f6200069f565b5b6200052b82620006e2565b9050602081019050919050565b6000620005458262000561565b9050919050565b60008190506200055c82620006f3565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000598826200054c565b9050919050565b60005b83811015620005bf578082015181840152602081019050620005a2565b83811115620005cf576000848401525b50505050565b60006002820490506001821680620005ee57607f821691505b6020821081141562000605576200060462000670565b5b50919050565b6200061682620006e2565b810181811067ffffffffffffffff821117156200063857620006376200069f565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6003811062000707576200070662000641565b5b50565b620007158162000538565b81146200072157600080fd5b50565b6200072f8162000581565b81146200073b57600080fd5b50565b6146b4806200074e6000396000f3fe6080604052600436106101fd5760003560e01c80638bf380cf1161010d578063c4d4b04a116100a0578063d5abeb011161006f578063d5abeb0114610793578063d9caed12146107be578063e8a3d485146107e7578063e985e9c514610812578063ee1fe2ad1461084f57610204565b8063c4d4b04a146106c7578063c58cc48814610704578063c87b56dd1461072d578063cf50f8c51461076a57610204565b8063a6f9dae1116100dc578063a6f9dae114610621578063b88d4fde1461064a578063bdb4b84814610673578063c18ace051461069e57610204565b80638bf380cf146105795780638da5cb5b146105a257806395d89b41146105cd578063a22cb465146105f857610204565b80634f558e7911610190578063743976a01161015f578063743976a0146104bc578063783fd922146104e75780637f1921ef14610510578063834307d91461053957806388f912851461055057610204565b80634f558e79146103da5780635c975abb146104175780636352211e1461044257806370a082311461047f57610204565b806318160ddd116101cc57806318160ddd1461032057806323b872dd1461034b57806342842e0e14610374578063438b63001461039d57610204565b806301ffc9a71461025257806306fdde031461028f578063081812fc146102ba578063095ea7b3146102f757610204565b3661020457005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506040513660008237600081368385600019f43d6000833e806000811461024e573d83f35b3d83fd5b34801561025e57600080fd5b5061027960048036038101906102749190612d35565b61086b565b6040516102869190613609565b60405180910390f35b34801561029b57600080fd5b506102a461093d565b6040516102b19190613646565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc9190612eac565b6109cf565b6040516102ee919061357a565b60405180910390f35b34801561030357600080fd5b5061031e60048036038101906103199190612cc8565b610a54565b005b34801561032c57600080fd5b50610335610b5e565b60405161034291906139a8565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190612bb2565b610b74565b005b34801561038057600080fd5b5061039b60048036038101906103969190612bb2565b610bcd565b005b3480156103a957600080fd5b506103c460048036038101906103bf9190612b45565b610bed565b6040516103d191906135e7565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc9190612eac565b610d45565b60405161040e9190613609565b60405180910390f35b34801561042357600080fd5b5061042c610d57565b6040516104399190613609565b60405180910390f35b34801561044e57600080fd5b5061046960048036038101906104649190612eac565b610d6e565b604051610476919061357a565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190612b45565b610e20565b6040516104b391906139a8565b60405180910390f35b3480156104c857600080fd5b506104d1610ed8565b6040516104de9190613646565b60405180910390f35b3480156104f357600080fd5b5061050e60048036038101906105099190612e34565b610f6a565b005b34801561051c57600080fd5b5061053760048036038101906105329190612eac565b610ff2565b005b34801561054557600080fd5b5061054e611052565b005b34801561055c57600080fd5b5061057760048036038101906105729190612dab565b6110d4565b005b34801561058557600080fd5b506105a0600480360381019061059b9190612cc8565b611185565b005b3480156105ae57600080fd5b506105b7611276565b6040516105c4919061357a565b60405180910390f35b3480156105d957600080fd5b506105e26112a0565b6040516105ef9190613646565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a9190612c88565b611332565b005b34801561062d57600080fd5b5061064860048036038101906106439190612b45565b61149e565b005b34801561065657600080fd5b50610671600480360381019061066c9190612c05565b611537565b005b34801561067f57600080fd5b50610688611592565b60405161069591906139a8565b60405180910390f35b3480156106aa57600080fd5b506106c560048036038101906106c09190612f46565b61159c565b005b3480156106d357600080fd5b506106ee60048036038101906106e99190612eac565b611848565b6040516106fb91906139a8565b60405180910390f35b34801561071057600080fd5b5061072b60048036038101906107269190612f06565b611889565b005b34801561073957600080fd5b50610754600480360381019061074f9190612eac565b6119f6565b6040516107619190613646565b60405180910390f35b34801561077657600080fd5b50610791600480360381019061078c9190612b45565b611b3f565b005b34801561079f57600080fd5b506107a8611bd8565b6040516107b591906139a8565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e09190612bb2565b611be2565b005b3480156107f357600080fd5b506107fc611cc1565b6040516108099190613646565b60405180910390f35b34801561081e57600080fd5b5061083960048036038101906108349190612b72565b611cf8565b6040516108469190613609565b60405180910390f35b61086960048036038101906108649190612b72565b611d8c565b005b60007fcff9d6b4000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061093657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606001805461094c90613c85565b80601f016020809104026020016040519081016040528092919081815260200182805461097890613c85565b80156109c55780601f1061099a576101008083540402835291602001916109c5565b820191906000526020600020905b8154815290600101906020018083116109a857829003601f168201915b5050505050905090565b60006109da82611e9f565b610a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1090613908565b60405180910390fd5b600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a5f82610d6e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac790613948565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b105750610b0f8133611cf8565b5b610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4690613688565b60405180910390fd5b610b598383611f0b565b505050565b60006001600554610b6f9190613b76565b905090565b610b7e3382611fc4565b610bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb490613708565b60405180910390fd5b610bc88383836120a2565b505050565b610be883838360405180602001604052806000815250611537565b505050565b6060600080600190505b600554811015610c60578373ffffffffffffffffffffffffffffffffffffffff16610c2182610d6e565b73ffffffffffffffffffffffffffffffffffffffff161415610c4d57600182610c4a9190613b20565b91505b8080610c5890613ce8565b915050610bf7565b508067ffffffffffffffff811115610c7b57610c7a613ded565b5b604051908082528060200260200182016040528015610ca95781602001602082028036833780820191505090505b509150600080600190505b600554811015610d3d578473ffffffffffffffffffffffffffffffffffffffff16610cde82610d6e565b73ffffffffffffffffffffffffffffffffffffffff161415610d2a5780848381518110610d0e57610d0d613dbe565b5b602002602001018181525050600182610d279190613b20565b91505b8080610d3590613ce8565b915050610cb4565b505050919050565b6000610d5082611e9f565b9050919050565b6000600960009054906101000a900460ff16905090565b600080600a600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e906136c8565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e88906137c8565b60405180910390fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060038054610ee790613c85565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1390613c85565b8015610f605780601f10610f3557610100808354040283529160200191610f60565b820191906000526020600020905b815481529060010190602001808311610f4357829003601f168201915b5050505050905090565b6002610f7c610f776122f3565b6122fb565b60ff161015610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790613748565b60405180910390fd5b8160039080519060200190610fd692919061284f565b508060049080519060200190610fed92919061284f565b505050565b6002611004610fff6122f3565b6122fb565b60ff161015611048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103f90613748565b60405180910390fd5b8060088190555050565b600261106461105f6122f3565b6122fb565b60ff1610156110a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109f90613748565b60405180910390fd5b600960009054906101000a900460ff1615600960006101000a81548160ff021916908315150217905550565b60036110e66110e16122f3565b6122fb565b60ff1614611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611120906138e8565b60405180910390fd5b6000611134826122fb565b60ff1614611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e90613848565b60405180910390fd5b6111818282612421565b5050565b60016111976111926122f3565b6122fb565b60ff1610156111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d290613928565b60405180910390fd5b600654816005546111ec9190613b20565b111561122d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122490613788565b60405180910390fd5b60005b81811015611271576112448360055461245a565b6001600560008282546112579190613b20565b92505081905550808061126990613ce8565b915050611230565b505050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546112af90613c85565b80601f01602080910402602001604051908101604052809291908181526020018280546112db90613c85565b80156113285780601f106112fd57610100808354040283529160200191611328565b820191906000526020600020905b81548152906001019060200180831161130b57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611398906138a8565b60405180910390fd5b80600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114929190613609565b60405180910390a35050565b60036114b06114ab6122f3565b6122fb565b60ff16146114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea906138e8565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115413383611fc4565b611580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157790613708565b60405180910390fd5b61158c84848484612563565b50505050565b6000600854905090565b60016115ae6115a96122f3565b6122fb565b60ff1610156115f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e990613928565b60405180910390fd5b60006115fd83610d6e565b905046600e600085815260200190815260200160002054148061163357506000600e600085815260200190815260200160002054145b611672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611669906137e8565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16639418f44c3373ffffffffffffffffffffffffffffffffffffffff1663452140b985878660016040518563ffffffff1660e01b81526004016116ce94939291906139c3565b60006040518083038186803b1580156116e657600080fd5b505afa1580156116fa573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906117239190612d62565b6040518263ffffffff1660e01b815260040161173f9190613624565b602060405180830381600087803b15801561175957600080fd5b505af115801561176d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117919190612d08565b6117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790613768565b60405180910390fd5b6117d983612574565b81600e60008581526020019081526020016000208190555080600f600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600080600e600084815260200190815260200160002054141561186d57469050611884565b600e60008381526020019081526020016000205490505b919050565b600161189b6118966122f3565b6122fb565b60ff1610156118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d690613928565b60405180910390fd5b46600e6000848152602001908152602001600020541415611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613808565b60405180910390fd5b61193e82611e9f565b1561197e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611975906137a8565b60405180910390fd5b611988818361245a565b80600f600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555046600e6000848152602001908152602001600020819055505050565b6060611a0182611e9f565b611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790613868565b60405180910390fd5b6000611a4a610ed8565b905060007353eb3e1e02c8eb8d185a074520bd52ece09f7a4373ffffffffffffffffffffffffffffffffffffffff16636900a3ae856040518263ffffffff1660e01b8152600401611a9b91906139a8565b60006040518083038186803b158015611ab357600080fd5b505afa158015611ac7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611af09190612deb565b90506000825111611b105760405180602001604052806000815250611b36565b81816004604051602001611b269392919061351a565b6040516020818303038152906040525b92505050919050565b6002611b51611b4c6122f3565b6122fb565b60ff161015611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90613748565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600654905090565b6003611bf4611bef6122f3565b6122fb565b60ff1614611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e906138e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611caf578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050611caa57600080fd5b611cbc565b611cba838383612679565b505b505050565b60606000611ccd610ed8565b9050806004604051602001611ce392919061354b565b60405160208183030381529060405291505090565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600960009054906101000a900460ff1615611ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd3906138c8565b60405180910390fd5b600754600654611dec9190613b76565b6005541115611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2790613828565b60405180910390fd5b600854341015611e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6c90613668565b60405180910390fd5b611e818260055461245a565b600160056000828254611e949190613b20565b925050819055505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600a600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b81600c600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611f7e83610d6e565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611fcf82611e9f565b61200e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200590613888565b60405180910390fd5b600061201983610d6e565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061208857508373ffffffffffffffffffffffffffffffffffffffff16612070846109cf565b73ffffffffffffffffffffffffffffffffffffffff16145b8061209957506120988185611cf8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166120c282610d6e565b73ffffffffffffffffffffffffffffffffffffffff1614612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f906136a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217f90613968565b60405180910390fd5b612193600082611f0b565b6001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121e39190613b76565b925050819055506001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461223a9190613b20565b9250508190555081600a600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561236c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612363906136e8565b60405180910390fd5b6010600061237b84600061281c565b815260200190815260200160002060009054906101000a900460ff16156123a5576003905061241c565b601060006123b484600161281c565b815260200190815260200160002060009054906101000a900460ff16156123de576002905061241c565b601060006123ed84600261281c565b815260200190815260200160002060009054906101000a900460ff1615612417576001905061241c565b600090505b919050565b600160106000612431848661281c565b815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124aa9190613b20565b9250508190555081600a600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61256e8484846120a2565b50505050565b600061257f82610d6e565b905061258c600083611f0b565b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125dc9190613b76565b92505081905550600a600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000818473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126b5919061357a565b60206040518083038186803b1580156126cd57600080fd5b505afa1580156126e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127059190612ed9565b11612745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273c90613988565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b81526004016127809291906135be565b602060405180830381600087803b15801561279a57600080fd5b505af11580156127ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d29190612d08565b612811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280890613728565b60405180910390fd5b600190509392505050565b60008282604051602001612831929190613595565b60405160208183030381529060405280519060200120905092915050565b82805461285b90613c85565b90600052602060002090601f01602090048101928261287d57600085556128c4565b82601f1061289657805160ff19168380011785556128c4565b828001600101855582156128c4579182015b828111156128c35782518255916020019190600101906128a8565b5b5090506128d191906128d5565b5090565b5b808211156128ee5760008160009055506001016128d6565b5090565b600061290561290084613a2d565b613a08565b90508281526020810184848401111561292157612920613e21565b5b61292c848285613c43565b509392505050565b600061294761294284613a2d565b613a08565b90508281526020810184848401111561296357612962613e21565b5b61296e848285613c52565b509392505050565b600061298961298484613a5e565b613a08565b9050828152602081018484840111156129a5576129a4613e21565b5b6129b0848285613c43565b509392505050565b60006129cb6129c684613a5e565b613a08565b9050828152602081018484840111156129e7576129e6613e21565b5b6129f2848285613c52565b509392505050565b600081359050612a0981614612565b92915050565b600081359050612a1e81614629565b92915050565b600081519050612a3381614629565b92915050565b600081359050612a4881614640565b92915050565b600082601f830112612a6357612a62613e1c565b5b8135612a738482602086016128f2565b91505092915050565b600082601f830112612a9157612a90613e1c565b5b8151612aa1848260208601612934565b91505092915050565b600081359050612ab981614657565b92915050565b600082601f830112612ad457612ad3613e1c565b5b8135612ae4848260208601612976565b91505092915050565b600082601f830112612b0257612b01613e1c565b5b8151612b128482602086016129b8565b91505092915050565b600081359050612b2a81614667565b92915050565b600081519050612b3f81614667565b92915050565b600060208284031215612b5b57612b5a613e2b565b5b6000612b69848285016129fa565b91505092915050565b60008060408385031215612b8957612b88613e2b565b5b6000612b97858286016129fa565b9250506020612ba8858286016129fa565b9150509250929050565b600080600060608486031215612bcb57612bca613e2b565b5b6000612bd9868287016129fa565b9350506020612bea868287016129fa565b9250506040612bfb86828701612b1b565b9150509250925092565b60008060008060808587031215612c1f57612c1e613e2b565b5b6000612c2d878288016129fa565b9450506020612c3e878288016129fa565b9350506040612c4f87828801612b1b565b925050606085013567ffffffffffffffff811115612c7057612c6f613e26565b5b612c7c87828801612a4e565b91505092959194509250565b60008060408385031215612c9f57612c9e613e2b565b5b6000612cad858286016129fa565b9250506020612cbe85828601612a0f565b9150509250929050565b60008060408385031215612cdf57612cde613e2b565b5b6000612ced858286016129fa565b9250506020612cfe85828601612b1b565b9150509250929050565b600060208284031215612d1e57612d1d613e2b565b5b6000612d2c84828501612a24565b91505092915050565b600060208284031215612d4b57612d4a613e2b565b5b6000612d5984828501612a39565b91505092915050565b600060208284031215612d7857612d77613e2b565b5b600082015167ffffffffffffffff811115612d9657612d95613e26565b5b612da284828501612a7c565b91505092915050565b60008060408385031215612dc257612dc1613e2b565b5b6000612dd085828601612aaa565b9250506020612de1858286016129fa565b9150509250929050565b600060208284031215612e0157612e00613e2b565b5b600082015167ffffffffffffffff811115612e1f57612e1e613e26565b5b612e2b84828501612aed565b91505092915050565b60008060408385031215612e4b57612e4a613e2b565b5b600083013567ffffffffffffffff811115612e6957612e68613e26565b5b612e7585828601612abf565b925050602083013567ffffffffffffffff811115612e9657612e95613e26565b5b612ea285828601612abf565b9150509250929050565b600060208284031215612ec257612ec1613e2b565b5b6000612ed084828501612b1b565b91505092915050565b600060208284031215612eef57612eee613e2b565b5b6000612efd84828501612b30565b91505092915050565b60008060408385031215612f1d57612f1c613e2b565b5b6000612f2b85828601612b1b565b9250506020612f3c858286016129fa565b9150509250929050565b60008060408385031215612f5d57612f5c613e2b565b5b6000612f6b85828601612b1b565b9250506020612f7c85828601612b1b565b9150509250929050565b6000612f9283836134fc565b60208301905092915050565b612fa781613baa565b82525050565b6000612fb882613ab4565b612fc28185613ae2565b9350612fcd83613a8f565b8060005b83811015612ffe578151612fe58882612f86565b9750612ff083613ad5565b925050600181019050612fd1565b5085935050505092915050565b61301481613bbc565b82525050565b600061302582613abf565b61302f8185613af3565b935061303f818560208601613c52565b61304881613e30565b840191505092915050565b61305c81613c31565b82525050565b600061306d82613aca565b6130778185613b04565b9350613087818560208601613c52565b61309081613e30565b840191505092915050565b60006130a682613aca565b6130b08185613b15565b93506130c0818560208601613c52565b80840191505092915050565b600081546130d981613c85565b6130e38186613b15565b945060018216600081146130fe576001811461310f57613142565b60ff19831686528186019350613142565b61311885613a9f565b60005b8381101561313a5781548189015260018201915060208101905061311b565b838801955050505b50505092915050565b6000613158603483613b04565b915061316382613e41565b604082019050919050565b600061317b603d83613b04565b915061318682613e90565b604082019050919050565b600061319e602e83613b04565b91506131a982613edf565b604082019050919050565b60006131c1602e83613b04565b91506131cc82613f2e565b604082019050919050565b60006131e4602483613b04565b91506131ef82613f7d565b604082019050919050565b6000613207603683613b04565b915061321282613fcc565b604082019050919050565b600061322a602c83613b04565b91506132358261401b565b604082019050919050565b600061324d602a83613b04565b91506132588261406a565b604082019050919050565b6000613270602b83613b04565b915061327b826140b9565b604082019050919050565b6000613293602d83613b04565b915061329e82614108565b604082019050919050565b60006132b6604983613b04565b91506132c182614157565b606082019050919050565b60006132d9602f83613b04565b91506132e4826141cc565b604082019050919050565b60006132fc603483613b04565b91506133078261421b565b604082019050919050565b600061331f603083613b04565b915061332a8261426a565b604082019050919050565b6000613342601a83613b04565b915061334d826142b9565b602082019050919050565b6000613365600783613b15565b9150613370826142e2565b600782019050919050565b6000613388602d83613b04565b91506133938261430b565b604082019050919050565b60006133ab602c83613b04565b91506133b68261435a565b604082019050919050565b60006133ce603183613b04565b91506133d9826143a9565b604082019050919050565b60006133f1601e83613b04565b91506133fc826143f8565b602082019050919050565b6000613414601e83613b04565b915061341f82614421565b602082019050919050565b6000613437601b83613b04565b91506134428261444a565b602082019050919050565b600061345a603183613b04565b915061346582614473565b604082019050919050565b600061347d602d83613b04565b9150613488826144c2565b604082019050919050565b60006134a0602683613b04565b91506134ab82614511565b604082019050919050565b60006134c3602983613b04565b91506134ce82614560565b604082019050919050565b60006134e6602483613b04565b91506134f1826145af565b604082019050919050565b61350581613c27565b82525050565b61351481613c27565b82525050565b6000613526828661309b565b9150613532828561309b565b915061353e82846130cc565b9150819050949350505050565b6000613557828561309b565b915061356282613358565b915061356e82846130cc565b91508190509392505050565b600060208201905061358f6000830184612f9e565b92915050565b60006040820190506135aa6000830185612f9e565b6135b76020830184613053565b9392505050565b60006040820190506135d36000830185612f9e565b6135e0602083018461350b565b9392505050565b600060208201905081810360008301526136018184612fad565b905092915050565b600060208201905061361e600083018461300b565b92915050565b6000602082019050818103600083015261363e818461301a565b905092915050565b600060208201905081810360008301526136608184613062565b905092915050565b600060208201905081810360008301526136818161314b565b9050919050565b600060208201905081810360008301526136a18161316e565b9050919050565b600060208201905081810360008301526136c181613191565b9050919050565b600060208201905081810360008301526136e1816131b4565b9050919050565b60006020820190508181036000830152613701816131d7565b9050919050565b60006020820190508181036000830152613721816131fa565b9050919050565b600060208201905081810360008301526137418161321d565b9050919050565b6000602082019050818103600083015261376181613240565b9050919050565b6000602082019050818103600083015261378181613263565b9050919050565b600060208201905081810360008301526137a181613286565b9050919050565b600060208201905081810360008301526137c1816132a9565b9050919050565b600060208201905081810360008301526137e1816132cc565b9050919050565b60006020820190508181036000830152613801816132ef565b9050919050565b6000602082019050818103600083015261382181613312565b9050919050565b6000602082019050818103600083015261384181613335565b9050919050565b600060208201905081810360008301526138618161337b565b9050919050565b600060208201905081810360008301526138818161339e565b9050919050565b600060208201905081810360008301526138a1816133c1565b9050919050565b600060208201905081810360008301526138c1816133e4565b9050919050565b600060208201905081810360008301526138e181613407565b9050919050565b600060208201905081810360008301526139018161342a565b9050919050565b600060208201905081810360008301526139218161344d565b9050919050565b6000602082019050818103600083015261394181613470565b9050919050565b6000602082019050818103600083015261396181613493565b9050919050565b60006020820190508181036000830152613981816134b6565b9050919050565b600060208201905081810360008301526139a1816134d9565b9050919050565b60006020820190506139bd600083018461350b565b92915050565b60006080820190506139d8600083018761350b565b6139e5602083018661350b565b6139f26040830185612f9e565b6139ff606083018461300b565b95945050505050565b6000613a12613a23565b9050613a1e8282613cb7565b919050565b6000604051905090565b600067ffffffffffffffff821115613a4857613a47613ded565b5b613a5182613e30565b9050602081019050919050565b600067ffffffffffffffff821115613a7957613a78613ded565b5b613a8282613e30565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613b2b82613c27565b9150613b3683613c27565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b6b57613b6a613d31565b5b828201905092915050565b6000613b8182613c27565b9150613b8c83613c27565b925082821015613b9f57613b9e613d31565b5b828203905092915050565b6000613bb582613c07565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000819050613c02826145fe565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613c3c82613bf4565b9050919050565b82818337600083830152505050565b60005b83811015613c70578082015181840152602081019050613c55565b83811115613c7f576000848401525b50505050565b60006002820490506001821680613c9d57607f821691505b60208210811415613cb157613cb0613d8f565b5b50919050565b613cc082613e30565b810181811067ffffffffffffffff82111715613cdf57613cde613ded565b5b80604052505050565b6000613cf382613c27565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d2657613d25613d31565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f476f4537323142617369633a204d696e207061796d656e74206f66206d696e7460008201527f696e6720636f7374206973207265717569726564000000000000000000000000602082015250565b7f476f4537323142617369633a20617070726f76652063616c6c6572206973206e60008201527f6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c000000602082015250565b7f476f4537323142617369633a207472616e73666572206f6620746f6b656e207460008201527f686174206973206e6f74206f776e000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a206f776e657220717565727920666f72206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f476f454163636573733a204e6f205a65726f2041646472657373657320616c6c60008201527f6f77656400000000000000000000000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a207472616e736665722063616c6c65722069732060008201527f6e6f74206f776e6572206e6f7220617070726f76656400000000000000000000602082015250565b7f476f4532305472616e73616374696f6e733a2043616e6e6f742063757272656e60008201527f746c79207472616e736665720000000000000000000000000000000000000000602082015250565b7f476f454163636573733a204f6e6c7920616c6c6f7765642061646d696e73206860008201527f6176652061636365737300000000000000000000000000000000000000000000602082015250565b7f476f4537323150726f78793a2043616e6e6f742073776974636820636861696e60008201527f732063757272656e746c79000000000000000000000000000000000000000000602082015250565b7f476f4537323150726f78793a20546f74616c20616d6f756e7473206d6f72652060008201527f7468616e20726573657276656400000000000000000000000000000000000000602082015250565b7f476f4537323150726f78793a20427269646765206d696e74696e6720646f657360008201527f206e6f7420616c6c6f7720746f6b656e7320746861742061726520616c72656160208201527f6479206d696e7465640000000000000000000000000000000000000000000000604082015250565b7f476f4537323142617369633a2062616c616e636520717565727920666f72207460008201527f6865207a65726f20616464726573730000000000000000000000000000000000602082015250565b7f476f4537323150726f78793a205468697320746f6b656e20697320616c72656160008201527f6479206e6f74206f6e207468697320636861696e000000000000000000000000602082015250565b7f476f4537323150726f78793a205468697320746f6b656e20697320616c72656160008201527f6479206f6e207468697320636861696e00000000000000000000000000000000602082015250565b7f476f4537323142617369633a206e6f206d6f7265206d696e7473000000000000600082015250565b7f47656e6573697300000000000000000000000000000000000000000000000000600082015250565b7f476f454163636573733a2054686973206164647265737320697320616c72656160008201527f647920617574686f72697a656400000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a2055524920717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a206f70657261746f7220717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f476f4537323142617369633a20617070726f766520746f2063616c6c65720000600082015250565b7f476f4537323142617369633a206d696e74696e67206973207061757365640000600082015250565b7f476f454163636573733a204b657920706572736f6e206f6e6c792e0000000000600082015250565b7f476f4537323142617369633a20617070726f76656420717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f476f454163636573733a204f6e6c7920616c6c6f77656420636f6e747261637460008201527f7320686176652061636365737300000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a20617070726f76616c20746f2063757272656e7460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b7f476f4537323142617369633a207472616e7366657220746f20746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b7f476f4532305472616e73616374696f6e733a204e6f20656e6f7567682062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6003811061460f5761460e613d60565b5b50565b61461b81613baa565b811461462657600080fd5b50565b61463281613bbc565b811461463d57600080fd5b50565b61464981613bc8565b811461465457600080fd5b50565b6003811061466457600080fd5b50565b61467081613c27565b811461467b57600080fd5b5056fea264697066735822122087f26c8e708a9a7727ff0ecea85dfb6bd2d11816710d5050188911485eadc4c064736f6c63430008070033000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000bb800000000000000000000000000000000000000000000000000000000000002bc0000000000000000000000000000000000000000000000000214e8348c4f0000000000000000000000000000000000000000000000000000000000000000000e476f452e47472f47656e65736973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b476f452e47656e65736973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002068747470733a2f2f6170692e676f652e67672f6765742f6d657461646174612f00000000000000000000000000000000000000000000000000000000000000052e6a736f6e000000000000000000000000000000000000000000000000000000

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

000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000bb800000000000000000000000000000000000000000000000000000000000002bc0000000000000000000000000000000000000000000000000214e8348c4f0000000000000000000000000000000000000000000000000000000000000000000e476f452e47472f47656e65736973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b476f452e47656e65736973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002068747470733a2f2f6170692e676f652e67672f6765742f6d657461646174612f00000000000000000000000000000000000000000000000000000000000000052e6a736f6e000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : attribProxy_ (address): 0x0000000000000000000000000000000000000000
Arg [1] : name_ (string): GoE.GG/Genesis
Arg [2] : symbol_ (string): GoE.Genesis
Arg [3] : baseUri_ (string): https://api.goe.gg/get/metadata/
Arg [4] : baseExt_ (string): .json
Arg [5] : maxSupply_ (uint256): 3000
Arg [6] : reservedAmount_ (uint256): 700
Arg [7] : nativeMintCost_ (uint256): 150000000000000000

-----Encoded View---------------
16 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000180
Arg [4] : 00000000000000000000000000000000000000000000000000000000000001c0
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000bb8
Arg [6] : 00000000000000000000000000000000000000000000000000000000000002bc
Arg [7] : 0000000000000000000000000000000000000000000000000214e8348c4f0000
Arg [8] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [9] : 476f452e47472f47656e65736973000000000000000000000000000000000000
Arg [10] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [11] : 476f452e47656e65736973000000000000000000000000000000000000000000
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [13] : 68747470733a2f2f6170692e676f652e67672f6765742f6d657461646174612f
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [15] : 2e6a736f6e000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

8571:10403:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18436:12;18451;;;;;;;;;;;18436:27;;18524:4;18518:11;18573:14;18570:1;18556:12;18543:45;18688:1;18674:12;18658:14;18644:12;18638:4;18634:1;18630:6;18617:73;18736:16;18733:1;18719:12;18704:49;18774:7;18800:1;18795:49;;;;18889:16;18875:12;18868:38;18795:49;18825:16;18811:12;18804:38;11651:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9626:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12728:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12328:392;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9325:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13387:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13684:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10124:505;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14346:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9816:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12093:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11888:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14102:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16409:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16678:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16587:83;;;;;;;;;;;;;:::i;:::-;;4712:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17039:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5674:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9719:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12945:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5761:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13826:268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9526:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17347:584;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9904:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17939:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10637:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16283:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9422:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16788:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11069:191;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13230:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11272:371;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11651:229;11718:4;11759:30;11745:44;;;:10;:44;;;;:126;;;;11842:29;11828:43;;;:10;:43;;;;11745:126;11737:135;;11651:229;;;:::o;9626:85::-;9663:13;9698:5;9691:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9626:85;:::o;12728:209::-;12787:7;12815:16;12823:7;12815;:16::i;:::-;12807:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;12905:15;:24;12921:7;12905:24;;;;;;;;;;;;;;;;;;;;;12898:31;;12728:209;;;:::o;12328:392::-;12391:13;12407:16;12415:7;12407;:16::i;:::-;12391:32;;12448:5;12442:11;;:2;:11;;;;12434:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;12545:5;12531:19;;:10;:19;;;:58;;;;12554:35;12571:5;12578:10;12554:16;:35::i;:::-;12531:58;12509:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;12691:21;12700:2;12704:7;12691:8;:21::i;:::-;12380:340;12328:392;;:::o;9325:89::-;9368:7;9405:1;9396:8;;:10;;;;:::i;:::-;9389:17;;9325:89;:::o;13387:289::-;13529:39;13548:10;13560:7;13529:18;:39::i;:::-;13521:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;13640:28;13650:4;13656:2;13660:7;13640:9;:28::i;:::-;13387:289;;;:::o;13684:134::-;13771:39;13788:4;13794:2;13798:7;13771:39;;;;;;;;;;;;:16;:39::i;:::-;13684:134;;;:::o;10124:505::-;10183:27;10222:12;10253:9;10263:1;10253:11;;10249:127;10268:8;;10266:1;:10;10249:127;;;10314:6;10300:20;;:10;10308:1;10300:7;:10::i;:::-;:20;;;10297:68;;;10348:1;10340:9;;;;;:::i;:::-;;;10297:68;10278:3;;;;;:::i;:::-;;;;10249:127;;;;10413:4;10399:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10386:32;;10429:12;10460:9;10470:1;10460:11;;10456:166;10475:8;;10473:1;:10;10456:166;;;10521:6;10507:20;;:10;10515:1;10507:7;:10::i;:::-;:20;;;10504:107;;;10566:1;10547:10;10558:4;10547:16;;;;;;;;:::i;:::-;;;;;;;:20;;;;;10594:1;10586:9;;;;;:::i;:::-;;;10504:107;10485:3;;;;;:::i;:::-;;;;10456:166;;;;10211:418;;10124:505;;;:::o;14346:102::-;14401:4;14424:16;14432:7;14424;:16::i;:::-;14417:23;;14346:102;;;:::o;9816:80::-;9855:4;9881:7;;;;;;;;;;;9874:14;;9816:80;:::o;12093:227::-;12148:7;12168:13;12184:7;:16;12192:7;12184:16;;;;;;;;;;;;;;;;;;;;;12168:32;;12236:1;12219:19;;:5;:19;;;;12211:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;12307:5;12300:12;;;12093:227;;;:::o;11888:196::-;11943:7;11988:1;11971:19;;:5;:19;;;;11963:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12060:9;:16;12070:5;12060:16;;;;;;;;;;;;;;;;12053:23;;11888:196;;;:::o;14102:92::-;14143:13;14178:8;14171:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14102:92;:::o;16409:170::-;5441:1;5410:27;5424:12;:10;:12::i;:::-;5410:13;:27::i;:::-;:32;;;;5402:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;16527:8:::1;16516;:19;;;;;;;;;;;;:::i;:::-;;16563:8;16546:14;:25;;;;;;;;;;;;:::i;:::-;;16409:170:::0;;:::o;16678:102::-;5441:1;5410:27;5424:12;:10;:12::i;:::-;5410:13;:27::i;:::-;:32;;;;5402:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;16768:4:::1;16750:15;:22;;;;16678:102:::0;:::o;16587:83::-;5441:1;5410:27;5424:12;:10;:12::i;:::-;5410:13;:27::i;:::-;:32;;;;5402:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;16655:7:::1;;;;;;;;;;;16654:8;16644:7;;:18;;;;;;;;;;;;;;;;;;16587:83::o:0;4712:264::-;5305:1;5274:27;5288:12;:10;:12::i;:::-;5274:13;:27::i;:::-;:32;;;5266:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;4857:1:::1;4821:32;4835:17;4821:13;:32::i;:::-;:37;;;4813:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;4919:49;4937:11;4950:17;4919;:49::i;:::-;4712:264:::0;;:::o;17039:300::-;5595:1;5564:27;5578:12;:10;:12::i;:::-;5564:13;:27::i;:::-;:32;;;;5556:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17154:10:::1;;17143:7;17134:8;;:16;;;;:::i;:::-;:30;;17126:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;17229:9;17225:107;17244:7;17242:1;:9;17225:107;;;17272:20;17278:3;17283:8;;17272:5;:20::i;:::-;17319:1;17307:8;;:13;;;;;;;:::i;:::-;;;;;;;;17253:3;;;;;:::i;:::-;;;;17225:107;;;;17039:300:::0;;:::o;5674:79::-;5712:7;5739:6;;;;;;;;;;;5732:13;;5674:79;:::o;9719:89::-;9758:13;9793:7;9786:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9719:89;:::o;12945:277::-;13043:10;13031:22;;:8;:22;;;;13023:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13144:8;13101:18;:30;13120:10;13101:30;;;;;;;;;;;;;;;:40;13132:8;13101:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;13195:8;13168:46;;13183:10;13168:46;;;13205:8;13168:46;;;;;;:::i;:::-;;;;;;;;12945:277;;:::o;5761:95::-;5305:1;5274:27;5288:12;:10;:12::i;:::-;5274:13;:27::i;:::-;:32;;;5266:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;5839:9:::1;5830:6;;:18;;;;;;;;;;;;;;;;;;5761:95:::0;:::o;13826:268::-;13938:39;13957:10;13969:7;13938:18;:39::i;:::-;13930:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;14047:39;14061:4;14067:2;14071:7;14080:5;14047:13;:39::i;:::-;13826:268;;;;:::o;9526:92::-;9566:7;9595:15;;9588:22;;9526:92;:::o;17347:584::-;5595:1;5564:27;5578:12;:10;:12::i;:::-;5564:13;:27::i;:::-;:32;;;;5556:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17441:16:::1;17460;17468:7;17460;:16::i;:::-;17441:35;;17516:13;17495:8;:17;17504:7;17495:17;;;;;;;;;;;;:34;:60;;;;17554:1;17533:8;:17;17542:7;17533:17;;;;;;;;;;;;:22;17495:60;17487:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;17642:10;17631:50;;;17693:10;17682:48;;;17731:7;17740;17749:8;17759:4;17682:82;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17631:134;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17623:190;;;;;;;;;;;;:::i;:::-;;;;;;;;;17824:14;17830:7;17824:5;:14::i;:::-;17869:7;17849:8;:17;17858:7;17849:17;;;;;;;;;;;:27;;;;17915:8;17887:16;:25;17904:7;17887:25;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;17430:501;17347:584:::0;;:::o;9904:212::-;9961:7;10005:1;9984:8;:17;9993:7;9984:17;;;;;;;;;;;;:22;9981:128;;;10029:13;10022:20;;;;9981:128;10080:8;:17;10089:7;10080:17;;;;;;;;;;;;10073:24;;9904:212;;;;:::o;17939:446::-;5595:1;5564:27;5578:12;:10;:12::i;:::-;5564:13;:27::i;:::-;:32;;;;5556:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;18067:13:::1;18046:8;:17;18055:7;18046:17;;;;;;;;;;;;:34;;18038:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;18153:16;18161:7;18153;:16::i;:::-;18152:17;18144:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;18258:26;18264:10;18276:7;18258:5;:26::i;:::-;18323:10;18295:16;:25;18312:7;18295:25;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;18364:13;18344:8;:17;18353:7;18344:17;;;;;;;;;;;:33;;;;17939:446:::0;;:::o;10637:424::-;10693:13;10727:16;10735:7;10727;:16::i;:::-;10719:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10803:21;10827:10;:8;:10::i;:::-;10803:34;;10848:20;10882:42;10871:63;;;10935:7;10871:72;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10848:95;;10985:1;10967:7;10961:21;:25;:92;;;;;;;;;;;;;;;;;11013:7;11023:6;11032:14;10996:51;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10961:92;10954:99;;;;10637:424;;;:::o;16283:118::-;5441:1;5410:27;5424:12;:10;:12::i;:::-;5410:13;:27::i;:::-;:32;;;;5402:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;16381:12:::1;16366;::::0;:27:::1;;;;;;;;;;;;;;;;;;16283:118:::0;:::o;9422:96::-;9463:7;9500:10;;9493:17;;9422:96;:::o;16788:243::-;5305:1;5274:27;5288:12;:10;:12::i;:::-;5274:13;:27::i;:::-;:32;;;5266:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;16900:1:::1;16883:19;;:5;:19;;;16880:144;;;16934:2;16926:16;;:24;16943:6;16926:24;;;;;;;;;;;;;;;;;;;;;;;16918:33;;;::::0;::::1;;16880:144;;;16982:30;16994:5;17001:2;17005:6;16982:11;:30::i;:::-;;16880:144;16788:243:::0;;;:::o;11069:191::-;11113:13;11139:21;11163:10;:8;:10::i;:::-;11139:34;;11215:7;11236:14;11198:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11184:68;;;11069:191;:::o;13230:149::-;13310:4;13336:18;:25;13355:5;13336:25;;;;;;;;;;;;;;;:35;13362:8;13336:35;;;;;;;;;;;;;;;;;;;;;;;;;13329:42;;13230:149;;;;:::o;11272:371::-;11345:7;;;;;;;;;;;11344:8;11336:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;11430:15;;11419:10;;:26;;;;:::i;:::-;11406:8;;:40;;11398:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11509:15;;11496:9;:28;;11488:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;11592:19;11598:2;11602:8;;11592:5;:19::i;:::-;11634:1;11622:8;;:13;;;;;;;:::i;:::-;;;;;;;;11272:371;;:::o;14456:122::-;14514:4;14568:1;14540:30;;:7;:16;14548:7;14540:16;;;;;;;;;;;;;;;;;;;;;:30;;;;14533:37;;14456:122;;;:::o;15989:160::-;16084:2;16057:15;:24;16073:7;16057:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;16133:7;16129:2;16102:39;;16111:16;16119:7;16111;:16::i;:::-;16102:39;;;;;;;;;;;;15989:160;;:::o;14586:339::-;14672:4;14697:16;14705:7;14697;:16::i;:::-;14689:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14778:13;14794:16;14802:7;14794;:16::i;:::-;14778:32;;14840:5;14829:16;;:7;:16;;;:51;;;;14873:7;14849:31;;:20;14861:7;14849:11;:20::i;:::-;:31;;;14829:51;:87;;;;14884:32;14901:5;14908:7;14884:16;:32::i;:::-;14829:87;14821:96;;;14586:339;;;;:::o;15547:434::-;15656:4;15636:24;;:16;15644:7;15636;:16::i;:::-;:24;;;15628:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;15744:1;15730:16;;:2;:16;;;;15722:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15805:29;15822:1;15826:7;15805:8;:29::i;:::-;15866:1;15847:9;:15;15857:4;15847:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;15895:1;15878:9;:13;15888:2;15878:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;15926:2;15907:7;:16;15915:7;15907:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15965:7;15961:2;15946:27;;15955:4;15946:27;;;;;;;;;;;;15547:434;;;:::o;4006:92::-;4051:7;4080:10;4073:17;;4006:92;:::o;4237:467::-;4297:5;4339:1;4322:19;;:5;:19;;;;4314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4396:10;:37;4407:25;4415:5;4422:9;4407:7;:25::i;:::-;4396:37;;;;;;;;;;;;;;;;;;;;;4393:304;;;4456:1;4449:8;;;;4393:304;4487:10;:39;4498:27;4506:5;4513:11;4498:7;:27::i;:::-;4487:39;;;;;;;;;;;;;;;;;;;;;4484:213;;;4549:1;4542:8;;;;4484:213;4580:10;:42;4591:30;4599:5;4606:14;4591:7;:30::i;:::-;4580:42;;;;;;;;;;;;;;;;;;;;;4577:120;;;4645:1;4638:8;;;;4577:120;4684:1;4677:8;;4237:467;;;;:::o;4984:115::-;5087:4;5056:10;:28;5067:16;5075:2;5079:3;5067:7;:16::i;:::-;5056:28;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4984:115;;:::o;14933:315::-;15156:1;15139:9;:13;15149:2;15139:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;15187:2;15168:7;:16;15176:7;15168:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15232:7;15228:2;15207:33;;15224:1;15207:33;;;;;;;;;;;;14933:315;;:::o;14202:136::-;14302:28;14312:4;14318:2;14322:7;14302:9;:28::i;:::-;14202:136;;;;:::o;15256:283::-;15309:13;15325:16;15333:7;15325;:16::i;:::-;15309:32;;15380:29;15397:1;15401:7;15380:8;:29::i;:::-;15442:1;15422:9;:16;15432:5;15422:16;;;;;;;;;;;;;;;;:21;;;;;;;:::i;:::-;;;;;;;;15461:7;:16;15469:7;15461:16;;;;;;;;;;;;15454:23;;;;;;;;;;;15523:7;15519:1;15495:36;;15504:5;15495:36;;;;;;;;;;;;15298:241;15256:283;:::o;5973:347::-;6060:4;6130:6;6096:5;6084:28;;;6121:4;6084:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;6076:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;6208:5;6196:27;;;6224:8;6234:6;6196:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6188:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;6308:4;6301:11;;5973:347;;;;;:::o;4106:123::-;4165:7;4214:1;4217;4203:16;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4193:27;;;;;;4186:35;;4106:123;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:410:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:112;;;280:79;;:::i;:::-;249:112;370:41;404:6;399:3;394;370:41;:::i;:::-;90:327;7:410;;;;;:::o;423:419::-;511:5;536:65;552:48;593:6;552:48;:::i;:::-;536:65;:::i;:::-;527:74;;624:6;617:5;610:21;662:4;655:5;651:16;700:3;691:6;686:3;682:16;679:25;676:112;;;707:79;;:::i;:::-;676:112;797:39;829:6;824:3;819;797:39;:::i;:::-;517:325;423:419;;;;;:::o;848:412::-;926:5;951:66;967:49;1009:6;967:49;:::i;:::-;951:66;:::i;:::-;942:75;;1040:6;1033:5;1026:21;1078:4;1071:5;1067:16;1116:3;1107:6;1102:3;1098:16;1095:25;1092:112;;;1123:79;;:::i;:::-;1092:112;1213:41;1247:6;1242:3;1237;1213:41;:::i;:::-;932:328;848:412;;;;;:::o;1266:421::-;1355:5;1380:66;1396:49;1438:6;1396:49;:::i;:::-;1380:66;:::i;:::-;1371:75;;1469:6;1462:5;1455:21;1507:4;1500:5;1496:16;1545:3;1536:6;1531:3;1527:16;1524:25;1521:112;;;1552:79;;:::i;:::-;1521:112;1642:39;1674:6;1669:3;1664;1642:39;:::i;:::-;1361:326;1266:421;;;;;:::o;1693:139::-;1739:5;1777:6;1764:20;1755:29;;1793:33;1820:5;1793:33;:::i;:::-;1693:139;;;;:::o;1838:133::-;1881:5;1919:6;1906:20;1897:29;;1935:30;1959:5;1935:30;:::i;:::-;1838:133;;;;:::o;1977:137::-;2031:5;2062:6;2056:13;2047:22;;2078:30;2102:5;2078:30;:::i;:::-;1977:137;;;;:::o;2120:::-;2165:5;2203:6;2190:20;2181:29;;2219:32;2245:5;2219:32;:::i;:::-;2120:137;;;;:::o;2276:338::-;2331:5;2380:3;2373:4;2365:6;2361:17;2357:27;2347:122;;2388:79;;:::i;:::-;2347:122;2505:6;2492:20;2530:78;2604:3;2596:6;2589:4;2581:6;2577:17;2530:78;:::i;:::-;2521:87;;2337:277;2276:338;;;;:::o;2633:353::-;2699:5;2748:3;2741:4;2733:6;2729:17;2725:27;2715:122;;2756:79;;:::i;:::-;2715:122;2866:6;2860:13;2891:89;2976:3;2968:6;2961:4;2953:6;2949:17;2891:89;:::i;:::-;2882:98;;2705:281;2633:353;;;;:::o;2992:157::-;3047:5;3085:6;3072:20;3063:29;;3101:42;3137:5;3101:42;:::i;:::-;2992:157;;;;:::o;3169:340::-;3225:5;3274:3;3267:4;3259:6;3255:17;3251:27;3241:122;;3282:79;;:::i;:::-;3241:122;3399:6;3386:20;3424:79;3499:3;3491:6;3484:4;3476:6;3472:17;3424:79;:::i;:::-;3415:88;;3231:278;3169:340;;;;:::o;3529:355::-;3596:5;3645:3;3638:4;3630:6;3626:17;3622:27;3612:122;;3653:79;;:::i;:::-;3612:122;3763:6;3757:13;3788:90;3874:3;3866:6;3859:4;3851:6;3847:17;3788:90;:::i;:::-;3779:99;;3602:282;3529:355;;;;:::o;3890:139::-;3936:5;3974:6;3961:20;3952:29;;3990:33;4017:5;3990:33;:::i;:::-;3890:139;;;;:::o;4035:143::-;4092:5;4123:6;4117:13;4108:22;;4139:33;4166:5;4139:33;:::i;:::-;4035:143;;;;:::o;4184:329::-;4243:6;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4184:329;;;;:::o;4519:474::-;4587:6;4595;4644:2;4632:9;4623:7;4619:23;4615:32;4612:119;;;4650:79;;:::i;:::-;4612:119;4770:1;4795:53;4840:7;4831:6;4820:9;4816:22;4795:53;:::i;:::-;4785:63;;4741:117;4897:2;4923:53;4968:7;4959:6;4948:9;4944:22;4923:53;:::i;:::-;4913:63;;4868:118;4519:474;;;;;:::o;4999:619::-;5076:6;5084;5092;5141:2;5129:9;5120:7;5116:23;5112:32;5109:119;;;5147:79;;:::i;:::-;5109:119;5267:1;5292:53;5337:7;5328:6;5317:9;5313:22;5292:53;:::i;:::-;5282:63;;5238:117;5394:2;5420:53;5465:7;5456:6;5445:9;5441:22;5420:53;:::i;:::-;5410:63;;5365:118;5522:2;5548:53;5593:7;5584:6;5573:9;5569:22;5548:53;:::i;:::-;5538:63;;5493:118;4999:619;;;;;:::o;5624:943::-;5719:6;5727;5735;5743;5792:3;5780:9;5771:7;5767:23;5763:33;5760:120;;;5799:79;;:::i;:::-;5760:120;5919:1;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5890:117;6046:2;6072:53;6117:7;6108:6;6097:9;6093:22;6072:53;:::i;:::-;6062:63;;6017:118;6174:2;6200:53;6245:7;6236:6;6225:9;6221:22;6200:53;:::i;:::-;6190:63;;6145:118;6330:2;6319:9;6315:18;6302:32;6361:18;6353:6;6350:30;6347:117;;;6383:79;;:::i;:::-;6347:117;6488:62;6542:7;6533:6;6522:9;6518:22;6488:62;:::i;:::-;6478:72;;6273:287;5624:943;;;;;;;:::o;6573:468::-;6638:6;6646;6695:2;6683:9;6674:7;6670:23;6666:32;6663:119;;;6701:79;;:::i;:::-;6663:119;6821:1;6846:53;6891:7;6882:6;6871:9;6867:22;6846:53;:::i;:::-;6836:63;;6792:117;6948:2;6974:50;7016:7;7007:6;6996:9;6992:22;6974:50;:::i;:::-;6964:60;;6919:115;6573:468;;;;;:::o;7047:474::-;7115:6;7123;7172:2;7160:9;7151:7;7147:23;7143:32;7140:119;;;7178:79;;:::i;:::-;7140:119;7298:1;7323:53;7368:7;7359:6;7348:9;7344:22;7323:53;:::i;:::-;7313:63;;7269:117;7425:2;7451:53;7496:7;7487:6;7476:9;7472:22;7451:53;:::i;:::-;7441:63;;7396:118;7047:474;;;;;:::o;7527:345::-;7594:6;7643:2;7631:9;7622:7;7618:23;7614:32;7611:119;;;7649:79;;:::i;:::-;7611:119;7769:1;7794:61;7847:7;7838:6;7827:9;7823:22;7794:61;:::i;:::-;7784:71;;7740:125;7527:345;;;;:::o;7878:327::-;7936:6;7985:2;7973:9;7964:7;7960:23;7956:32;7953:119;;;7991:79;;:::i;:::-;7953:119;8111:1;8136:52;8180:7;8171:6;8160:9;8156:22;8136:52;:::i;:::-;8126:62;;8082:116;7878:327;;;;:::o;8211:522::-;8290:6;8339:2;8327:9;8318:7;8314:23;8310:32;8307:119;;;8345:79;;:::i;:::-;8307:119;8486:1;8475:9;8471:17;8465:24;8516:18;8508:6;8505:30;8502:117;;;8538:79;;:::i;:::-;8502:117;8643:73;8708:7;8699:6;8688:9;8684:22;8643:73;:::i;:::-;8633:83;;8436:290;8211:522;;;;:::o;8739:492::-;8816:6;8824;8873:2;8861:9;8852:7;8848:23;8844:32;8841:119;;;8879:79;;:::i;:::-;8841:119;8999:1;9024:62;9078:7;9069:6;9058:9;9054:22;9024:62;:::i;:::-;9014:72;;8970:126;9135:2;9161:53;9206:7;9197:6;9186:9;9182:22;9161:53;:::i;:::-;9151:63;;9106:118;8739:492;;;;;:::o;9237:524::-;9317:6;9366:2;9354:9;9345:7;9341:23;9337:32;9334:119;;;9372:79;;:::i;:::-;9334:119;9513:1;9502:9;9498:17;9492:24;9543:18;9535:6;9532:30;9529:117;;;9565:79;;:::i;:::-;9529:117;9670:74;9736:7;9727:6;9716:9;9712:22;9670:74;:::i;:::-;9660:84;;9463:291;9237:524;;;;:::o;9767:834::-;9855:6;9863;9912:2;9900:9;9891:7;9887:23;9883:32;9880:119;;;9918:79;;:::i;:::-;9880:119;10066:1;10055:9;10051:17;10038:31;10096:18;10088:6;10085:30;10082:117;;;10118:79;;:::i;:::-;10082:117;10223:63;10278:7;10269:6;10258:9;10254:22;10223:63;:::i;:::-;10213:73;;10009:287;10363:2;10352:9;10348:18;10335:32;10394:18;10386:6;10383:30;10380:117;;;10416:79;;:::i;:::-;10380:117;10521:63;10576:7;10567:6;10556:9;10552:22;10521:63;:::i;:::-;10511:73;;10306:288;9767:834;;;;;:::o;10607:329::-;10666:6;10715:2;10703:9;10694:7;10690:23;10686:32;10683:119;;;10721:79;;:::i;:::-;10683:119;10841:1;10866:53;10911:7;10902:6;10891:9;10887:22;10866:53;:::i;:::-;10856:63;;10812:117;10607:329;;;;:::o;10942:351::-;11012:6;11061:2;11049:9;11040:7;11036:23;11032:32;11029:119;;;11067:79;;:::i;:::-;11029:119;11187:1;11212:64;11268:7;11259:6;11248:9;11244:22;11212:64;:::i;:::-;11202:74;;11158:128;10942:351;;;;:::o;11299:474::-;11367:6;11375;11424:2;11412:9;11403:7;11399:23;11395:32;11392:119;;;11430:79;;:::i;:::-;11392:119;11550:1;11575:53;11620:7;11611:6;11600:9;11596:22;11575:53;:::i;:::-;11565:63;;11521:117;11677:2;11703:53;11748:7;11739:6;11728:9;11724:22;11703:53;:::i;:::-;11693:63;;11648:118;11299:474;;;;;:::o;11779:::-;11847:6;11855;11904:2;11892:9;11883:7;11879:23;11875:32;11872:119;;;11910:79;;:::i;:::-;11872:119;12030:1;12055:53;12100:7;12091:6;12080:9;12076:22;12055:53;:::i;:::-;12045:63;;12001:117;12157:2;12183:53;12228:7;12219:6;12208:9;12204:22;12183:53;:::i;:::-;12173:63;;12128:118;11779:474;;;;;:::o;12259:179::-;12328:10;12349:46;12391:3;12383:6;12349:46;:::i;:::-;12427:4;12422:3;12418:14;12404:28;;12259:179;;;;:::o;12444:118::-;12531:24;12549:5;12531:24;:::i;:::-;12526:3;12519:37;12444:118;;:::o;12598:732::-;12717:3;12746:54;12794:5;12746:54;:::i;:::-;12816:86;12895:6;12890:3;12816:86;:::i;:::-;12809:93;;12926:56;12976:5;12926:56;:::i;:::-;13005:7;13036:1;13021:284;13046:6;13043:1;13040:13;13021:284;;;13122:6;13116:13;13149:63;13208:3;13193:13;13149:63;:::i;:::-;13142:70;;13235:60;13288:6;13235:60;:::i;:::-;13225:70;;13081:224;13068:1;13065;13061:9;13056:14;;13021:284;;;13025:14;13321:3;13314:10;;12722:608;;;12598:732;;;;:::o;13336:109::-;13417:21;13432:5;13417:21;:::i;:::-;13412:3;13405:34;13336:109;;:::o;13451:360::-;13537:3;13565:38;13597:5;13565:38;:::i;:::-;13619:70;13682:6;13677:3;13619:70;:::i;:::-;13612:77;;13698:52;13743:6;13738:3;13731:4;13724:5;13720:16;13698:52;:::i;:::-;13775:29;13797:6;13775:29;:::i;:::-;13770:3;13766:39;13759:46;;13541:270;13451:360;;;;:::o;13817:145::-;13911:44;13949:5;13911:44;:::i;:::-;13906:3;13899:57;13817:145;;:::o;13968:364::-;14056:3;14084:39;14117:5;14084:39;:::i;:::-;14139:71;14203:6;14198:3;14139:71;:::i;:::-;14132:78;;14219:52;14264:6;14259:3;14252:4;14245:5;14241:16;14219:52;:::i;:::-;14296:29;14318:6;14296:29;:::i;:::-;14291:3;14287:39;14280:46;;14060:272;13968:364;;;;:::o;14338:377::-;14444:3;14472:39;14505:5;14472:39;:::i;:::-;14527:89;14609:6;14604:3;14527:89;:::i;:::-;14520:96;;14625:52;14670:6;14665:3;14658:4;14651:5;14647:16;14625:52;:::i;:::-;14702:6;14697:3;14693:16;14686:23;;14448:267;14338:377;;;;:::o;14745:845::-;14848:3;14885:5;14879:12;14914:36;14940:9;14914:36;:::i;:::-;14966:89;15048:6;15043:3;14966:89;:::i;:::-;14959:96;;15086:1;15075:9;15071:17;15102:1;15097:137;;;;15248:1;15243:341;;;;15064:520;;15097:137;15181:4;15177:9;15166;15162:25;15157:3;15150:38;15217:6;15212:3;15208:16;15201:23;;15097:137;;15243:341;15310:38;15342:5;15310:38;:::i;:::-;15370:1;15384:154;15398:6;15395:1;15392:13;15384:154;;;15472:7;15466:14;15462:1;15457:3;15453:11;15446:35;15522:1;15513:7;15509:15;15498:26;;15420:4;15417:1;15413:12;15408:17;;15384:154;;;15567:6;15562:3;15558:16;15551:23;;15250:334;;15064:520;;14852:738;;14745:845;;;;:::o;15596:366::-;15738:3;15759:67;15823:2;15818:3;15759:67;:::i;:::-;15752:74;;15835:93;15924:3;15835:93;:::i;:::-;15953:2;15948:3;15944:12;15937:19;;15596:366;;;:::o;15968:::-;16110:3;16131:67;16195:2;16190:3;16131:67;:::i;:::-;16124:74;;16207:93;16296:3;16207:93;:::i;:::-;16325:2;16320:3;16316:12;16309:19;;15968:366;;;:::o;16340:::-;16482:3;16503:67;16567:2;16562:3;16503:67;:::i;:::-;16496:74;;16579:93;16668:3;16579:93;:::i;:::-;16697:2;16692:3;16688:12;16681:19;;16340:366;;;:::o;16712:::-;16854:3;16875:67;16939:2;16934:3;16875:67;:::i;:::-;16868:74;;16951:93;17040:3;16951:93;:::i;:::-;17069:2;17064:3;17060:12;17053:19;;16712:366;;;:::o;17084:::-;17226:3;17247:67;17311:2;17306:3;17247:67;:::i;:::-;17240:74;;17323:93;17412:3;17323:93;:::i;:::-;17441:2;17436:3;17432:12;17425:19;;17084:366;;;:::o;17456:::-;17598:3;17619:67;17683:2;17678:3;17619:67;:::i;:::-;17612:74;;17695:93;17784:3;17695:93;:::i;:::-;17813:2;17808:3;17804:12;17797:19;;17456:366;;;:::o;17828:::-;17970:3;17991:67;18055:2;18050:3;17991:67;:::i;:::-;17984:74;;18067:93;18156:3;18067:93;:::i;:::-;18185:2;18180:3;18176:12;18169:19;;17828:366;;;:::o;18200:::-;18342:3;18363:67;18427:2;18422:3;18363:67;:::i;:::-;18356:74;;18439:93;18528:3;18439:93;:::i;:::-;18557:2;18552:3;18548:12;18541:19;;18200:366;;;:::o;18572:::-;18714:3;18735:67;18799:2;18794:3;18735:67;:::i;:::-;18728:74;;18811:93;18900:3;18811:93;:::i;:::-;18929:2;18924:3;18920:12;18913:19;;18572:366;;;:::o;18944:::-;19086:3;19107:67;19171:2;19166:3;19107:67;:::i;:::-;19100:74;;19183:93;19272:3;19183:93;:::i;:::-;19301:2;19296:3;19292:12;19285:19;;18944:366;;;:::o;19316:::-;19458:3;19479:67;19543:2;19538:3;19479:67;:::i;:::-;19472:74;;19555:93;19644:3;19555:93;:::i;:::-;19673:2;19668:3;19664:12;19657:19;;19316:366;;;:::o;19688:::-;19830:3;19851:67;19915:2;19910:3;19851:67;:::i;:::-;19844:74;;19927:93;20016:3;19927:93;:::i;:::-;20045:2;20040:3;20036:12;20029:19;;19688:366;;;:::o;20060:::-;20202:3;20223:67;20287:2;20282:3;20223:67;:::i;:::-;20216:74;;20299:93;20388:3;20299:93;:::i;:::-;20417:2;20412:3;20408:12;20401:19;;20060:366;;;:::o;20432:::-;20574:3;20595:67;20659:2;20654:3;20595:67;:::i;:::-;20588:74;;20671:93;20760:3;20671:93;:::i;:::-;20789:2;20784:3;20780:12;20773:19;;20432:366;;;:::o;20804:::-;20946:3;20967:67;21031:2;21026:3;20967:67;:::i;:::-;20960:74;;21043:93;21132:3;21043:93;:::i;:::-;21161:2;21156:3;21152:12;21145:19;;20804:366;;;:::o;21176:400::-;21336:3;21357:84;21439:1;21434:3;21357:84;:::i;:::-;21350:91;;21450:93;21539:3;21450:93;:::i;:::-;21568:1;21563:3;21559:11;21552:18;;21176:400;;;:::o;21582:366::-;21724:3;21745:67;21809:2;21804:3;21745:67;:::i;:::-;21738:74;;21821:93;21910:3;21821:93;:::i;:::-;21939:2;21934:3;21930:12;21923:19;;21582:366;;;:::o;21954:::-;22096:3;22117:67;22181:2;22176:3;22117:67;:::i;:::-;22110:74;;22193:93;22282:3;22193:93;:::i;:::-;22311:2;22306:3;22302:12;22295:19;;21954:366;;;:::o;22326:::-;22468:3;22489:67;22553:2;22548:3;22489:67;:::i;:::-;22482:74;;22565:93;22654:3;22565:93;:::i;:::-;22683:2;22678:3;22674:12;22667:19;;22326:366;;;:::o;22698:::-;22840:3;22861:67;22925:2;22920:3;22861:67;:::i;:::-;22854:74;;22937:93;23026:3;22937:93;:::i;:::-;23055:2;23050:3;23046:12;23039:19;;22698:366;;;:::o;23070:::-;23212:3;23233:67;23297:2;23292:3;23233:67;:::i;:::-;23226:74;;23309:93;23398:3;23309:93;:::i;:::-;23427:2;23422:3;23418:12;23411:19;;23070:366;;;:::o;23442:::-;23584:3;23605:67;23669:2;23664:3;23605:67;:::i;:::-;23598:74;;23681:93;23770:3;23681:93;:::i;:::-;23799:2;23794:3;23790:12;23783:19;;23442:366;;;:::o;23814:::-;23956:3;23977:67;24041:2;24036:3;23977:67;:::i;:::-;23970:74;;24053:93;24142:3;24053:93;:::i;:::-;24171:2;24166:3;24162:12;24155:19;;23814:366;;;:::o;24186:::-;24328:3;24349:67;24413:2;24408:3;24349:67;:::i;:::-;24342:74;;24425:93;24514:3;24425:93;:::i;:::-;24543:2;24538:3;24534:12;24527:19;;24186:366;;;:::o;24558:::-;24700:3;24721:67;24785:2;24780:3;24721:67;:::i;:::-;24714:74;;24797:93;24886:3;24797:93;:::i;:::-;24915:2;24910:3;24906:12;24899:19;;24558:366;;;:::o;24930:::-;25072:3;25093:67;25157:2;25152:3;25093:67;:::i;:::-;25086:74;;25169:93;25258:3;25169:93;:::i;:::-;25287:2;25282:3;25278:12;25271:19;;24930:366;;;:::o;25302:::-;25444:3;25465:67;25529:2;25524:3;25465:67;:::i;:::-;25458:74;;25541:93;25630:3;25541:93;:::i;:::-;25659:2;25654:3;25650:12;25643:19;;25302:366;;;:::o;25674:108::-;25751:24;25769:5;25751:24;:::i;:::-;25746:3;25739:37;25674:108;;:::o;25788:118::-;25875:24;25893:5;25875:24;:::i;:::-;25870:3;25863:37;25788:118;;:::o;25912:589::-;26137:3;26159:95;26250:3;26241:6;26159:95;:::i;:::-;26152:102;;26271:95;26362:3;26353:6;26271:95;:::i;:::-;26264:102;;26383:92;26471:3;26462:6;26383:92;:::i;:::-;26376:99;;26492:3;26485:10;;25912:589;;;;;;:::o;26507:695::-;26785:3;26807:95;26898:3;26889:6;26807:95;:::i;:::-;26800:102;;26919:148;27063:3;26919:148;:::i;:::-;26912:155;;27084:92;27172:3;27163:6;27084:92;:::i;:::-;27077:99;;27193:3;27186:10;;26507:695;;;;;:::o;27208:222::-;27301:4;27339:2;27328:9;27324:18;27316:26;;27352:71;27420:1;27409:9;27405:17;27396:6;27352:71;:::i;:::-;27208:222;;;;:::o;27436:346::-;27564:4;27602:2;27591:9;27587:18;27579:26;;27615:71;27683:1;27672:9;27668:17;27659:6;27615:71;:::i;:::-;27696:79;27771:2;27760:9;27756:18;27747:6;27696:79;:::i;:::-;27436:346;;;;;:::o;27788:332::-;27909:4;27947:2;27936:9;27932:18;27924:26;;27960:71;28028:1;28017:9;28013:17;28004:6;27960:71;:::i;:::-;28041:72;28109:2;28098:9;28094:18;28085:6;28041:72;:::i;:::-;27788:332;;;;;:::o;28126:373::-;28269:4;28307:2;28296:9;28292:18;28284:26;;28356:9;28350:4;28346:20;28342:1;28331:9;28327:17;28320:47;28384:108;28487:4;28478:6;28384:108;:::i;:::-;28376:116;;28126:373;;;;:::o;28505:210::-;28592:4;28630:2;28619:9;28615:18;28607:26;;28643:65;28705:1;28694:9;28690:17;28681:6;28643:65;:::i;:::-;28505:210;;;;:::o;28721:309::-;28832:4;28870:2;28859:9;28855:18;28847:26;;28919:9;28913:4;28909:20;28905:1;28894:9;28890:17;28883:47;28947:76;29018:4;29009:6;28947:76;:::i;:::-;28939:84;;28721:309;;;;:::o;29036:313::-;29149:4;29187:2;29176:9;29172:18;29164:26;;29236:9;29230:4;29226:20;29222:1;29211:9;29207:17;29200:47;29264:78;29337:4;29328:6;29264:78;:::i;:::-;29256:86;;29036:313;;;;:::o;29355:419::-;29521:4;29559:2;29548:9;29544:18;29536:26;;29608:9;29602:4;29598:20;29594:1;29583:9;29579:17;29572:47;29636:131;29762:4;29636:131;:::i;:::-;29628:139;;29355:419;;;:::o;29780:::-;29946:4;29984:2;29973:9;29969:18;29961:26;;30033:9;30027:4;30023:20;30019:1;30008:9;30004:17;29997:47;30061:131;30187:4;30061:131;:::i;:::-;30053:139;;29780:419;;;:::o;30205:::-;30371:4;30409:2;30398:9;30394:18;30386:26;;30458:9;30452:4;30448:20;30444:1;30433:9;30429:17;30422:47;30486:131;30612:4;30486:131;:::i;:::-;30478:139;;30205:419;;;:::o;30630:::-;30796:4;30834:2;30823:9;30819:18;30811:26;;30883:9;30877:4;30873:20;30869:1;30858:9;30854:17;30847:47;30911:131;31037:4;30911:131;:::i;:::-;30903:139;;30630:419;;;:::o;31055:::-;31221:4;31259:2;31248:9;31244:18;31236:26;;31308:9;31302:4;31298:20;31294:1;31283:9;31279:17;31272:47;31336:131;31462:4;31336:131;:::i;:::-;31328:139;;31055:419;;;:::o;31480:::-;31646:4;31684:2;31673:9;31669:18;31661:26;;31733:9;31727:4;31723:20;31719:1;31708:9;31704:17;31697:47;31761:131;31887:4;31761:131;:::i;:::-;31753:139;;31480:419;;;:::o;31905:::-;32071:4;32109:2;32098:9;32094:18;32086:26;;32158:9;32152:4;32148:20;32144:1;32133:9;32129:17;32122:47;32186:131;32312:4;32186:131;:::i;:::-;32178:139;;31905:419;;;:::o;32330:::-;32496:4;32534:2;32523:9;32519:18;32511:26;;32583:9;32577:4;32573:20;32569:1;32558:9;32554:17;32547:47;32611:131;32737:4;32611:131;:::i;:::-;32603:139;;32330:419;;;:::o;32755:::-;32921:4;32959:2;32948:9;32944:18;32936:26;;33008:9;33002:4;32998:20;32994:1;32983:9;32979:17;32972:47;33036:131;33162:4;33036:131;:::i;:::-;33028:139;;32755:419;;;:::o;33180:::-;33346:4;33384:2;33373:9;33369:18;33361:26;;33433:9;33427:4;33423:20;33419:1;33408:9;33404:17;33397:47;33461:131;33587:4;33461:131;:::i;:::-;33453:139;;33180:419;;;:::o;33605:::-;33771:4;33809:2;33798:9;33794:18;33786:26;;33858:9;33852:4;33848:20;33844:1;33833:9;33829:17;33822:47;33886:131;34012:4;33886:131;:::i;:::-;33878:139;;33605:419;;;:::o;34030:::-;34196:4;34234:2;34223:9;34219:18;34211:26;;34283:9;34277:4;34273:20;34269:1;34258:9;34254:17;34247:47;34311:131;34437:4;34311:131;:::i;:::-;34303:139;;34030:419;;;:::o;34455:::-;34621:4;34659:2;34648:9;34644:18;34636:26;;34708:9;34702:4;34698:20;34694:1;34683:9;34679:17;34672:47;34736:131;34862:4;34736:131;:::i;:::-;34728:139;;34455:419;;;:::o;34880:::-;35046:4;35084:2;35073:9;35069:18;35061:26;;35133:9;35127:4;35123:20;35119:1;35108:9;35104:17;35097:47;35161:131;35287:4;35161:131;:::i;:::-;35153:139;;34880:419;;;:::o;35305:::-;35471:4;35509:2;35498:9;35494:18;35486:26;;35558:9;35552:4;35548:20;35544:1;35533:9;35529:17;35522:47;35586:131;35712:4;35586:131;:::i;:::-;35578:139;;35305:419;;;:::o;35730:::-;35896:4;35934:2;35923:9;35919:18;35911:26;;35983:9;35977:4;35973:20;35969:1;35958:9;35954:17;35947:47;36011:131;36137:4;36011:131;:::i;:::-;36003:139;;35730:419;;;:::o;36155:::-;36321:4;36359:2;36348:9;36344:18;36336:26;;36408:9;36402:4;36398:20;36394:1;36383:9;36379:17;36372:47;36436:131;36562:4;36436:131;:::i;:::-;36428:139;;36155:419;;;:::o;36580:::-;36746:4;36784:2;36773:9;36769:18;36761:26;;36833:9;36827:4;36823:20;36819:1;36808:9;36804:17;36797:47;36861:131;36987:4;36861:131;:::i;:::-;36853:139;;36580:419;;;:::o;37005:::-;37171:4;37209:2;37198:9;37194:18;37186:26;;37258:9;37252:4;37248:20;37244:1;37233:9;37229:17;37222:47;37286:131;37412:4;37286:131;:::i;:::-;37278:139;;37005:419;;;:::o;37430:::-;37596:4;37634:2;37623:9;37619:18;37611:26;;37683:9;37677:4;37673:20;37669:1;37658:9;37654:17;37647:47;37711:131;37837:4;37711:131;:::i;:::-;37703:139;;37430:419;;;:::o;37855:::-;38021:4;38059:2;38048:9;38044:18;38036:26;;38108:9;38102:4;38098:20;38094:1;38083:9;38079:17;38072:47;38136:131;38262:4;38136:131;:::i;:::-;38128:139;;37855:419;;;:::o;38280:::-;38446:4;38484:2;38473:9;38469:18;38461:26;;38533:9;38527:4;38523:20;38519:1;38508:9;38504:17;38497:47;38561:131;38687:4;38561:131;:::i;:::-;38553:139;;38280:419;;;:::o;38705:::-;38871:4;38909:2;38898:9;38894:18;38886:26;;38958:9;38952:4;38948:20;38944:1;38933:9;38929:17;38922:47;38986:131;39112:4;38986:131;:::i;:::-;38978:139;;38705:419;;;:::o;39130:::-;39296:4;39334:2;39323:9;39319:18;39311:26;;39383:9;39377:4;39373:20;39369:1;39358:9;39354:17;39347:47;39411:131;39537:4;39411:131;:::i;:::-;39403:139;;39130:419;;;:::o;39555:::-;39721:4;39759:2;39748:9;39744:18;39736:26;;39808:9;39802:4;39798:20;39794:1;39783:9;39779:17;39772:47;39836:131;39962:4;39836:131;:::i;:::-;39828:139;;39555:419;;;:::o;39980:::-;40146:4;40184:2;40173:9;40169:18;40161:26;;40233:9;40227:4;40223:20;40219:1;40208:9;40204:17;40197:47;40261:131;40387:4;40261:131;:::i;:::-;40253:139;;39980:419;;;:::o;40405:222::-;40498:4;40536:2;40525:9;40521:18;40513:26;;40549:71;40617:1;40606:9;40602:17;40593:6;40549:71;:::i;:::-;40405:222;;;;:::o;40633:541::-;40804:4;40842:3;40831:9;40827:19;40819:27;;40856:71;40924:1;40913:9;40909:17;40900:6;40856:71;:::i;:::-;40937:72;41005:2;40994:9;40990:18;40981:6;40937:72;:::i;:::-;41019;41087:2;41076:9;41072:18;41063:6;41019:72;:::i;:::-;41101:66;41163:2;41152:9;41148:18;41139:6;41101:66;:::i;:::-;40633:541;;;;;;;:::o;41180:129::-;41214:6;41241:20;;:::i;:::-;41231:30;;41270:33;41298:4;41290:6;41270:33;:::i;:::-;41180:129;;;:::o;41315:75::-;41348:6;41381:2;41375:9;41365:19;;41315:75;:::o;41396:307::-;41457:4;41547:18;41539:6;41536:30;41533:56;;;41569:18;;:::i;:::-;41533:56;41607:29;41629:6;41607:29;:::i;:::-;41599:37;;41691:4;41685;41681:15;41673:23;;41396:307;;;:::o;41709:308::-;41771:4;41861:18;41853:6;41850:30;41847:56;;;41883:18;;:::i;:::-;41847:56;41921:29;41943:6;41921:29;:::i;:::-;41913:37;;42005:4;41999;41995:15;41987:23;;41709:308;;;:::o;42023:132::-;42090:4;42113:3;42105:11;;42143:4;42138:3;42134:14;42126:22;;42023:132;;;:::o;42161:141::-;42210:4;42233:3;42225:11;;42256:3;42253:1;42246:14;42290:4;42287:1;42277:18;42269:26;;42161:141;;;:::o;42308:114::-;42375:6;42409:5;42403:12;42393:22;;42308:114;;;:::o;42428:98::-;42479:6;42513:5;42507:12;42497:22;;42428:98;;;:::o;42532:99::-;42584:6;42618:5;42612:12;42602:22;;42532:99;;;:::o;42637:113::-;42707:4;42739;42734:3;42730:14;42722:22;;42637:113;;;:::o;42756:184::-;42855:11;42889:6;42884:3;42877:19;42929:4;42924:3;42920:14;42905:29;;42756:184;;;;:::o;42946:168::-;43029:11;43063:6;43058:3;43051:19;43103:4;43098:3;43094:14;43079:29;;42946:168;;;;:::o;43120:169::-;43204:11;43238:6;43233:3;43226:19;43278:4;43273:3;43269:14;43254:29;;43120:169;;;;:::o;43295:148::-;43397:11;43434:3;43419:18;;43295:148;;;;:::o;43449:305::-;43489:3;43508:20;43526:1;43508:20;:::i;:::-;43503:25;;43542:20;43560:1;43542:20;:::i;:::-;43537:25;;43696:1;43628:66;43624:74;43621:1;43618:81;43615:107;;;43702:18;;:::i;:::-;43615:107;43746:1;43743;43739:9;43732:16;;43449:305;;;;:::o;43760:191::-;43800:4;43820:20;43838:1;43820:20;:::i;:::-;43815:25;;43854:20;43872:1;43854:20;:::i;:::-;43849:25;;43893:1;43890;43887:8;43884:34;;;43898:18;;:::i;:::-;43884:34;43943:1;43940;43936:9;43928:17;;43760:191;;;;:::o;43957:96::-;43994:7;44023:24;44041:5;44023:24;:::i;:::-;44012:35;;43957:96;;;:::o;44059:90::-;44093:7;44136:5;44129:13;44122:21;44111:32;;44059:90;;;:::o;44155:149::-;44191:7;44231:66;44224:5;44220:78;44209:89;;44155:149;;;:::o;44310:129::-;44356:7;44385:5;44374:16;;44391:42;44427:5;44391:42;:::i;:::-;44310:129;;;:::o;44445:126::-;44482:7;44522:42;44515:5;44511:54;44500:65;;44445:126;;;:::o;44577:77::-;44614:7;44643:5;44632:16;;44577:77;;;:::o;44660:129::-;44717:9;44750:33;44777:5;44750:33;:::i;:::-;44737:46;;44660:129;;;:::o;44795:154::-;44879:6;44874:3;44869;44856:30;44941:1;44932:6;44927:3;44923:16;44916:27;44795:154;;;:::o;44955:307::-;45023:1;45033:113;45047:6;45044:1;45041:13;45033:113;;;45132:1;45127:3;45123:11;45117:18;45113:1;45108:3;45104:11;45097:39;45069:2;45066:1;45062:10;45057:15;;45033:113;;;45164:6;45161:1;45158:13;45155:101;;;45244:1;45235:6;45230:3;45226:16;45219:27;45155:101;45004:258;44955:307;;;:::o;45268:320::-;45312:6;45349:1;45343:4;45339:12;45329:22;;45396:1;45390:4;45386:12;45417:18;45407:81;;45473:4;45465:6;45461:17;45451:27;;45407:81;45535:2;45527:6;45524:14;45504:18;45501:38;45498:84;;;45554:18;;:::i;:::-;45498:84;45319:269;45268:320;;;:::o;45594:281::-;45677:27;45699:4;45677:27;:::i;:::-;45669:6;45665:40;45807:6;45795:10;45792:22;45771:18;45759:10;45756:34;45753:62;45750:88;;;45818:18;;:::i;:::-;45750:88;45858:10;45854:2;45847:22;45637:238;45594:281;;:::o;45881:233::-;45920:3;45943:24;45961:5;45943:24;:::i;:::-;45934:33;;45989:66;45982:5;45979:77;45976:103;;;46059:18;;:::i;:::-;45976:103;46106:1;46099:5;46095:13;46088:20;;45881:233;;;:::o;46120:180::-;46168:77;46165:1;46158:88;46265:4;46262:1;46255:15;46289:4;46286:1;46279:15;46306:180;46354:77;46351:1;46344:88;46451:4;46448:1;46441:15;46475:4;46472:1;46465:15;46492:180;46540:77;46537:1;46530:88;46637:4;46634:1;46627:15;46661:4;46658:1;46651:15;46678:180;46726:77;46723:1;46716:88;46823:4;46820:1;46813:15;46847:4;46844:1;46837:15;46864:180;46912:77;46909:1;46902:88;47009:4;47006:1;46999:15;47033:4;47030:1;47023:15;47050:117;47159:1;47156;47149:12;47173:117;47282:1;47279;47272:12;47296:117;47405:1;47402;47395:12;47419:117;47528:1;47525;47518:12;47542:102;47583:6;47634:2;47630:7;47625:2;47618:5;47614:14;47610:28;47600:38;;47542:102;;;:::o;47650:239::-;47790:34;47786:1;47778:6;47774:14;47767:58;47859:22;47854:2;47846:6;47842:15;47835:47;47650:239;:::o;47895:248::-;48035:34;48031:1;48023:6;48019:14;48012:58;48104:31;48099:2;48091:6;48087:15;48080:56;47895:248;:::o;48149:233::-;48289:34;48285:1;48277:6;48273:14;48266:58;48358:16;48353:2;48345:6;48341:15;48334:41;48149:233;:::o;48388:::-;48528:34;48524:1;48516:6;48512:14;48505:58;48597:16;48592:2;48584:6;48580:15;48573:41;48388:233;:::o;48627:223::-;48767:34;48763:1;48755:6;48751:14;48744:58;48836:6;48831:2;48823:6;48819:15;48812:31;48627:223;:::o;48856:241::-;48996:34;48992:1;48984:6;48980:14;48973:58;49065:24;49060:2;49052:6;49048:15;49041:49;48856:241;:::o;49103:231::-;49243:34;49239:1;49231:6;49227:14;49220:58;49312:14;49307:2;49299:6;49295:15;49288:39;49103:231;:::o;49340:229::-;49480:34;49476:1;49468:6;49464:14;49457:58;49549:12;49544:2;49536:6;49532:15;49525:37;49340:229;:::o;49575:230::-;49715:34;49711:1;49703:6;49699:14;49692:58;49784:13;49779:2;49771:6;49767:15;49760:38;49575:230;:::o;49811:232::-;49951:34;49947:1;49939:6;49935:14;49928:58;50020:15;50015:2;50007:6;50003:15;49996:40;49811:232;:::o;50049:297::-;50189:34;50185:1;50177:6;50173:14;50166:58;50258:34;50253:2;50245:6;50241:15;50234:59;50327:11;50322:2;50314:6;50310:15;50303:36;50049:297;:::o;50352:234::-;50492:34;50488:1;50480:6;50476:14;50469:58;50561:17;50556:2;50548:6;50544:15;50537:42;50352:234;:::o;50592:239::-;50732:34;50728:1;50720:6;50716:14;50709:58;50801:22;50796:2;50788:6;50784:15;50777:47;50592:239;:::o;50837:235::-;50977:34;50973:1;50965:6;50961:14;50954:58;51046:18;51041:2;51033:6;51029:15;51022:43;50837:235;:::o;51078:176::-;51218:28;51214:1;51206:6;51202:14;51195:52;51078:176;:::o;51260:157::-;51400:9;51396:1;51388:6;51384:14;51377:33;51260:157;:::o;51423:232::-;51563:34;51559:1;51551:6;51547:14;51540:58;51632:15;51627:2;51619:6;51615:15;51608:40;51423:232;:::o;51661:231::-;51801:34;51797:1;51789:6;51785:14;51778:58;51870:14;51865:2;51857:6;51853:15;51846:39;51661:231;:::o;51898:236::-;52038:34;52034:1;52026:6;52022:14;52015:58;52107:19;52102:2;52094:6;52090:15;52083:44;51898:236;:::o;52140:180::-;52280:32;52276:1;52268:6;52264:14;52257:56;52140:180;:::o;52326:::-;52466:32;52462:1;52454:6;52450:14;52443:56;52326:180;:::o;52512:177::-;52652:29;52648:1;52640:6;52636:14;52629:53;52512:177;:::o;52695:236::-;52835:34;52831:1;52823:6;52819:14;52812:58;52904:19;52899:2;52891:6;52887:15;52880:44;52695:236;:::o;52937:232::-;53077:34;53073:1;53065:6;53061:14;53054:58;53146:15;53141:2;53133:6;53129:15;53122:40;52937:232;:::o;53175:225::-;53315:34;53311:1;53303:6;53299:14;53292:58;53384:8;53379:2;53371:6;53367:15;53360:33;53175:225;:::o;53406:228::-;53546:34;53542:1;53534:6;53530:14;53523:58;53615:11;53610:2;53602:6;53598:15;53591:36;53406:228;:::o;53640:223::-;53780:34;53776:1;53768:6;53764:14;53757:58;53849:6;53844:2;53836:6;53832:15;53825:31;53640:223;:::o;53869:114::-;53951:1;53944:5;53941:12;53931:46;;53957:18;;:::i;:::-;53931:46;53869:114;:::o;53989:122::-;54062:24;54080:5;54062:24;:::i;:::-;54055:5;54052:35;54042:63;;54101:1;54098;54091:12;54042:63;53989:122;:::o;54117:116::-;54187:21;54202:5;54187:21;:::i;:::-;54180:5;54177:32;54167:60;;54223:1;54220;54213:12;54167:60;54117:116;:::o;54239:120::-;54311:23;54328:5;54311:23;:::i;:::-;54304:5;54301:34;54291:62;;54349:1;54346;54339:12;54291:62;54239:120;:::o;54365:108::-;54447:1;54440:5;54437:12;54427:40;;54463:1;54460;54453:12;54427:40;54365:108;:::o;54479:122::-;54552:24;54570:5;54552:24;:::i;:::-;54545:5;54542:35;54532:63;;54591:1;54588;54581:12;54532:63;54479:122;:::o

Swarm Source

ipfs://87f26c8e708a9a7727ff0ecea85dfb6bd2d11816710d5050188911485eadc4c0
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.