Contract 0xb5f5af1087a8da62a23b08c00c6ec9af21f397a1 8

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x6a687dcb9d23e0299a148595064c92a388e2452af304313347647bf0ba467557Point_buy172965532021-09-19 11:32:029 secs ago0x7fbb631ada52c00b676dc663035ac9852b60adba IN  Rarity: Attributes0 FTM0.01419305456
0x5cdb2d406e889cb939e851899758ea9748f8d1c7d3367d7cd34e0fafee1b422bPoint_buy172965522021-09-19 11:32:029 secs ago0x015d247b967c9098d33a6bea4b199ff8bd040a5b IN  Rarity: Attributes0 FTM0.014139362937
0xc5d441bc50fa00bcebe0effd1e32495d30e34584b01757f035da69310a2d4a7ePoint_buy172965512021-09-19 11:32:0110 secs ago0x269066bc039cd42529b1f9124006531a65da72ce IN  Rarity: Attributes0 FTM0.014139362937
0x9da28b456e2a25983427f2639ba807958ec064f3dae0fa165b0d1e0fcefc2621Point_buy172965492021-09-19 11:31:5912 secs ago0xddd0bb228f65cacb64bacf829725b3e97bcbac62 IN  Rarity: Attributes0 FTM0.01418659799
0xc4e5cb9b2508639d21e8ad72aef5a8fbfee0436730a8c1f5a042244c4cc6c310Point_buy172965492021-09-19 11:31:5912 secs ago0x2ad18f68a86bdbe2c50c005f57f7cdf822c6ebb6 IN  Rarity: Attributes0 FTM0.014190075699
0x7621f4328b4f942eda5f43126d57f474ca8bede3a401756646f466bf1dc62c79Point_buy172965452021-09-19 11:31:5615 secs ago0x9f5606284c5db565477c56e8e54d3a9341f1aab4 IN  Rarity: Attributes0 FTM0.014139362937
0x1f9acb2da466c15d8273f20cf1d641b446c2e804d6ae56760b869656e8f5ad1dPoint_buy172965442021-09-19 11:31:5516 secs ago0xcbb343103832a33d269e29c4b60fb9c5fb7fc7b2 IN  Rarity: Attributes0 FTM0.014205158452
0x954058b974cc33ee3908cc7a9b0537463ba4136d3643c646611de45db69c5b17Point_buy172965392021-09-19 11:31:5021 secs ago0x75c21a004b6e3ae07c4e53e50e42d7ec30101f32 IN  Rarity: Attributes0 FTM0.014139362937
0x805aa46aff0f168df1647c2319340f2683530c82b4170b50a8d2eab24650fca6Point_buy172965382021-09-19 11:31:4922 secs ago0x1dbb503c00b4f7b764048a4d23d6f3e202854660 IN  Rarity: Attributes0 FTM0.01419305456
0x64d96206309fbb42dfe381bca927e722a9001e9d1acb34a4498f259c661e9348Point_buy172965362021-09-19 11:31:4625 secs ago0x2b6ca74cc71446808b8366b56f02b84d112448f2 IN  Rarity: Attributes0 FTM0.014139362937
0x2e4ca521d919d7fe090c0a3aab9715b966345bc7baee664f2edade21ba607ea6Point_buy172965352021-09-19 11:31:4625 secs ago0xddd0bb228f65cacb64bacf829725b3e97bcbac62 IN  Rarity: Attributes0 FTM0.014139362937
0xe08da5f0cdb47791095a423cda3453deb47d19a49d3a8d3c107b773d6e913ba8Point_buy172965352021-09-19 11:31:4625 secs ago0x269066bc039cd42529b1f9124006531a65da72ce IN  Rarity: Attributes0 FTM0.014139362937
0x3f0ebd4c0739017cbe8b8b66a06bc6aaa6b8befc4bc50fc3ae67fa451bfc2557Point_buy172965352021-09-19 11:31:4625 secs ago0xfc176d794d04f53fc6dd0c3728eb5ab2fcd973b1 IN  Rarity: Attributes0 FTM0.014139362937
0x385af754c1d22dd96392c54400a19b4f8260b9f04f87440839bba527e3944e8dPoint_buy172965322021-09-19 11:31:4229 secs ago0x1dbb503c00b4f7b764048a4d23d6f3e202854660 IN  Rarity: Attributes0 FTM0.014205127676
0x48a152926e579dc3062b39d3cb6d8bddba3af8936c9b7f93402399d30e491f04Point_buy172965322021-09-19 11:31:4229 secs ago0x3888f438a6f9adf08290557b08f3237452be0ea3 IN  Rarity: Attributes0 FTM0.014139362937
0xbe5cd628ff4132f45a70906bf0907cfa85d500c3edd8629c0a0373f69e4a3db1Point_buy172965292021-09-19 11:31:3833 secs ago0xc263c35b1e6da5e1205bde5530fbfb4af4c58bd5 IN  Rarity: Attributes0 FTM0.014139362937
0xfc2544f747852812458f9081550da75e2ca94a44d9f51fadadd13f80833802b5Point_buy172965282021-09-19 11:31:3833 secs ago0x75c21a004b6e3ae07c4e53e50e42d7ec30101f32 IN  Rarity: Attributes0 FTM0.01419305456
0x25ede9bb939e1acc5fa07fa7beb9083fa49f10dc85f934b1e25245179476fcc0Point_buy172965272021-09-19 11:31:3734 secs ago0x2ad18f68a86bdbe2c50c005f57f7cdf822c6ebb6 IN  Rarity: Attributes0 FTM0.014206147094
0x409a2ff304a7d28cf01c18fb54d6c33660e30432e4f643282dbfc9ddcc68fc7fPoint_buy172965252021-09-19 11:31:3536 secs ago0x9f5606284c5db565477c56e8e54d3a9341f1aab4 IN  Rarity: Attributes0 FTM0.014139362937
0x619adea9cd9e8dc135fe3b2421c0668ddffa134f2d48bbb5e024db8cfeb52f82Point_buy172965242021-09-19 11:31:3437 secs ago0x2b6ca74cc71446808b8366b56f02b84d112448f2 IN  Rarity: Attributes0 FTM0.014139362937
0x4019332b12cf2dbe28a4dbb1f4044cc542d45cb219c993ea882ac931b3b04524Point_buy172965232021-09-19 11:31:3338 secs ago0x6beeaf689bb167e38dd6d9d10b18676f1e9721ae IN  Rarity: Attributes0 FTM0.013409249977
0xb43f82053ff1c5a9c17ddcb325c47437dbfe6809c3868e9447a5c18c62f510edPoint_buy172965222021-09-19 11:31:3239 secs ago0x269066bc039cd42529b1f9124006531a65da72ce IN  Rarity: Attributes0 FTM0.014139362937
0x287e62befd47cbe071cc2f6f11c34e9dc445faa1b30a98cf73d9a9d85ac80751Point_buy172965222021-09-19 11:31:3239 secs ago0xfc176d794d04f53fc6dd0c3728eb5ab2fcd973b1 IN  Rarity: Attributes0 FTM0.014139362937
0x9d683b3acbc3dcb3e8479463c01fc8d3c7ed7a17399aa7437a72f901be75126fPoint_buy172965192021-09-19 11:31:3041 secs ago0x70f45f88c61791d89f77b947d7ffe85ae251eef2 IN  Rarity: Attributes0 FTM0.014139362937
0x2af6df56041ab828ddaa94be1c3484ab7b0ba4992b6a32a3553d428c22084f07Point_buy172965182021-09-19 11:31:2942 secs ago0x0d97b6c5eaea77fa9fc20a4c2e15b0a79aa1f63c IN  Rarity: Attributes0 FTM0.01419305456
[ Download CSV Export 
Latest 5 internal transactions
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
rarity_attributes

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license
/**
 *Submitted for verification at FtmScan.com on 2021-09-06
*/

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

interface rarity {
    function level(uint) external view returns (uint);
    function getApproved(uint) external view returns (address);
    function ownerOf(uint) external view returns (address);
}

contract rarity_attributes {
    
    uint constant POINT_BUY = 32;
    rarity constant rm = rarity(0xce761D788DF608BD21bdd59d6f4B54b2e27F25Bb);
    
    struct ability_score {
        uint32 strength;
        uint32 dexterity;
        uint32 constitution;
        uint32 intelligence;
        uint32 wisdom;
        uint32 charisma;
    }
    
    mapping(uint => ability_score) public ability_scores;
    mapping(uint => uint) public level_points_spent;
    mapping(uint => bool) public character_created;
    
    event Created(address indexed creator, uint summoner, uint32 strength, uint32 dexterity, uint32 constitution, uint32 intelligence, uint32 wisdom, uint32 charisma);
    event Leveled(address indexed leveler, uint summoner, uint32 strength, uint32 dexterity, uint32 constitution, uint32 intelligence, uint32 wisdom, uint32 charisma);
    
    function _isApprovedOrOwner(uint _summoner) internal view returns (bool) {
        return rm.getApproved(_summoner) == msg.sender || rm.ownerOf(_summoner) == msg.sender;
    }
    
    function point_buy(uint _summoner, uint32 _str, uint32 _dex, uint32 _const, uint32 _int, uint32 _wis, uint32 _cha) external {
        require(_isApprovedOrOwner(_summoner));
        require(!character_created[_summoner]);
        require(calculate_point_buy(_str, _dex, _const, _int, _wis, _cha) == POINT_BUY);
        character_created[_summoner] = true;
        
        ability_scores[_summoner] = ability_score(_str, _dex, _const, _int, _wis, _cha);
        emit Created(msg.sender, _summoner, _str, _dex, _const, _int, _wis, _cha);
    }
    
    function calculate_point_buy(uint _str, uint _dex, uint _const, uint _int, uint _wis, uint _cha) public pure returns (uint) {
        return calc(_str)+calc(_dex)+calc(_const)+calc(_int)+calc(_wis)+calc(_cha);
    }
    
    function calc(uint score) public pure returns (uint) {
        if (score <= 14) {
            return score - 8;
        } else {
            return ((score - 8)**2)/6;
        }
    }
    
    function _increase_base(uint _summoner) internal {
        require(_isApprovedOrOwner(_summoner));
        require(character_created[_summoner]);
        uint _points_spent = level_points_spent[_summoner];
        require(abilities_by_level(rm.level(_summoner)) - _points_spent > 0);
        level_points_spent[_summoner] = _points_spent+1;
    }
    
    function increase_strength(uint _summoner) external {
        _increase_base(_summoner);
        ability_score storage _attr = ability_scores[_summoner];
        _attr.strength = _attr.strength+1;
        emit Leveled(msg.sender, _summoner, _attr.strength, _attr.dexterity, _attr.constitution, _attr.intelligence, _attr.wisdom, _attr.charisma);
    }
    
    function increase_dexterity(uint _summoner) external {
        _increase_base(_summoner);
        ability_score storage _attr = ability_scores[_summoner];
        _attr.dexterity = _attr.dexterity+1;
        emit Leveled(msg.sender, _summoner, _attr.strength, _attr.dexterity, _attr.constitution, _attr.intelligence, _attr.wisdom, _attr.charisma);
    }
    
    function increase_constitution(uint _summoner) external {
        _increase_base(_summoner);
        ability_score storage _attr = ability_scores[_summoner];
        _attr.constitution = _attr.constitution+1;
        emit Leveled(msg.sender, _summoner, _attr.strength, _attr.dexterity, _attr.constitution, _attr.intelligence, _attr.wisdom, _attr.charisma);
    }
    
    function increase_intelligence(uint _summoner) external {
        _increase_base(_summoner);
        ability_score storage _attr = ability_scores[_summoner];
        _attr.intelligence = _attr.intelligence+1;
        emit Leveled(msg.sender, _summoner, _attr.strength, _attr.dexterity, _attr.constitution, _attr.intelligence, _attr.wisdom, _attr.charisma);
    }
    
    function increase_wisdom(uint _summoner) external {
        _increase_base(_summoner);
        ability_score storage _attr = ability_scores[_summoner];
        _attr.wisdom = _attr.wisdom+1;
        emit Leveled(msg.sender, _summoner, _attr.strength, _attr.dexterity, _attr.constitution, _attr.intelligence, _attr.wisdom, _attr.charisma);
    }
    
    function increase_charisma(uint _summoner) external {
        _increase_base(_summoner);
        ability_score storage _attr = ability_scores[_summoner];
        _attr.charisma = _attr.charisma+1;
        emit Leveled(msg.sender, _summoner, _attr.strength, _attr.dexterity, _attr.constitution, _attr.intelligence, _attr.wisdom, _attr.charisma);
    }
    
    
    function abilities_by_level(uint current_level) public pure returns (uint) {
        return current_level / 4;
    }
    
    
    function tokenURI(uint256 _summoner) public view returns (string memory) {
        string memory output;
        {
        string[7] memory parts;
        ability_score memory _attr = ability_scores[_summoner];
        parts[0] = '<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">';

        parts[1] = string(abi.encodePacked("strength", " ", toString(_attr.strength), '</text><text x="10" y="40" class="base">'));

        parts[2] = string(abi.encodePacked("dexterity", " ", toString(_attr.dexterity), '</text><text x="10" y="60" class="base">'));

        parts[3] = string(abi.encodePacked("constitution", " ", toString(_attr.constitution), '</text><text x="10" y="60" class="base">'));

        parts[4] = string(abi.encodePacked("intelligence", " ", toString(_attr.intelligence),  '</text><text x="10" y="60" class="base">'));

        parts[5] = string(abi.encodePacked("wisdom", " ", toString(_attr.wisdom), '</text><text x="10" y="60" class="base">'));

        parts[6] = string(abi.encodePacked("charisma", " ", toString(_attr.charisma), '</text></svg>'));
        
        output = string(abi.encodePacked(parts[0], parts[1], parts[2], parts[3], parts[4], parts[5], parts[6]));
        }
        string memory json = Base64.encode(bytes(string(abi.encodePacked('{"name": "summoner #', toString(_summoner), '", "description": "Rarity is achieved via an active economy, summoners must level, gain feats, learn spells, to be able to craft gear. This allows for market driven rarity while allowing an ever growing economy. Feats, spells, and summoner gear is ommitted as part of further expansions.", "image": "data:image/svg+xml;base64,', Base64.encode(bytes(output)), '"}'))));
        output = string(abi.encodePacked('data:application/json;base64,', json));

        return output;
    }
    
    function toString(uint256 value) internal pure returns (string memory) {
    // Inspired by OraclizeAPI's implementation - MIT license
    // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }
}

/// [MIT License]
/// @title Base64
/// @notice Provides a function for encoding some bytes in base64
/// @author Brecht Devos <[email protected]>
library Base64 {
    bytes internal constant TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

    /// @notice Encodes some bytes to the base64 representation
    function encode(bytes memory data) internal pure returns (string memory) {
        uint256 len = data.length;
        if (len == 0) return "";

        // multiply by 4/3 rounded up
        uint256 encodedLen = 4 * ((len + 2) / 3);

        // Add some extra buffer at the end
        bytes memory result = new bytes(encodedLen + 32);

        bytes memory table = TABLE;

        assembly {
            let tablePtr := add(table, 1)
            let resultPtr := add(result, 32)

            for {
                let i := 0
            } lt(i, len) {

            } {
                i := add(i, 3)
                let input := and(mload(add(data, i)), 0xffffff)

                let out := mload(add(tablePtr, and(shr(18, input), 0x3F)))
                out := shl(8, out)
                out := add(out, and(mload(add(tablePtr, and(shr(12, input), 0x3F))), 0xFF))
                out := shl(8, out)
                out := add(out, and(mload(add(tablePtr, and(shr(6, input), 0x3F))), 0xFF))
                out := shl(8, out)
                out := add(out, and(mload(add(tablePtr, and(input, 0x3F))), 0xFF))
                out := shl(224, out)

                mstore(resultPtr, out)

                resultPtr := add(resultPtr, 4)
            }

            switch mod(len, 3)
            case 1 {
                mstore(sub(resultPtr, 2), shl(240, 0x3d3d))
            }
            case 2 {
                mstore(sub(resultPtr, 1), shl(248, 0x3d))
            }

            mstore(result, encodedLen)
        }

        return string(result);
    }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"creator","type":"address"},{"indexed":false,"internalType":"uint256","name":"summoner","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"strength","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"dexterity","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"constitution","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"intelligence","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"wisdom","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"charisma","type":"uint32"}],"name":"Created","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"leveler","type":"address"},{"indexed":false,"internalType":"uint256","name":"summoner","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"strength","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"dexterity","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"constitution","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"intelligence","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"wisdom","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"charisma","type":"uint32"}],"name":"Leveled","type":"event"},{"inputs":[{"internalType":"uint256","name":"current_level","type":"uint256"}],"name":"abilities_by_level","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ability_scores","outputs":[{"internalType":"uint32","name":"strength","type":"uint32"},{"internalType":"uint32","name":"dexterity","type":"uint32"},{"internalType":"uint32","name":"constitution","type":"uint32"},{"internalType":"uint32","name":"intelligence","type":"uint32"},{"internalType":"uint32","name":"wisdom","type":"uint32"},{"internalType":"uint32","name":"charisma","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"score","type":"uint256"}],"name":"calc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_str","type":"uint256"},{"internalType":"uint256","name":"_dex","type":"uint256"},{"internalType":"uint256","name":"_const","type":"uint256"},{"internalType":"uint256","name":"_int","type":"uint256"},{"internalType":"uint256","name":"_wis","type":"uint256"},{"internalType":"uint256","name":"_cha","type":"uint256"}],"name":"calculate_point_buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"character_created","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"increase_charisma","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"increase_constitution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"increase_dexterity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"increase_intelligence","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"increase_strength","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"increase_wisdom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"level_points_spent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"},{"internalType":"uint32","name":"_str","type":"uint32"},{"internalType":"uint32","name":"_dex","type":"uint32"},{"internalType":"uint32","name":"_const","type":"uint32"},{"internalType":"uint32","name":"_int","type":"uint32"},{"internalType":"uint32","name":"_wis","type":"uint32"},{"internalType":"uint32","name":"_cha","type":"uint32"}],"name":"point_buy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50611b42806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063bf2bf8951161008c578063de99903911610066578063de99903914610261578063e0d92c4a14610274578063f895543214610287578063fe6676b3146102ba57600080fd5b8063bf2bf8951461021b578063c3c2407c1461022e578063c87b56dd1461024157600080fd5b806377d9e11c116100c857806377d9e11c1461013d578063849ada74146101d557806396cf4c4b146101f55780639ed24c8e1461020857600080fd5b806305934d9c146100ef57806338c9027a1461010457806351c232261461012a575b600080fd5b6101026100fd366004611160565b6102cd565b005b610117610112366004611160565b610385565b6040519081526020015b60405180910390f35b610117610138366004611160565b6103c8565b61019661014b366004611160565b60006020819052908152604090205463ffffffff80821691600160201b8104821691600160401b8204811691600160601b8104821691600160801b8204811691600160a01b90041686565b6040805163ffffffff978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c001610121565b6101176101e3366004611160565b60016020526000908152604090205481565b610102610203366004611160565b6103d5565b610117610216366004611192565b61047d565b610102610229366004611160565b6104f2565b61010261023c3660046111d5565b610598565b61025461024f366004611160565b6107d6565b6040516101219190611713565b61010261026f366004611160565b610a74565b610102610282366004611160565b610b09565b6102aa610295366004611160565b60026020526000908152604090205460ff1681565b6040519015158152602001610121565b6101026102c8366004611160565b610bb8565b6102d681610c5f565b600081815260208190526040902080546102fe90600160201b900463ffffffff166001611798565b815467ffffffff00000000198116600160201b63ffffffff93841681029182178086556040513395600080516020611aed83398151915295610379958a959183169083161793908104821692600160401b8204831692600160601b8304811692600160801b8104821692600160a01b90910490911690611746565b60405180910390a25050565b6000600e82116103a05761039a6008836118e1565b92915050565b600660026103af6008856118e1565b6103b99190611817565b61039a91906117c0565b919050565b600061039a6004836117c0565b6103de81610c5f565b6000818152602081905260409020805461040690600160601b900463ffffffff166001611798565b815463ffffffff60601b198116600160601b63ffffffff93841681029182178086556040513395600080516020611aed83398151915295610379958a959183169083161793600160201b8104831693600160401b8204841693928204831692600160801b8304811692600160a01b90041690611746565b600061048882610385565b61049184610385565b61049a86610385565b6104a388610385565b6104ac8a610385565b6104b58c610385565b6104bf9190611780565b6104c99190611780565b6104d39190611780565b6104dd9190611780565b6104e79190611780565b979650505050505050565b6104fb81610c5f565b6000818152602081905260409020805461052390600160a01b900463ffffffff166001611798565b815463ffffffff60a01b198116600160a01b63ffffffff93841681029182178086556040513395600080516020611aed83398151915295610379958a959183169083161793600160201b8104831693600160401b8204841693600160601b8304811693600160801b8404821693041690611746565b6105a187610d5c565b6105aa57600080fd5b60008781526002602052604090205460ff16156105c657600080fd5b60206105fa8763ffffffff168763ffffffff168763ffffffff168763ffffffff168763ffffffff168763ffffffff1661047d565b1461060457600080fd5b60016002600089815260200190815260200160002060006101000a81548160ff0219169083151502179055506040518060c001604052808763ffffffff1681526020018663ffffffff1681526020018563ffffffff1681526020018463ffffffff1681526020018363ffffffff1681526020018263ffffffff1681525060008089815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548163ffffffff021916908363ffffffff16021790555060408201518160000160086101000a81548163ffffffff021916908363ffffffff160217905550606082015181600001600c6101000a81548163ffffffff021916908363ffffffff16021790555060808201518160000160106101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160000160146101000a81548163ffffffff021916908363ffffffff160217905550905050336001600160a01b03167f471b798bfd4e4756e197917dd3ba2cbf782f09c2deef48cd5fa694cdba976328888888888888886040516107c59796959493929190611746565b60405180910390a250505050505050565b6060806107e16110f5565b60008481526020818152604091829020825160c081018452905463ffffffff8082168352600160201b8204811683850152600160401b8204811683860152600160601b820481166060840152600160801b820481166080840152600160a01b9091041660a08201528251610120810190935260fd8084529092916119b090830139825280516108759063ffffffff16610e89565b6040516020016108859190611441565b60408051808303601f190181529190526020808401919091528101516108b09063ffffffff16610e89565b6040516020016108c09190611405565b60408051601f19818403018152919052826002602002015260408101516108ec9063ffffffff16610e89565b6040516020016108fc919061138d565b60408051601f19818403018152919052826003602002015260608101516109289063ffffffff16610e89565b60405160200161093891906114b3565b60408051601f19818403018152919052826004602002015260808101516109649063ffffffff16610e89565b60405160200161097491906113cc565b60408051601f19818403018152919052826005602002015260a08101516109a09063ffffffff16610e89565b6040516020016109b0919061133c565b60408051808303601f1901815291815260c084018290528351602080860151868401516060880151608089015160a08a015196516109fa98969794969395929491939192016112aa565b604051602081830303815290604052925050506000610a49610a1b85610e89565b610a2484610f8f565b604051602001610a35929190611529565b604051602081830303815290604052610f8f565b905080604051602001610a5c91906114e4565b60408051601f19818403018152919052949350505050565b610a7d81610c5f565b60008181526020819052604090208054610a9e9063ffffffff166001611798565b815463ffffffff191663ffffffff9182169081178084556040513393600080516020611aed833981519152936103799388939192600160201b8204811692600160401b8304821692600160601b8104831692600160801b8204811692600160a01b9092041690611746565b610b1281610c5f565b60008181526020819052604090208054610b3a90600160401b900463ffffffff166001611798565b81546bffffffff0000000000000000198116600160401b63ffffffff93841681029182178086556040513395600080516020611aed83398151915295610379958a959183169083161793600160201b8104831693918104831692600160601b8204811692600160801b8304821692600160a01b900490911690611746565b610bc181610c5f565b60008181526020819052604090208054610be990600160801b900463ffffffff166001611798565b815463ffffffff60801b198116600160801b63ffffffff93841681029182178086556040513395600080516020611aed83398151915295610379958a959183169083161793600160201b8104831693600160401b8204841693600160601b83048116938304811692600160a01b90041690611746565b610c6881610d5c565b610c7157600080fd5b60008181526002602052604090205460ff16610c8c57600080fd5b6000818152600160205260408082205490516302e2c6f960e11b8152600481018490529091908290610d279073ce761d788df608bd21bdd59d6f4b54b2e27f25bb906305c58df29060240160206040518083038186803b158015610cef57600080fd5b505afa158015610d03573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101389190611179565b610d3191906118e1565b11610d3b57600080fd5b610d46816001611780565b6000928352600160205260409092209190915550565b60405163020604bf60e21b815260048101829052600090339073ce761d788df608bd21bdd59d6f4b54b2e27f25bb9063081812fc9060240160206040518083038186803b158015610dac57600080fd5b505afa158015610dc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de49190611130565b6001600160a01b0316148061039a57506040516331a9108f60e11b815260048101839052339073ce761d788df608bd21bdd59d6f4b54b2e27f25bb90636352211e9060240160206040518083038186803b158015610e4157600080fd5b505afa158015610e55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e799190611130565b6001600160a01b03161492915050565b606081610ead5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610ed75780610ec181611928565b9150610ed09050600a836117c0565b9150610eb1565b60008167ffffffffffffffff811115610ef257610ef2611999565b6040519080825280601f01601f191660200182016040528015610f1c576020820181803683370190505b5090505b8415610f8757610f316001836118e1565b9150610f3e600a86611943565b610f49906030611780565b60f81b818381518110610f5e57610f5e611983565b60200101906001600160f81b031916908160001a905350610f80600a866117c0565b9450610f20565b949350505050565b805160609080610faf575050604080516020810190915260008152919050565b60006003610fbe836002611780565b610fc891906117c0565b610fd39060046118c2565b90506000610fe2826020611780565b67ffffffffffffffff811115610ffa57610ffa611999565b6040519080825280601f01601f191660200182016040528015611024576020820181803683370190505b5090506000604051806060016040528060408152602001611aad604091399050600181016020830160005b868110156110b0576003818a01810151603f601282901c8116860151600c83901c8216870151600684901c831688015192909316870151600891821b60ff94851601821b92841692909201901b91160160e01b83526004909201910161104f565b5060038606600181146110ca57600281146110db576110e7565b613d3d60f01b6001198301526110e7565b603d60f81b6000198301525b505050918152949350505050565b6040518060e001604052806007905b60608152602001906001900390816111045790505090565b803563ffffffff811681146103c357600080fd5b60006020828403121561114257600080fd5b81516001600160a01b038116811461115957600080fd5b9392505050565b60006020828403121561117257600080fd5b5035919050565b60006020828403121561118b57600080fd5b5051919050565b60008060008060008060c087890312156111ab57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600080600080600060e0888a0312156111f057600080fd5b873596506112006020890161111c565b955061120e6040890161111c565b945061121c6060890161111c565b935061122a6080890161111c565b925061123860a0890161111c565b915061124660c0890161111c565b905092959891949750929550565b600081516112668185602086016118f8565b9290920192915050565b7f3c2f746578743e3c7465787420783d2231302220793d2236302220636c6173738152671e913130b9b2911f60c11b602082015260280190565b6000885160206112bd8285838e016118f8565b8951918401916112d08184848e016118f8565b89519201916112e28184848d016118f8565b88519201916112f48184848c016118f8565b87519201916113068184848b016118f8565b86519201916113188184848a016118f8565b855192019161132a81848489016118f8565b919091019a9950505050505050505050565b676368617269736d6160c01b8152600160fd1b6008820152600082516113698160098501602087016118f8565b6c1e17ba32bc3a1f1e17b9bb339f60991b6009939091019283015250601601919050565b6b31b7b739ba34ba3aba34b7b760a11b8152600160fd1b600c820152600082516113be81600d8501602087016118f8565b610f87600d82850101611270565b65776973646f6d60d01b8152600160fd1b6006820152600082516113f78160078501602087016118f8565b610f87600782850101611270565b6864657874657269747960b81b8152600160fd1b60098201526000825161143381600a8501602087016118f8565b610f87600a82850101611270565b670e6e8e4cadccee8d60c31b8152600160fd1b60088201526000825161146e8160098501602087016118f8565b7f3c2f746578743e3c7465787420783d2231302220793d2234302220636c6173736009939091019283015250671e913130b9b2911f60c11b6029820152603101919050565b6b696e74656c6c6967656e636560a01b8152600160fd1b600c820152600082516113be81600d8501602087016118f8565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081526000825161151c81601d8501602087016118f8565b91909101601d0192915050565b737b226e616d65223a202273756d6d6f6e6572202360601b815282516000906115598160148501602088016118f8565b7f222c20226465736372697074696f6e223a2022526172697479206973206163686014918401918201527f69657665642076696120616e206163746976652065636f6e6f6d792c2073756d60348201527f6d6f6e657273206d757374206c6576656c2c206761696e2066656174732c206c60548201527f6561726e207370656c6c732c20746f2062652061626c6520746f20637261667460748201527f20676561722e205468697320616c6c6f777320666f72206d61726b657420647260948201527f6976656e20726172697479207768696c6520616c6c6f77696e6720616e20657660b48201527f65722067726f77696e672065636f6e6f6d792e2046656174732c207370656c6c60d48201527f732c20616e642073756d6d6f6e65722067656172206973206f6d6d697474656460f48201527f2061732070617274206f66206675727468657220657870616e73696f6e732e226101148201527f2c2022696d616765223a2022646174613a696d6167652f7376672b786d6c3b6261013482015265185cd94d8d0b60d21b61015482015261170a6116fc61015a830186611254565b61227d60f01b815260020190565b95945050505050565b60208152600082518060208401526117328160408501602087016118f8565b601f01601f19169190910160400192915050565b96875263ffffffff95861660208801529385166040870152918416606086015283166080850152821660a08401521660c082015260e00190565b6000821982111561179357611793611957565b500190565b600063ffffffff8083168185168083038211156117b7576117b7611957565b01949350505050565b6000826117cf576117cf61196d565b500490565b600181815b8085111561180f5781600019048211156117f5576117f5611957565b8085161561180257918102915b93841c93908002906117d9565b509250929050565b600061115960ff8416836000826118305750600161039a565b8161183d5750600061039a565b8160018114611853576002811461185d57611879565b600191505061039a565b60ff84111561186e5761186e611957565b50506001821b61039a565b5060208310610133831016604e8410600b841016171561189c575081810a61039a565b6118a683836117d4565b80600019048211156118ba576118ba611957565b029392505050565b60008160001904831182151516156118dc576118dc611957565b500290565b6000828210156118f3576118f3611957565b500390565b60005b838110156119135781810151838201526020016118fb565b83811115611922576000848401525b50505050565b600060001982141561193c5761193c611957565b5060010190565b6000826119525761195261196d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f73766722207072657365727665417370656374526174696f3d22784d696e594d696e206d656574222076696577426f783d223020302033353020333530223e3c7374796c653e2e62617365207b2066696c6c3a2077686974653b20666f6e742d66616d696c793a2073657269663b20666f6e742d73697a653a20313470783b207d3c2f7374796c653e3c726563742077696474683d223130302522206865696768743d2231303025222066696c6c3d22626c61636b22202f3e3c7465787420783d2231302220793d2232302220636c6173733d2262617365223e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f207b63f0a8632134b76c8dd10b38a52179fc29b3fa01eb51e4662e4c720ec8d4a26469706673582212203528791a508493f9ea8325516c2add82400b3f6069ac9a9a8437cf65ea9e76d464736f6c63430008070033

Deployed ByteCode Sourcemap

267:7548:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3058:358;;;;;;:::i;:::-;;:::i;:::-;;2126:189;;;;;;:::i;:::-;;:::i;:::-;;;11150:25:1;;;11138:2;11123:18;2126:189:0;;;;;;;;4920:118;;;;;;:::i;:::-;;:::i;630:52::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;630:52:0;;;;;-1:-1:-1;;;630:52:0;;;;;-1:-1:-1;;;630:52:0;;;;;-1:-1:-1;;;630:52:0;;;;;-1:-1:-1;;;630:52:0;;;;;;;;;12154:10:1;12191:15;;;12173:34;;12243:15;;;12238:2;12223:18;;12216:43;12295:15;;;12275:18;;;12268:43;;;;12347:15;;;12342:2;12327:18;;12320:43;12400:15;;12394:3;12379:19;;12372:44;12453:15;;;12447:3;12432:19;;12425:44;12131:3;12116:19;630:52:0;11869:606:1;689:47:0;;;;;;:::i;:::-;;;;;;;;;;;;;;3807:367;;;;;;:::i;:::-;;:::i;1897:217::-;;;;;;:::i;:::-;;:::i;4547:355::-;;;;;;:::i;:::-;;:::i;1335:550::-;;;;;;:::i;:::-;;:::i;5056:2029::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2691:355::-;;;;;;:::i;:::-;;:::i;3428:367::-;;;;;;:::i;:::-;;:::i;743:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10589:14:1;;10582:22;10564:41;;10552:2;10537:18;743:46:0;10424:187:1;4186:349:0;;;;;;:::i;:::-;;:::i;3058:358::-;3122:25;3137:9;3122:14;:25::i;:::-;3158:27;3188:25;;;;;;;;;;3242:15;;:17;;-1:-1:-1;;;3242:15:0;;;;3258:1;3242:17;:::i;:::-;3224:35;;-1:-1:-1;;3224:35:0;;-1:-1:-1;;;3224:35:0;;;;;;;;;;;;3275:133;;3283:10;;-1:-1:-1;;;;;;;;;;;3275:133:0;;;3295:9;;3306:14;;;;;;;;3322:15;;;;;;-1:-1:-1;;;3339:18:0;;;;;-1:-1:-1;;;3359:18:0;;;;;-1:-1:-1;;;3379:12:0;;;;;-1:-1:-1;;;3393:14:0;;;;;;;3275:133;:::i;:::-;;;;;;;;3111:305;3058:358;:::o;2126:189::-;2173:4;2203:2;2194:5;:11;2190:118;;2229:9;2237:1;2229:5;:9;:::i;:::-;2222:16;2126:189;-1:-1:-1;;2126:189:0:o;2190:118::-;2295:1;2292;2280:9;2288:1;2280:5;:9;:::i;:::-;2279:14;;;;:::i;:::-;2278:18;;;;:::i;2190:118::-;2126:189;;;:::o;4920:118::-;4989:4;5013:17;5029:1;5013:13;:17;:::i;3807:367::-;3874:25;3889:9;3874:14;:25::i;:::-;3910:27;3940:25;;;;;;;;;;3997:18;;:20;;-1:-1:-1;;;3997:18:0;;;;4016:1;3997:20;:::i;:::-;3976:41;;-1:-1:-1;;;;3976:41:0;;-1:-1:-1;;;3976:41:0;;;;;;;;;;;;4033:133;;4041:10;;-1:-1:-1;;;;;;;;;;;4033:133:0;;;4053:9;;4064:14;;;;;;;;-1:-1:-1;;;4080:15:0;;;;;-1:-1:-1;;;4097:18:0;;;;;4117;;;;;;-1:-1:-1;;;4137:12:0;;;;;-1:-1:-1;;;4151:14:0;;;;4033:133;:::i;1897:217::-;2015:4;2096:10;2101:4;2096;:10::i;:::-;2085;2090:4;2085;:10::i;:::-;2074;2079:4;2074;:10::i;:::-;2061:12;2066:6;2061:4;:12::i;:::-;2050:10;2055:4;2050;:10::i;:::-;2039;2044:4;2039;:10::i;:::-;:21;;;;:::i;:::-;:34;;;;:::i;:::-;:45;;;;:::i;:::-;:56;;;;:::i;:::-;:67;;;;:::i;:::-;2032:74;1897:217;-1:-1:-1;;;;;;;1897:217:0:o;4547:355::-;4610:25;4625:9;4610:14;:25::i;:::-;4646:27;4676:25;;;;;;;;;;4729:14;;:16;;-1:-1:-1;;;4729:14:0;;;;4744:1;4729:16;:::i;:::-;4712:33;;-1:-1:-1;;;;4712:33:0;;-1:-1:-1;;;4712:33:0;;;;;;;;;;;;4761:133;;4769:10;;-1:-1:-1;;;;;;;;;;;4761:133:0;;;4781:9;;4792:14;;;;;;;;-1:-1:-1;;;4808:15:0;;;;;-1:-1:-1;;;4825:18:0;;;;;-1:-1:-1;;;4845:18:0;;;;;-1:-1:-1;;;4865:12:0;;;;;4879:14;;;4761:133;:::i;1335:550::-;1478:29;1497:9;1478:18;:29::i;:::-;1470:38;;;;;;1528:28;;;;:17;:28;;;;;;;;1527:29;1519:38;;;;;;333:2;1576:57;1596:4;1576:57;;1602:4;1576:57;;1608:6;1576:57;;1616:4;1576:57;;1622:4;1576:57;;1628:4;1576:57;;:19;:57::i;:::-;:70;1568:79;;;;;;1689:4;1658:17;:28;1676:9;1658:28;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;1742:51;;;;;;;;1756:4;1742:51;;;;;;1762:4;1742:51;;;;;;1768:6;1742:51;;;;;;1776:4;1742:51;;;;;;1782:4;1742:51;;;;;;1788:4;1742:51;;;;;1714:14;:25;1729:9;1714:25;;;;;;;;;;;:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1817:10;-1:-1:-1;;;;;1809:68:0;;1829:9;1840:4;1846;1852:6;1860:4;1866;1872;1809:68;;;;;;;;;;;;:::i;:::-;;;;;;;;1335:550;;;;;;;:::o;5056:2029::-;5114:13;5140:20;5182:22;;:::i;:::-;5215:26;5244:25;;;;;;;;;;;;5215:54;;;;;;;;;;;;;;;-1:-1:-1;;;5215:54:0;;;;;;;;-1:-1:-1;;;5215:54:0;;;;;;;;-1:-1:-1;;;5215:54:0;;;;;;;;-1:-1:-1;;;5215:54:0;;;;;;;;-1:-1:-1;;;5215:54:0;;;;;;;;5280:266;;;;;;;;;;;;5215:54;;5280:266;;;;;;;;5620:14;;5611:24;;;;:8;:24::i;:::-;5577:103;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;5577:103:0;;;;;;5559:8;;;;:122;;;;5756:15;;;5747:25;;;;:8;:25::i;:::-;5712:105;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5712:105:0;;;;;;;;;5694:5;5700:1;5694:8;;;:124;5896:18;;;;5887:28;;;;:8;:28::i;:::-;5849:111;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5849:111:0;;;;;;;;;5831:5;5837:1;5831:8;;;:130;6039:18;;;;6030:28;;;;:8;:28::i;:::-;5992:112;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5992:112:0;;;;;;;;;5974:5;5980:1;5974:8;;;:131;6177:12;;;;6168:22;;;;:8;:22::i;:::-;6136:99;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6136:99:0;;;;;;;;;6118:5;6124:1;6118:8;;;:118;6310:14;;;;6301:24;;;;:8;:24::i;:::-;6267:76;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;6267:76:0;;;;;;6249:8;;;:95;;;6398:8;;6249;6408;;;;6418;;;;6428;;;;6438;;;;6448;;;;6381:86;;;;6398:8;;6408;;6418;;6428;;6438;;6448;;6381:86;;:::i;:::-;;;;;;;;;;;;;6365:103;;5171:1309;;6490:18;6511:457;6579:19;6588:9;6579:8;:19::i;:::-;6930:28;6950:6;6930:13;:28::i;:::-;6538:427;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6511:13;:457::i;:::-;6490:478;;7045:4;6995:55;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6995:55:0;;;;;;;;;;5056:2029;-1:-1:-1;;;;5056:2029:0:o;2691:355::-;2754:25;2769:9;2754:14;:25::i;:::-;2790:27;2820:25;;;;;;;;;;2873:14;;:16;;:14;;;:16;:::i;:::-;2856:33;;-1:-1:-1;;2856:33:0;;;;;;;;;;;2905:133;;2913:10;;-1:-1:-1;;;;;;;;;;;2905:133:0;;;2925:9;;2856:33;;-1:-1:-1;;;2952:15:0;;;;;-1:-1:-1;;;2969:18:0;;;;;-1:-1:-1;;;2989:18:0;;;;;-1:-1:-1;;;3009:12:0;;;;;-1:-1:-1;;;3023:14:0;;;;;2905:133;:::i;3428:367::-;3495:25;3510:9;3495:14;:25::i;:::-;3531:27;3561:25;;;;;;;;;;3618:18;;:20;;-1:-1:-1;;;3618:18:0;;;;3637:1;3618:20;:::i;:::-;3597:41;;-1:-1:-1;;3597:41:0;;-1:-1:-1;;;3597:41:0;;;;;;;;;;;;3654:133;;3662:10;;-1:-1:-1;;;;;;;;;;;3654:133:0;;;3674:9;;3685:14;;;;;;;;-1:-1:-1;;;3701:15:0;;;;;3718:18;;;;;;-1:-1:-1;;;3738:18:0;;;;;-1:-1:-1;;;3758:12:0;;;;;-1:-1:-1;;;3772:14:0;;;;;;3654:133;:::i;4186:349::-;4247:25;4262:9;4247:14;:25::i;:::-;4283:27;4313:25;;;;;;;;;;4364:12;;:14;;-1:-1:-1;;;4364:12:0;;;;4377:1;4364:14;:::i;:::-;4349:29;;-1:-1:-1;;;;4349:29:0;;-1:-1:-1;;;4349:29:0;;;;;;;;;;;;4394:133;;4402:10;;-1:-1:-1;;;;;;;;;;;4394:133:0;;;4414:9;;4425:14;;;;;;;;-1:-1:-1;;;4441:15:0;;;;;-1:-1:-1;;;4458:18:0;;;;;-1:-1:-1;;;4478:18:0;;;;;4498:12;;;;;-1:-1:-1;;;4512:14:0;;;;4394:133;:::i;2327:352::-;2395:29;2414:9;2395:18;:29::i;:::-;2387:38;;;;;;2444:28;;;;:17;:28;;;;;;;;2436:37;;;;;;2484:18;2505:29;;;:18;:29;;;;;;;2572:19;;-1:-1:-1;;;2572:19:0;;;;;11150:25:1;;;2505:29:0;;2484:18;2505:29;;2553:39;;370:42;;2572:8;;11123:18:1;;2572:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2553:39::-;:55;;;;:::i;:::-;:59;2545:68;;;;;;2656:15;:13;2670:1;2656:15;:::i;:::-;2624:29;;;;:18;:29;;;;;;:47;;;;-1:-1:-1;2327:352:0:o;1146:177::-;1237:25;;-1:-1:-1;;;1237:25:0;;;;;11150::1;;;1213:4:0;;1266:10;;370:42;;1237:14;;11123:18:1;;1237:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1237:39:0;;:78;;;-1:-1:-1;1280:21:0;;-1:-1:-1;;;1280:21:0;;;;;11150:25:1;;;1305:10:0;;370:42;;1280:10;;11123:18:1;;1280:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1280:35:0;;1230:85;1146:177;-1:-1:-1;;1146:177:0:o;7097:715::-;7153:13;7366:10;7362:53;;-1:-1:-1;;7393:10:0;;;;;;;;;;;;-1:-1:-1;;;7393:10:0;;;;;7097:715::o;7362:53::-;7440:5;7425:12;7481:78;7488:9;;7481:78;;7514:8;;;;:::i;:::-;;-1:-1:-1;7537:10:0;;-1:-1:-1;7545:2:0;7537:10;;:::i;:::-;;;7481:78;;;7569:19;7601:6;7591:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7591:17:0;;7569:39;;7619:154;7626:10;;7619:154;;7653:11;7663:1;7653:11;;:::i;:::-;;-1:-1:-1;7722:10:0;7730:2;7722:5;:10;:::i;:::-;7709:24;;:2;:24;:::i;:::-;7696:39;;7679:6;7686;7679:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;7679:56:0;;;;;;;;-1:-1:-1;7750:11:0;7759:2;7750:11;;:::i;:::-;;;7619:154;;;7797:6;7097:715;-1:-1:-1;;;;7097:715:0:o;8166:1607::-;8264:11;;8224:13;;8290:8;8286:23;;-1:-1:-1;;8300:9:0;;;;;;;;;-1:-1:-1;8300:9:0;;;8166:1607;-1:-1:-1;8166:1607:0:o;8286:23::-;8361:18;8399:1;8388:7;:3;8394:1;8388:7;:::i;:::-;8387:13;;;;:::i;:::-;8382:19;;:1;:19;:::i;:::-;8361:40;-1:-1:-1;8459:19:0;8491:15;8361:40;8504:2;8491:15;:::i;:::-;8481:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8481:26:0;;8459:48;;8520:18;8541:5;;;;;;;;;;;;;;;;;8520:26;;8610:1;8603:5;8599:13;8655:2;8647:6;8643:15;8706:1;8674:777;8729:3;8726:1;8723:10;8674:777;;;8784:1;8827:12;;;;;8821:19;8922:4;8910:2;8906:14;;;;;8888:40;;8882:47;9031:2;9027:14;;;9023:25;;9009:40;;9003:47;9160:1;9156:13;;;9152:24;;9138:39;;9132:46;9280:16;;;;9266:31;;9260:38;8958:1;8954:11;;;9052:4;8999:58;;;8990:68;9083:11;;9128:57;;;9119:67;;;;9211:11;;9256:49;;9247:59;9335:3;9331:13;9364:22;;9434:1;9419:17;;;;8777:9;8674:777;;;8678:44;9483:1;9478:3;9474:11;9504:1;9499:84;;;;9602:1;9597:82;;;;9467:212;;9499:84;-1:-1:-1;;;;;9532:17:0;;9525:43;9499:84;;9597:82;-1:-1:-1;;;;;9630:17:0;;9623:41;9467:212;-1:-1:-1;;;9695:26:0;;;9702:6;8166:1607;-1:-1:-1;;;;8166:1607:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:163:1:-;81:20;;141:10;130:22;;120:33;;110:61;;167:1;164;157:12;182:290;252:6;305:2;293:9;284:7;280:23;276:32;273:52;;;321:1;318;311:12;273:52;347:16;;-1:-1:-1;;;;;392:31:1;;382:42;;372:70;;438:1;435;428:12;372:70;461:5;182:290;-1:-1:-1;;;182:290:1:o;477:180::-;536:6;589:2;577:9;568:7;564:23;560:32;557:52;;;605:1;602;595:12;557:52;-1:-1:-1;628:23:1;;477:180;-1:-1:-1;477:180:1:o;662:184::-;732:6;785:2;773:9;764:7;760:23;756:32;753:52;;;801:1;798;791:12;753:52;-1:-1:-1;824:16:1;;662:184;-1:-1:-1;662:184:1:o;851:523::-;955:6;963;971;979;987;995;1048:3;1036:9;1027:7;1023:23;1019:33;1016:53;;;1065:1;1062;1055:12;1016:53;-1:-1:-1;;1088:23:1;;;1158:2;1143:18;;1130:32;;-1:-1:-1;1209:2:1;1194:18;;1181:32;;1260:2;1245:18;;1232:32;;-1:-1:-1;1311:3:1;1296:19;;1283:33;;-1:-1:-1;1363:3:1;1348:19;1335:33;;-1:-1:-1;851:523:1;-1:-1:-1;851:523:1:o;1379:616::-;1486:6;1494;1502;1510;1518;1526;1534;1587:3;1575:9;1566:7;1562:23;1558:33;1555:53;;;1604:1;1601;1594:12;1555:53;1640:9;1627:23;1617:33;;1669:37;1702:2;1691:9;1687:18;1669:37;:::i;:::-;1659:47;;1725:37;1758:2;1747:9;1743:18;1725:37;:::i;:::-;1715:47;;1781:37;1814:2;1803:9;1799:18;1781:37;:::i;:::-;1771:47;;1837:38;1870:3;1859:9;1855:19;1837:38;:::i;:::-;1827:48;;1894:38;1927:3;1916:9;1912:19;1894:38;:::i;:::-;1884:48;;1951:38;1984:3;1973:9;1969:19;1951:38;:::i;:::-;1941:48;;1379:616;;;;;;;;;;:::o;2000:185::-;2042:3;2080:5;2074:12;2095:52;2140:6;2135:3;2128:4;2121:5;2117:16;2095:52;:::i;:::-;2163:16;;;;;2000:185;-1:-1:-1;;2000:185:1:o;2190:237::-;2267:66;2255:79;;-1:-1:-1;;;2359:2:1;2350:12;;2343:50;2418:2;2409:12;;2190:237::o;2562:1449::-;2981:3;3019:6;3013:13;3045:4;3058:51;3102:6;3097:3;3092:2;3084:6;3080:15;3058:51;:::i;:::-;3172:13;;3131:16;;;;3194:55;3172:13;3131:16;3216:15;;;3194:55;:::i;:::-;3316:13;;3271:20;;;3338:55;3316:13;3271:20;3360:15;;;3338:55;:::i;:::-;3460:13;;3415:20;;;3482:55;3460:13;3415:20;3504:15;;;3482:55;:::i;:::-;3604:13;;3559:20;;;3626:55;3604:13;3559:20;3648:15;;;3626:55;:::i;:::-;3748:13;;3703:20;;;3770:55;3748:13;3703:20;3792:15;;;3770:55;:::i;:::-;3892:13;;3847:20;;;3914:55;3892:13;3847:20;3936:15;;;3914:55;:::i;:::-;3985:20;;;;;2562:1449;-1:-1:-1;;;;;;;;;;2562:1449:1:o;4016:726::-;-1:-1:-1;;;4475:3:1;4468:23;-1:-1:-1;;;4516:1:1;4511:3;4507:11;4500:24;4450:3;4553:6;4547:13;4569:61;4623:6;4619:1;4614:3;4610:11;4603:4;4595:6;4591:17;4569:61;:::i;:::-;-1:-1:-1;;;4689:1:1;4649:16;;;;4681:10;;;4674:35;-1:-1:-1;4733:2:1;4725:11;;4016:726;-1:-1:-1;4016:726:1:o;4747:698::-;-1:-1:-1;;;5206:3:1;5199:27;-1:-1:-1;;;5251:2:1;5246:3;5242:12;5235:25;5181:3;5289:6;5283:13;5305:62;5360:6;5355:2;5350:3;5346:12;5339:4;5331:6;5327:17;5305:62;:::i;:::-;5383:56;5435:2;5426:6;5421:3;5417:16;5413:25;5383:56;:::i;5450:689::-;-1:-1:-1;;;5909:3:1;5902:21;-1:-1:-1;;;5948:1:1;5943:3;5939:11;5932:24;5884:3;5985:6;5979:13;6001:61;6055:6;6051:1;6046:3;6042:11;6035:4;6027:6;6023:17;6001:61;:::i;:::-;6078:55;6130:1;6121:6;6116:3;6112:16;6108:24;6078:55;:::i;6144:694::-;-1:-1:-1;;;6603:3:1;6596:24;-1:-1:-1;;;6645:1:1;6640:3;6636:11;6629:24;6578:3;6682:6;6676:13;6698:62;6753:6;6748:2;6743:3;6739:12;6732:4;6724:6;6720:17;6698:62;:::i;:::-;6776:56;6828:2;6819:6;6814:3;6810:16;6806:25;6776:56;:::i;6843:835::-;-1:-1:-1;;;7302:3:1;7295:23;-1:-1:-1;;;7343:1:1;7338:3;7334:11;7327:24;7277:3;7380:6;7374:13;7396:61;7450:6;7446:1;7441:3;7437:11;7430:4;7422:6;7418:17;7396:61;:::i;:::-;7520:66;7516:1;7476:16;;;;7508:10;;;7501:86;-1:-1:-1;;;;7611:2:1;7603:11;;7596:49;7669:2;7661:11;;6843:835;-1:-1:-1;6843:835:1:o;7683:698::-;-1:-1:-1;;;8142:3:1;8135:27;-1:-1:-1;;;8187:2:1;8182:3;8178:12;8171:25;8117:3;8225:6;8219:13;8241:62;8296:6;8291:2;8286:3;8282:12;8275:4;8267:6;8263:17;8241:62;:::i;8386:448::-;8648:31;8643:3;8636:44;8618:3;8709:6;8703:13;8725:62;8780:6;8775:2;8770:3;8766:12;8759:4;8751:6;8747:17;8725:62;:::i;:::-;8807:16;;;;8825:2;8803:25;;8386:448;-1:-1:-1;;8386:448:1:o;8839:1580::-;-1:-1:-1;;;9339:64:1;;9426:13;;9321:3;;9448:62;9426:13;9498:2;9489:12;;9482:4;9470:17;;9448:62;:::i;:::-;9574:66;9569:2;9529:16;;;9561:11;;;9554:87;9670:34;9665:2;9657:11;;9650:55;9734:34;9729:2;9721:11;;9714:55;9799:34;9793:3;9785:12;;9778:56;9864:34;9858:3;9850:12;;9843:56;9929:34;9923:3;9915:12;;9908:56;9994:34;9988:3;9980:12;;9973:56;10059:34;10053:3;10045:12;;10038:56;10124:66;10118:3;10110:12;;10103:88;10221:66;10215:3;10207:12;;10200:88;-1:-1:-1;;;10312:3:1;10304:12;;10297:30;10343:70;10373:39;10407:3;10399:12;;10391:6;10373:39;:::i;:::-;-1:-1:-1;;;2497:27:1;;2549:1;2540:11;;2432:125;10343:70;10336:77;8839:1580;-1:-1:-1;;;;;8839:1580:1:o;10616:383::-;10765:2;10754:9;10747:21;10728:4;10797:6;10791:13;10840:6;10835:2;10824:9;10820:18;10813:34;10856:66;10915:6;10910:2;10899:9;10895:18;10890:2;10882:6;10878:15;10856:66;:::i;:::-;10983:2;10962:15;-1:-1:-1;;10958:29:1;10943:45;;;;10990:2;10939:54;;10616:383;-1:-1:-1;;10616:383:1:o;11186:678::-;11489:25;;;11533:10;11579:15;;;11574:2;11559:18;;11552:43;11631:15;;;11626:2;11611:18;;11604:43;11683:15;;;11678:2;11663:18;;11656:43;11736:15;;11730:3;11715:19;;11708:44;11789:15;;11783:3;11768:19;;11761:44;11842:15;11836:3;11821:19;;11814:44;11476:3;11461:19;;11186:678::o;12480:128::-;12520:3;12551:1;12547:6;12544:1;12541:13;12538:39;;;12557:18;;:::i;:::-;-1:-1:-1;12593:9:1;;12480:128::o;12613:228::-;12652:3;12680:10;12717:2;12714:1;12710:10;12747:2;12744:1;12740:10;12778:3;12774:2;12770:12;12765:3;12762:21;12759:47;;;12786:18;;:::i;:::-;12822:13;;12613:228;-1:-1:-1;;;;12613:228:1:o;12846:120::-;12886:1;12912;12902:35;;12917:18;;:::i;:::-;-1:-1:-1;12951:9:1;;12846:120::o;12971:422::-;13060:1;13103:5;13060:1;13117:270;13138:7;13128:8;13125:21;13117:270;;;13197:4;13193:1;13189:6;13185:17;13179:4;13176:27;13173:53;;;13206:18;;:::i;:::-;13256:7;13246:8;13242:22;13239:55;;;13276:16;;;;13239:55;13355:22;;;;13315:15;;;;13117:270;;;13121:3;12971:422;;;;;:::o;13398:140::-;13456:5;13485:47;13526:4;13516:8;13512:19;13506:4;13592:5;13622:8;13612:80;;-1:-1:-1;13663:1:1;13677:5;;13612:80;13711:4;13701:76;;-1:-1:-1;13748:1:1;13762:5;;13701:76;13793:4;13811:1;13806:59;;;;13879:1;13874:130;;;;13786:218;;13806:59;13836:1;13827:10;;13850:5;;;13874:130;13911:3;13901:8;13898:17;13895:43;;;13918:18;;:::i;:::-;-1:-1:-1;;13974:1:1;13960:16;;13989:5;;13786:218;;14088:2;14078:8;14075:16;14069:3;14063:4;14060:13;14056:36;14050:2;14040:8;14037:16;14032:2;14026:4;14023:12;14019:35;14016:77;14013:159;;;-1:-1:-1;14125:19:1;;;14157:5;;14013:159;14204:34;14229:8;14223:4;14204:34;:::i;:::-;14274:6;14270:1;14266:6;14262:19;14253:7;14250:32;14247:58;;;14285:18;;:::i;:::-;14323:20;;13543:806;-1:-1:-1;;;13543:806:1:o;14354:168::-;14394:7;14460:1;14456;14452:6;14448:14;14445:1;14442:21;14437:1;14430:9;14423:17;14419:45;14416:71;;;14467:18;;:::i;:::-;-1:-1:-1;14507:9:1;;14354:168::o;14527:125::-;14567:4;14595:1;14592;14589:8;14586:34;;;14600:18;;:::i;:::-;-1:-1:-1;14637:9:1;;14527:125::o;14657:258::-;14729:1;14739:113;14753:6;14750:1;14747:13;14739:113;;;14829:11;;;14823:18;14810:11;;;14803:39;14775:2;14768:10;14739:113;;;14870:6;14867:1;14864:13;14861:48;;;14905:1;14896:6;14891:3;14887:16;14880:27;14861:48;;14657:258;;;:::o;14920:135::-;14959:3;-1:-1:-1;;14980:17:1;;14977:43;;;15000:18;;:::i;:::-;-1:-1:-1;15047:1:1;15036:13;;14920:135::o;15060:112::-;15092:1;15118;15108:35;;15123:18;;:::i;:::-;-1:-1:-1;15157:9:1;;15060:112::o;15177:127::-;15238:10;15233:3;15229:20;15226:1;15219:31;15269:4;15266:1;15259:15;15293:4;15290:1;15283:15;15309:127;15370:10;15365:3;15361:20;15358:1;15351:31;15401:4;15398:1;15391:15;15425:4;15422:1;15415:15;15441:127;15502:10;15497:3;15493:20;15490:1;15483:31;15533:4;15530:1;15523:15;15557:4;15554:1;15547:15;15573:127;15634:10;15629:3;15625:20;15622:1;15615:31;15665:4;15662:1;15655:15;15689:4;15686:1;15679:15

Swarm Source

ipfs://3528791a508493f9ea8325516c2add82400b3f6069ac9a9a8437cf65ea9e76d4
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
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.