Contract 0x822F888f5DB8e1316717Eb904E550ebB1196EdbE

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x5eac0ee5780014e8ac91b330adbdd662cd54d8a29aa7964d084197ccedf731b00x60806040166564062021-09-08 7:11:4146 days 19 hrs agoFantom: Deployer IN  Contract Creation0 FTM1.33775425
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x5eac0ee5780014e8ac91b330adbdd662cd54d8a29aa7964d084197ccedf731b0166564062021-09-08 7:11:4146 days 19 hrs ago Fantom: Deployer  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
codex

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at FtmScan.com on 2021-09-08
*/

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

contract codex {
    string constant public index = "Feats";
    string constant public class = "Any";

    function feat_by_id(uint _id) external pure returns(
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        if (_id == 1) {
            return acrobatic();
        } else if (_id == 2) {
            return agile();
        } else if (_id == 3) {
            return alertness();
        } else if (_id == 4) {
            return animal_affinity();
        } else if (_id == 5) {
            return armor_proficiency_light();
        } else if (_id == 6) {
            return armor_proficiency_medium();
        } else if (_id == 7) {
            return armor_proficiency_heavy();
        } else if (_id == 8) {
            return athletic();
        } else if (_id == 9) {
            return spell_focus();
        } else if (_id == 10) {
            return augment_summoning();
        } else if (_id == 11) {
            return blind_fight();
        } else if (_id == 12) {
            return brew_potion();
        } else if (_id == 13) {
            return power_attack();
        } else if (_id == 14) {
            return cleave();
        } else if (_id == 15) {
            return combat_casting();
        } else if (_id == 16) {
            return combat_expertise();
        } else if (_id == 17) {
            return combat_reflexes();
        } else if (_id == 18) {
            return craft_magic_arms_and_armor();
        } else if (_id == 19) {
            return craft_rod();
        } else if (_id == 20) {
            return craft_staff();
        } else if (_id == 21) {
            return craft_wand();
        } else if (_id == 22) {
            return craft_wondrous_item();
        } else if (_id == 23) {
            return deceitful();
        } else if (_id == 24) {
            return improved_unarmed_strike();
        } else if (_id == 25) {
            return deflect_arrows();
        } else if (_id == 26) {
            return deft_hands();
        } else if (_id == 27) {
            return endurance();
        } else if (_id == 28) {
            return diehard();
        } else if (_id == 29) {
            return diligent();
        } else if (_id == 30) {
            return dodge();
        } else if (_id == 31) {
            return empower_spell();
        } else if (_id == 32) {
            return enlarge_spell();
        } else if (_id == 33) {
            return eschew_materials();
        } else if (_id == 34) {
            return exotic_weapon_proficiency();
        } else if (_id == 35) {
            return extend_spell();
        } else if (_id == 36) {
            return extra_turning();
        } else if (_id == 37) {
            return point_blank_shot();
        } else if (_id == 38) {
            return far_shot();
        } else if (_id == 39) {
            return forge_ring();
        } else if (_id == 40) {
            return great_cleave();
        } else if (_id == 41) {
            return great_fortitude();
        } else if (_id == 42) {
            return greater_spell_focus();
        } else if (_id == 43) {
            return spell_penetration();
        } else if (_id == 44) {
            return greater_spell_peneratrion();
        } else if (_id == 45) {
            return two_weapon_fighting();
        } else if (_id == 46) {
            return improved_two_weapon_fighting();
        } else if (_id == 47) {
            return greater_two_weapon_fighting();
        } else if (_id == 48) {
            return weapon_focus();
        } else if (_id == 49) {
            return greater_weapon_focus();
        } else if (_id == 50) {
            return weapon_specialization();
        } else if (_id == 51) {
            return greater_weapon_specialization();
        } else if (_id == 52) {
            return heighten_spell();
        } else if (_id == 53) {
            return improved_bull_rush();
        } else if (_id == 54) {
            return improved_counterspell();
        } else if (_id == 55) {
            return improved_critical();
        } else if (_id == 56) {
            return improved_disarm();
        } else if (_id == 57) {
            return improved_feint();
        } else if (_id == 58) {
            return improved_grapple();
        } else if (_id == 59) {
            return improved_initiative();
        } else if (_id == 60) {
            return improved_overrun();
        } else if (_id == 61) {
            return precise_shot();
        } else if (_id == 62) {
            return improved_precise_shot();
        } else if (_id == 63) {
            return shield_proficiency();
        } else if (_id == 64) {
            return improved_shield_bash();
        }
    }

    function acrobatic() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 1;
        name = "Acrobat";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You get a +2 bonus on all Jump checks and Tumble checks.";
    }

    function agile() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 2;
        name = "Agile";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You get a +2 bonus on all Balance checks and Escape Artist checks.";
    }

    function alertness() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 3;
        name = "Alertness";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You get a +2 bonus on all Listen checks and Spot checks.";
    }

    function animal_affinity() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 4;
        name = "Animal Affinity";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You get a +2 bonus on all Handle Animal checks and Ride checks.";
    }

    function armor_proficiency_light() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 5;
        name = "Armor Proficiency (Light)";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "When you wear a type of armor with which you are proficient, the armor check penalty for that armor applies only to Balance, Climb, Escape Artist, Hide, Jump, Move Silently, Sleight of Hand, and Tumble checks.";
    }

    function armor_proficiency_medium() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 6;
        name = "Armor Proficiency (Medium)";
        prerequisites = true;
        prequisite_feat = 5;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "When you wear a type of armor with which you are proficient, the armor check penalty for that armor applies only to Balance, Climb, Escape Artist, Hide, Jump, Move Silently, Sleight of Hand, and Tumble checks.";
    }

    function armor_proficiency_heavy() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 7;
        name = "Armor Proficiency (Heavy)";
        prerequisites = true;
        prequisite_feat = 6;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "When you wear a type of armor with which you are proficient, the armor check penalty for that armor applies only to Balance, Climb, Escape Artist, Hide, Jump, Move Silently, Sleight of Hand, and Tumble checks.";
    }

    function athletic() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 8;
        name = "Athletic";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You get a +2 bonus on all Climb checks and Swim checks.";
    }

    function spell_focus() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 9;
        name = "Spell Focus";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 1614;
        prequisite_level = 0;
        benefit = "Add +1 to the Difficulty Class for all saving throws against spells from the school of magic you select.";
    }

    function augment_summoning() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 10;
        name = "Augment Summoning";
        prerequisites = true;
        prequisite_feat = 9;
        preprequisite_class = 1614;
        prequisite_level = 0;
        benefit = "Each creature you conjure with any summon spell gains a +4 enhancement bonus to Strength and Constitution for the duration of the spell that summoned it.";
    }

    function blind_fight() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 11;
        name = "Blind-Fight";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "In melee, every time you miss because of concealment, you can reroll your miss chance percentile roll one time to see if you actually hit. An invisible attacker gets no advantages related to hitting you in melee. That is, you dont lose your Dexterity bonus to Armor Class, and the attacker doesnt get the usual +2 bonus for being invisible. The invisible attackers bonuses do still apply for ranged attacks, however. You take only half the usual penalty to speed for being unable to see. Darkness and poor visibility in general reduces your speed to three-quarters normal, instead of one half.";
    }

    function brew_potion() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 12;
        name = "Brew Potion";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 1540;
        prequisite_level = 3;
        benefit = "You can create a potion of any 3rd level or lower spell that you know and that targets one or more creatures. Brewing a potion takes one day. When you create a potion, you set the caster level, which must be sufficient to cast the spell in question and no higher than your own level. The base price of a potion is its spell level * its caster level * 50 gp. To brew a potion, you must spend 1/25 of this base price in XP and use up raw materials costing one half this base price. When you create a potion, you make any choices that you would normally make when casting the spell. Whoever drinks the potion is the target of the spell. Any potion that stores a spell with a costly material component or an XP cost also carries a commensurate cost. In addition to the costs derived from the base price, you must expend the material component or pay the XP when creating the potion.";
    }

    function power_attack() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 13;
        name = "Power Attack";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "On your action, before making attack rolls for a round, you may choose to subtract a number from all melee attack rolls and add the same number to all melee damage rolls. This number may not exceed your base attack bonus. The penalty on attacks and bonus on damage apply until your next turn.";
    }

    function cleave() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 14;
        name = "Cleave";
        prerequisites = true;
        prequisite_feat = 13;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "If you deal a creature enough damage to make it drop (typically by dropping it to below 0 hit points or killing it), you get an immediate, extra melee attack against another creature within reach. You cannot take a 5-foot step before making this extra attack. The extra attack is with the same weapon and at the same bonus as the attack that dropped the previous creature. You can use this ability once per round.";
    }

    function combat_casting() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 15;
        name = "Combat Casting";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You get a +4 bonus on Concentration checks made to cast a spell or use a spell-like ability while on the defensive or while you are grappling or pinned.";
    }

    function combat_expertise() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 16;
        name = "Combat Expertise";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "When you use the attack action or the full attack action in melee, you can take a penalty of as much as -5 on your attack roll and add the same number (+5 or less) as a dodge bonus to your Armor Class. This number may not exceed your base attack bonus. The changes to attack rolls and Armor Class last until your next action.";
    }

    function combat_reflexes() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 17;
        name = "Combat Reflexes";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You may make a number of additional attacks of opportunity equal to your Dexterity bonus. With this feat, you may also make attacks of opportunity while flat-footed.";
    }

    function craft_magic_arms_and_armor() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 18;
        name = "Craft Magic Arms And Armor";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 1540;
        prequisite_level = 5;
        benefit = "You can create any magic weapon, armor, or shield whose prerequisites you meet. Enhancing a weapon, suit of armor, or shield takes one day for each 1,000 gp in the price of its magical features. To enhance a weapon, suit of armor, or shield, you must spend 1/25 of its features total price in XP and use up raw materials costing one-half of this total price. The weapon, armor, or shield to be enhanced must be a masterwork item that you provide. Its cost is not included in the above cost. You can also mend a broken magic weapon, suit of armor, or shield if it is one that you could make. Doing so costs half the XP, half the raw materials, and half the time it would take to craft that item in the first place.";
    }

    function craft_rod() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 19;
        name = "Craft Rod";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 1540;
        prequisite_level = 9;
        benefit = "You can create any rod whose prerequisites you meet. Crafting a rod takes one day for each 1,000 gp in its base price. To craft a rod, you must spend 1/25 of its base price in XP and use up raw materials costing one-half of its base price. Some rods incur extra costs in material components or XP, as noted in their descriptions. These costs are in addition to those derived from the rods base price.";
    }

    function craft_staff() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 20;
        name = "Craft Staff";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 1540;
        prequisite_level = 12;
        benefit = "You can create any staff whose prerequisites you meet. Crafting a staff takes one day for each 1,000 gp in its base price. To craft a staff, you must spend 1/25 of its base price in XP and use up raw materials costing one-half of its base price. A newly created staff has 50 charges. Some staffs incur extra costs in material components or XP, as noted in their descriptions. These costs are in addition to those derived from the staffs base price.";
    }

    function craft_wand() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 21;
        name = "Craft Wand";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 1540;
        prequisite_level = 5;
        benefit = "You can create a wand of any 4th-level or lower spell that you know. Crafting a wand takes one day for each 1,000 gp in its base price. The base price of a wand is its caster level * the spell level * 750 gp. To craft a wand, you must spend 1/25 of this base price in XP and use up raw materials costing one half of this base price. A newly created wand has 50 charges. Any wand that stores a spell with a costly material component or an XP cost also carries a commensurate cost. In addition to the cost derived from the base price, you must expend fifty copies of the material component or pay fifty times the XP cost.";
    }

    function craft_wondrous_item() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 22;
        name = "Craft Wondrous Item";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 1540;
        prequisite_level = 3;
        benefit = "You can create any wondrous item whose prerequisites you meet. Enchanting a wondrous item takes one day for each 1,000 gp in its price. To enchant a wondrous item, you must spend 1/25 of the items price in XP and use up raw materials costing half of this price. You can also mend a broken wondrous item if it is one that you could make. Doing so costs half the XP, half the raw materials, and half the time it would take to craft that item in the first place. Some wondrous items incur extra costs in material components or XP, as noted in their descriptions. These costs are in addition to those derived from the items base price. You must pay such a cost to create an item or to mend a broken one.";
    }

    function deceitful() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 23;
        name = "Deceitful";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You get a +2 bonus on all Disguise checks and Forgery checks.";
    }

    function improved_unarmed_strike() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 24;
        name = "Improved Unarmed Strike";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You are considered to be armed even when unarmed that is, you do not provoke attacks or opportunity from armed opponents when you attack them while unarmed. However, you still get an attack of opportunity against any opponent who makes an unarmed attack on you. In addition, your unarmed strikes can deal lethal or nonlethal damage, at your option.";
    }

    function deflect_arrows() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 25;
        name = "Deflect Arrows";
        prerequisites = true;
        prequisite_feat = 24;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You must have at least one hand free (holding nothing) to use this feat. Once per round when you would normally be hit with a ranged weapon, you may deflect it so that you take no damage from it. You must be aware of the attack and not flat-footed. Attempting to deflect a ranged weapon doesnt count as an action. Unusually massive ranged weapons and ranged attacks generated by spell effects cant be deflected.";
    }

    function deft_hands() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 26;
        name = "Deft Hands";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You get a +2 bonus on all Sleight of Hand checks and Use Rope checks.";
    }

    function endurance() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 27;
        name = "Endurance";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You gain a +4 bonus on the following checks and saves: Swim checks made to resist nonlethal damage, Constitution checks made to continue running, Constitution checks made to avoid nonlethal damage from a forced march, Constitution checks made to hold your breath, Constitution checks made to avoid nonlethal damage from starvation or thirst, Fortitude saves made to avoid nonlethal damage from hot or cold environments, and Fortitude saves made to resist damage from suffocation. Also, you may sleep in light or medium armor without becoming fatigued.";
    }

    function diehard() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 28;
        name = "Diehard";
        prerequisites = true;
        prequisite_feat = 27;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "When reduced to between -1 and -9 hit points, you automatically become stable. You dont have to roll d% to see if you lose 1 hit point each round. When reduced to negative hit points, you may choose to act as if you were disabled, rather than dying. You must make this decision as soon as you are reduced to negative hit points (even if it isnt your turn). If you do not choose to act as if you were disabled, you immediately fall unconscious. When using this feat, you can take either a single move or standard action each turn, but not both, and you cannot take a full round action. You can take a move action without further injuring yourself, but if you perform any standard action (or any other action deemed as strenuous, including some free actions, swift actions, or immediate actions, such as casting a quickened spell) you take 1 point of damage after completing the act. If you reach -10 hit points, you immediately die.";
    }

    function diligent() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 29;
        name = "Diligent";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You get a +2 bonus on all Appraise checks and Decipher Script checks.";
    }

    function dodge() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 30;
        name = "Dodge";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "During your action, you designate an opponent and receive a +1 dodge bonus to Armor Class against attacks from that opponent. You can select a new opponent on any action. A condition that makes you lose your Dexterity bonus to Armor Class (if any) also makes you lose dodge bonuses. Also, dodge bonuses stack with each other, unlike most other types of bonuses.";
    }

    function empower_spell() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 31;
        name = "Empower Spell";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 1614;
        prequisite_level = 0;
        benefit = "All variable, numeric effects of an empowered spell are increased by one-half. Saving throws and opposed rolls are not affected, nor are spells without random variables. An empowered spell uses up a spell slot two levels higher than the spells actual level.";
    }

    function enlarge_spell() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 32;
        name = "Enlarge Spell";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 1614;
        prequisite_level = 0;
        benefit = "You can alter a spell with a range of close, medium, or long to increase its range by 100%. An enlarged spell with a range of close now has a range of 50 ft. + 5 ft./level, while medium-range spells have a range of 200 ft. + 20 ft./level and long-range spells have a range of 800 ft. + 80 ft./level. An enlarged spell uses up a spell slot one level higher than the spells actual level. Spells whose ranges are not defined by distance, as well as spells whose ranges are not close, medium, or long, do not have increased ranges.";
    }

    function eschew_materials() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 33;
        name = "Eschew Materials";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You can cast any spell that has a material component costing 1 gp or less without needing that component. (The casting of the spell still provokes attacks of opportunity as normal.) If the spell requires a material component that costs more than 1 gp, you must have the material component at hand to cast the spell, just as normal.";
    }

    function exotic_weapon_proficiency() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 34;
        name = "Exotic Weapon Proficiency";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You make attack rolls with the weapon normally.";
    }

    function extend_spell() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 35;
        name = "Extend Spell";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 1614;
        prequisite_level = 0;
        benefit = "An extended spell lasts twice as long as normal. A spell with a duration of concentration, instantaneous, or permanent is not affected by this feat. An extended spell uses up a spell slot one level higher than the spells actual level.";
    }

    function extra_turning() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 36;
        name = "Extra Turning";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 68;
        prequisite_level = 0;
        benefit = "Each time you take this feat, you can use your ability to turn or rebuke creatures four more times per day than normal. If you have the ability to turn or rebuke more than one kind of creature each of your turning or rebuking abilities gains four additional uses per day.";
    }

    function point_blank_shot() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 37;
        name = "Point Blank Shot";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "On your action, before making attack rolls for a round, you may choose to subtract a number from all melee attack rolls and add the same number to all melee damage rolls. This number may not exceed your base attack bonus. The penalty on attacks and bonus on damage apply until your next turn.";
    }

    function far_shot() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 38;
        name = "Far Shot";
        prerequisites = true;
        prequisite_feat = 37;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "When you use a projectile weapon, such as a bow, its range increment increases by one-half (multiply by 1.5). When you use a thrown weapon, its range increment is doubled.";
    }

    function forge_ring() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 39;
        name = "Forge Ring";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 1540;
        prequisite_level = 12;
        benefit = "You can create any ring whose prerequisites you meet. Crafting a ring takes one day for each 1,000 gp in its base price. To craft a ring, you must spend 1/25 of its base price in XP and use up raw materials costing one-half of its base price. You can also mend a broken ring if it is one that you could make. Doing so costs half the XP, half the raw materials, and half the time it would take to forge that ring in the first place. Some magic rings incur extra costs in material components or XP, as noted in their descriptions. You must pay such a cost to forge such a ring or to mend a broken one.";
    }

    function great_cleave() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 40;
        name = "Great Cleave";
        prerequisites = true;
        prequisite_feat = 14;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "This feat works like Cleave, except that there is no limit to the number of times you can use it per round.";
    }

    function great_fortitude() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 41;
        name = "Great Fortitude";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You get a +2 bonus on all Fortitude saving throws.";
    }

    function greater_spell_focus() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 42;
        name = "Greater Spell Focus";
        prerequisites = true;
        prequisite_feat = 9;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "Add +1 to the Difficulty Class for all saving throws against spells from the school of magic you select. This bonus stacks with the bonus from Spell Focus.";
    }

    function spell_penetration() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 43;
        name = "Spell Penetration";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You get a +2 bonus on caster level checks (1d20 + caster level) made to overcome a creatures spell resistance.";
    }

    function greater_spell_peneratrion() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 44;
        name = "Greater Spell Penetration";
        prerequisites = true;
        prequisite_feat = 43;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You get a +2 bonus on caster level checks (1d20 + caster level) made to overcome a creatures spell resistance. This bonus stacks with the one from Spell Penetration.";
    }

    function two_weapon_fighting() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 45;
        name = "Two-Weapon Fighting";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "Your penalties on attack rolls for fighting with two weapons are reduced. The penalty for your primary hand lessens by 2 and the one for your off hand lessens by 6. See the Two-Weapon Fighting special attack.";
    }

    function improved_two_weapon_fighting() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 46;
        name = "Improved Two-Weapon Fighting";
        prerequisites = true;
        prequisite_feat = 45;
        preprequisite_class = 2047;
        prequisite_level = 6;
        benefit = "In addition to the standard single extra attack you get with an off-hand weapon, you get a second attack with it, albeit at a -5 penalty. See the Two-Weapon Fighting special attack.";
    }

    function greater_two_weapon_fighting() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 47;
        name = "Greater Two-Weapon Fighting";
        prerequisites = true;
        prequisite_feat = 46;
        preprequisite_class = 2047;
        prequisite_level = 11;
        benefit = "You get a third attack with your off-hand weapon, albeit at a -10 penalty. See the Two-Weapon Fighting special attack.";
    }

    function weapon_focus() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 48;
        name = "Weapon Focus";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You gain a +1 bonus on all attack rolls you make using the selected weapon.";
    }

    function greater_weapon_focus() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 49;
        name = "Greater Weapon Focus";
        prerequisites = true;
        prequisite_feat = 48;
        preprequisite_class = 16;
        prequisite_level = 8;
        benefit = "You gain a +1 bonus on all attack rolls you make using the selected weapon. This bonus stacks with other bonuses on attack rolls, including the one from Weapon Focus (see below).";
    }

    function weapon_specialization() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 50;
        name = "Weapon Specialization";
        prerequisites = true;
        prequisite_feat = 48;
        preprequisite_class = 16;
        prequisite_level = 4;
        benefit = "You gain a +2 bonus on all damage rolls you make using the selected weapon.";
    }

    function greater_weapon_specialization() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 51;
        name = "Greater Weapon Specialization";
        prerequisites = true;
        prequisite_feat = 49;
        preprequisite_class = 16;
        prequisite_level = 12;
        benefit = "You gain a +2 bonus on all damage rolls you make using the selected weapon. This bonus stacks with other bonuses on damage rolls, including the one from Weapon Specialization (see below).";
    }

    function heighten_spell() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 52;
        name = "Heighten Spell";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 1540;
        prequisite_level = 0;
        benefit = "A heightened spell has a higher spell level than normal (up to a maximum of 9th level). Unlike other metamagic feats, Heighten Spell actually increases the effective level of the spell that it modifies. All effects dependent on spell level (such as saving throw DCs and ability to penetrate a lesser globe of invulnerability) are calculated according to the heightened level. The heightened spell is as difficult to prepare and cast as a spell of its effective level.";
    }

    function improved_bull_rush() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 53;
        name = "Improved Bull Rush";
        prerequisites = true;
        prequisite_feat = 13;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "When you perform a bull rush you do not provoke an attack of opportunity from the defender. You also gain a +4 bonus on the opposed Strength check you make to push back the defender.";
    }

    function improved_counterspell() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 54;
        name = "Improved Counterspell";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 1540;
        prequisite_level = 0;
        benefit = "When counterspelling, you may use a spell of the same school that is one or more spell levels higher than the target spell.";
    }

    function improved_critical() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 55;
        name = "Improved Critical";
        prerequisites = true;
        prequisite_feat = 0;
        preprequisite_class = 465;
        prequisite_level = 8;
        benefit = "When using the weapon you selected, your threat range is doubled.";
    }

    function improved_disarm() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 56;
        name = "Improved Disarm";
        prerequisites = true;
        prequisite_feat = 16;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You do not provoke an attack of opportunity when you attempt to disarm an opponent, nor does the opponent have a chance to disarm you. You also gain a +4 bonus on the opposed attack roll you make to disarm your opponent.";
    }

    function improved_feint() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 57;
        name = "Improved Feint";
        prerequisites = true;
        prequisite_feat = 16;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You can make a Bluff check to feint in combat as a move action.";
    }

    function improved_grapple() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 58;
        name = "Improved Grapple";
        prerequisites = true;
        prequisite_feat = 24;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You do not provoke an attack of opportunity when you make a touch attack to start a grapple. You also gain a +4 bonus on all grapple checks, regardless of whether you started the grapple.";
    }

    function improved_initiative() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 59;
        name = "Improved Initiative";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You get a +4 bonus on initiative checks.";
    }

    function improved_overrun() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 60;
        name = "Improved Overrun";
        prerequisites = true;
        prequisite_feat = 13;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "When you attempt to overrun an opponent, the target may not choose to avoid you. You also gain a +4 bonus on your Strength check to knock down your opponent.";
    }

    function precise_shot() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 61;
        name = "Precise Shot";
        prerequisites = true;
        prequisite_feat = 37;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You can shoot or throw ranged weapons at an opponent engaged in melee without taking the standard -4 penalty on your attack roll.";
    }

    function improved_precise_shot() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 62;
        name = "Improved Precise Shot";
        prerequisites = true;
        prequisite_feat = 61;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "Your ranged attacks ignore the AC bonus granted to targets by anything less than total cover, and the miss chance granted to targets by anything less than total concealment. Total cover and total concealment provide their normal benefits against your ranged attacks. In addition, when you shoot or throw ranged weapons at a grappling opponent, you automatically strike at the opponent you have chosen.";
    }

    function shield_proficiency() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 63;
        name = "Shield Proficiency";
        prerequisites = false;
        prequisite_feat = 0;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "You can use a shield and take only the standard penalties.";
    }

    function improved_shield_bash() public pure returns (
        uint id,
        string memory name,
        bool prerequisites,
        uint prequisite_feat,
        uint preprequisite_class,
        uint prequisite_level,
        string memory benefit
    ) {
        id = 64;
        name = "Improved Shield Bash";
        prerequisites = true;
        prequisite_feat = 64;
        preprequisite_class = 2047;
        prequisite_level = 0;
        benefit = "When you perform a shield bash, you may still apply the shields shield bonus to your AC.";
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"name":"acrobatic","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"agile","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"alertness","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"animal_affinity","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"armor_proficiency_heavy","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"armor_proficiency_light","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"armor_proficiency_medium","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"athletic","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"augment_summoning","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"blind_fight","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"brew_potion","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"class","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cleave","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"combat_casting","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"combat_expertise","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"combat_reflexes","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"craft_magic_arms_and_armor","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"craft_rod","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"craft_staff","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"craft_wand","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"craft_wondrous_item","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"deceitful","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"deflect_arrows","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"deft_hands","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"diehard","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"diligent","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dodge","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"empower_spell","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"endurance","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enlarge_spell","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"eschew_materials","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"exotic_weapon_proficiency","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"extend_spell","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"extra_turning","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"far_shot","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"feat_by_id","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"forge_ring","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"great_cleave","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"great_fortitude","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"greater_spell_focus","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"greater_spell_peneratrion","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"greater_two_weapon_fighting","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"greater_weapon_focus","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"greater_weapon_specialization","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"heighten_spell","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"improved_bull_rush","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"improved_counterspell","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"improved_critical","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"improved_disarm","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"improved_feint","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"improved_grapple","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"improved_initiative","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"improved_overrun","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"improved_precise_shot","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"improved_shield_bash","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"improved_two_weapon_fighting","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"improved_unarmed_strike","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"index","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"point_blank_shot","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"power_attack","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"precise_shot","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"shield_proficiency","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"spell_focus","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"spell_penetration","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"two_weapon_fighting","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"weapon_focus","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"weapon_specialization","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"prerequisites","type":"bool"},{"internalType":"uint256","name":"prequisite_feat","type":"uint256"},{"internalType":"uint256","name":"preprequisite_class","type":"uint256"},{"internalType":"uint256","name":"prequisite_level","type":"uint256"},{"internalType":"string","name":"benefit","type":"string"}],"stateMutability":"pure","type":"function"}]

608060405234801561001057600080fd5b50615fbc806100206000396000f3fe608060405234801561001057600080fd5b50600436106103f15760003560e01c806385a6df6711610215578063c5f79d3111610125578063e603ff79116100b8578063f1eca28c11610087578063f1eca28c14610645578063fa7080321461064d578063fb50c14014610655578063fc7476c01461065d578063fd6db00c1461067057600080fd5b8063e603ff7914610625578063ea2ebcbb1461062d578063eb2bc27b14610635578063eb41cd901461063d57600080fd5b8063d5b622e6116100f4578063d5b622e614610605578063dade45971461060d578063db273a8714610615578063dc7b06fb1461061d57600080fd5b8063c5f79d31146105e5578063cbd40b49146105ed578063d14b9140146105f5578063d409ff6e146105fd57600080fd5b8063a6ffc9d2116101a8578063bad384c811610177578063bad384c8146105a3578063bc5f2fc7146105ab578063bc80220a146105b3578063bff852fa146105bb578063c5db709c146105dd57600080fd5b8063a6ffc9d214610583578063a8e74dcc1461058b578063acb10a1114610593578063b790e7041461059b57600080fd5b80639825168f116101e45780639825168f146105635780639ac72ee21461056b578063a3086fde14610573578063a584159b1461057b57600080fd5b806385a6df6714610543578063937974931461054b57806394abe3511461055357806397330f431461055b57600080fd5b8063554cc1e5116103105780636fc7364f116102a35780637841bec7116102725780637841bec71461051b5780637a1a7432146105235780637a76da3a1461052b5780637ab8129c146105335780638315129f1461053b57600080fd5b80636fc7364f146104fb578063759c6e5014610503578063762e56501461050b57806376d6c5061461051357600080fd5b80636253d1f4116102df5780636253d1f4146104db578063648c3b97146104e35780636d036cfe146104eb5780636e736524146104f357600080fd5b8063554cc1e5146104bb57806357e5f3c4146104c3578063596cffee146104cb5780635e229a08146104d357600080fd5b80632a3f0a8f116103885780633e2db478116103575780633e2db4781461049b5780633fb5aa35146104a357806345ea9bde146104ab5780635078278c146104b357600080fd5b80632a3f0a8f1461047b5780632b421722146104835780633b6a2f251461048b5780633c9b018f1461049357600080fd5b8063252b5c9d116103c4578063252b5c9d1461043257806328b5529d1461043a5780632986c0e5146104425780632a3295771461047357600080fd5b8063047edaff146103f6578063185f826f1461041a5780631c1fcaac146104225780631efe74e11461042a575b600080fd5b6103fe610678565b60405161041197969594939291906122b5565b60405180910390f35b6103fe6106d5565b6103fe610737565b6103fe61078d565b6103fe6107f8565b6103fe610862565b61046660405180604001604052806005815260200164466561747360d81b81525081565b604051610411919061229b565b6103fe6108b5565b6103fe610916565b6103fe610975565b6103fe6109d2565b6103fe610a23565b6103fe610a76565b6103fe610ae2565b6103fe610b33565b6103fe610b8d565b6103fe610be5565b6103fe610c40565b6103fe610c9e565b6103fe610cf1565b6103fe610d4c565b6103fe610da7565b6103fe610e11565b6103fe610e74565b6103fe610ee1565b6103fe610f3b565b6103fe610fa2565b6103fe611000565b6103fe611059565b6103fe6110af565b6103fe611109565b6103fe611163565b6103fe6111c1565b6103fe611220565b6103fe61127e565b6103fe6112ea565b6103fe61134a565b6103fe6113a8565b6103fe611413565b6103fe611471565b6103fe6114cc565b6103fe611523565b6103fe611583565b6103fe6115db565b6103fe611637565b6103fe61168e565b6103fe6116e8565b6103fe611741565b61046660405180604001604052806003815260200162416e7960e81b81525081565b6103fe61179e565b6103fe6117f2565b6103fe61184f565b6103fe6118a5565b6103fe6118ff565b6103fe611959565b6103fe6119b5565b6103fe611a0f565b6103fe611a70565b6103fe611ad5565b6103fe611b37565b6103fe611b95565b6103fe611bef565b6103fe611c43565b6103fe611cae565b6103fe611d06565b6103fe61066b366004612235565b611d60565b6103fe6121ca565b60408051808201825260108082526f436f6d6261742045787065727469736560801b60208084019190915283516101808101909452610145808552919360009283926107ff92849260609261332590830139905090919293949596565b6040805180820182526015815274125b5c1c9bdd99590810dbdd5b9d195c9cdc195b1b605a1b602080830191909152825160a08101909352607b80845260369360019260009261060492849260609290614e8b90830139905090919293949596565b604080518082018252600a815269446566742048616e647360b01b6020808301919091528251608081019093526045808452601a9360009283926107ff92849260609290613df590830139905090919293949596565b604080518082018252601c81527f496d70726f7665642054776f2d576561706f6e204669676874696e6700000000602080830191909152825160e0810190935260b5808452602e93600192602d926107ff92600692606092906130d690830139905090919293949596565b604080518082018252601d81527f4772656174657220576561706f6e205370656369616c697a6174696f6e000000602080830191909152825160e0810190935260bb808452603393600192603192601092600c9260609290613e3a90830139905090919293949596565b6040805180820182526009815268416c6572746e65737360b81b60208083019190915282516060818101909452603880825260039460009384936107ff93859392612be590830139905090919293949596565b604080518082018252601381527247726561746572205370656c6c20466f63757360681b602080830191909152825160c08101909352609b808452602a936001926009926107ff926000926060929061230990830139905090919293949596565b60408051808201825260118152704175676d656e742053756d6d6f6e696e6760781b602080830191909152825160c081019093526099808452600a9360019260099261064e926000926060929061324190830139905090919293949596565b604080518082018252600e81526d12195a59da1d195b8814dc195b1b60921b602080830191909152825161020081019093526101d38084526034936001926000926106049284926060929061471190830139905090919293949596565b60408051808201825260078152661058dc9bd8985d60ca1b60208083019190915282516060818101909452603880825260019460009384936107ff93859392613dbd90830139905090919293949596565b6040805180820182526009815268111958d95a5d199d5b60ba1b60208083019190915282516060818101909452603d80825260179460009384936107ff9385939261295790830139905090919293949596565b604080518082018252601a81527f41726d6f722050726f66696369656e637920284d656469756d290000000000006020808301919091528251610100810190935260d18084526006936001926005926107ff9260009260609290613f2790830139905090919293949596565b60408051808201825260058152644167696c6560d81b602080830191909152825160808101909352604280845260029360009283926107ff928492606092906146cf90830139905090919293949596565b604080518082018252600e81526d125b5c1c9bdd99590811995a5b9d60921b60208083019190915282516060818101909452603f8082526039946001936010936107ff93600093926152c990830139905090919293949596565b604080518082018252600b81526a5370656c6c20466f63757360a81b602080830191909152825160a08101909352606880845260099360019260009261064e9284926060929061282390830139905090919293949596565b604080518082018252600f81526e436f6d626174205265666c6578657360881b602080830191909152825160e0810190935260a580845260119360009283926107ff9284926060929061593b90830139905090919293949596565b604080518082018252601081526f24b6b83937bb32b21027bb32b9393ab760811b602080830191909152825160c08101909352609d808452603c93600192600d926107ff92600092606092906128ba90830139905090919293949596565b6040805180820182526005815264446f64676560d81b60208083019190915282516101a08101909352610169808452601e9360009283926107ff92849260609290615d2190830139905090919293949596565b604080518082018252600b81526a21b930b33a1029ba30b33360a91b60208083019190915282516101e081019093526101c080845260149360019260009261060492600c9260609290612ccf90830139905090919293949596565b604080518082018252600d81526c4578747261205475726e696e6760981b6020808301919091528251610140810190935261010f8084526024936001926000926044928492606092906123a490830139905090919293949596565b604080518082018252601981527f41726d6f722050726f66696369656e637920284c6967687429000000000000006020808301919091528251610100810190935260d180845260059360009283926107ff92849260609290613f2790830139905090919293949596565b6040805180820182526013815272437261667420576f6e64726f7573204974656d60681b60208083019190915282516102e081019093526102bb8084526016936001926000926106049260039260609290614b4f90830139905090919293949596565b604080518082018252601a81527f4372616674204d616769632041726d7320416e642041726d6f72000000000000602080830191909152825161030081019093526102c98084526012936001926000926106049260059260609290613ff890830139905090919293949596565b60408051808201825260098082526810dc98599d08149bd960ba1b60208084019190915283516101c08101909452610190808552601394600193600093610604939192606092909161513990830139905090919293949596565b604080518082018252601981527f45786f74696320576561706f6e2050726f66696369656e63790000000000000060208083019190915282516060818101909452602f80825260229460009384936107ff9385939261288b90830139905090919293949596565b604080518082018252601081526f496d70726f7665642047726170706c6560801b602080830191909152825160e0810190935260bb808452603a936001926018926107ff926000926060929061301b90830139905090919293949596565b604080518082018252600f81526e416e696d616c20416666696e69747960881b60208083019190915282516060818101909452603f80825260049460009384936107ff9385939261585190830139905090919293949596565b6040805180820182526006815265436c6561766560d01b60208083019190915282516101c0810190935261019d808452600e93600192600d926107ff926000926060929061387890830139905090919293949596565b604080518082018252600c81526b506f7765722041747461636b60a01b60208083019190915282516101608101909352610124808452600d9360009283926107ff9284926060929061530890830139905090919293949596565b604080518082018252600c81526b477265617420436c6561766560a01b602080830191909152825160a08101909352606b808452602893600192600e926107ff926000926060929061466490830139905090919293949596565b604080518082018252600e81526d4465666c656374204172726f777360901b60208083019190915282516101c0810190935261019b8084526019936001926018926107ff9260009260609290614f9e90830139905090919293949596565b6040805180820182526011815270125b5c1c9bdd99590810dc9a5d1a58d85b607a1b60208083019190915282516080810190935260418084526037936001926000926101d19260089260609290612e8f90830139905090919293949596565b604080518082018252600f81526e496d70726f7665642044697361726d60881b6020808301919091528251610100810190935260dc8084526038936001926010926107ff926000926060929061252090830139905090919293949596565b604080518082018252601981527f41726d6f722050726f66696369656e63792028486561767929000000000000006020808301919091528251610100810190935260d18084526007936001926006926107ff9260009260609290613f2790830139905090919293949596565b6040805180820182526012815271092dae0e4deeccac84084ead8d840a4eae6d60731b602080830191909152825160e0810190935260b6808452603593600192600d926107ff926000926060929061318b90830139905090919293949596565b604080518082018252601081526f141bda5b9d08109b185b9ac814da1bdd60821b6020808301919091528251610160810190935261012480845260259360009283926107ff9284926060929061530890830139905090919293949596565b604080518082018252601781527f496d70726f76656420556e61726d656420537472696b650000000000000000006020808301919091528251610180810190935261015c80845260189360009283926107ff9284926060929061542c90830139905090919293949596565b604080518082018252601081526f457363686577204d6174657269616c7360801b6020808301919091528251610180810190935261014b80845260219360009283926107ff92849260609290612ed090830139905090919293949596565b604080518082018252600b81526a213932bb902837ba34b7b760a91b60208083019190915282516103a0810190935261036e808452600c936001926000926106049260039260609290613a1590830139905090919293949596565b6040805180820182526007815266111a595a185c9960ca1b60208083019190915282516103e081019093526103a3808452601c93600192601b926107ff92600092606092906142c190830139905090919293949596565b604080518082018252601381527254776f2d576561706f6e204669676874696e6760681b6020808301919091528251610100810190935260d0808452602d9360009283926107ff928492606092906156ff90830139905090919293949596565b604080518082018252600b8082526a109b1a5b990b519a59da1d60aa1b60208084019190915283516102808101909452610251808552919360009283926107ff92849260609261299490830139905090919293949596565b604080518082018252600d81526c115b5c1bddd95c8814dc195b1b609a1b60208083019190915282516101408101909352610101808452601f9360019260009261064e928492606092906155fe90830139905090919293949596565b6040805180820182526009815268456e647572616e636560b81b60208083019190915282516102608101909352610227808452601b9360009283926107ff928492606092906125fc90830139905090919293949596565b604080518082018252600c81526b141c9958da5cd94814da1bdd60a21b602080830191909152825160c081019093526081808452603d936001926025926107ff9260009260609290614e0a90830139905090919293949596565b604080518082018252600f81526e477265617420466f7274697475646560881b60208083019190915282516060818101909452603280825260299460009384936107ff93859392613ef590830139905090919293949596565b604080518082018252601181527029b832b636102832b732ba3930ba34b7b760791b602080830191909152825160a08101909352606e808452602b9360009283926107ff9284926060929061367990830139905090919293949596565b6040805180820182526008808252674174686c6574696360c01b602080840191909152835160608181019095526037808252929460009384936107ff9385939290916157cf90830139905090919293949596565b6040805180820182526013815272496d70726f76656420496e697469617469766560681b602080830191909152825160608181019094526028808252603b9460009384936107ff938593926124f890830139905090919293949596565b604080518082018252600881526711985c8814da1bdd60c21b602080830191909152825160e0810190935260ab8084526026936001926025926107ff926000926060929061589090830139905090919293949596565b604080518082018252600e81526d436f6d6261742043617374696e6760901b602080830191909152825160c081019093526098808452600f9360009283926107ff92849260609290614f0690830139905090919293949596565b604080518082018252600a815269466f7267652052696e6760b01b6020808301919091528251610280810190935261025780845260279360019260009261060492600c9260609290615aca90830139905090919293949596565b6040805180820182526012815271536869656c642050726f66696369656e637960701b60208083019190915282516060818101909452603a808252603f9460009384936107ff93859392613d8390830139905090919293949596565b604080518082018252600a81526910dc98599d0815d85b9960b21b60208083019190915282516102a0810190935261026b80845260159360019260009261060492600592606092906148e490830139905090919293949596565b60408051808201825260148152734772656174657220576561706f6e20466f63757360601b602080830191909152825160e0810190935260b280845260319360019260309260109260089260609290612c1d90830139905090919293949596565b6040805180820182526015815274125b5c1c9bdd995908141c9958da5cd94814da1bdd605a1b60208083019190915282516101c08101909352610191808452603e93600192603d926107ff92600092606092906136e790830139905090919293949596565b60408051808201825260158152742bb2b0b837b71029b832b1b4b0b634bd30ba34b7b760591b602080830191909152825160808101909352604b808452603293600192603092601092600492606092906132da90830139905090919293949596565b6040805180820182526014815273092dae0e4deeccac840a6d0d2cad8c84084c2e6d60631b6020808301919091528251608081018452605880825260019285926107ff926000926060929190615e8a90830139905090919293949596565b604080518082018252600d81526c115b9b185c99d94814dc195b1b609a1b6020828101919091528251610240810190935261020f808452909260019160009161064e91839160609161346a828a0139905090919293949596565b6040805180820182526008815267111a5b1a59d95b9d60c21b6020808301919091528251608081019093526045808452601d9360009283926107ff928492606092906124b390830139905090919293949596565b604080518082018252601b81527f477265617465722054776f2d576561706f6e204669676874696e670000000000602080830191909152825160a081019093526076808452602f93600192602e926107ff92600b926060929061558890830139905090919293949596565b604080518082018252600c81526b576561706f6e20466f63757360a01b602080830191909152825160808101909352604b80845260309360009283926107ff9284926060929061580690830139905090919293949596565b604080518082018252600c81526b115e1d195b990814dc195b1b60a21b6020808301919091528251610120810190935260ea80845260239360019260009261064e928492606092906159e090830139905090919293949596565b6000606060008060008060608760011415611d9057611d7d6109d2565b96509650965096509650965096506121bf565b8760021415611da157611d7d610ae2565b8760031415611db257611d7d610862565b8760041415611dc357611d7d611000565b8760051415611dd457611d7d610da7565b8760061415611de557611d7d610a76565b8760071415611df657611d7d61127e565b8760081415611e0757611d7d61179e565b8760091415611e1857611d7d610b8d565b87600a1415611e2957611d7d610916565b87600b1415611e3a57611d7d611583565b87600c1415611e4b57611d7d611471565b87600d1415611e5c57611d7d6110af565b87600e1415611e6d57611d7d611059565b87600f1415611e7e57611d7d6118a5565b8760101415611e8f57611d7d610678565b8760111415611ea057611d7d610be5565b8760121415611eb157611d7d610e74565b8760131415611ec257611d7d610ee1565b8760141415611ed357611d7d610cf1565b8760151415611ee457611d7d6119b5565b8760161415611ef557611d7d610e11565b8760171415611f0657611d7d610a23565b8760181415611f1757611d7d6113a8565b8760191415611f2857611d7d611163565b87601a1415611f3957611d7d610737565b87601b1415611f4a57611d7d611637565b87601c1415611f5b57611d7d6114cc565b87601d1415611f6c57611d7d611bef565b87601e1415611f7d57611d7d610c9e565b87601f1415611f8e57611d7d6115db565b8760201415611f9f57611d7d611b95565b8760211415611fb057611d7d611413565b8760221415611fc157611d7d610f3b565b8760231415611fd257611d7d611d06565b8760241415611fe357611d7d610d4c565b8760251415611ff457611d7d61134a565b876026141561200557611d7d61184f565b876027141561201657611d7d6118ff565b876028141561202757611d7d611109565b876029141561203857611d7d6116e8565b87602a141561204957611d7d6108b5565b87602b141561205a57611d7d611741565b87602c141561206b57611d7d6121ca565b87602d141561207c57611d7d611523565b87602e141561208d57611d7d61078d565b87602f141561209e57611d7d611c43565b87603014156120af57611d7d611cae565b87603114156120c057611d7d611a0f565b87603214156120d157611d7d611ad5565b87603314156120e257611d7d6107f8565b87603414156120f357611d7d610975565b876035141561210457611d7d6112ea565b876036141561211557611d7d6106d5565b876037141561212657611d7d6111c1565b876038141561213757611d7d611220565b876039141561214857611d7d610b33565b87603a141561215957611d7d610fa2565b87603b141561216a57611d7d6117f2565b87603c141561217b57611d7d610c40565b87603d141561218c57611d7d61168e565b87603e141561219d57611d7d611a70565b87603f14156121ae57611d7d611959565b87604014156121bf57611d7d611b37565b919395979092949650565b604080518082018252601981527f47726561746572205370656c6c2050656e6574726174696f6e00000000000000602080830191909152825160e0810190935260a5808452602c93600192602b926107ff9260009260609290615ee290830139905090919293949596565b60006020828403121561224757600080fd5b5035919050565b6000815180845260005b8181101561227457602081850181015186830182015201612258565b81811115612286576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006122ae602083018461224e565b9392505050565b87815260e0602082015260006122ce60e083018961224e565b87151560408401528660608401528560808401528460a084015282810360c08401526122fa818561224e565b9a995050505050505050505056fe416464202b3120746f2074686520446966666963756c747920436c61737320666f7220616c6c20736176696e67207468726f777320616761696e7374207370656c6c732066726f6d20746865207363686f6f6c206f66206d6167696320796f752073656c6563742e205468697320626f6e757320737461636b7320776974682074686520626f6e75732066726f6d205370656c6c20466f6375732e456163682074696d6520796f752074616b65207468697320666561742c20796f752063616e2075736520796f7572206162696c69747920746f207475726e206f7220726562756b652063726561747572657320666f7572206d6f72652074696d65732070657220646179207468616e206e6f726d616c2e20496620796f75206861766520746865206162696c69747920746f207475726e206f7220726562756b65206d6f7265207468616e206f6e65206b696e64206f662063726561747572652065616368206f6620796f7572207475726e696e67206f7220726562756b696e67206162696c6974696573206761696e7320666f7572206164646974696f6e616c207573657320706572206461792e596f75206765742061202b3220626f6e7573206f6e20616c6c20417070726169736520636865636b7320616e642044656369706865722053637269707420636865636b732e596f75206765742061202b3420626f6e7573206f6e20696e697469617469766520636865636b732e596f7520646f206e6f742070726f766f6b6520616e2061747461636b206f66206f70706f7274756e697479207768656e20796f7520617474656d707420746f2064697361726d20616e206f70706f6e656e742c206e6f7220646f657320746865206f70706f6e656e7420686176652061206368616e636520746f2064697361726d20796f752e20596f7520616c736f206761696e2061202b3420626f6e7573206f6e20746865206f70706f7365642061747461636b20726f6c6c20796f75206d616b6520746f2064697361726d20796f7572206f70706f6e656e742e596f75206761696e2061202b3420626f6e7573206f6e2074686520666f6c6c6f77696e6720636865636b7320616e642073617665733a205377696d20636865636b73206d61646520746f20726573697374206e6f6e6c657468616c2064616d6167652c20436f6e737469747574696f6e20636865636b73206d61646520746f20636f6e74696e75652072756e6e696e672c20436f6e737469747574696f6e20636865636b73206d61646520746f2061766f6964206e6f6e6c657468616c2064616d6167652066726f6d206120666f72636564206d617263682c20436f6e737469747574696f6e20636865636b73206d61646520746f20686f6c6420796f7572206272656174682c20436f6e737469747574696f6e20636865636b73206d61646520746f2061766f6964206e6f6e6c657468616c2064616d6167652066726f6d2073746172766174696f6e206f72207468697273742c20466f72746974756465207361766573206d61646520746f2061766f6964206e6f6e6c657468616c2064616d6167652066726f6d20686f74206f7220636f6c6420656e7669726f6e6d656e74732c20616e6420466f72746974756465207361766573206d61646520746f207265736973742064616d6167652066726f6d20737566666f636174696f6e2e20416c736f2c20796f75206d617920736c65657020696e206c69676874206f72206d656469756d2061726d6f7220776974686f7574206265636f6d696e672066617469677565642e416464202b3120746f2074686520446966666963756c747920436c61737320666f7220616c6c20736176696e67207468726f777320616761696e7374207370656c6c732066726f6d20746865207363686f6f6c206f66206d6167696320796f752073656c6563742e596f75206d616b652061747461636b20726f6c6c7320776974682074686520776561706f6e206e6f726d616c6c792e5768656e20796f7520617474656d707420746f206f76657272756e20616e206f70706f6e656e742c2074686520746172676574206d6179206e6f742063686f6f736520746f2061766f696420796f752e20596f7520616c736f206761696e2061202b3420626f6e7573206f6e20796f757220537472656e67746820636865636b20746f206b6e6f636b20646f776e20796f7572206f70706f6e656e742e596f75206765742061202b3220626f6e7573206f6e20616c6c20446973677569736520636865636b7320616e6420466f726765727920636865636b732e496e206d656c65652c2065766572792074696d6520796f75206d6973732062656361757365206f6620636f6e6365616c6d656e742c20796f752063616e207265726f6c6c20796f7572206d697373206368616e63652070657263656e74696c6520726f6c6c206f6e652074696d6520746f2073656520696620796f752061637475616c6c79206869742e20416e20696e76697369626c652061747461636b65722067657473206e6f20616476616e74616765732072656c6174656420746f2068697474696e6720796f7520696e206d656c65652e20546861742069732c20796f7520646f6e74206c6f736520796f75722044657874657269747920626f6e757320746f2041726d6f7220436c6173732c20616e64207468652061747461636b657220646f65736e74206765742074686520757375616c202b3220626f6e757320666f72206265696e6720696e76697369626c652e2054686520696e76697369626c652061747461636b65727320626f6e7573657320646f207374696c6c206170706c7920666f722072616e6765642061747461636b732c20686f77657665722e20596f752074616b65206f6e6c792068616c662074686520757375616c2070656e616c747920746f20737065656420666f72206265696e6720756e61626c6520746f207365652e204461726b6e65737320616e6420706f6f72207669736962696c69747920696e2067656e6572616c207265647563657320796f757220737065656420746f2074687265652d7175617274657273206e6f726d616c2c20696e7374656164206f66206f6e652068616c662e596f75206765742061202b3220626f6e7573206f6e20616c6c204c697374656e20636865636b7320616e642053706f7420636865636b732e596f75206761696e2061202b3120626f6e7573206f6e20616c6c2061747461636b20726f6c6c7320796f75206d616b65207573696e67207468652073656c656374656420776561706f6e2e205468697320626f6e757320737461636b732077697468206f7468657220626f6e75736573206f6e2061747461636b20726f6c6c732c20696e636c7564696e6720746865206f6e652066726f6d20576561706f6e20466f63757320287365652062656c6f77292e596f752063616e2063726561746520616e792073746166662077686f7365207072657265717569736974657320796f75206d6565742e204372616674696e6720612073746166662074616b6573206f6e652064617920666f72206561636820312c30303020677020696e2069747320626173652070726963652e20546f20637261667420612073746166662c20796f75206d757374207370656e6420312f3235206f6620697473206261736520707269636520696e20585020616e642075736520757020726177206d6174657269616c7320636f7374696e67206f6e652d68616c66206f662069747320626173652070726963652e2041206e65776c7920637265617465642073746166662068617320353020636861726765732e20536f6d652073746166667320696e63757220657874726120636f73747320696e206d6174657269616c20636f6d706f6e656e7473206f722058502c206173206e6f74656420696e207468656972206465736372697074696f6e732e20546865736520636f7374732061726520696e206164646974696f6e20746f2074686f736520646572697665642066726f6d207468652073746166667320626173652070726963652e5768656e207573696e672074686520776561706f6e20796f752073656c65637465642c20796f7572207468726561742072616e676520697320646f75626c65642e596f752063616e206361737420616e79207370656c6c2074686174206861732061206d6174657269616c20636f6d706f6e656e7420636f7374696e672031206770206f72206c65737320776974686f7574206e656564696e67207468617420636f6d706f6e656e742e20285468652063617374696e67206f6620746865207370656c6c207374696c6c2070726f766f6b65732061747461636b73206f66206f70706f7274756e697479206173206e6f726d616c2e2920496620746865207370656c6c2072657175697265732061206d6174657269616c20636f6d706f6e656e74207468617420636f737473206d6f7265207468616e20312067702c20796f75206d757374206861766520746865206d6174657269616c20636f6d706f6e656e742061742068616e6420746f206361737420746865207370656c6c2c206a757374206173206e6f726d616c2e596f7520646f206e6f742070726f766f6b6520616e2061747461636b206f66206f70706f7274756e697479207768656e20796f75206d616b65206120746f7563682061747461636b20746f20737461727420612067726170706c652e20596f7520616c736f206761696e2061202b3420626f6e7573206f6e20616c6c2067726170706c6520636865636b732c207265676172646c657373206f66207768657468657220796f752073746172746564207468652067726170706c652e496e206164646974696f6e20746f20746865207374616e646172642073696e676c652065787472612061747461636b20796f7520676574207769746820616e206f66662d68616e6420776561706f6e2c20796f75206765742061207365636f6e642061747461636b20776974682069742c20616c626569742061742061202d352070656e616c74792e20536565207468652054776f2d576561706f6e204669676874696e67207370656369616c2061747461636b2e5768656e20796f7520706572666f726d20612062756c6c207275736820796f7520646f206e6f742070726f766f6b6520616e2061747461636b206f66206f70706f7274756e6974792066726f6d2074686520646566656e6465722e20596f7520616c736f206761696e2061202b3420626f6e7573206f6e20746865206f70706f73656420537472656e67746820636865636b20796f75206d616b6520746f2070757368206261636b2074686520646566656e6465722e4561636820637265617475726520796f7520636f6e6a757265207769746820616e792073756d6d6f6e207370656c6c206761696e732061202b3420656e68616e63656d656e7420626f6e757320746f20537472656e67746820616e6420436f6e737469747574696f6e20666f7220746865206475726174696f6e206f6620746865207370656c6c20746861742073756d6d6f6e65642069742e596f75206761696e2061202b3220626f6e7573206f6e20616c6c2064616d61676520726f6c6c7320796f75206d616b65207573696e67207468652073656c656374656420776561706f6e2e5768656e20796f7520757365207468652061747461636b20616374696f6e206f72207468652066756c6c2061747461636b20616374696f6e20696e206d656c65652c20796f752063616e2074616b6520612070656e616c7479206f66206173206d756368206173202d35206f6e20796f75722061747461636b20726f6c6c20616e6420616464207468652073616d65206e756d62657220282b35206f72206c65737329206173206120646f64676520626f6e757320746f20796f75722041726d6f7220436c6173732e2054686973206e756d626572206d6179206e6f742065786365656420796f757220626173652061747461636b20626f6e75732e20546865206368616e67657320746f2061747461636b20726f6c6c7320616e642041726d6f7220436c617373206c61737420756e74696c20796f7572206e65787420616374696f6e2e596f752063616e20616c7465722061207370656c6c207769746820612072616e6765206f6620636c6f73652c206d656469756d2c206f72206c6f6e6720746f20696e637265617365206974732072616e676520627920313030252e20416e20656e6c6172676564207370656c6c207769746820612072616e6765206f6620636c6f7365206e6f772068617320612072616e6765206f662035302066742e202b20352066742e2f6c6576656c2c207768696c65206d656469756d2d72616e6765207370656c6c73206861766520612072616e6765206f66203230302066742e202b2032302066742e2f6c6576656c20616e64206c6f6e672d72616e6765207370656c6c73206861766520612072616e6765206f66203830302066742e202b2038302066742e2f6c6576656c2e20416e20656e6c6172676564207370656c6c20757365732075702061207370656c6c20736c6f74206f6e65206c6576656c20686967686572207468616e20746865207370656c6c732061637475616c206c6576656c2e205370656c6c732077686f73652072616e67657320617265206e6f7420646566696e65642062792064697374616e63652c2061732077656c6c206173207370656c6c732077686f73652072616e67657320617265206e6f7420636c6f73652c206d656469756d2c206f72206c6f6e672c20646f206e6f74206861766520696e637265617365642072616e6765732e596f75206765742061202b3220626f6e7573206f6e20636173746572206c6576656c20636865636b73202831643230202b20636173746572206c6576656c29206d61646520746f206f766572636f6d65206120637265617475726573207370656c6c20726573697374616e63652e596f75722072616e6765642061747461636b732069676e6f72652074686520414320626f6e7573206772616e74656420746f207461726765747320627920616e797468696e67206c657373207468616e20746f74616c20636f7665722c20616e6420746865206d697373206368616e6365206772616e74656420746f207461726765747320627920616e797468696e67206c657373207468616e20746f74616c20636f6e6365616c6d656e742e20546f74616c20636f76657220616e6420746f74616c20636f6e6365616c6d656e742070726f76696465207468656972206e6f726d616c2062656e656669747320616761696e737420796f75722072616e6765642061747461636b732e20496e206164646974696f6e2c207768656e20796f752073686f6f74206f72207468726f772072616e67656420776561706f6e7320617420612067726170706c696e67206f70706f6e656e742c20796f75206175746f6d61746963616c6c7920737472696b6520617420746865206f70706f6e656e7420796f7520686176652063686f73656e2e496620796f75206465616c206120637265617475726520656e6f7567682064616d61676520746f206d616b652069742064726f7020287479706963616c6c792062792064726f7070696e6720697420746f2062656c6f7720302068697420706f696e7473206f72206b696c6c696e67206974292c20796f752067657420616e20696d6d6564696174652c206578747261206d656c65652061747461636b20616761696e737420616e6f746865722063726561747572652077697468696e2072656163682e20596f752063616e6e6f742074616b65206120352d666f6f742073746570206265666f7265206d616b696e6720746869732065787472612061747461636b2e205468652065787472612061747461636b2069732077697468207468652073616d6520776561706f6e20616e64206174207468652073616d6520626f6e7573206173207468652061747461636b20746861742064726f70706564207468652070726576696f75732063726561747572652e20596f752063616e207573652074686973206162696c697479206f6e63652070657220726f756e642e596f752063616e20637265617465206120706f74696f6e206f6620616e7920337264206c6576656c206f72206c6f776572207370656c6c207468617420796f75206b6e6f7720616e6420746861742074617267657473206f6e65206f72206d6f7265206372656174757265732e2042726577696e67206120706f74696f6e2074616b6573206f6e65206461792e205768656e20796f7520637265617465206120706f74696f6e2c20796f75207365742074686520636173746572206c6576656c2c207768696368206d7573742062652073756666696369656e7420746f206361737420746865207370656c6c20696e207175657374696f6e20616e64206e6f20686967686572207468616e20796f7572206f776e206c6576656c2e205468652062617365207072696365206f66206120706f74696f6e20697320697473207370656c6c206c6576656c202a2069747320636173746572206c6576656c202a2035302067702e20546f2062726577206120706f74696f6e2c20796f75206d757374207370656e6420312f3235206f662074686973206261736520707269636520696e20585020616e642075736520757020726177206d6174657269616c7320636f7374696e67206f6e652068616c66207468697320626173652070726963652e205768656e20796f7520637265617465206120706f74696f6e2c20796f75206d616b6520616e792063686f69636573207468617420796f7520776f756c64206e6f726d616c6c79206d616b65207768656e2063617374696e6720746865207370656c6c2e2057686f65766572206472696e6b732074686520706f74696f6e2069732074686520746172676574206f6620746865207370656c6c2e20416e7920706f74696f6e20746861742073746f7265732061207370656c6c2077697468206120636f73746c79206d6174657269616c20636f6d706f6e656e74206f7220616e20585020636f737420616c736f2063617272696573206120636f6d6d656e73757261746520636f73742e20496e206164646974696f6e20746f2074686520636f73747320646572697665642066726f6d2074686520626173652070726963652c20796f75206d75737420657870656e6420746865206d6174657269616c20636f6d706f6e656e74206f722070617920746865205850207768656e206372656174696e672074686520706f74696f6e2e596f752063616e20757365206120736869656c6420616e642074616b65206f6e6c7920746865207374616e646172642070656e616c746965732e596f75206765742061202b3220626f6e7573206f6e20616c6c204a756d7020636865636b7320616e642054756d626c6520636865636b732e596f75206765742061202b3220626f6e7573206f6e20616c6c20536c6569676874206f662048616e6420636865636b7320616e642055736520526f706520636865636b732e596f75206761696e2061202b3220626f6e7573206f6e20616c6c2064616d61676520726f6c6c7320796f75206d616b65207573696e67207468652073656c656374656420776561706f6e2e205468697320626f6e757320737461636b732077697468206f7468657220626f6e75736573206f6e2064616d61676520726f6c6c732c20696e636c7564696e6720746865206f6e652066726f6d20576561706f6e205370656369616c697a6174696f6e20287365652062656c6f77292e596f75206765742061202b3220626f6e7573206f6e20616c6c20466f7274697475646520736176696e67207468726f77732e5768656e20796f75207765617220612074797065206f662061726d6f72207769746820776869636820796f75206172652070726f66696369656e742c207468652061726d6f7220636865636b2070656e616c747920666f7220746861742061726d6f72206170706c696573206f6e6c7920746f2042616c616e63652c20436c696d622c20457363617065204172746973742c20486964652c204a756d702c204d6f76652053696c656e746c792c20536c6569676874206f662048616e642c20616e642054756d626c6520636865636b732e596f752063616e2063726561746520616e79206d6167696320776561706f6e2c2061726d6f722c206f7220736869656c642077686f7365207072657265717569736974657320796f75206d6565742e20456e68616e63696e67206120776561706f6e2c2073756974206f662061726d6f722c206f7220736869656c642074616b6573206f6e652064617920666f72206561636820312c30303020677020696e20746865207072696365206f6620697473206d61676963616c2066656174757265732e20546f20656e68616e6365206120776561706f6e2c2073756974206f662061726d6f722c206f7220736869656c642c20796f75206d757374207370656e6420312f3235206f662069747320666561747572657320746f74616c20707269636520696e20585020616e642075736520757020726177206d6174657269616c7320636f7374696e67206f6e652d68616c66206f66207468697320746f74616c2070726963652e2054686520776561706f6e2c2061726d6f722c206f7220736869656c6420746f20626520656e68616e636564206d7573742062652061206d6173746572776f726b206974656d207468617420796f752070726f766964652e2049747320636f7374206973206e6f7420696e636c7564656420696e207468652061626f766520636f73742e20596f752063616e20616c736f206d656e6420612062726f6b656e206d6167696320776561706f6e2c2073756974206f662061726d6f722c206f7220736869656c64206966206974206973206f6e65207468617420796f7520636f756c64206d616b652e20446f696e6720736f20636f7374732068616c66207468652058502c2068616c662074686520726177206d6174657269616c732c20616e642068616c66207468652074696d6520697420776f756c642074616b6520746f2063726166742074686174206974656d20696e2074686520666972737420706c6163652e5768656e207265647563656420746f206265747765656e202d3120616e64202d392068697420706f696e74732c20796f75206175746f6d61746963616c6c79206265636f6d6520737461626c652e20596f7520646f6e74206861766520746f20726f6c6c20642520746f2073656520696620796f75206c6f736520312068697420706f696e74206561636820726f756e642e205768656e207265647563656420746f206e656761746976652068697420706f696e74732c20796f75206d61792063686f6f736520746f2061637420617320696620796f7520776572652064697361626c65642c20726174686572207468616e206479696e672e20596f75206d757374206d616b652074686973206465636973696f6e20617320736f6f6e20617320796f7520617265207265647563656420746f206e656761746976652068697420706f696e747320286576656e2069662069742069736e7420796f7572207475726e292e20496620796f7520646f206e6f742063686f6f736520746f2061637420617320696620796f7520776572652064697361626c65642c20796f7520696d6d6564696174656c792066616c6c20756e636f6e7363696f75732e205768656e207573696e67207468697320666561742c20796f752063616e2074616b652065697468657220612073696e676c65206d6f7665206f72207374616e6461726420616374696f6e2065616368207475726e2c20627574206e6f7420626f74682c20616e6420796f752063616e6e6f742074616b6520612066756c6c20726f756e6420616374696f6e2e20596f752063616e2074616b652061206d6f766520616374696f6e20776974686f7574206675727468657220696e6a7572696e6720796f757273656c662c2062757420696620796f7520706572666f726d20616e79207374616e6461726420616374696f6e20286f7220616e79206f7468657220616374696f6e206465656d656420617320737472656e756f75732c20696e636c7564696e6720736f6d65206672656520616374696f6e732c20737769667420616374696f6e732c206f7220696d6d65646961746520616374696f6e732c20737563682061732063617374696e67206120717569636b656e6564207370656c6c2920796f752074616b65203120706f696e74206f662064616d61676520616674657220636f6d706c6574696e6720746865206163742e20496620796f75207265616368202d31302068697420706f696e74732c20796f7520696d6d6564696174656c79206469652e54686973206665617420776f726b73206c696b6520436c656176652c206578636570742074686174207468657265206973206e6f206c696d697420746f20746865206e756d626572206f662074696d657320796f752063616e207573652069742070657220726f756e642e596f75206765742061202b3220626f6e7573206f6e20616c6c2042616c616e636520636865636b7320616e64204573636170652041727469737420636865636b732e4120686569676874656e6564207370656c6c20686173206120686967686572207370656c6c206c6576656c207468616e206e6f726d616c2028757020746f2061206d6178696d756d206f6620397468206c6576656c292e20556e6c696b65206f74686572206d6574616d616769632066656174732c20486569676874656e205370656c6c2061637475616c6c7920696e637265617365732074686520656666656374697665206c6576656c206f6620746865207370656c6c2074686174206974206d6f6469666965732e20416c6c206566666563747320646570656e64656e74206f6e207370656c6c206c6576656c20287375636820617320736176696e67207468726f772044437320616e64206162696c69747920746f2070656e6574726174652061206c657373657220676c6f6265206f6620696e76756c6e65726162696c69747929206172652063616c63756c61746564206163636f7264696e6720746f2074686520686569676874656e6564206c6576656c2e2054686520686569676874656e6564207370656c6c20697320617320646966666963756c7420746f207072657061726520616e6420636173742061732061207370656c6c206f662069747320656666656374697665206c6576656c2e596f752063616e2063726561746520612077616e64206f6620616e79203474682d6c6576656c206f72206c6f776572207370656c6c207468617420796f75206b6e6f772e204372616674696e6720612077616e642074616b6573206f6e652064617920666f72206561636820312c30303020677020696e2069747320626173652070726963652e205468652062617365207072696365206f6620612077616e642069732069747320636173746572206c6576656c202a20746865207370656c6c206c6576656c202a203735302067702e20546f20637261667420612077616e642c20796f75206d757374207370656e6420312f3235206f662074686973206261736520707269636520696e20585020616e642075736520757020726177206d6174657269616c7320636f7374696e67206f6e652068616c66206f66207468697320626173652070726963652e2041206e65776c7920637265617465642077616e642068617320353020636861726765732e20416e792077616e6420746861742073746f7265732061207370656c6c2077697468206120636f73746c79206d6174657269616c20636f6d706f6e656e74206f7220616e20585020636f737420616c736f2063617272696573206120636f6d6d656e73757261746520636f73742e20496e206164646974696f6e20746f2074686520636f737420646572697665642066726f6d2074686520626173652070726963652c20796f75206d75737420657870656e6420666966747920636f70696573206f6620746865206d6174657269616c20636f6d706f6e656e74206f72207061792066696674792074696d65732074686520585020636f73742e596f752063616e2063726561746520616e7920776f6e64726f7573206974656d2077686f7365207072657265717569736974657320796f75206d6565742e20456e6368616e74696e67206120776f6e64726f7573206974656d2074616b6573206f6e652064617920666f72206561636820312c30303020677020696e206974732070726963652e20546f20656e6368616e74206120776f6e64726f7573206974656d2c20796f75206d757374207370656e6420312f3235206f6620746865206974656d7320707269636520696e20585020616e642075736520757020726177206d6174657269616c7320636f7374696e672068616c66206f6620746869732070726963652e20596f752063616e20616c736f206d656e6420612062726f6b656e20776f6e64726f7573206974656d206966206974206973206f6e65207468617420796f7520636f756c64206d616b652e20446f696e6720736f20636f7374732068616c66207468652058502c2068616c662074686520726177206d6174657269616c732c20616e642068616c66207468652074696d6520697420776f756c642074616b6520746f2063726166742074686174206974656d20696e2074686520666972737420706c6163652e20536f6d6520776f6e64726f7573206974656d7320696e63757220657874726120636f73747320696e206d6174657269616c20636f6d706f6e656e7473206f722058502c206173206e6f74656420696e207468656972206465736372697074696f6e732e20546865736520636f7374732061726520696e206164646974696f6e20746f2074686f736520646572697665642066726f6d20746865206974656d7320626173652070726963652e20596f75206d757374207061792073756368206120636f737420746f2063726561746520616e206974656d206f7220746f206d656e6420612062726f6b656e206f6e652e596f752063616e2073686f6f74206f72207468726f772072616e67656420776561706f6e7320617420616e206f70706f6e656e7420656e676167656420696e206d656c656520776974686f75742074616b696e6720746865207374616e64617264202d342070656e616c7479206f6e20796f75722061747461636b20726f6c6c2e5768656e20636f756e7465727370656c6c696e672c20796f75206d6179207573652061207370656c6c206f66207468652073616d65207363686f6f6c2074686174206973206f6e65206f72206d6f7265207370656c6c206c6576656c7320686967686572207468616e2074686520746172676574207370656c6c2e596f75206765742061202b3420626f6e7573206f6e20436f6e63656e74726174696f6e20636865636b73206d61646520746f20636173742061207370656c6c206f72207573652061207370656c6c2d6c696b65206162696c697479207768696c65206f6e2074686520646566656e73697665206f72207768696c6520796f75206172652067726170706c696e67206f722070696e6e65642e596f75206d7573742068617665206174206c65617374206f6e652068616e6420667265652028686f6c64696e67206e6f7468696e672920746f20757365207468697320666561742e204f6e63652070657220726f756e64207768656e20796f7520776f756c64206e6f726d616c6c7920626520686974207769746820612072616e67656420776561706f6e2c20796f75206d6179206465666c65637420697420736f207468617420796f752074616b65206e6f2064616d6167652066726f6d2069742e20596f75206d757374206265206177617265206f66207468652061747461636b20616e64206e6f7420666c61742d666f6f7465642e20417474656d7074696e6720746f206465666c65637420612072616e67656420776561706f6e20646f65736e7420636f756e7420617320616e20616374696f6e2e20556e757375616c6c79206d6173736976652072616e67656420776561706f6e7320616e642072616e6765642061747461636b732067656e657261746564206279207370656c6c20656666656374732063616e74206265206465666c65637465642e596f752063616e2063726561746520616e7920726f642077686f7365207072657265717569736974657320796f75206d6565742e204372616674696e67206120726f642074616b6573206f6e652064617920666f72206561636820312c30303020677020696e2069747320626173652070726963652e20546f206372616674206120726f642c20796f75206d757374207370656e6420312f3235206f6620697473206261736520707269636520696e20585020616e642075736520757020726177206d6174657269616c7320636f7374696e67206f6e652d68616c66206f662069747320626173652070726963652e20536f6d6520726f647320696e63757220657874726120636f73747320696e206d6174657269616c20636f6d706f6e656e7473206f722058502c206173206e6f74656420696e207468656972206465736372697074696f6e732e20546865736520636f7374732061726520696e206164646974696f6e20746f2074686f736520646572697665642066726f6d2074686520726f647320626173652070726963652e596f752063616e206d616b65206120426c75666620636865636b20746f206665696e7420696e20636f6d6261742061732061206d6f766520616374696f6e2e4f6e20796f757220616374696f6e2c206265666f7265206d616b696e672061747461636b20726f6c6c7320666f72206120726f756e642c20796f75206d61792063686f6f736520746f2073756274726163742061206e756d6265722066726f6d20616c6c206d656c65652061747461636b20726f6c6c7320616e6420616464207468652073616d65206e756d62657220746f20616c6c206d656c65652064616d61676520726f6c6c732e2054686973206e756d626572206d6179206e6f742065786365656420796f757220626173652061747461636b20626f6e75732e205468652070656e616c7479206f6e2061747461636b7320616e6420626f6e7573206f6e2064616d616765206170706c7920756e74696c20796f7572206e657874207475726e2e596f752061726520636f6e7369646572656420746f2062652061726d6564206576656e207768656e20756e61726d656420746861742069732c20796f7520646f206e6f742070726f766f6b652061747461636b73206f72206f70706f7274756e6974792066726f6d2061726d6564206f70706f6e656e7473207768656e20796f752061747461636b207468656d207768696c6520756e61726d65642e20486f77657665722c20796f75207374696c6c2067657420616e2061747461636b206f66206f70706f7274756e69747920616761696e737420616e79206f70706f6e656e742077686f206d616b657320616e20756e61726d65642061747461636b206f6e20796f752e20496e206164646974696f6e2c20796f757220756e61726d656420737472696b65732063616e206465616c206c657468616c206f72206e6f6e6c657468616c2064616d6167652c20617420796f7572206f7074696f6e2e596f752067657420612074686972642061747461636b207769746820796f7572206f66662d68616e6420776561706f6e2c20616c626569742061742061202d31302070656e616c74792e20536565207468652054776f2d576561706f6e204669676874696e67207370656369616c2061747461636b2e416c6c207661726961626c652c206e756d657269632065666665637473206f6620616e20656d706f7765726564207370656c6c2061726520696e63726561736564206279206f6e652d68616c662e20536176696e67207468726f777320616e64206f70706f73656420726f6c6c7320617265206e6f742061666665637465642c206e6f7220617265207370656c6c7320776974686f75742072616e646f6d207661726961626c65732e20416e20656d706f7765726564207370656c6c20757365732075702061207370656c6c20736c6f742074776f206c6576656c7320686967686572207468616e20746865207370656c6c732061637475616c206c6576656c2e596f75722070656e616c74696573206f6e2061747461636b20726f6c6c7320666f72206669676874696e6720776974682074776f20776561706f6e732061726520726564756365642e205468652070656e616c747920666f7220796f7572207072696d6172792068616e64206c657373656e73206279203220616e6420746865206f6e6520666f7220796f7572206f66662068616e64206c657373656e7320627920362e20536565207468652054776f2d576561706f6e204669676874696e67207370656369616c2061747461636b2e596f75206765742061202b3220626f6e7573206f6e20616c6c20436c696d6220636865636b7320616e64205377696d20636865636b732e596f75206761696e2061202b3120626f6e7573206f6e20616c6c2061747461636b20726f6c6c7320796f75206d616b65207573696e67207468652073656c656374656420776561706f6e2e596f75206765742061202b3220626f6e7573206f6e20616c6c2048616e646c6520416e696d616c20636865636b7320616e64205269646520636865636b732e5768656e20796f752075736520612070726f6a656374696c6520776561706f6e2c2073756368206173206120626f772c206974732072616e676520696e6372656d656e7420696e63726561736573206279206f6e652d68616c6620286d756c7469706c7920627920312e35292e205768656e20796f75207573652061207468726f776e20776561706f6e2c206974732072616e676520696e6372656d656e7420697320646f75626c65642e596f75206d6179206d616b652061206e756d626572206f66206164646974696f6e616c2061747461636b73206f66206f70706f7274756e69747920657175616c20746f20796f75722044657874657269747920626f6e75732e2057697468207468697320666561742c20796f75206d617920616c736f206d616b652061747461636b73206f66206f70706f7274756e697479207768696c6520666c61742d666f6f7465642e416e20657874656e646564207370656c6c206c61737473207477696365206173206c6f6e67206173206e6f726d616c2e2041207370656c6c20776974682061206475726174696f6e206f6620636f6e63656e74726174696f6e2c20696e7374616e74616e656f75732c206f72207065726d616e656e74206973206e6f74206166666563746564206279207468697320666561742e20416e20657874656e646564207370656c6c20757365732075702061207370656c6c20736c6f74206f6e65206c6576656c20686967686572207468616e20746865207370656c6c732061637475616c206c6576656c2e596f752063616e2063726561746520616e792072696e672077686f7365207072657265717569736974657320796f75206d6565742e204372616674696e6720612072696e672074616b6573206f6e652064617920666f72206561636820312c30303020677020696e2069747320626173652070726963652e20546f20637261667420612072696e672c20796f75206d757374207370656e6420312f3235206f6620697473206261736520707269636520696e20585020616e642075736520757020726177206d6174657269616c7320636f7374696e67206f6e652d68616c66206f662069747320626173652070726963652e20596f752063616e20616c736f206d656e6420612062726f6b656e2072696e67206966206974206973206f6e65207468617420796f7520636f756c64206d616b652e20446f696e6720736f20636f7374732068616c66207468652058502c2068616c662074686520726177206d6174657269616c732c20616e642068616c66207468652074696d6520697420776f756c642074616b6520746f20666f72676520746861742072696e6720696e2074686520666972737420706c6163652e20536f6d65206d616769632072696e677320696e63757220657874726120636f73747320696e206d6174657269616c20636f6d706f6e656e7473206f722058502c206173206e6f74656420696e207468656972206465736372697074696f6e732e20596f75206d757374207061792073756368206120636f737420746f20666f726765207375636820612072696e67206f7220746f206d656e6420612062726f6b656e206f6e652e447572696e6720796f757220616374696f6e2c20796f752064657369676e61746520616e206f70706f6e656e7420616e6420726563656976652061202b3120646f64676520626f6e757320746f2041726d6f7220436c61737320616761696e73742061747461636b732066726f6d2074686174206f70706f6e656e742e20596f752063616e2073656c6563742061206e6577206f70706f6e656e74206f6e20616e7920616374696f6e2e204120636f6e646974696f6e2074686174206d616b657320796f75206c6f736520796f75722044657874657269747920626f6e757320746f2041726d6f7220436c6173732028696620616e792920616c736f206d616b657320796f75206c6f736520646f64676520626f6e757365732e20416c736f2c20646f64676520626f6e7573657320737461636b20776974682065616368206f746865722c20756e6c696b65206d6f7374206f74686572207479706573206f6620626f6e757365732e5768656e20796f7520706572666f726d206120736869656c6420626173682c20796f75206d6179207374696c6c206170706c792074686520736869656c647320736869656c6420626f6e757320746f20796f75722041432e596f75206765742061202b3220626f6e7573206f6e20636173746572206c6576656c20636865636b73202831643230202b20636173746572206c6576656c29206d61646520746f206f766572636f6d65206120637265617475726573207370656c6c20726573697374616e63652e205468697320626f6e757320737461636b73207769746820746865206f6e652066726f6d205370656c6c2050656e6574726174696f6e2ea26469706673582212202a87c5f09da1c61182885bbe872225663ec508406344aa7e0970265269e7bfa264736f6c63430008070033

Deployed ByteCode Sourcemap

59:52130:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15764:802;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;45305:609;;;:::i;24783:534::-;;;:::i;39885:682::-;;;:::i;42990:689::-;;;:::i;6127:518::-;;;:::i;81:38::-;;;;;;;;;;;;;;;-1:-1:-1;;;81:38:0;;;;;;;;;;;;:::i;37276:637::-;;;:::i;10425:631::-;;;:::i;43687:939::-;;;:::i;5075:516::-;;;:::i;22512:524::-;;;:::i;7907:702::-;;;:::i;5599:520::-;;;:::i;47175:536::-;;;:::i;9848:569::-;;;:::i;16574:640::-;;;:::i;48922:634::-;;;:::i;28283:816::-;;;:::i;19309:915::-;;;:::i;32923:739::-;;;:::i;7198:701::-;;;:::i;21323:1181::-;;;:::i;17222:1209::-;;;:::i;18439:862::-;;;:::i;31663:542::-;;;:::i;47719:664::-;;;:::i;6653:537::-;;;:::i;14253:870::-;;;:::i;13484:761::-;;;:::i;36159:576::-;;;:::i;23891:884::-;;;:::i;45922:542::-;;;:::i;46472:695::-;;;:::i;8617:700::-;;;:::i;44634:663::-;;;:::i;33670:769::-;;;:::i;23044:839::-;;;:::i;30847:808::-;;;:::i;12132:1344::-;;;:::i;26347:1390::-;;;:::i;39186:691::-;;;:::i;11064:1060::-;;;:::i;29107:727::-;;;:::i;25325:1014::-;;;:::i;49564:598::-;;;:::i;36743:525::-;;;:::i;37921:589::-;;;:::i;126:36::-;;;;;;;;;;;;;;;-1:-1:-1;;;126:36:0;;;;;9325:515;;;:::i;48391:523::-;;;:::i;34447:632::-;;;:::i;15131:625::-;;;:::i;35087:1064::-;;;:::i;51066:539::-;;;:::i;20232:1083::-;;;:::i;41753:661::-;;;:::i;50170:888::-;;;:::i;42422:560::-;;;:::i;51613:573::-;;;:::i;29842:997::-;;;:::i;27745:530::-;;;:::i;40575:618::-;;;:::i;41201:544::-;;;:::i;32213:702::-;;;:::i;171:4896::-;;;;;;:::i;:::-;;:::i;38518:660::-;;;:::i;15764:802::-;16055:25;;;;;;;;16042:2;16055:25;;;-1:-1:-1;;;16055:25:0;;;;;;;;16221:337;;;;;;;;;;;;16042:2;;15823:7;;;;16175:4;;15823:7;;15841:18;;16221:337;;;;;;;15764:802;;;;;;;:::o;45305:609::-;45601:30;;;;;;;;;;;-1:-1:-1;;;45601:30:0;;;;;;;;45771:135;;;;;;;;;;;;45588:2;;45658:4;;45369:7;;45725:4;;45369:7;;45387:18;;45771:135;;;;;;;;45305:609;;;;;;;:::o;24783:534::-;25068:19;;;;;;;;;;;-1:-1:-1;;;25068:19:0;;;;;;;;25228:81;;;;;;;;;;;;25055:2;;24836:7;;;;25182:4;;24836:7;;24854:18;;25228:81;;;;;;;;24783:534;;;;;;;:::o;39885:682::-;40188:37;;;;;;;;;;;;;;;;;;;;40366:193;;;;;;;;;;;;40175:2;;40252:4;;40285:2;;40320:4;;40354:1;;39974:18;;40366:193;;;;;;;;39885:682;;;;;;;:::o;42990:689::-;43294:38;;;;;;;;;;;;;;;;;;;;43472:199;;;;;;;;;;;;43281:2;;43359:4;;43392:2;;43427;;43459;;43080:18;;43472:199;;;;;;;;42990:689;;;;;;;:::o;6127:518::-;6410:18;;;;;;;;;;;-1:-1:-1;;;6410:18:0;;;;;;;;6569:68;;6197:18;6569:68;;;;;;;;;;6398:1;;6179:7;;;;6523:4;;6179:7;;6197:18;6569:68;;;;;;;6127:518;;;;;;;:::o;37276:637::-;37570:28;;;;;;;;;;;-1:-1:-1;;;37570:28:0;;;;;;;;37738:167;;;;;;;;;;;;37557:2;;37625:4;;37658:1;;37692:4;;37338:7;;37356:18;;37738:167;;;;;;;;37276:637;;;;;;;:::o;10425:631::-;10717:26;;;;;;;;;;;-1:-1:-1;;;10717:26:0;;;;;;;;10883:165;;;;;;;;;;;;10704:2;;10770:4;;10803:1;;10837:4;;10485:7;;10503:18;;10883:165;;;;;;;;10425:631;;;;;;;:::o;43687:939::-;43976:23;;;;;;;;;;;-1:-1:-1;;;43976:23:0;;;;;;;;44139:479;;;;;;;;;;;;43963:2;;44026:4;;43744:7;;44093:4;;43744:7;;43762:18;;44139:479;;;;;;;;43687:939;;;;;;;:::o;5075:516::-;5358:16;;;;;;;;;;;-1:-1:-1;;;5358:16:0;;;;;;;;5515:68;;5145:18;5515:68;;;;;;;;;;5346:1;;5127:7;;;;5469:4;;5127:7;;5145:18;5515:68;;;;;;;5075:516;;;;;;;:::o;22512:524::-;22796:18;;;;;;;;;;;-1:-1:-1;;;22796:18:0;;;;;;;;22955:73;;22582:18;22955:73;;;;;;;;;;22783:2;;22564:7;;;;22909:4;;22564:7;;22582:18;22955:73;;;;;;;22512:524;;;;;;;:::o;7907:702::-;8205:35;;;;;;;;;;;;;;;;;;;;8380:221;;;;;;;;;;;;8193:1;;8267:4;;8300:1;;8334:4;;7974:7;;7992:18;;8380:221;;;;;;;;7907:702;;;;;;;:::o;5599:520::-;5878:14;;;;;;;;;;;-1:-1:-1;;;5878:14:0;;;;;;;;6033:78;;;;;;;;;;;;5866:1;;5647:7;;;;5987:4;;5647:7;;5665:18;;6033:78;;;;;;;;5599:520;;;;;;;:::o;47175:536::-;47464:23;;;;;;;;;;;-1:-1:-1;;;47464:23:0;;;;;;;;47628:75;;47250:18;47628:75;;;;;;;;;;47451:2;;47514:4;;47547:2;;47582:4;;47232:7;;47250:18;47628:75;;;;;;;47175:536;;;;;;;:::o;9848:569::-;10133:20;;;;;;;;;;;-1:-1:-1;;;10133:20:0;;;;;;;;10293:116;;;;;;;;;;;;10121:1;;10180:4;;9902:7;;10247:4;;9902:7;;9920:18;;10293:116;;;;;;;;9848:569;;;;;;;:::o;16574:640::-;16864:24;;;;;;;;;;;-1:-1:-1;;;16864:24:0;;;;;;;;17029:177;;;;;;;;;;;;16851:2;;16632:7;;;;16983:4;;16632:7;;16650:18;;17029:177;;;;;;;;16574:640;;;;;;;:::o;48922:634::-;49213:25;;;;;;;;;;;-1:-1:-1;;;49213:25:0;;;;;;;;49379:169;;;;;;;;;;;;49200:2;;49265:4;;49298:2;;49333:4;;48981:7;;48999:18;;49379:169;;;;;;;;48922:634;;;;;;;:::o;28283:816::-;28563:14;;;;;;;;;;;-1:-1:-1;;;28563:14:0;;;;;;;;28718:373;;;;;;;;;;;;28550:2;;28331:7;;;;28672:4;;28331:7;;28349:18;;28718:373;;;;;;;;28283:816;;;;;;;:::o;19309:915::-;19595:20;;;;;;;;;;;-1:-1:-1;;;19595:20:0;;;;;;;;19756:460;;;;;;;;;;;;19582:2;;19642:4;;19363:7;;19709:4;;19743:2;;19381:18;;19756:460;;;;;;;;19309:915;;;;;;;:::o;32923:739::-;33211:22;;;;;;;;;;;-1:-1:-1;;;33211:22:0;;;;;;;;33371:283;;;;;;;;;;;;33198:2;;33260:4;;32979:7;;33327:2;;32979:7;;32997:18;;33371:283;;;;;;;;32923:739;;;;;;;:::o;7198:701::-;7495:34;;;;;;;;;;;;;;;;;;;;7670:221;;;;;;;;;;;;7483:1;;7264:7;;;;7624:4;;7264:7;;7282:18;;7670:221;;;;;;;;7198:701;;;;;;;:::o;21323:1181::-;21617:28;;;;;;;;;;;-1:-1:-1;;;21617:28:0;;;;;;;;21785:711;;;;;;;;;;;;21604:2;;21672:4;;21385:7;;21739:4;;21773:1;;21403:18;;21785:711;;;;;;;;21323:1181;;;;;;;:::o;17222:1209::-;17523:35;;;;;;;;;;;;;;;;;;;;17698:725;;;;;;;;;;;;17510:2;;17585:4;;17291:7;;17652:4;;17686:1;;17309:18;;17698:725;;;;;;;;17222:1209;;;;;;;:::o;18439:862::-;18723:18;;;;;;;;;;;;-1:-1:-1;;;18723:18:0;;;;;;;;18881:412;;;;;;;;;;;;18710:2;;18768:4;;18491:7;;18835:4;;18723:18;;18509;;18881:412;;;;;;;;;18439:862;;;;;;;:::o;31663:542::-;31963:34;;;;;;;;;;;;;;;;;;;;32138:59;;31749:18;32138:59;;;;;;;;;;31950:2;;31731:7;;;;32092:4;;31731:7;;31749:18;32138:59;;;;;;;31663:542;;;;;;;:::o;47719:664::-;48010:25;;;;;;;;;;;-1:-1:-1;;;48010:25:0;;;;;;;;48176:199;;;;;;;;;;;;47997:2;;48062:4;;48095:2;;48130:4;;47778:7;;47796:18;;48176:199;;;;;;;;47719:664;;;;;;;:::o;6653:537::-;6942:24;;;;;;;;;;;-1:-1:-1;;;6942:24:0;;;;;;;;7107:75;;6729:18;7107:75;;;;;;;;;;6930:1;;6711:7;;;;7061:4;;6711:7;;6729:18;7107:75;;;;;;;6653:537;;;;;;;:::o;14253:870::-;14534:15;;;;;;;;;;;-1:-1:-1;;;14534:15:0;;;;;;;;14690:425;;;;;;;;;;;;14521:2;;14576:4;;14609:2;;14644:4;;14302:7;;14320:18;;14690:425;;;;;;;;14253:870;;;;;;;:::o;13484:761::-;13771:21;;;;;;;;;;;-1:-1:-1;;;13771:21:0;;;;;;;;13933:304;;;;;;;;;;;;13758:2;;13539:7;;;;13887:4;;13539:7;;13557:18;;13933:304;;;;;;;;13484:761;;;;;;;:::o;36159:576::-;36446:21;;;;;;;;;;;-1:-1:-1;;;36446:21:0;;;;;;;;36608:119;;;;;;;;;;;;36433:2;;36494:4;;36527:2;;36562:4;;36214:7;;36232:18;;36608:119;;;;;;;;36159:576;;;;;;;:::o;23891:884::-;24180:23;;;;;;;;;;;-1:-1:-1;;;24180:23:0;;;;;;;;24344:423;;;;;;;;;;;;24167:2;;24230:4;;24263:2;;24298:4;;23948:7;;23966:18;;24344:423;;;;;;;;23891:884;;;;;;;:::o;45922:542::-;46214:26;;;;;;;;;;;-1:-1:-1;;;46214:26:0;;;;;;;;46379:77;;;;;;;;;;;;46201:2;;46267:4;;45982:7;;46334:3;;46367:1;;46000:18;;46379:77;;;;;;;;45922:542;;;;;;;:::o;46472:695::-;46762:24;;;;;;;;;;;-1:-1:-1;;;46762:24:0;;;;;;;;46927:232;;;;;;;;;;;;46749:2;;46813:4;;46846:2;;46881:4;;46530:7;;46548:18;;46927:232;;;;;;;;46472:695;;;;;;;:::o;8617:700::-;8914:34;;;;;;;;;;;;;;;;;;;;9088:221;;;;;;;;;;;;8902:1;;8975:4;;9008:1;;9042:4;;8683:7;;8701:18;;9088:221;;;;;;;;8617:700;;;;;;;:::o;44634:663::-;44927:27;;;;;;;;;;;-1:-1:-1;;;44927:27:0;;;;;;;;45095:194;;;;;;;;;;;;44914:2;;44981:4;;45014:2;;45049:4;;44695:7;;44713:18;;45095:194;;;;;;;;44634:663;;;;;;;:::o;33670:769::-;33961:25;;;;;;;;;;;-1:-1:-1;;;33961:25:0;;;;;;;;34127:304;;;;;;;;;;;;33948:2;;33729:7;;;;34081:4;;33729:7;;33747:18;;34127:304;;;;;;;;33670:769;;;;;;;:::o;23044:839::-;23342:32;;;;;;;;;;;;;;;;;;;;23515:360;;;;;;;;;;;;23329:2;;23110:7;;;;23469:4;;23110:7;;23128:18;;23515:360;;;;;;;;23044:839;;;;;;;:::o;30847:808::-;31138:25;;;;;;;;;;;-1:-1:-1;;;31138:25:0;;;;;;;;31304:343;;;;;;;;;;;;31125:2;;30906:7;;;;31258:4;;30906:7;;30924:18;;31304:343;;;;;;;;30847:808;;;;;;;:::o;12132:1344::-;12418:20;;;;;;;;;;;-1:-1:-1;;;12418:20:0;;;;;;;;12578:890;;;;;;;;;;;;12405:2;;12465:4;;12186:7;;12532:4;;12566:1;;12204:18;;12578:890;;;;;;;;12132:1344;;;;;;;:::o;26347:1390::-;26629:16;;;;;;;;;;;-1:-1:-1;;;26629:16:0;;;;;;;;26786:943;;;;;;;;;;;;26616:2;;26672:4;;26705:2;;26740:4;;26397:7;;26415:18;;26786:943;;;;;;;;26347:1390;;;;;;;:::o;39186:691::-;39480:28;;;;;;;;;;;-1:-1:-1;;;39480:28:0;;;;;;;;39649:220;;;;;;;;;;;;39467:2;;39248:7;;;;39603:4;;39248:7;;39266:18;;39649:220;;;;;;;;39186:691;;;;;;;:::o;11064:1060::-;11350:20;;;;;;;;11337:2;11350:20;;;-1:-1:-1;;;11350:20:0;;;;;;;;11511:605;;;;;;;;;;;;11337:2;;11118:7;;;;11465:4;;11118:7;;11136:18;;11511:605;;;;;;;11064:1060;;;;;;;:::o;29107:727::-;29395:22;;;;;;;;;;;-1:-1:-1;;;29395:22:0;;;;;;;;29557:269;;;;;;;;;;;;29382:2;;29444:4;;29163:7;;29511:4;;29163:7;;29181:18;;29557:269;;;;;;;;29107:727;;;;;;;:::o;25325:1014::-;25609:18;;;;;;;;;;;-1:-1:-1;;;25609:18:0;;;;;;;;25768:563;;;;;;;;;;;;25596:2;;25377:7;;;;25722:4;;25377:7;;25395:18;;25768:563;;;;;;;;25325:1014;;;;;;;:::o;49564:598::-;49851:21;;;;;;;;;;;-1:-1:-1;;;49851:21:0;;;;;;;;50013:141;;;;;;;;;;;;49838:2;;49899:4;;49932:2;;49967:4;;49619:7;;49637:18;;50013:141;;;;;;;;49564:598;;;;;;;:::o;36743:525::-;37033:24;;;;;;;;;;;-1:-1:-1;;;37033:24:0;;;;;;;;37198:62;;36819:18;37198:62;;;;;;;;;;37020:2;;36801:7;;;;37152:4;;36801:7;;36819:18;37198:62;;;;;;;36743:525;;;;;;;:::o;37921:589::-;38213:26;;;;;;;;;;;-1:-1:-1;;;38213:26:0;;;;;;;;38380:122;;;;;;;;;;;;38200:2;;37981:7;;;;38334:4;;37981:7;;37999:18;;38380:122;;;;;;;;37921:589;;;;;;;:::o;9325:515::-;9607:17;;;;;;;;9595:1;9607:17;;;-1:-1:-1;;;9607:17:0;;;;;;;;9765:67;;9394:18;9765:67;;;;;;;;;;9595:1;;9376:7;;;;9719:4;;9376:7;;9394:18;9765:67;;;;;;;;;9325:515;;;;;;;:::o;48391:523::-;48685:28;;;;;;;;;;;-1:-1:-1;;;48685:28:0;;;;;;;;48854:52;;48471:18;48854:52;;;;;;;;;;48672:2;;48453:7;;;;48808:4;;48453:7;;48471:18;48854:52;;;;;;;48391:523;;;;;;;:::o;34447:632::-;34730:17;;;;;;;;;;;-1:-1:-1;;;34730:17:0;;;;;;;;34888:183;;;;;;;;;;;;34717:2;;34774:4;;34807:2;;34842:4;;34498:7;;34516:18;;34888:183;;;;;;;;34447:632;;;;;;;:::o;15131:625::-;15420:23;;;;;;;;;;;-1:-1:-1;;;15420:23:0;;;;;;;;15584:164;;;;;;;;;;;;15407:2;;15188:7;;;;15538:4;;15188:7;;15206:18;;15584:164;;;;;;;;15131:625;;;;;;;:::o;35087:1064::-;35372:19;;;;;;;;;;;-1:-1:-1;;;35372:19:0;;;;;;;;35532:611;;;;;;;;;;;;35359:2;;35418:4;;35140:7;;35485:4;;35519:2;;35158:18;;35532:611;;;;;;;;35087:1064;;;;;;;:::o;51066:539::-;51359:27;;;;;;;;;;;-1:-1:-1;;;51359:27:0;;;;;;;;51527:70;;51145:18;51527:70;;;;;;;;;;51346:2;;51127:7;;;;51481:4;;51127:7;;51145:18;51527:70;;;;;;;51066:539;;;;;;;:::o;20232:1083::-;20517:19;;;;;;;;;;;-1:-1:-1;;;20517:19:0;;;;;;;;20676:631;;;;;;;;;;;;20504:2;;20563:4;;20285:7;;20630:4;;20664:1;;20303:18;;20676:631;;;;;;;;20232:1083;;;;;;;:::o;41753:661::-;42048:29;;;;;;;;;;;-1:-1:-1;;;42048:29:0;;;;;;;;42216:190;;;;;;;;;;;;42035:2;;42104:4;;42137:2;;42172;;42204:1;;41834:18;;42216:190;;;;;;;;41753:661;;;;;;;:::o;50170:888::-;50466:30;;;;;;;;;;;-1:-1:-1;;;50466:30:0;;;;;;;;50637:413;;;;;;;;;;;;50453:2;;50523:4;;50556:2;;50591:4;;50234:7;;50252:18;;50637:413;;;;;;;;50170:888;;;;;;;:::o;42422:560::-;42718:30;;;;;;;;;;;-1:-1:-1;;;42718:30:0;;;;;;;;42887:87;;;;;;;;;;;;42705:2;;42775:4;;42808:2;;42843;;42875:1;;42504:18;;42887:87;;;;;;;;42422:560;;;;;;;:::o;51613:573::-;51895:2;51908:29;;;;;;;;;;-1:-1:-1;;;51908:29:0;;;;;;;;52078:100;;;;;;;;;;;51964:4;;51895:2;;52032:4;;51676:7;;51694:18;;52078:100;;;;;;;;;51613:573;;;;;;;:::o;29842:997::-;30130:22;;;;;;;;;;;-1:-1:-1;;;30117:2:0;30130:22;;;;;;;30292:539;;;;;;;;;;;;30117:2;;30179:4;;29898:7;;30246:4;;29898:7;;29916:18;;30292:539;;;;;;;29842:997;;;;;;;:::o;27745:530::-;28028:17;;;;;;;;;;;-1:-1:-1;;;28028:17:0;;;;;;;;28186:81;;;;;;;;;;;;28015:2;;27796:7;;;;28140:4;;27796:7;;27814:18;;28186:81;;;;;;;;27745:530;;;;;;;:::o;40575:618::-;40877:36;;;;;;;;;;;;;;;;;;;;41055:130;;;;;;;;;;;;40864:2;;40940:4;;40973:2;;41008:4;;41042:2;;40663:18;;41055:130;;;;;;;;40575:618;;;;;;;:::o;41201:544::-;41488:21;;;;;;;;;;;-1:-1:-1;;;41488:21:0;;;;;;;;41650:87;;;;;;;;;;;;41475:2;;41256:7;;;;41604:4;;41256:7;;41274:18;;41650:87;;;;;;;;41201:544;;;;;;;:::o;32213:702::-;32500:21;;;;;;;;;;;-1:-1:-1;;;32500:21:0;;;;;;;;32661:246;;;;;;;;;;;;32487:2;;32548:4;;32268:7;;32615:4;;32268:7;;32286:18;;32661:246;;;;;;;;32213:702;;;;;;;:::o;171:4896::-;233:7;251:18;280;309:20;340:24;375:21;407;451:3;458:1;451:8;447:4613;;;483:11;:9;:11::i;:::-;476:18;;;;;;;;;;;;;;;;447:4613;516:3;523:1;516:8;512:4548;;;548:7;:5;:7::i;512:4548::-;577:3;584:1;577:8;573:4487;;;609:11;:9;:11::i;573:4487::-;642:3;649:1;642:8;638:4422;;;674:17;:15;:17::i;638:4422::-;713:3;720:1;713:8;709:4351;;;745:25;:23;:25::i;709:4351::-;792:3;799:1;792:8;788:4272;;;824:26;:24;:26::i;788:4272::-;872:3;879:1;872:8;868:4192;;;904:25;:23;:25::i;868:4192::-;951:3;958:1;951:8;947:4113;;;983:10;:8;:10::i;947:4113::-;1015:3;1022:1;1015:8;1011:4049;;;1047:13;:11;:13::i;1011:4049::-;1082:3;1089:2;1082:9;1078:3982;;;1115:19;:17;:19::i;1078:3982::-;1156:3;1163:2;1156:9;1152:3908;;;1189:13;:11;:13::i;1152:3908::-;1224:3;1231:2;1224:9;1220:3840;;;1257:13;:11;:13::i;1220:3840::-;1292:3;1299:2;1292:9;1288:3772;;;1325:14;:12;:14::i;1288:3772::-;1361:3;1368:2;1361:9;1357:3703;;;1394:8;:6;:8::i;1357:3703::-;1424:3;1431:2;1424:9;1420:3640;;;1457:16;:14;:16::i;1420:3640::-;1495:3;1502:2;1495:9;1491:3569;;;1528:18;:16;:18::i;1491:3569::-;1568:3;1575:2;1568:9;1564:3496;;;1601:17;:15;:17::i;1564:3496::-;1640:3;1647:2;1640:9;1636:3424;;;1673:28;:26;:28::i;1636:3424::-;1723:3;1730:2;1723:9;1719:3341;;;1756:11;:9;:11::i;1719:3341::-;1789:3;1796:2;1789:9;1785:3275;;;1822:13;:11;:13::i;1785:3275::-;1857:3;1864:2;1857:9;1853:3207;;;1890:12;:10;:12::i;1853:3207::-;1924:3;1931:2;1924:9;1920:3140;;;1957:21;:19;:21::i;1920:3140::-;2000:3;2007:2;2000:9;1996:3064;;;2033:11;:9;:11::i;1996:3064::-;2066:3;2073:2;2066:9;2062:2998;;;2099:25;:23;:25::i;2062:2998::-;2146:3;2153:2;2146:9;2142:2918;;;2179:16;:14;:16::i;2142:2918::-;2217:3;2224:2;2217:9;2213:2847;;;2250:12;:10;:12::i;2213:2847::-;2284:3;2291:2;2284:9;2280:2780;;;2317:11;:9;:11::i;2280:2780::-;2350:3;2357:2;2350:9;2346:2714;;;2383:9;:7;:9::i;2346:2714::-;2414:3;2421:2;2414:9;2410:2650;;;2447:10;:8;:10::i;2410:2650::-;2479:3;2486:2;2479:9;2475:2585;;;2512:7;:5;:7::i;2475:2585::-;2541:3;2548:2;2541:9;2537:2523;;;2574:15;:13;:15::i;2537:2523::-;2611:3;2618:2;2611:9;2607:2453;;;2644:15;:13;:15::i;2607:2453::-;2681:3;2688:2;2681:9;2677:2383;;;2714:18;:16;:18::i;2677:2383::-;2754:3;2761:2;2754:9;2750:2310;;;2787:27;:25;:27::i;2750:2310::-;2836:3;2843:2;2836:9;2832:2228;;;2869:14;:12;:14::i;2832:2228::-;2905:3;2912:2;2905:9;2901:2159;;;2938:15;:13;:15::i;2901:2159::-;2975:3;2982:2;2975:9;2971:2089;;;3008:18;:16;:18::i;2971:2089::-;3048:3;3055:2;3048:9;3044:2016;;;3081:10;:8;:10::i;3044:2016::-;3113:3;3120:2;3113:9;3109:1951;;;3146:12;:10;:12::i;3109:1951::-;3180:3;3187:2;3180:9;3176:1884;;;3213:14;:12;:14::i;3176:1884::-;3249:3;3256:2;3249:9;3245:1815;;;3282:17;:15;:17::i;3245:1815::-;3321:3;3328:2;3321:9;3317:1743;;;3354:21;:19;:21::i;3317:1743::-;3397:3;3404:2;3397:9;3393:1667;;;3430:19;:17;:19::i;3393:1667::-;3471:3;3478:2;3471:9;3467:1593;;;3504:27;:25;:27::i;3467:1593::-;3553:3;3560:2;3553:9;3549:1511;;;3586:21;:19;:21::i;3549:1511::-;3629:3;3636:2;3629:9;3625:1435;;;3662:30;:28;:30::i;3625:1435::-;3714:3;3721:2;3714:9;3710:1350;;;3747:29;:27;:29::i;3710:1350::-;3798:3;3805:2;3798:9;3794:1266;;;3831:14;:12;:14::i;3794:1266::-;3867:3;3874:2;3867:9;3863:1197;;;3900:22;:20;:22::i;3863:1197::-;3944:3;3951:2;3944:9;3940:1120;;;3977:23;:21;:23::i;3940:1120::-;4022:3;4029:2;4022:9;4018:1042;;;4055:31;:29;:31::i;4018:1042::-;4108:3;4115:2;4108:9;4104:956;;;4141:16;:14;:16::i;4104:956::-;4179:3;4186:2;4179:9;4175:885;;;4212:20;:18;:20::i;4175:885::-;4254:3;4261:2;4254:9;4250:810;;;4287:23;:21;:23::i;4250:810::-;4332:3;4339:2;4332:9;4328:732;;;4365:19;:17;:19::i;4328:732::-;4406:3;4413:2;4406:9;4402:658;;;4439:17;:15;:17::i;4402:658::-;4478:3;4485:2;4478:9;4474:586;;;4511:16;:14;:16::i;4474:586::-;4549:3;4556:2;4549:9;4545:515;;;4582:18;:16;:18::i;4545:515::-;4622:3;4629:2;4622:9;4618:442;;;4655:21;:19;:21::i;4618:442::-;4698:3;4705:2;4698:9;4694:366;;;4731:18;:16;:18::i;4694:366::-;4771:3;4778:2;4771:9;4767:293;;;4804:14;:12;:14::i;4767:293::-;4840:3;4847:2;4840:9;4836:224;;;4873:23;:21;:23::i;4836:224::-;4918:3;4925:2;4918:9;4914:146;;;4951:20;:18;:20::i;4914:146::-;4993:3;5000:2;4993:9;4989:71;;;5026:22;:20;:22::i;4989:71::-;171:4896;;;;;;;;;:::o;38518:660::-;38818:34;;;;;;;;;;;;;;;;;;;;38993:177;;;;;;;;;;;;38805:2;;38879:4;;38912:2;;38947:4;;38586:7;;38604:18;;38993:177;;;;;;;;38518:660;;;;;;;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:472::-;241:3;279:5;273:12;306:6;301:3;294:19;331:1;341:162;355:6;352:1;349:13;341:162;;;417:4;473:13;;;469:22;;463:29;445:11;;;441:20;;434:59;370:12;341:162;;;521:6;518:1;515:13;512:87;;;587:1;580:4;571:6;566:3;562:16;558:27;551:38;512:87;-1:-1:-1;653:2:1;632:15;-1:-1:-1;;628:29:1;619:39;;;;660:4;615:50;;199:472;-1:-1:-1;;199:472:1:o;676:220::-;825:2;814:9;807:21;788:4;845:45;886:2;875:9;871:18;863:6;845:45;:::i;:::-;837:53;676:220;-1:-1:-1;;;676:220:1:o;901:753::-;1232:6;1221:9;1214:25;1275:3;1270:2;1259:9;1255:18;1248:31;1195:4;1302:46;1343:3;1332:9;1328:19;1320:6;1302:46;:::i;:::-;1398:6;1391:14;1384:22;1379:2;1368:9;1364:18;1357:50;1443:6;1438:2;1427:9;1423:18;1416:34;1487:6;1481:3;1470:9;1466:19;1459:35;1531:6;1525:3;1514:9;1510:19;1503:35;1587:9;1579:6;1575:22;1569:3;1558:9;1554:19;1547:51;1615:33;1641:6;1633;1615:33;:::i;:::-;1607:41;901:753;-1:-1:-1;;;;;;;;;;901:753:1:o

Swarm Source

ipfs://2a87c5f09da1c61182885bbe872225663ec508406344aa7e0970265269e7bfa2
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.