{
"cells": [
{
"cell_type": "markdown",
"id": "f3c0d569",
"metadata": {},
"source": [
"# Possible Crafting Analysis Example\n",
"\n",
"Note: The structure is generated with ChatGPT, based on the pure Python example in [`example_calculator_for_example_items.py`](https://github.com/WladHD/pyoe2-craftpath/tree/main/python_examples/example_calculator_for_example_items.py).\n",
"\n",
"This notebook demonstrates an example workflow for calculating crafting routes in Path of Exile 2. It includes:\n",
"- Loading example start and target items.\n",
"- Fetching economy and item data.\n",
"- Generating an item matrix and computing statistics.\n",
"- Displaying results in interactive Pandas tables with pretty-print for each route.\n",
"- Summary of top routes and currency groups.\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "8eb2947b",
"metadata": {},
"source": [
"## 1. Imports and Version Check\n",
"Import necessary modules for PoE2 crafting analysis, JSON parsing, and Pandas display.\n",
"\n",
"Check for new version"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "d6ed0e3f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[2m2025-12-12T21:57:38.300120Z\u001b[0m \u001b[32m INFO\u001b[0m You are up to date running pyoe2-craftpath with version 0.5.0!\n",
"You can always check out https://github.com/WladHD/pyoe2-craftpath if you encounter issues or have ideas.\n"
]
}
],
"source": [
"import pyoe2_craftpath as pc\n",
"import pandas as pd\n",
"\n",
"new_version_available = pc.check_for_updates_and_print()"
]
},
{
"cell_type": "markdown",
"id": "73d5464b",
"metadata": {},
"source": [
"## 2. Setup Cache and URLs\n",
"Define URLs for item data ([Craft of Exile](https://www.craftofexile.com/?game=poe2)) and market data ([PoE Ninja](https://poe.ninja/)). The economy data is gathered for the League `Standard`."
]
},
{
"cell_type": "markdown",
"id": "ee168ec9",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 21,
"id": "cc34e63b",
"metadata": {},
"outputs": [],
"source": [
"COE_MAP = {\n",
" \"./cache/coe2.json\": \"https://www.craftofexile.com/json/poe2/main/poec_data.json\"\n",
"}\n",
"\n",
"ECONOMY_MAP = {\n",
" \"./cache/pn_abyss.json\": \"https://poe.ninja/poe2/api/economy/exchange/current/overview?league=Standard&type=Abyss\",\n",
" \"./cache/pn_currency.json\": \"https://poe.ninja/poe2/api/economy/exchange/current/overview?league=Standard&type=Currency\",\n",
" \"./cache/pn_essences.json\": \"https://poe.ninja/poe2/api/economy/exchange/current/overview?league=Standard&type=Essences\",\n",
" \"./cache/pn_ritual.json\": \"https://poe.ninja/poe2/api/economy/exchange/current/overview?league=Standard&type=Ritual\"\n",
"}"
]
},
{
"cell_type": "markdown",
"id": "acf3aa60",
"metadata": {},
"source": [
"## 3. Fetch and Parse Item and Market Data\n",
"I've implemented a caching function, that can fetch and cache the given structure in `COE_MAP` and `ECONOMY_MAP`. Use that or provide required CoE's and PN's jsons on your own."
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "03714d07",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[2m2025-12-12T21:57:38.326995Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mretrieve_contents_from_urls_with_cache_unstable_order\u001b[0m\u001b[2m:\u001b[0m Loading cached contents from './cache/coe2.json'\n",
"\u001b[2m2025-12-12T21:57:38.343362Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mretrieve_contents_from_urls_with_cache_unstable_order\u001b[0m\u001b[2m:\u001b[0m Loading cached contents from './cache/pn_currency.json'\n",
"\u001b[2m2025-12-12T21:57:38.347377Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mretrieve_contents_from_urls_with_cache_unstable_order\u001b[0m\u001b[2m:\u001b[0m Loading cached contents from './cache/pn_abyss.json'\n",
"\u001b[2m2025-12-12T21:57:38.350920Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mretrieve_contents_from_urls_with_cache_unstable_order\u001b[0m\u001b[2m:\u001b[0m Loading cached contents from './cache/pn_ritual.json'\n",
"\u001b[2m2025-12-12T21:57:38.355209Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mretrieve_contents_from_urls_with_cache_unstable_order\u001b[0m\u001b[2m:\u001b[0m Loading cached contents from './cache/pn_essences.json'\n"
]
}
],
"source": [
"raw_fetched_responses_coe = pc.retrieve_contents_from_urls_with_cache_unstable_order(\n",
" cache_url_map=COE_MAP,\n",
" max_cache_duration_in_sec=60*60*24\n",
")\n",
"\n",
"raw_fetched_responses_economy = pc.retrieve_contents_from_urls_with_cache_unstable_order(\n",
" cache_url_map=ECONOMY_MAP,\n",
" max_cache_duration_in_sec=60*60\n",
")\n",
"\n",
"coe_data = pc.CraftOfExileItemInfoProvider.parse_from_json(\n",
" raw_fetched_responses_coe[0])\n",
"economy = pc.PoeNinjaMarketPriceProvider.parse_from_json_list(\n",
" raw_fetched_responses_economy)"
]
},
{
"cell_type": "markdown",
"id": "a6722222",
"metadata": {},
"source": [
"## 4. Load Example Items\n",
"Load raw string for starting and target items and parse using the `CraftOfExileEmulatorItemImport` class. The content of `start_item_magic_1_affix_bow.json` and `target_item_desecrated_essence_rare_4_affix_bow.json` is generated by the Emulator in [craftofexile.com](https://www.craftofexile.com/?game=poe2) using the Export function (under History/Spending on the right)."
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "3c2e5238",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Base Group: Two-Handed Weapons (#7), Max Rarity: Rare, Max Affixes: 6 (3 per side), Max. Sockets: 2 (3 corrupt)\n",
"BaseId: #20, Rarity: Magic, ItemLevel: 100, Sockets: 0\n",
"[Tier 2+, ilvl 76, Prefix] '+# to Accuracy Rating'\n",
"\n",
"Base Group: Two-Handed Weapons (#7), Max Rarity: Rare, Max Affixes: 6 (3 per side), Max. Sockets: 2 (3 corrupt)\n",
"BaseId: #20, Rarity: Rare, ItemLevel: 100, Sockets: 3\n",
"[Tier 2+, ilvl 76, Prefix] '+# to Accuracy Rating'\n",
"[Tier 2+, ilvl 75, Prefix] 'Adds # to # Lightning Damage'\n",
"[Tier 1+, ilvl 60, Suffix, Ess.] '#% increased Attack Speed'\n",
"[Tier 1+, ilvl 65, Prefix, Des.] 'Attacks with this Weapon Penetrate #% Lightning Resistance'\n",
"\n"
]
}
],
"source": [
"with open('example_items/start_item_magic_1_affix_bow.json', 'r', encoding='utf-8') as f:\n",
" start_raw_string = f.read()\n",
"with open('example_items/target_item_desecrated_essence_rare_4_affix_bow.json', 'r', encoding='utf-8') as f:\n",
" end_raw_string = f.read()\n",
"\n",
"start_item = pc.CraftOfExileEmulatorItemImport.parse_itemsnapshot_from_string(\n",
" start_raw_string, coe_data)\n",
"end_item = pc.CraftOfExileEmulatorItemImport.parse_itemsnapshot_from_string(\n",
" end_raw_string, coe_data)\n",
"\n",
"print(start_item.to_pretty_string(coe_data, True))\n",
"print(end_item.to_pretty_string(coe_data, True))"
]
},
{
"cell_type": "markdown",
"id": "ed072173",
"metadata": {},
"source": [
"## 5. Generate Item Matrix\n",
"Use `MatrixBuilderPreset.HappyPathMatrixBuilder` to create a crafting matrix from start to target items. Currently only one implementation exists to build the item matrix. Refer to the [README](https://github.com/WladHD/pyoe2-craftpath) for implementation details. You can write your own Rust addon and create a new `DynMatrixBuilder`, which can be passed as the argument `matrix_builder`."
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "6f5d8e9e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[2m2025-12-12T21:57:38.642283Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m Using 'Happy Path Matrix Builder' to generate item matrix ...\n",
"Matrix contains 26 items\n",
"\u001b[2m2025-12-12T21:57:38.642331Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m Description: Builds an optimized item matrix containing reachable items starting from the given item, that only come closer to the target item (target_proximity).\n",
"\u001b[2m2025-12-12T21:57:38.642366Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m Starting propagation ...\n",
"\u001b[2m2025-12-12T21:57:38.669063Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5056), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.669094Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5697), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Exact } }\n",
"\u001b[2m2025-12-12T21:57:38.669106Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5117), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.669117Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5893), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.669802Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5056), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.669819Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5697), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Exact } }\n",
"\u001b[2m2025-12-12T21:57:38.669830Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5117), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.669840Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5893), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.670495Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5056), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.670512Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5697), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Exact } }\n",
"\u001b[2m2025-12-12T21:57:38.670552Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5117), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.670564Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5893), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.671255Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5056), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.671274Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5697), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Exact } }\n",
"\u001b[2m2025-12-12T21:57:38.671285Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5117), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.671295Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5893), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.671990Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5056), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.672014Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5697), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Exact } }\n",
"\u001b[2m2025-12-12T21:57:38.672026Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5117), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.672036Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5893), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.672795Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5056), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.672817Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5697), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Exact } }\n",
"\u001b[2m2025-12-12T21:57:38.672829Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5117), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.672839Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5893), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.673541Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5056), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.673561Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5697), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Exact } }\n",
"\u001b[2m2025-12-12T21:57:38.673573Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5117), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.673583Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5893), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.674259Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5056), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.674278Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5697), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Exact } }\n",
"\u001b[2m2025-12-12T21:57:38.674289Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5117), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.674300Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5893), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.677971Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5056), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.677997Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5697), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Exact } }\n",
"\u001b[2m2025-12-12T21:57:38.678009Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5117), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.678021Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5893), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.679596Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5056), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.679626Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5697), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Exact } }\n",
"\u001b[2m2025-12-12T21:57:38.679638Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5117), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(2), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.679648Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m AffixSpecifier { affix: AffixId(5893), fractured: false, tier: AffixTierConstraints { tier: AffixTierLevel(1), bounds: Minimum } }\n",
"\u001b[2m2025-12-12T21:57:38.690774Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m Excluded 20 more expensive routes with same chance successfully\n",
"\u001b[2m2025-12-12T21:57:38.690800Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mgenerate_item_matrix\u001b[0m\u001b[2m:\u001b[0m Successfully generated item matrix.\n"
]
}
],
"source": [
"matrix_builder_instance = pc.MatrixBuilderPreset.HappyPathMatrixBuilder.get_instance()\n",
"\n",
"calc = pc.Calculator.generate_item_matrix(\n",
" starting_item=start_item,\n",
" target=end_item,\n",
" item_provider=coe_data,\n",
" market_info=economy,\n",
" matrix_builder=matrix_builder_instance\n",
")\n",
"\n",
"print(f\"Matrix contains {len(calc.matrix)} items\")"
]
},
{
"cell_type": "markdown",
"id": "b0c7ea40",
"metadata": {},
"source": [
"## 6. Calculate Statistics\n",
"Compute crafting statistics using analyzers for chance, efficiency, and cost. Here again, analyzer instances are of type `DynStatisticAnalyzerPaths`, if you want to handle the statistic login in Rust. You can also let this program calculate all possible paths, and create your own statistics in Python yourself."
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "386bc54f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[2m2025-12-12T21:57:38.704416Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m Using 'Unique Path by Highest Chance' to calculate statistics ...\n",
"\u001b[2m2025-12-12T21:57:38.704462Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m Description: Retrieves N number of unique paths memory efficiently from all possible combinations, sorted by chance.\n",
"\u001b[2m2025-12-12T21:57:38.704487Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m\u001b[1mget_statistic\u001b[0m\u001b[2m:\u001b[0m Generating unique craft paths based on item matrix\n",
"\u001b[2m2025-12-12T21:57:38.706865Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m\u001b[1mget_statistic\u001b[0m\u001b[2m:\u001b[0m\u001b[1mfinalize_routes\u001b[0m\u001b[2m:\u001b[0m Collecting 100 routes ...\n",
"\u001b[2m2025-12-12T21:57:38.707611Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m\u001b[1mget_statistic\u001b[0m\u001b[2m:\u001b[0m\u001b[1mfinalize_routes\u001b[0m\u001b[2m:\u001b[0m Routes collected successfully.\n",
"\u001b[2m2025-12-12T21:57:38.707713Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m Successfully calculated statistics.\n",
"\u001b[2m2025-12-12T21:57:38.708427Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m Using 'Unique Path by Efficient Cost' to calculate statistics ...\n",
"\u001b[2m2025-12-12T21:57:38.708445Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m Description: Retrieves N number of unique paths memory efficiently from all possible combinations, sorted by cost multiplied by amount of tries needed to reach at least 60% chance to gain the item.\n",
"\u001b[2m2025-12-12T21:57:38.708462Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m\u001b[1mget_statistic\u001b[0m\u001b[2m:\u001b[0m Generating unique craft paths based on item matrix\n",
"\u001b[2m2025-12-12T21:57:38.716217Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m\u001b[1mget_statistic\u001b[0m\u001b[2m:\u001b[0m\u001b[1mfinalize_routes\u001b[0m\u001b[2m:\u001b[0m Collecting 100 routes ...\n",
"\u001b[2m2025-12-12T21:57:38.716825Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m\u001b[1mget_statistic\u001b[0m\u001b[2m:\u001b[0m\u001b[1mfinalize_routes\u001b[0m\u001b[2m:\u001b[0m Routes collected successfully.\n",
"\u001b[2m2025-12-12T21:57:38.716899Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m Successfully calculated statistics.\n",
"\u001b[2m2025-12-12T21:57:38.717596Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m Using 'Unique Path by Lowest Cost' to calculate statistics ...\n",
"\u001b[2m2025-12-12T21:57:38.717639Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m Description: Retrieves N number of unique paths memory efficiently from all possible combinations, sorted by cost.\n",
"\u001b[2m2025-12-12T21:57:38.717664Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m\u001b[1mget_statistic\u001b[0m\u001b[2m:\u001b[0m Generating unique craft paths based on item matrix\n",
"\u001b[2m2025-12-12T21:57:38.722376Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m\u001b[1mget_statistic\u001b[0m\u001b[2m:\u001b[0m\u001b[1mfinalize_routes\u001b[0m\u001b[2m:\u001b[0m Collecting 100 routes ...\n",
"\u001b[2m2025-12-12T21:57:38.722902Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m\u001b[1mget_statistic\u001b[0m\u001b[2m:\u001b[0m\u001b[1mfinalize_routes\u001b[0m\u001b[2m:\u001b[0m Routes collected successfully.\n",
"\u001b[2m2025-12-12T21:57:38.722968Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics\u001b[0m\u001b[2m:\u001b[0m Successfully calculated statistics.\n"
]
}
],
"source": [
"def calculate_stat_results(calc: pc.Calculator, analyzer_preset: pc.StatisticAnalyzerPathPreset, coe_data: pc.ItemInfoProvider, economy: pc.MarketPriceProvider, max_routes=100):\n",
" instance = analyzer_preset.get_instance()\n",
" res = calc.calculate_statistics(\n",
" item_provider=coe_data,\n",
" market_provider=economy,\n",
" max_routes=max_routes,\n",
" max_ram_in_bytes=1_000_000_000,\n",
" statistic_analyzer=instance\n",
" )\n",
" return res, instance\n",
"\n",
"\n",
"chance_results, chance_instance = calculate_stat_results(\n",
" calc, pc.StatisticAnalyzerPathPreset.UniquePathChance, coe_data, economy)\n",
"efficiency_results, efficiency_instance = calculate_stat_results(\n",
" calc, pc.StatisticAnalyzerPathPreset.UniquePathEfficiency, coe_data, economy)\n",
"cost_results, cost_instance = calculate_stat_results(\n",
" calc, pc.StatisticAnalyzerPathPreset.UniquePathCost, coe_data, economy)"
]
},
{
"cell_type": "markdown",
"id": "376980da",
"metadata": {},
"source": [
"## 7. Calculate Currency Group Statistics\n",
"Compute grouped statistics using `CurrencyGroupChance` analyzer. Same as unique paths, but with the goal of collecting routes into groups by the applied currency sequence. The instance is `DynStatisticAnalyzerCurrencyGroups`.\n",
"\n",
"The calculation is memory expensive for deep paths, so define the amount of RAM you're comfortable with giving for this calculation."
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "9a685043",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[2m2025-12-12T21:57:38.732390Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics_currency_group\u001b[0m\u001b[2m:\u001b[0m Using 'Currency Groups by Highest Chance (No Unique Paths)' to calculate statistics ...\n",
"\u001b[2m2025-12-12T21:57:38.732439Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics_currency_group\u001b[0m\u001b[2m:\u001b[0m Description: Memory efficient implementation of currency sequence grouping. Unique paths are not kept, but instead immediatly summed, thus losing information but allowing memory efficient collection. Best combined with best N routes.\n",
"\u001b[2m2025-12-12T21:57:38.732471Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics_currency_group\u001b[0m\u001b[2m:\u001b[0m\u001b[1mget_statistic\u001b[0m\u001b[2m:\u001b[0m\u001b[1mget_grouped_statistic_memory_efficient\u001b[0m\u001b[2m:\u001b[0m Generating unique craft paths based on item matrix\n",
"\u001b[2m2025-12-12T21:57:38.738157Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[1mcalculate_statistics_currency_group\u001b[0m\u001b[2m:\u001b[0m Successfully calculated statistics.\n"
]
}
],
"source": [
"group_chance_instance = pc.StatisticAnalyzerCurrencyGroupPreset.CurrencyGroupChance.get_instance()\n",
"groups = calc.calculate_statistics_currency_group(\n",
" item_provider=coe_data,\n",
" market_provider=economy,\n",
" max_ram_in_bytes=1_000_000_000,\n",
" statistic_analyzer=group_chance_instance\n",
")"
]
},
{
"cell_type": "markdown",
"id": "1e091b92",
"metadata": {},
"source": [
"## 8. Build Pandas DataFrames for Routes\n",
"Here is an example, of how the calculated data can be transformed, into a more interesting view. Keep in mind that a route per se has no name. So the position in the sorted list is to identify it (in this example).\n",
"\n",
"Construct DataFrames for chance, efficiency, and cost results with pretty-printed routes."
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "510a2b8c",
"metadata": {},
"outputs": [],
"source": [
"def build_routes_df(routes: list[pc.ItemRoute], analyzer_instance: pc.DynStatisticAnalyzerPaths, coe_data: pc.ItemInfoProvider, economy: pc.MarketPriceProvider, calc: pc.Calculator, groups: list[pc.GroupRoute]):\n",
" data = []\n",
" for i, r in enumerate(routes):\n",
" group = r.locate_group(calculated_groups=groups)\n",
"\n",
" currency_group = [node.currency_list for node in r.route]\n",
"\n",
" data.append({\n",
" 'Route': \"#\" + str(i + 1),\n",
" 'Chance': r.chance,\n",
" 'Cost per 1 (DIV)': analyzer_instance.calculate_cost_per_craft(currency_group, coe_data, economy).get_divine_value(),\n",
" 'Tries needed for 60 %': analyzer_instance.calculate_tries_needed_for_60_percent(r),\n",
" 'Group Chance': group.chance if group is not None else None,\n",
" 'Group Tries Needed': group_chance_instance.calculate_tries_needed_for_60_percent(group) if group is not None else None,\n",
" 'Pretty Print': r.to_pretty_string(\n",
" item_provider=coe_data,\n",
" market_provider=economy,\n",
" calculator=calc,\n",
" groups=groups,\n",
" statistic_analyzer=analyzer_instance\n",
" )\n",
" })\n",
" return pd.DataFrame(data)\n",
"\n",
"\n",
"df_chance = build_routes_df(\n",
" chance_results, chance_instance, coe_data, economy, calc, groups)\n",
"df_efficiency = build_routes_df(\n",
" efficiency_results, efficiency_instance, coe_data, economy, calc, groups)\n",
"df_cost = build_routes_df(cost_results, cost_instance,\n",
" coe_data, economy, calc, groups)"
]
},
{
"cell_type": "markdown",
"id": "d5b46da8",
"metadata": {},
"source": [
"### 9. Display Top Routes by Chance\n",
"Show a Pandas DataFrame and print pretty-printed route details.\n",
"\n",
"Below is a simple example of how the calculated data can be used. Following examples show a printed table, as well as the raw console output I've coded to visualize routes. The information you want may be different, so adapt to your needs."
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "4f1c5d3f",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Route</th>\n",
" <th>Chance</th>\n",
" <th>Cost per 1 (DIV)</th>\n",
" <th>Tries needed for 60 %</th>\n",
" <th>Group Chance</th>\n",
" <th>Group Tries Needed</th>\n",
" <th>Pretty Print</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>#1</td>\n",
" <td>0.005915016900048285</td>\n",
" <td>4.793339</td>\n",
" <td>155</td>\n",
" <td>0.005915016900048285</td>\n",
" <td>155</td>\n",
" <td>Group Chance: 0.59150% | Unique Routes: 1 | Tr...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>#2</td>\n",
" <td>0.005915016900048285</td>\n",
" <td>4.793339</td>\n",
" <td>155</td>\n",
" <td>0.005915016900048285</td>\n",
" <td>155</td>\n",
" <td>Group Chance: 0.59150% | Unique Routes: 1 | Tr...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>#3</td>\n",
" <td>0.004436262675036214</td>\n",
" <td>4.728059</td>\n",
" <td>207</td>\n",
" <td>0.004436262675036214</td>\n",
" <td>207</td>\n",
" <td>Group Chance: 0.44363% | Unique Routes: 1 | Tr...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Route Chance Cost per 1 (DIV) Tries needed for 60 % \\\n",
"0 #1 0.005915016900048285 4.793339 155 \n",
"1 #2 0.005915016900048285 4.793339 155 \n",
"2 #3 0.004436262675036214 4.728059 207 \n",
"\n",
" Group Chance Group Tries Needed \\\n",
"0 0.005915016900048285 155 \n",
"1 0.005915016900048285 155 \n",
"2 0.004436262675036214 207 \n",
"\n",
" Pretty Print \n",
"0 Group Chance: 0.59150% | Unique Routes: 1 | Tr... \n",
"1 Group Chance: 0.59150% | Unique Routes: 1 | Tr... \n",
"2 Group Chance: 0.44363% | Unique Routes: 1 | Tr... "
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_chance.head(3)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "8b55214e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- Route 1: #1 ---\n",
"Group Chance: 0.59150% | Unique Routes: 1 | Tries needed for 60%: 155 | Cost per Craft: 10,599 EX | Cost for 60%: 1,642,702 EX\n",
"1. Greater Essence of Haste (4 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"2. Omen of Abyssal Echoes (724 EX) + Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX) [ROUGH (!) avg. chance: 43.75000%]\n",
"3. Perfect Exalted Orb (9,353 EX) + Omen of Sinistral Exaltation (62 EX) [ROUGH (!) avg. chance: 4.05601%]\n",
"4. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"5. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"6. Omen of Corruption (145 EX) + Vaal Orb (2 EX) [ROUGH (!) avg. chance: 33.33333%]\n",
"\n",
"Base Group: Two-Handed Weapons (#7), Max Rarity: Rare, Max Affixes: 6 (3 per side), Max. Sockets: 2 (3 corrupt)\n",
"BaseId: #20, Rarity: Magic, ItemLevel: 100, Sockets: 0\n",
"Exact Chance: 0.59150% | Tries needed for 60%: 155 | Cost per Craft: 10,599 EX | Cost for 60%: 1,642,702 EX\n",
"0. Starting with ...\n",
"0.\t[Tier 2+, ilvl 76, Prefix] '+# to Accuracy Rating'\n",
"1. Apply Greater Essence of Haste (4 EX)\n",
"1.\t+ [1 (~100.000%), Tier 1=, ilvl 60, Suffix, Ess.] '#% increased Attack Speed'\n",
"1. \t! Rarity Magic -> Rare\n",
"2. Apply Omen of Abyssal Echoes (724 EX) + Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX)\n",
"2.\t+ [7/16 (~43.750%), Tier 1+, ilvl 65, Prefix, Des.] 'Attacks with this Weapon Penetrate #% Lightning Resistance'\n",
"3. Apply Perfect Exalted Orb (9,353 EX) + Omen of Sinistral Exaltation (62 EX)\n",
"3.\t+ [84/2071 (~4.056%), Tier 2+, ilvl 75, Prefix] 'Adds # to # Lightning Damage'\n",
"4. Apply Artificer's Orb (3 EX)\n",
"4.\t+ [1 (~100.000%)] Socket (1/2)\n",
"5. Apply Artificer's Orb (3 EX)\n",
"5.\t+ [1 (~100.000%)] Socket (2/2)\n",
"6. Apply Omen of Corruption (145 EX) + Vaal Orb (2 EX)\n",
"6.\t+ [1/3 (~33.333%)] Socket (3/2)\n",
"6. \t! Corrupted - ensure maximum quality and wanted affixes prior to applying a Vaal Orb, since corrupted items CAN NOT be modified further.\n",
"\n",
"--- Route 2: #2 ---\n",
"Group Chance: 0.59150% | Unique Routes: 1 | Tries needed for 60%: 155 | Cost per Craft: 10,599 EX | Cost for 60%: 1,642,702 EX\n",
"1. Greater Essence of Haste (4 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"2. Perfect Exalted Orb (9,353 EX) + Omen of Sinistral Exaltation (62 EX) [ROUGH (!) avg. chance: 4.05601%]\n",
"3. Omen of Abyssal Echoes (724 EX) + Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX) [ROUGH (!) avg. chance: 43.75000%]\n",
"4. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"5. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"6. Omen of Corruption (145 EX) + Vaal Orb (2 EX) [ROUGH (!) avg. chance: 33.33333%]\n",
"\n",
"Base Group: Two-Handed Weapons (#7), Max Rarity: Rare, Max Affixes: 6 (3 per side), Max. Sockets: 2 (3 corrupt)\n",
"BaseId: #20, Rarity: Magic, ItemLevel: 100, Sockets: 0\n",
"Exact Chance: 0.59150% | Tries needed for 60%: 155 | Cost per Craft: 10,599 EX | Cost for 60%: 1,642,702 EX\n",
"0. Starting with ...\n",
"0.\t[Tier 2+, ilvl 76, Prefix] '+# to Accuracy Rating'\n",
"1. Apply Greater Essence of Haste (4 EX)\n",
"1.\t+ [1 (~100.000%), Tier 1=, ilvl 60, Suffix, Ess.] '#% increased Attack Speed'\n",
"1. \t! Rarity Magic -> Rare\n",
"2. Apply Perfect Exalted Orb (9,353 EX) + Omen of Sinistral Exaltation (62 EX)\n",
"2.\t+ [84/2071 (~4.056%), Tier 2+, ilvl 75, Prefix] 'Adds # to # Lightning Damage'\n",
"3. Apply Omen of Abyssal Echoes (724 EX) + Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX)\n",
"3.\t+ [7/16 (~43.750%), Tier 1+, ilvl 65, Prefix, Des.] 'Attacks with this Weapon Penetrate #% Lightning Resistance'\n",
"4. Apply Artificer's Orb (3 EX)\n",
"4.\t+ [1 (~100.000%)] Socket (1/2)\n",
"5. Apply Artificer's Orb (3 EX)\n",
"5.\t+ [1 (~100.000%)] Socket (2/2)\n",
"6. Apply Omen of Corruption (145 EX) + Vaal Orb (2 EX)\n",
"6.\t+ [1/3 (~33.333%)] Socket (3/2)\n",
"6. \t! Corrupted - ensure maximum quality and wanted affixes prior to applying a Vaal Orb, since corrupted items CAN NOT be modified further.\n",
"\n",
"--- Route 3: #3 ---\n",
"Group Chance: 0.44363% | Unique Routes: 1 | Tries needed for 60%: 207 | Cost per Craft: 10,454 EX | Cost for 60%: 2,163,924 EX\n",
"1. Greater Essence of Haste (4 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"2. Perfect Exalted Orb (9,353 EX) + Omen of Sinistral Exaltation (62 EX) [ROUGH (!) avg. chance: 4.05601%]\n",
"3. Omen of Abyssal Echoes (724 EX) + Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX) [ROUGH (!) avg. chance: 43.75000%]\n",
"4. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"5. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"6. Vaal Orb (2 EX) [ROUGH (!) avg. chance: 25.00000%]\n",
"\n",
"Base Group: Two-Handed Weapons (#7), Max Rarity: Rare, Max Affixes: 6 (3 per side), Max. Sockets: 2 (3 corrupt)\n",
"BaseId: #20, Rarity: Magic, ItemLevel: 100, Sockets: 0\n",
"Exact Chance: 0.44363% | Tries needed for 60%: 207 | Cost per Craft: 10,454 EX | Cost for 60%: 2,163,924 EX\n",
"0. Starting with ...\n",
"0.\t[Tier 2+, ilvl 76, Prefix] '+# to Accuracy Rating'\n",
"1. Apply Greater Essence of Haste (4 EX)\n",
"1.\t+ [1 (~100.000%), Tier 1=, ilvl 60, Suffix, Ess.] '#% increased Attack Speed'\n",
"1. \t! Rarity Magic -> Rare\n",
"2. Apply Perfect Exalted Orb (9,353 EX) + Omen of Sinistral Exaltation (62 EX)\n",
"2.\t+ [84/2071 (~4.056%), Tier 2+, ilvl 75, Prefix] 'Adds # to # Lightning Damage'\n",
"3. Apply Omen of Abyssal Echoes (724 EX) + Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX)\n",
"3.\t+ [7/16 (~43.750%), Tier 1+, ilvl 65, Prefix, Des.] 'Attacks with this Weapon Penetrate #% Lightning Resistance'\n",
"4. Apply Artificer's Orb (3 EX)\n",
"4.\t+ [1 (~100.000%)] Socket (1/2)\n",
"5. Apply Artificer's Orb (3 EX)\n",
"5.\t+ [1 (~100.000%)] Socket (2/2)\n",
"6. Apply Vaal Orb (2 EX)\n",
"6.\t+ [1/4 (~25.000%)] Socket (3/2)\n",
"6. \t! Corrupted - ensure maximum quality and wanted affixes prior to applying a Vaal Orb, since corrupted items CAN NOT be modified further.\n",
"\n"
]
}
],
"source": [
"for i, (_, row) in enumerate(df_chance.head(3).iterrows(), start=1):\n",
" print(f\"--- Route {i}: {row['Route']} ---\")\n",
" print(row['Pretty Print'])"
]
},
{
"cell_type": "markdown",
"id": "aaee13eb",
"metadata": {},
"source": [
"### 10. Console Display Top Routes by Efficiency"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "b837ae05",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Route</th>\n",
" <th>Chance</th>\n",
" <th>Cost per 1 (DIV)</th>\n",
" <th>Tries needed for 60 %</th>\n",
" <th>Group Chance</th>\n",
" <th>Group Tries Needed</th>\n",
" <th>Pretty Print</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>#1</td>\n",
" <td>0.0016556291390728477</td>\n",
" <td>0.180434</td>\n",
" <td>553</td>\n",
" <td>0.0016556291390728477</td>\n",
" <td>553</td>\n",
" <td>Group Chance: 0.16556% | Unique Routes: 1 | Tr...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>#2</td>\n",
" <td>0.0016556291390728477</td>\n",
" <td>0.180434</td>\n",
" <td>553</td>\n",
" <td>0.0016556291390728477</td>\n",
" <td>553</td>\n",
" <td>Group Chance: 0.16556% | Unique Routes: 1 | Tr...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>#3</td>\n",
" <td>0.002207505518763797</td>\n",
" <td>0.245714</td>\n",
" <td>415</td>\n",
" <td>0.002207505518763797</td>\n",
" <td>415</td>\n",
" <td>Group Chance: 0.22075% | Unique Routes: 1 | Tr...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Route Chance Cost per 1 (DIV) Tries needed for 60 % \\\n",
"0 #1 0.0016556291390728477 0.180434 553 \n",
"1 #2 0.0016556291390728477 0.180434 553 \n",
"2 #3 0.002207505518763797 0.245714 415 \n",
"\n",
" Group Chance Group Tries Needed \\\n",
"0 0.0016556291390728477 553 \n",
"1 0.0016556291390728477 553 \n",
"2 0.002207505518763797 415 \n",
"\n",
" Pretty Print \n",
"0 Group Chance: 0.16556% | Unique Routes: 1 | Tr... \n",
"1 Group Chance: 0.16556% | Unique Routes: 1 | Tr... \n",
"2 Group Chance: 0.22075% | Unique Routes: 1 | Tr... "
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_efficiency.head(3)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "ca8b9066",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- Route 1: #1 ---\n",
"Group Chance: 0.16556% | Unique Routes: 1 | Tries needed for 60%: 553 | Cost per Craft: 399 EX | Cost for 60%: 220,614 EX\n",
"1. Greater Essence of Haste (4 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"2. Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX) [ROUGH (!) avg. chance: 25.00000%]\n",
"3. Greater Exalted Orb (22 EX) + Omen of Sinistral Exaltation (62 EX) [ROUGH (!) avg. chance: 2.64901%]\n",
"4. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"5. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"6. Vaal Orb (2 EX) [ROUGH (!) avg. chance: 25.00000%]\n",
"\n",
"Base Group: Two-Handed Weapons (#7), Max Rarity: Rare, Max Affixes: 6 (3 per side), Max. Sockets: 2 (3 corrupt)\n",
"BaseId: #20, Rarity: Magic, ItemLevel: 100, Sockets: 0\n",
"Exact Chance: 0.16556% | Tries needed for 60%: 553 | Cost per Craft: 399 EX | Cost for 60%: 220,614 EX\n",
"0. Starting with ...\n",
"0.\t[Tier 2+, ilvl 76, Prefix] '+# to Accuracy Rating'\n",
"1. Apply Greater Essence of Haste (4 EX)\n",
"1.\t+ [1 (~100.000%), Tier 1=, ilvl 60, Suffix, Ess.] '#% increased Attack Speed'\n",
"1. \t! Rarity Magic -> Rare\n",
"2. Apply Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX)\n",
"2.\t+ [1/4 (~25.000%), Tier 1+, ilvl 65, Prefix, Des.] 'Attacks with this Weapon Penetrate #% Lightning Resistance'\n",
"3. Apply Greater Exalted Orb (22 EX) + Omen of Sinistral Exaltation (62 EX)\n",
"3.\t+ [4/151 (~2.649%), Tier 2+, ilvl 75, Prefix] 'Adds # to # Lightning Damage'\n",
"4. Apply Artificer's Orb (3 EX)\n",
"4.\t+ [1 (~100.000%)] Socket (1/2)\n",
"5. Apply Artificer's Orb (3 EX)\n",
"5.\t+ [1 (~100.000%)] Socket (2/2)\n",
"6. Apply Vaal Orb (2 EX)\n",
"6.\t+ [1/4 (~25.000%)] Socket (3/2)\n",
"6. \t! Corrupted - ensure maximum quality and wanted affixes prior to applying a Vaal Orb, since corrupted items CAN NOT be modified further.\n",
"\n",
"--- Route 2: #2 ---\n",
"Group Chance: 0.16556% | Unique Routes: 1 | Tries needed for 60%: 553 | Cost per Craft: 399 EX | Cost for 60%: 220,614 EX\n",
"1. Greater Essence of Haste (4 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"2. Greater Exalted Orb (22 EX) + Omen of Sinistral Exaltation (62 EX) [ROUGH (!) avg. chance: 2.64901%]\n",
"3. Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX) [ROUGH (!) avg. chance: 25.00000%]\n",
"4. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"5. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"6. Vaal Orb (2 EX) [ROUGH (!) avg. chance: 25.00000%]\n",
"\n",
"Base Group: Two-Handed Weapons (#7), Max Rarity: Rare, Max Affixes: 6 (3 per side), Max. Sockets: 2 (3 corrupt)\n",
"BaseId: #20, Rarity: Magic, ItemLevel: 100, Sockets: 0\n",
"Exact Chance: 0.16556% | Tries needed for 60%: 553 | Cost per Craft: 399 EX | Cost for 60%: 220,614 EX\n",
"0. Starting with ...\n",
"0.\t[Tier 2+, ilvl 76, Prefix] '+# to Accuracy Rating'\n",
"1. Apply Greater Essence of Haste (4 EX)\n",
"1.\t+ [1 (~100.000%), Tier 1=, ilvl 60, Suffix, Ess.] '#% increased Attack Speed'\n",
"1. \t! Rarity Magic -> Rare\n",
"2. Apply Greater Exalted Orb (22 EX) + Omen of Sinistral Exaltation (62 EX)\n",
"2.\t+ [4/151 (~2.649%), Tier 2+, ilvl 75, Prefix] 'Adds # to # Lightning Damage'\n",
"3. Apply Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX)\n",
"3.\t+ [1/4 (~25.000%), Tier 1+, ilvl 65, Prefix, Des.] 'Attacks with this Weapon Penetrate #% Lightning Resistance'\n",
"4. Apply Artificer's Orb (3 EX)\n",
"4.\t+ [1 (~100.000%)] Socket (1/2)\n",
"5. Apply Artificer's Orb (3 EX)\n",
"5.\t+ [1 (~100.000%)] Socket (2/2)\n",
"6. Apply Vaal Orb (2 EX)\n",
"6.\t+ [1/4 (~25.000%)] Socket (3/2)\n",
"6. \t! Corrupted - ensure maximum quality and wanted affixes prior to applying a Vaal Orb, since corrupted items CAN NOT be modified further.\n",
"\n",
"--- Route 3: #3 ---\n",
"Group Chance: 0.22075% | Unique Routes: 1 | Tries needed for 60%: 415 | Cost per Craft: 544 EX | Cost for 60%: 225,459 EX\n",
"1. Greater Essence of Haste (4 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"2. Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX) [ROUGH (!) avg. chance: 25.00000%]\n",
"3. Greater Exalted Orb (22 EX) + Omen of Sinistral Exaltation (62 EX) [ROUGH (!) avg. chance: 2.64901%]\n",
"4. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"5. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"6. Omen of Corruption (145 EX) + Vaal Orb (2 EX) [ROUGH (!) avg. chance: 33.33333%]\n",
"\n",
"Base Group: Two-Handed Weapons (#7), Max Rarity: Rare, Max Affixes: 6 (3 per side), Max. Sockets: 2 (3 corrupt)\n",
"BaseId: #20, Rarity: Magic, ItemLevel: 100, Sockets: 0\n",
"Exact Chance: 0.22075% | Tries needed for 60%: 415 | Cost per Craft: 544 EX | Cost for 60%: 225,459 EX\n",
"0. Starting with ...\n",
"0.\t[Tier 2+, ilvl 76, Prefix] '+# to Accuracy Rating'\n",
"1. Apply Greater Essence of Haste (4 EX)\n",
"1.\t+ [1 (~100.000%), Tier 1=, ilvl 60, Suffix, Ess.] '#% increased Attack Speed'\n",
"1. \t! Rarity Magic -> Rare\n",
"2. Apply Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX)\n",
"2.\t+ [1/4 (~25.000%), Tier 1+, ilvl 65, Prefix, Des.] 'Attacks with this Weapon Penetrate #% Lightning Resistance'\n",
"3. Apply Greater Exalted Orb (22 EX) + Omen of Sinistral Exaltation (62 EX)\n",
"3.\t+ [4/151 (~2.649%), Tier 2+, ilvl 75, Prefix] 'Adds # to # Lightning Damage'\n",
"4. Apply Artificer's Orb (3 EX)\n",
"4.\t+ [1 (~100.000%)] Socket (1/2)\n",
"5. Apply Artificer's Orb (3 EX)\n",
"5.\t+ [1 (~100.000%)] Socket (2/2)\n",
"6. Apply Omen of Corruption (145 EX) + Vaal Orb (2 EX)\n",
"6.\t+ [1/3 (~33.333%)] Socket (3/2)\n",
"6. \t! Corrupted - ensure maximum quality and wanted affixes prior to applying a Vaal Orb, since corrupted items CAN NOT be modified further.\n",
"\n"
]
}
],
"source": [
"for i, (_, row) in enumerate(df_efficiency.head(3).iterrows(), start=1):\n",
" print(f\"--- Route {i}: {row['Route']} ---\")\n",
" print(row['Pretty Print'])"
]
},
{
"cell_type": "markdown",
"id": "2abcc748",
"metadata": {},
"source": [
"### 11. Console Display Top Routes by Cost"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "eb3f3117",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Route</th>\n",
" <th>Chance</th>\n",
" <th>Cost per 1 (DIV)</th>\n",
" <th>Tries needed for 60 %</th>\n",
" <th>Group Chance</th>\n",
" <th>Group Tries Needed</th>\n",
" <th>Pretty Print</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>#1</td>\n",
" <td>0.00029270740410347905</td>\n",
" <td>0.143432</td>\n",
" <td>3130</td>\n",
" <td>0.00029270740410347905</td>\n",
" <td>3130</td>\n",
" <td>Group Chance: 0.02927% | Unique Routes: 1 | Tr...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>#2</td>\n",
" <td>0.00029270740410347905</td>\n",
" <td>0.143432</td>\n",
" <td>3130</td>\n",
" <td>0.00029270740410347905</td>\n",
" <td>3130</td>\n",
" <td>Group Chance: 0.02927% | Unique Routes: 1 | Tr...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>#3</td>\n",
" <td>0.0006590509666080844</td>\n",
" <td>0.152654</td>\n",
" <td>1390</td>\n",
" <td>0.0006590509666080844</td>\n",
" <td>1390</td>\n",
" <td>Group Chance: 0.06591% | Unique Routes: 1 | Tr...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Route Chance Cost per 1 (DIV) Tries needed for 60 % \\\n",
"0 #1 0.00029270740410347905 0.143432 3130 \n",
"1 #2 0.00029270740410347905 0.143432 3130 \n",
"2 #3 0.0006590509666080844 0.152654 1390 \n",
"\n",
" Group Chance Group Tries Needed \\\n",
"0 0.00029270740410347905 3130 \n",
"1 0.00029270740410347905 3130 \n",
"2 0.0006590509666080844 1390 \n",
"\n",
" Pretty Print \n",
"0 Group Chance: 0.02927% | Unique Routes: 1 | Tr... \n",
"1 Group Chance: 0.02927% | Unique Routes: 1 | Tr... \n",
"2 Group Chance: 0.06591% | Unique Routes: 1 | Tr... "
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_cost.head(3)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "306fb257",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- Route 1: #1 ---\n",
"Group Chance: 0.02927% | Unique Routes: 1 | Tries needed for 60%: 3,130 | Cost per Craft: 318 EX | Cost for 60%: 992,608 EX\n",
"1. Greater Essence of Haste (4 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"2. Exalted Orb (2 EX) [ROUGH (!) avg. chance: 0.46833%]\n",
"3. Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX) [ROUGH (!) avg. chance: 25.00000%]\n",
"4. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"5. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"6. Vaal Orb (2 EX) [ROUGH (!) avg. chance: 25.00000%]\n",
"\n",
"Base Group: Two-Handed Weapons (#7), Max Rarity: Rare, Max Affixes: 6 (3 per side), Max. Sockets: 2 (3 corrupt)\n",
"BaseId: #20, Rarity: Magic, ItemLevel: 100, Sockets: 0\n",
"Exact Chance: 0.02927% | Tries needed for 60%: 3,130 | Cost per Craft: 318 EX | Cost for 60%: 992,608 EX\n",
"0. Starting with ...\n",
"0.\t[Tier 2+, ilvl 76, Prefix] '+# to Accuracy Rating'\n",
"1. Apply Greater Essence of Haste (4 EX)\n",
"1.\t+ [1 (~100.000%), Tier 1=, ilvl 60, Suffix, Ess.] '#% increased Attack Speed'\n",
"1. \t! Rarity Magic -> Rare\n",
"2. Apply Exalted Orb (2 EX)\n",
"2.\t+ [21/4484 (~0.468%), Tier 2+, ilvl 75, Prefix] 'Adds # to # Lightning Damage'\n",
"3. Apply Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX)\n",
"3.\t+ [1/4 (~25.000%), Tier 1+, ilvl 65, Prefix, Des.] 'Attacks with this Weapon Penetrate #% Lightning Resistance'\n",
"4. Apply Artificer's Orb (3 EX)\n",
"4.\t+ [1 (~100.000%)] Socket (1/2)\n",
"5. Apply Artificer's Orb (3 EX)\n",
"5.\t+ [1 (~100.000%)] Socket (2/2)\n",
"6. Apply Vaal Orb (2 EX)\n",
"6.\t+ [1/4 (~25.000%)] Socket (3/2)\n",
"6. \t! Corrupted - ensure maximum quality and wanted affixes prior to applying a Vaal Orb, since corrupted items CAN NOT be modified further.\n",
"\n",
"--- Route 2: #2 ---\n",
"Group Chance: 0.02927% | Unique Routes: 1 | Tries needed for 60%: 3,130 | Cost per Craft: 318 EX | Cost for 60%: 992,608 EX\n",
"1. Greater Essence of Haste (4 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"2. Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX) [ROUGH (!) avg. chance: 25.00000%]\n",
"3. Exalted Orb (2 EX) [ROUGH (!) avg. chance: 0.46833%]\n",
"4. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"5. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"6. Vaal Orb (2 EX) [ROUGH (!) avg. chance: 25.00000%]\n",
"\n",
"Base Group: Two-Handed Weapons (#7), Max Rarity: Rare, Max Affixes: 6 (3 per side), Max. Sockets: 2 (3 corrupt)\n",
"BaseId: #20, Rarity: Magic, ItemLevel: 100, Sockets: 0\n",
"Exact Chance: 0.02927% | Tries needed for 60%: 3,130 | Cost per Craft: 318 EX | Cost for 60%: 992,608 EX\n",
"0. Starting with ...\n",
"0.\t[Tier 2+, ilvl 76, Prefix] '+# to Accuracy Rating'\n",
"1. Apply Greater Essence of Haste (4 EX)\n",
"1.\t+ [1 (~100.000%), Tier 1=, ilvl 60, Suffix, Ess.] '#% increased Attack Speed'\n",
"1. \t! Rarity Magic -> Rare\n",
"2. Apply Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX)\n",
"2.\t+ [1/4 (~25.000%), Tier 1+, ilvl 65, Prefix, Des.] 'Attacks with this Weapon Penetrate #% Lightning Resistance'\n",
"3. Apply Exalted Orb (2 EX)\n",
"3.\t+ [21/4484 (~0.468%), Tier 2+, ilvl 75, Prefix] 'Adds # to # Lightning Damage'\n",
"4. Apply Artificer's Orb (3 EX)\n",
"4.\t+ [1 (~100.000%)] Socket (1/2)\n",
"5. Apply Artificer's Orb (3 EX)\n",
"5.\t+ [1 (~100.000%)] Socket (2/2)\n",
"6. Apply Vaal Orb (2 EX)\n",
"6.\t+ [1/4 (~25.000%)] Socket (3/2)\n",
"6. \t! Corrupted - ensure maximum quality and wanted affixes prior to applying a Vaal Orb, since corrupted items CAN NOT be modified further.\n",
"\n",
"--- Route 3: #3 ---\n",
"Group Chance: 0.06591% | Unique Routes: 1 | Tries needed for 60%: 1,390 | Cost per Craft: 338 EX | Cost for 60%: 469,151 EX\n",
"1. Greater Essence of Haste (4 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"2. Greater Exalted Orb (22 EX) [ROUGH (!) avg. chance: 1.05448%]\n",
"3. Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX) [ROUGH (!) avg. chance: 25.00000%]\n",
"4. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"5. Artificer's Orb (3 EX) [ROUGH (!) avg. chance: 100.00000%]\n",
"6. Vaal Orb (2 EX) [ROUGH (!) avg. chance: 25.00000%]\n",
"\n",
"Base Group: Two-Handed Weapons (#7), Max Rarity: Rare, Max Affixes: 6 (3 per side), Max. Sockets: 2 (3 corrupt)\n",
"BaseId: #20, Rarity: Magic, ItemLevel: 100, Sockets: 0\n",
"Exact Chance: 0.06591% | Tries needed for 60%: 1,390 | Cost per Craft: 338 EX | Cost for 60%: 469,151 EX\n",
"0. Starting with ...\n",
"0.\t[Tier 2+, ilvl 76, Prefix] '+# to Accuracy Rating'\n",
"1. Apply Greater Essence of Haste (4 EX)\n",
"1.\t+ [1 (~100.000%), Tier 1=, ilvl 60, Suffix, Ess.] '#% increased Attack Speed'\n",
"1. \t! Rarity Magic -> Rare\n",
"2. Apply Greater Exalted Orb (22 EX)\n",
"2.\t+ [6/569 (~1.054%), Tier 2+, ilvl 75, Prefix] 'Adds # to # Lightning Damage'\n",
"3. Apply Omen of the Sovereign (277 EX) + Preserved Jawbone (29 EX)\n",
"3.\t+ [1/4 (~25.000%), Tier 1+, ilvl 65, Prefix, Des.] 'Attacks with this Weapon Penetrate #% Lightning Resistance'\n",
"4. Apply Artificer's Orb (3 EX)\n",
"4.\t+ [1 (~100.000%)] Socket (1/2)\n",
"5. Apply Artificer's Orb (3 EX)\n",
"5.\t+ [1 (~100.000%)] Socket (2/2)\n",
"6. Apply Vaal Orb (2 EX)\n",
"6.\t+ [1/4 (~25.000%)] Socket (3/2)\n",
"6. \t! Corrupted - ensure maximum quality and wanted affixes prior to applying a Vaal Orb, since corrupted items CAN NOT be modified further.\n",
"\n"
]
}
],
"source": [
"for i, (_, row) in enumerate(df_cost.head(3).iterrows(), start=1):\n",
" print(f\"--- Route {i}: {row['Route']} ---\")\n",
" print(row['Pretty Print'])"
]
},
{
"cell_type": "markdown",
"id": "0904f8db",
"metadata": {},
"source": [
"## 12. Console Display Best Currency Groups"
]
},
{
"cell_type": "markdown",
"id": "1d868c3f",
"metadata": {},
"source": [
"Here are the best currency groups (which group unique paths based on the used currencies). The goal of this statistic is to provide a general overview, over how good the applied currencies are.\n",
"\n",
"F. e. multiple unique paths may lead to a desired item, but each of them does not have a 100 % chance.\n",
"BUT together they COULD have a 100 % chance. Or a higher one in general.\n",
"\n",
"The calculation is very memory expensive for deep routes, but if can be achieved, is worth it (IMO)."
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "7a7ff147",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Group Group Chance Group Tries Needed \\\n",
"0 Group 1 0.005915016900048285 155 \n",
"1 Group 2 0.005915016900048285 155 \n",
"2 Group 3 0.005915016900048285 155 \n",
"\n",
" Currencies \n",
"0 Greater Essence of Haste, Omen of Sinistral Ex... \n",
"1 Greater Essence of Haste, Preserved Jawbone + ... \n",
"2 Greater Essence of Haste, Preserved Jawbone + ... \n"
]
}
],
"source": [
"df_groups = pd.DataFrame([\n",
" {\n",
" 'Group': f'Group {i+1}',\n",
" 'Group Chance': g.chance,\n",
" 'Group Tries Needed': group_chance_instance.calculate_tries_needed_for_60_percent(g),\n",
" 'Currencies': ', '.join(\n",
" [' + '.join([c.get_item_name(item_info=coe_data) for c in currency_list.list])\n",
" for currency_list in g.group]\n",
" )\n",
" }\n",
" for i, g in enumerate(groups)\n",
"])\n",
"\n",
"print(df_groups.head(3))"
]
},
{
"cell_type": "markdown",
"id": "00959300",
"metadata": {},
"source": [
"## 13. Visualize Top Routes and Groups\n",
"Another example of how the results can be visualized. Same as with the pandas tables ... display the info you actually want.\n",
"Keep in mind, the naming of routes is handled by their respective position in the sorted lists. Change to your needs."
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "dd7fe050",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAjatJREFUeJzs3Wd4FdX+9vF7J5AKCaGlQKjSe5HQlCqhCAQFkSNVBBsKBFA6CijIEQRsyPGA5YgUCzYOioB/C0gv0qQKCCY0aQESSH7PC57MYZsEERgj8v1c176UWWtm1qysZPa9Z/Ysj5mZAAAAAADAdeeT3Q0AAAAAAODvitANAAAAAIBLCN0AAAAAALiE0A0AAAAAgEsI3QAAAAAAuITQDQAAAACASwjdAAAAAAC4hNANAAAAAIBLCN0AAAAAALiE0A0AAK4rj8ejPn36ZHczvBQrVkx33nlndjcDAHATInQDAP5WPB7PFb2++uorV9vx008/ee3Px8dHefPmVYsWLbR8+XJX9y1Js2bN0uTJk13fT3ZLTEzUwIEDVbZsWQUFBSk4OFg1atTQ2LFjdfz48exuHgAAypHdDQAA4Hp6++23vf791ltvadGiRRmWlytX7k9pT6dOndSyZUulpqZq+/bteuWVV9SoUSOtWrVKlSpVcm2/s2bN0qZNm9SvXz/X9pHdVq1apZYtW+r06dPq3LmzatSoIUlavXq1xo8fr6+//lpffPFFNrcSAHCzI3QDAP5WOnfu7PXv77//XosWLcqw/M9SvXp1r33fdtttatGihV599VW98sor2dKmv4Pjx4+rXbt28vX11bp161S2bFmv8meeeUb/+te/sql1AAD8D7eXAwBuOklJSRowYICio6Pl7++vMmXK6Pnnn5eZedVL/27yO++8ozJlyiggIEA1atTQ119/fdX7vu222yRJu3bt8lq+e/dudejQQXnz5lVQUJBq166tzz77zKvOG2+8IY/Ho59++slr+VdffeV1y3zDhg312Wefae/evc7t7cWKFXPqJycna9SoUbrlllvk7++v6OhoPfHEE0pOTvba7qJFi1S/fn3lyZNHuXLlUpkyZTR06NArPtbL9dvSpUvl8Xj04YcfZlhv1qxZ8ng8l70N/7XXXtOBAwc0adKkDIFbksLDwzV8+PAMy7/99lvVqlVLAQEBKlGihN566y2v8mPHjmngwIGqVKmScuXKpZCQELVo0UIbNmzwqpfe53PnztUzzzyjwoULKyAgQE2aNNHOnTsz7HfFihVq2bKlwsLCFBwcrMqVK2vKlCledbZt26b27dsrb968CggIUM2aNfXxxx9n2QcAgBsDV7oBADcVM1ObNm20dOlS9ezZU1WrVtXnn3+uQYMG6cCBA3rhhRe86v/f//2f5syZo8cff1z+/v565ZVX1Lx5c61cuVIVK1b8w/tPD8xhYWHOssTERNWtW1dnzpzR448/rnz58unNN99UmzZt9N5776ldu3Z/aB/Dhg3TiRMn9PPPPzvHkytXLklSWlqa2rRpo2+//Va9e/dWuXLl9MMPP+iFF17Q9u3bNX/+fEnS5s2bdeedd6py5coaPXq0/P39tXPnTn333XdX1Ibf67eGDRsqOjpa77zzTobje+edd1SyZEnVqVMny+1//PHHCgwMVPv27a+4X3bu3Kn27durZ8+e6tatm2bMmKHu3burRo0aqlChgqSLH37Mnz9fHTp0UPHixZWYmKjXXntNDRo00JYtWxQVFeW1zfHjx8vHx0cDBw7UiRMnNGHCBN13331asWKFU2fRokW68847FRkZqb59+yoiIkJbt27Vp59+qr59+0q62N/16tVToUKFNHjwYAUHB2vu3LmKi4vT+++//4fHAADgL8QAAPgbe/TRR+3S0938+fNNko0dO9arXvv27c3j8djOnTudZZJMkq1evdpZtnfvXgsICLB27dpddr979uwxSfb000/b4cOHLSEhwb755hu79dZbTZLNmzfPqduvXz+TZN98842z7NSpU1a8eHErVqyYpaammpnZzJkzTZLt2bPHa19Lly41SbZ06VJnWatWraxo0aIZ2vX222+bj4+P177MzKZNm2aS7LvvvjMzsxdeeMEk2eHDhy97nJm50n4bMmSI+fv72/Hjx51lhw4dshw5ctioUaMuu4+wsDCrUqXKFbepaNGiJsm+/vprr335+/vbgAEDnGXnzp1z+jvdnj17zN/f30aPHu0sS+/zcuXKWXJysrN8ypQpJsl++OEHMzO7cOGCFS9e3IoWLWq//vqr13bT0tKc/2/SpIlVqlTJzp0751Vet25dK1Wq1BUfJwDgr4fbywEAN5UFCxbI19dXjz/+uNfyAQMGyMz03//+12t5nTp1nAd0SVKRIkXUtm1bff7550pNTf3d/Y0aNUoFChRQRESEbrvtNm3dulUTJ070ukK7YMEC1apVS/Xr13eW5cqVS71799ZPP/2kLVu2XO3hZjBv3jyVK1dOZcuW1ZEjR5xX48aNJV287VuS8uTJI0n66KOPlJaW9of3cyX91rVrVyUnJ+u9995z6s2ZM0cXLlz43e/gnzx5Urlz5/5DbSpfvrxze78kFShQQGXKlNHu3budZf7+/vLxufj2KDU1VUePHnVurV+7dm2Gbfbo0UN+fn7Ov9O3n77NdevWac+ePerXr5/Tp+k8Ho+ki7e0L1myRPfcc49OnTrl/EyOHj2q2NhY7dixQwcOHPhDxwoA+OsgdAMAbip79+5VVFRUhsCW/jTzvXv3ei0vVapUhm2ULl1aZ86c0eHDh393f71799aiRYv0ySefqH///jp79myGsL53716VKVMmw7pZtela7NixQ5s3b1aBAgW8XqVLl5YkHTp0SJLUsWNH1atXTw888IDCw8N17733au7cuVccwK+k38qWLatbb71V77zzjlPnnXfeUe3atXXLLbdcdvshISE6derUFbUlXZEiRTIsCwsL06+//ur8Oy0tTS+88IJKlSolf39/5c+fXwUKFNDGjRt14sSJ391m+tcG0reZ/t39y30VYefOnTIzjRgxIsPPZdSoUZL+93MBANx4+E43AAAuKlWqlJo2bSpJuvPOO+Xr66vBgwerUaNGqlmz5h/aVvqV0d+6kivu6dLS0lSpUiVNmjQp0/Lo6GhJUmBgoL7++mstXbpUn332mRYuXKg5c+aocePG+uKLL+Tr6/uH2p6Vrl27qm/fvvr555+VnJys77//Xi+99NLvrle2bFmtX79eKSkpXleaLyerNtslD9B79tlnNWLECN1///0aM2aM8ubNKx8fH/Xr1y/TDxyuZJu/J327AwcOVGxsbKZ1fu9DCADAXxehGwBwUylatKi+/PJLnTp1yutq97Zt25zyS+3YsSPDNrZv366goCAVKFDgD+9/2LBh+te//qXhw4dr4cKFzj5//PHHDHV/26b0q6jHjx/3qpfZlfCsAnrJkiW1YcMGNWnSJMs66Xx8fNSkSRM1adJEkyZN0rPPPqthw4Zp6dKlzgcJWbnSfrv33nsVHx+vd999V2fPnlXOnDnVsWPHy25bklq3bq3ly5fr/fffV6dOnX63/pV677331KhRI/373//2Wn78+HHlz5//D2+vZMmSkqRNmzZl2WclSpSQJOXMmfN3+xUAcOPh9nIAwE2lZcuWSk1NzXA19YUXXpDH41GLFi28li9fvtzru7z79+/XRx99pGbNml3V1d48efLowQcf1Oeff67169c7bVq5cqXXFFlJSUmaPn26ihUrpvLly0v6X4C7dOqt1NRUTZ8+PcN+goODM70d+p577tGBAwcyncP67NmzSkpKknTxe8a/VbVqVUnKMLVYZq603/Lnz68WLVroP//5j9555x01b978isLtQw89pMjISA0YMEDbt2/PUH7o0CGNHTv2d7fzW76+vhmuUs+bN++qv1NdvXp1FS9eXJMnT87wYUn6fgoWLKiGDRvqtdde0y+//JJhG1fyNQYAwF8XV7oBADeV1q1bq1GjRho2bJh++uknValSRV988YU++ugj9evXzwm26SpWrKjY2Fivqa8k6emnn77qNvTt21eTJ0/W+PHjNXv2bA0ePFjvvvuuWrRooccff1x58+bVm2++qT179uj99993HuxVoUIF1a5dW0OGDNGxY8eUN29ezZ49WxcuXMiwjxo1amjOnDmKj4/Xrbfeqly5cql169bq0qWL5s6dq4ceekhLly5VvXr1lJqaqm3btmnu3Ln6/PPPVbNmTY0ePVpff/21WrVqpaJFi+rQoUN65ZVXVLhwYa8HvmXlj/Rb165dnQfLjRkz5or6MCwsTB9++KFatmypqlWrqnPnzs6D29auXat33333slOOZeXOO+/U6NGj1aNHD9WtW1c//PCD3nnnHedq9B/l4+OjV199Va1bt1bVqlXVo0cPRUZGatu2bdq8ebM+//xzSdLLL7+s+vXrq1KlSurVq5dKlCihxMRELV++XD///HOGecIBADeQ7Hx0OgAAbvvtlGFmF6fj6t+/v0VFRVnOnDmtVKlS9s9//tNrCiezi1NfPfroo/af//zHSpUqZf7+/latWjWvqbmykj5l2D//+c9My7t3726+vr7OFGW7du2y9u3bW548eSwgIMBq1apln376aYb1du3aZU2bNjV/f38LDw+3oUOH2qJFizJMGXb69Gn7xz/+YXny5DFJXtOHpaSk2HPPPWcVKlQwf39/CwsLsxo1atjTTz9tJ06cMDOzxYsXW9u2bS0qKsr8/PwsKirKOnXqZNu3b//dY/+j/ZacnGxhYWEWGhpqZ8+e/d3tX+rgwYPWv39/K126tAUEBFhQUJDVqFHDnnnmGedYzC5OGdaqVasM6zdo0MAaNGjg/PvcuXM2YMAAi4yMtMDAQKtXr54tX748Q730KcMunfrN7H8/95kzZ3ot//bbb+2OO+6w3LlzW3BwsFWuXNlefPFFrzq7du2yrl27WkREhOXMmdMKFSpkd955p7333nt/qE8AAH8tHrM/8KQPAABuIh6PR48++ugVPdgLV+/ChQuKiopS69atM3yXGgCAGx3f6QYAANlq/vz5Onz4sLp27ZrdTQEA4LrjO90AACBbrFixQhs3btSYMWNUrVo1NWjQILubBADAdceVbgAAkC1effVVPfzwwypYsKDeeuut7G4OAACu4DvdAAAAAAC4hCvdAAAAAAC4hNANAAAAAIBLeJDaVUpLS9PBgweVO3dueTye7G4OAAAAAOBPZGY6deqUoqKi5OOT9fVsQvdVOnjwoKKjo7O7GQAAAACAbLR//34VLlw4y3JC91XKnTu3pIsdHBISks2tAQAAAAD8mU6ePKno6GgnG2aF0H2V0m8pDwkJIXQDAAAAwE3q975uzIPUAAAAAABwCaEbAAAAAACXELoBAAAAAHAJoRsAAAAAAJcQugEAAAAAcAmhGwAAAAAAlxC6AQAAAABwCaEbAAAAAACXELoBAAAAAHAJoRsAAAAAAJdke+h++eWXVaxYMQUEBCgmJkYrV668bP158+apbNmyCggIUKVKlbRgwQKvcjPTyJEjFRkZqcDAQDVt2lQ7duzIsJ3PPvtMMTExCgwMVFhYmOLi4q7nYQEAAAAAkL2he86cOYqPj9eoUaO0du1aValSRbGxsTp06FCm9ZctW6ZOnTqpZ8+eWrduneLi4hQXF6dNmzY5dSZMmKCpU6dq2rRpWrFihYKDgxUbG6tz5845dd5//3116dJFPXr00IYNG/Tdd9/pH//4h+vHCwAAAAC4uXjMzLJr5zExMbr11lv10ksvSZLS0tIUHR2txx57TIMHD85Qv2PHjkpKStKnn37qLKtdu7aqVq2qadOmycwUFRWlAQMGaODAgZKkEydOKDw8XG+88YbuvfdeXbhwQcWKFdPTTz+tnj17XnXbT548qdDQUJ04cUIhISFXvR0AAAAAwI3nSjNhtl3pTklJ0Zo1a9S0adP/NcbHR02bNtXy5cszXWf58uVe9SUpNjbWqb9nzx4lJCR41QkNDVVMTIxTZ+3atTpw4IB8fHxUrVo1RUZGqkWLFl5XyzOTnJyskydPer0AAAAAALicbAvdR44cUWpqqsLDw72Wh4eHKyEhIdN1EhISLls//b+Xq7N7925J0lNPPaXhw4fr008/VVhYmBo2bKhjx45l2d5x48YpNDTUeUVHR/+BowUAAAAA3Iyy/UFqf7a0tDRJ0rBhw3T33XerRo0amjlzpjwej+bNm5flekOGDNGJEyec1/79+/+sJgMAAAAAblDZFrrz588vX19fJSYmei1PTExUREREputERERctn76fy9XJzIyUpJUvnx5p9zf318lSpTQvn37smyvv7+/QkJCvF4AAAAAAFxOtoVuPz8/1ahRQ4sXL3aWpaWlafHixapTp06m69SpU8erviQtWrTIqV+8eHFFRER41Tl58qRWrFjh1KlRo4b8/f31448/OnXOnz+vn376SUWLFr1uxwcAAAAAQI7s3Hl8fLy6deummjVrqlatWpo8ebKSkpLUo0cPSVLXrl1VqFAhjRs3TpLUt29fNWjQQBMnTlSrVq00e/ZsrV69WtOnT5ckeTwe9evXT2PHjlWpUqVUvHhxjRgxQlFRUc483CEhIXrooYc0atQoRUdHq2jRovrnP/8pSerQocOf3wkAAAAAgL+tbA3dHTt21OHDhzVy5EglJCSoatWqWrhwofMgtH379snH538X4+vWratZs2Zp+PDhGjp0qEqVKqX58+erYsWKTp0nnnhCSUlJ6t27t44fP6769etr4cKFCggIcOr885//VI4cOdSlSxedPXtWMTExWrJkicLCwv68gwcAAAAA/O1l6zzdNzLm6QYAAACAm9eVZsJsvdIN941fdyTT5YOr5b9s+aV1AAAAAABX56abMgwAAAAAgD8LoRsAAAAAAJcQugEAAAAAcAmhGwAAAAAAlxC6AQAAAABwCaEbAAAAAACXELoBAAAAAHAJoRsAAAAAAJcQugEAAAAAcAmhGwAAAAAAlxC6AQAAAABwCaEbAAAAAACXELoBAAAAAHAJoRsAAAAAAJcQugEAAAAAcAmhGwAAAAAAlxC6AQAAAABwCaEbAAAAAACXELoBAAAAAHAJoRsAAAAAAJcQugEAAAAAcAmhGwAAAAAAlxC6AQAAAABwCaEbAAAAAACXELoBAAAAAHAJ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2tawYUNnG5s3b7awsDC79957beDAgVaiRAkrUqSITZ061c6cOWO7d++2vHnzWv/+/e2ll16yp556yjwej3Xq1MnWrl1r27dvt7CwMPN4PDZx4kRnu5f2waZNmywsLMweffRRGzx4sHXr1s1KlCjhnEg3bdpkefLksQEDBticOXPsySeftAIFCjgnajOzX3/91WJiYqxy5cpWoEAB+/77752yjRs3WlBQkNfPwsycn+vx48etVq1a9thjjzllp06dst27d3v9nAIDA23EiBG2YMECCwsLc/aRmppqO3futMjISBsxYoTt3r3bPv30U/N4PLZt2zYzM9u+fbsVKFDABg0aZHPmzLFp06aZj4+PxcXF2f/93//Zjh07LE+ePPboo4/a0KFDrXfv3ubxeKxfv36WmJhoP/74o+XLl89CQkLszTffdNr12z/6efPmtQceeMC6detmrVq1soYNG9revXud8tDQUOvbt69NnjzZ7r//fqtZs6YdP37c2c7PP/9sFStWtHLlylnx4sUtISHB2f6GDRssMDDQGfO/deTIEatcubL169fP6+d86c8pvR+feuope/311y0kJMT5sCgtLc22b99uBQsWtGHDhtn3339vr7zyigUGBjonlq1bt1q+fPksPj7eJk+ebMOHDzePx2OPPfaY/fjjj7/bj2b2u32Z3f14JX3pdj+a2TWPSbf78dK+/O3vNv349+vHaz3XuH2eMfvfuWbw4MFey6/0XJPej8OHD3flPGP21xiPZu6ea651PJr9/pj8K4xHM3ff+1zreDT735h84oknMh2Tbvfjlfbljd6PBw4csEKFCtkTTzxh69ats1mzZlnLli0tV65ctmDBArvZELpvIAkJCdagQQNr1qyZ3XLLLVa/fn2v4J2WlmZTp061Jk2aeF2Z/vHHH51f1ueff966d+9uJ06ccMofeughq1ixosXExFi7du3s888/t+3bt1uhQoW8rnqPGTPGypYta/7+/jZ79mw7e/asNW/e3GrWrGklSpSwkJAQu+222+zf//63tWzZ0tLS0iwlJcXi4+OtXbt2FhcXZzNmzLDSpUtb3759vU50nTp1sttvv92OHTtmZ8+etbvvvtseeeQRp/z777+3du3a2S+//GJHjhyx2NhY69evn9c2oqKirGjRojZmzBibOnWqxcTEeJUvW7bMChcubG3atLEWLVpYXFycDR061EJCQmzChAlOvfSTZJ06dWzgwIHO8i1btliVKlVs1qxZtn//fqtYsaINGTLEq42tWrWyn3/+2bZv324XLlywo0ePWqNGjWzDhg3WsWNHCw8Pt3Xr1tmuXbssMDDQOnfu7Kw/btw469y5s3Xs2NHef/9927t3r9WoUcP55LFdu3YWExNjOXLksG7dutmrr75qHo/Hhg0b5mzjtttusyZNmjh/+J955hmLjY11ylNSUqx58+b29ddf24IFC+zRRx+1Dh06eI2zPn36mK+vr911113Wp08fa9CggVf5Bx98YDly5LCuXbtabGystWjRwnr16mVlypSxmTNnOvXS0tLs4MGDVqNGDa83KUuWLLESJUrY//3f/9nevXutbNmyXv34/vvvW7t27ezEiRN24MABu3Dhgu3du9eqVatmX331lTVo0MBuueUWO378uG3bts08Ho/16dPHWf/ll192TnSLFy+2DRs2WI0aNezEiROWlpbmfPKcL18+GzBggH3wwQfm8XicD4HMzCpXrmxdu3Z1+vHJJ5+0uLg4p3zv3r3WvHlz27x5sy1fvtwefPBB69Gjh1c/tW3b1jwej91///02dOjQLPuxd+/etnv3bmvVqlWWfXngwIFs70czu2xfdunSxfV+TExMtGefffaqx6Tb/Whm9tFHH13TmKQfb6x+fPXVV6/6XPPLL7+4ep4xM5szZ44FBwdf9bmmdevWrp9n1q5dm+3j0cxcPddc63hcsWKFJSUl2SOPPHLZMTlhwoRsHY/p/ejWe5/rMR737dtnQ4YMueyYHDp0qGv9aHbxjorsfA/5Z/XjG2+8YZUqVfL64OjEiRP2wAMPWK5cueybb75xxszNIEd2396OK7d+/XoVLlxYvXr1Uq5cudSxY0c1btxYS5YsUc6cOZWWlqaYmBidO3dOefPmlSSlpqaqVKlSypMnj06ePKmHH35YGzZsUEhIiCRpwoQJeu211zRixAiVLVtWkydP1sCBA7V48WKVKFFCW7Zs0f333688efKoffv2CgwMVKNGjTR58mQNHTpUpUuX1rvvvqu8efPqzJkzatCggSZOnChfX1+lpqaqRYsWunDhgm677TYtX75cr776qu644w6NHz/e6/vbjRs31siRI3XgwAFVqFBBJ06cUMWKFZ3y999/X99++61q166tggUL6sCBA+rUqZM8Ho9OnDih0NBQ1atXT3v37tWHH36oW2+9VefOnVNqaqp8fX114cIF1alTR/PmzVOLFi1UuHBhjRs3TrVr11auXLk0duxYSdKgQYPk4+OjnTt3Kjg4WO3bt5eZyePxqFy5cipcuLA2bNigqlWrqnLlyurevbvTxgULFuibb75RbGysfv75Z91333165plnVKxYMf3888968803dc8996hVq1YqWrSoUlJSFBAQoDVr1qhfv37KkSOHwsLC5Ovrq/bt26t///46deqUTp8+rbvvvlvJyckaNmyYLly4oGeeeUYrVqxQjx49NHbsWKWlpcnHx0fdu3fX888/r5UrV6p27dr6+eeflZKSorNnzyowMFCTJk3SF198oVOnTumHH35QQECAqlatKunid+kCAgJUrFgx3XXXXVq6dKkKFy6ssLAwSRe/m5OWlqZ27drp008/VatWrVS2bFlNmjRJRYoUkZ+fn8aPHy9J6t69uzwejzZu3Kjw8HB17tzZ6cdGjRqpYMGC+uGHH5QjRw7FxMSod+/eTj+uWbNG33//verWratTp07pkUce0ZNPPqmyZcsqd+7cev3119W1a1fFxMQoIiJCZqZcuXLpl19+0T333CMzk4+Pj3LkyKHnn39eQ4YMUUpKijwej1q2bOn0U2pqqoYNG6ZPPvlEjz/+uJ555hmZmVJTU3XnnXdqwYIFSkhIUGRkpHbv3i0/Pz+nje+8846WLFmi++67T5s3b1aePHnUpk0bSVJKSor8/PxUpUoVhYSE6M0331SdOnWUM2fOTPvxzjvvVGhoqPz9/fXggw9m2pebNm3K9n6cMWOGbrnllkz78ty5cxo0aJDKlSunfv36udaPt9xyi/Ndy6sZk273Y6VKlXTy5ElJUv78+f/wmKQfb7x+9PPz07lz55y/wX/kXPPTTz8pKCgoy/NMlSpVruk8U6VKFR05ckQej0ehoaF/+FyTnJysfv36qUSJEmrfvr1r55l///vfCggIuOrx+HvnGV9f3ysej0WKFMl0TIaHh1/1uSY5OVkDBw687HgMDw+/7HjcsmWL7rzzTh04cED169fPckw2a9bMtfH4R9735M2b97q/90lJSVHfvn2veTzWrl1b586dU7FixbIckwkJCa71Y6dOnXTy5ElVqVIlW95D/pn9mJycrM2bN8vf31/Sxe++h4SE6JVXXtHZs2d19913a8OGDYqIiNBN4U8K97gOzp49a19++aXz75UrV1rJkiWtZs2atmPHDjO7+GlRWlqapaWlOZ8c7d6922655Rb78MMPnXU//vhj27Nnjz3xxBP25ptvOrdgnTx50jwej82ZM8fi4uLsrbfest27d9s//vEP51aawYMH2z333GONGzf2us3E7OKny35+flatWjX78MMPLTY21n755RfbvXu37d2714YPH27Vq1f3am+6ihUr2t13323JycnWpEkTq1evnk2dOtUGDhxogYGBNmPGDFu5cqU9+eST5ufnZ+3atXPW/eWXX6xs2bL2xRdfWPXq1a1u3brm8Xhs4cKFZnbx6nX6vj777DOTZEuWLDGzi3cQPPPMM16fVh44cMDee+89O336tJmZ832pdu3aOd9lv/Q76DNmzLCgoCB755137IcffrBFixaZr6+vvf7669atWzev282io6OdfixatKjly5fP4uLi7JdffnHqTJs2zSRZ/vz57dlnn7Xu3bvbhg0bnPItW7ZYoUKFnO+VpX8ae+TIEStcuLDzvZuPP/7YPB6PtW7d2u655x7z8/OzTz/91JKSkmzv3r0WERFhwcHBtmnTJjO7+Ml6rly5bNGiRfbJJ59Yjhw5LEeOHF63HKX346uvvmpBQUHOFZXNmzfbo48+amXKlLEZM2aY2cXbly79zlP6+KxTp47zXbX9+/c75S+//LIFBQXZjBkz7Msvv7Tp06ebx+Oxjz76yFq0aOEc7+HDh61gwYLm8Xjs6aefNo/HY2FhYda+fXvbt2+fmZkdPXrUhgwZYsHBwRYQEGAvvviidevWzXbu3Onsb+XKlZYzZ06nvZfe9hoSEmJjxowxM7N//etf5uPjY7169bKuXbtaQECAzZ8/3xITE23Tpk3m7+9v0dHRzm1b6f24ePFimzJlioWGhl62H397q9Vv+3LdunX29ttvO+Mws35MP+7M+vG111675n4MCQmxjz76yAIDAzPtywULFpifn5/NmDHDtX6MiIiwV1555arH5Pr163+3H692PIaHh5vH47FFixY5V2mvZkwuXLiQfryB+nH27NlXfa7Zv3+/zZ8/31JSUuz06dNXdZ7x8fHJ9DxTpEgR83g89uabb9qSJUuu+lyzZs0ai46Otueee+66n2c++eQT++ijj8zf398mTpyYYTyeOHHCLly4kOV4LFWqlP373/+2jRs3Zjoea9WqZc8+++xlx+Onn35q06ZNc8ajmXmNyZ9++umyfyOTkpLs8OHDWY7HpKQkMzP7/PPPMx2PuXPntqeffvqy43H37t22YcMGCwsLs3r16lnt2rWzHJPp79OuZjz+/PPP9sEHH1x2PF5663NW73umT59uZpblmHzyySddHY/z58+/7HisVKmS1a1b1yIjI7N875MzZ86r7sd9+/bZhx9+mGU/prc7/Xc7LS3NZs6c6dWXX3zxRZa/21fyHvLVV1+9bD+uXr36d/sx/e/v1fTj559/bp988on5+flZhQoV7P7773feT6dfSd+1a5fVqlXL/vnPfzr98HdH6P6LSw+rv5U+ONO/H+3v7+/cav7www87t4NeuHDBevToYTly5HAe4vCPf/zDPB6P7d27106fPm09e/a0YsWK2YULF2zTpk1WsmRJW7NmjfXr188mTJhg5cuXN19fX/vll19s1qxZJslGjhxpn376qSUnJ3u18cMPP7RbbrnFoqOjLTw83GrVquW1j5SUFAsJCfH6jsmFCxds9+7dNnr0aKtYsaKtXbvWDh06ZM2aNbOuXbta6dKl7amnnnL2cf78ecubN6/lzJnTWrVq5QSC9Fuu/vvf/1rZsmWta9euVqRIEedhKikpKZaammqnT5+2ChUq2EsvveT1x+/ZZ5+13LlzOyfbRx55xMaMGeP0q9nFk8ilbR86dKh9/PHH9u6779r333/v9Ufjtttus969e9tbb73l3GZ03333WUREhDVo0MAKFy5sL774ojVt2tSWLl3q9XP95ZdfrFChQtahQwfzeDzm4+PjdRxmZvfff7+1b9/e2V/6H7Jp06ZZdHS089CNjz/+2MaPH2/du3e3Hj16WFpamnMS6NKli+XNm9f8/f2tcePGFhgYaA8//LCZXXxDUKBAAWvYsKE1bNjQ+S7SpR/mREdH2wcffOC0e+vWrRmC90MPPWT/+te/vL4vf+edd9q4ceOcdk+YMMGWLFlikyZNsq+//tqpl5KSYhUqVLARI0bYM88847yh79y5sxUsWNCqVKli5cqVs7ffftsqVqzofD8w3YYNGyxv3rx21113WXBwsIWGhjq3wKX3QZs2bZxjvvT4hg4dajVr1rQ9e/bY2bNnbfr06TZw4EBr06aN1zMNzMwaN25s+fPnt0KFClnHjh0tICDAeTjhmjVrLF++fBYbG+vVjykpKZaWlma7d++2IkWK2AcffOA1BjZv3myPPPKIV18+/PDD9tprrzn91qpVK6cfzcyrH7/66itnW5n1Y2pqqt13332X7cf0r62k9+PHH39sTzzxhNOX27ZtswsXLnj1ZfrXQi5cuGCpqak2ZMgQpx9TUlK8+jH9DUj6+k2aNPHqx8DAQOvWrZsdPnzY1qxZYwUKFLBvv/3W2rdv7/Tl0aNHne9dXtqX6ce+fPlyu//++7Psx6NHj1qzZs2y7MdPP/3UDh8+fNnx2KFDB8ufP7/TjwcPHrTPPvvM6cujR48628hsTK5cudISExOz7MejR49av379suzHhx9+2A4fPnzZfuzUqZN9+eWXTj8uW7bMqx937dpln3/+eZb9+MUXX1ibNm2y7Mddu3ZZ7dq1s+zH2bNnOx8aZ9WPbdu2tTx58liVKlWsbNmyGfpx165dzjYy68cvv/zSvvjiiyz7cdeuXdapUyenH8+fP+/Vj/fff799+eWXl+3Hjh072syZM51+3Lp1qz300EPOuebHH3+0119/PctzzfLly+3uu++2kJAQr3PN008/bRcuXLAff/zR6tWrl+V5Zu7cuV63Vmd2nmnTpo2FhoZaw4YNrXDhwvbNN9/Y//3f/znnmh9//NHZRmbnmnfffddmzJjh/M2+9FyTmppqP/74o3Xr1s2io6Nt1apVZuZ9nrnrrru8Hu6V2Xnm3nvvtQ4dOtiGDRssIiLC5s+f7zUet2zZYu3bt7dDhw5leq759NNPrWTJknbLLbdkOh63bNlikZGRNnz4cDO7+Hf1t+eZLVu2WIcOHezgwYNWsWJF51bb9DG5ZcsWK1KkiNfv9qV/I9PXP3z4cKbjccGCBda+fXvn71Pr1q29xuOWLVusbNmyVqVKFduzZ4+dO3cuw3nm0n106dLFbr31Vrvjjju8zjVdu3a15ORkW7VqlRUoUMA6duzojMekpCQ7ePCgnT171k6dOpVhPP700082dOjQDO990sdjUlKS3XvvvV5f9/vt+56kpCQ7dOiQpaSkOOPRzJwxmZSUZO3bt/d67zN16lRnPF66/sGDBzOMx8WLF1tCQoIlJydnOh6TkpLs+eeft8KFC9uKFSvM7GJgvPR9T3o/JCcnW//+/a1q1arWrl27LN/7REREWOvWrb3eQ54/f/5330Nm9XttZta9e/cMv9effPKJpaWlOX15qcx+tzt37myRkZHO7/al/Xip9N/r9u3bZ3gPeenv9d133+217LXXXvP6vf7www+9+jG9H8zM6ce4uDinH9Pf+xw9etR+/vlnCw8Pt0ceecRq1apl48ePt3Pnznm1s0GDBtazZ0+7WXB7+V/cM888o8WLF2vPnj2SpC+++ELNmjWTx+PRgQMHVL16dS1atEiNGzfWLbfcorNnz+rw4cN67LHHdODAARUsWFAvvfSS5s6dq7lz56pXr15KSEjQ8uXL5evrq8DAQE2bNk3t27fX6NGj9frrr+vChQsqVKiQKlasqF69eikqKkr169fXq6++qv/+97+KjY1Vx44dVb58+QxtXLZsmfLmzavx48erR48e2r17tzZu3Ojs46mnnpJ0cUqOCxcuKEeOHPL19dUzzzyjzz//XOfPn9dHH32ktm3b6vPPP5ckNW3aVN98843eeOMN7dy5U2amokWLqk6dOvrhhx+0bt06DR06VE8++aTS0tK0b98++fj46MEHH9Tp06fVvXt3TZ8+XQ0bNlRaWpqCg4MVHBwsX19f5xb38+fPO7f5PPfcc5o7d67Wrl2rVatWKWfOnDp48KAKFCignDlzOtOXDR8+XOPGjdPKlSsVFRWlAgUKONMgJCUlKTAwUNWqVVN0dLSmTZumVq1aac2aNVq4cKEqV66sxo0b68UXX9SCBQucNuTIkUNpaWlKTU1VRESE2rVrp8KFC2vKlCn64IMPVKlSJeXOndvZR/HixZ2xkpCQoAIFCujWW29Vamqq1q1bp5o1a6pVq1Zq3bq1evTooeDgYHk8Hq8pWu644w41a9ZMO3fuVHh4uIKDgzV16lQ1a9ZM4eHhat26tT777DM9/vjjqlixogICAhQdHa0HH3xQefPm1blz55x+9Pf3l5+fnwIDAzVkyBDNnDlT3377rb7//nv5+Phoz549mj17tn788Udn/yNGjNC4ceO0fv16xcXFafbs2froo49UpEgRde7cWfnz51f58uUVEBCgGTNmqGLFitqzZ48effRRPfroo2rRooVeeOEFffzxxzp37pzGjRuno0ePqkiRImrZsqUKFy6sO++8Uzlz5tS8efP00Ucf6fz58zp27Jiio6OVlpamQoUKObdY7du3T7Nnz9b27du1ceNGbdmyRcWKFdMDDzwgj8ej2NhYbdiwQYMGDVJUVJT69++vPHnyqHHjxqpatap27NihmJgY7d+/Xw8//LA6d+6siIgI3XXXXZozZ44GDx6sXr16acGCBfr5559VuHBhhYaGOtPPeDwebd++XZMnT9a2bduUI0cOTZgwQTNnztQ333yj1atXa/v27Xr++ee1evVqHT58WP369dOYMWOcfmzVqpWef/55PffccypatKhGjBjh1Y+vv/66pk2bpoMHD6pNmzYaO3as2rVr5/RjRESEtm/frn/+8586cOCA8uTJo6ioKOXPn1/33nuv9u7dq7lz5+rBBx9UUFCQihYtqhdeeEFpaWmKjIyUdHHaweeff17r16/X+vXrtWHDBq9+vOOOO/T111+rVatWio6O1iuvvKLQ0FA1adJEVapU0dGjR/XUU09p8uTJeuGFF3T77berYMGCKlSokLp06aIpU6boscce0+bNm9W7d2/1799fUVFRCgsLc27x3LVrl+666y61adNGdevW1fPPP+/Vj7t27dJtt92mkJAQZ7qVYcOGOf3Ypk0b3Xbbberevbvi4+Pl4+Pj1Y9z585VbGysvvzyS3Xv3l19+vTRfffdp1atWmnVqlWqWLGiTp06pYoVKzrbCAoKUuHChdWmTRvlzJlTc+fOVbNmzfTII4+of//+yp8/v9LS0hQVFSXp4nQxt912mxo0aKAtW7ZkGI/NmjXTf/7zH4WFhalPnz6KjIxUaGiomjZtqsqVK+vo0aMaPHiwJkyYoDvuuEO5c+dWwYIFFRkZqc6dO2vq1Kl65JFHtGbNGr388suSlKEf169fr3bt2mno0KGKjo7O0I/r169X/fr1VaZMGedvy6X92KhRI9WvX9+ZvvLUqVNOP/r7+2vevHlq0qSJli5dqpEjR6pHjx5q0aKFVz8ePHhQlStXdraR3o+tW7d2+rFVq1Z69dVXlSPHxbc2l/bjDz/8oPr16+vBBx/Uxx9/nKEfGzdurIULF6p+/frO37PfjschQ4bo5ZdfVs6cORUWFqaCBQsqICBAPXv2VGJiorp06aLjx4+rZcuWatq0qYoWLeqca6SL02TGxcXp9ttv14MPPqgJEyZo7ty5WrNmjVavXq3NmzerWbNmyp07tzNF0fDhw/Xss89q1apV8vPzU7NmzXTHHXeoUaNGyps3r3OeKVy4sGbOnKkGDRro22+/VYsWLfTiiy/q/vvv1/3336+NGzdq5syZOnjwoG6//XZnGzly5FBERITatm2rQoUKacqUKerVq5dat26txo0bq2jRol7nmk2bNqlZs2aqUaOGUlJStHbtWtWoUcM5z9x7771auHChgoKCdPvtt6tEiRLOefyOO+7Q8ePH1aJFCz399NNKSkpS4cKFlT9/fhUtWtT5vX7kkUe0du1anT17VtWrV1d8fLzy5s3rjMeNGzfq3nvvVVJSkmrVquWMx2+//VarVq3Sxo0bVa9ePZ0+fVorV670Ol+vX79e/fv3d6YsTUpKUpkyZZQvXz7nK23ly5fXa6+9puHDh+vChQvq06ePBg4c6HWuOXz4sLN+tWrV1KFDhwy/13fddZeSk5NVo0YNDR48WGbmjMfNmzerXr16SkpKUo4cOTKMx7vuuktnz5519lG1alUlJSWpXr166tSpk5YsWaJt27apZMmSWrNmjRo3bqyOHTuqYMGC+sc//qHz58+rS5cuypcvn86cOaM8efJo1KhRXu99Nm/erP79+2v//v0KCwvT2LFjvcbjtm3b1L9/f61evVr+/v6Ki4vT//3f/znjsWbNmtq8ebPi4uJ08OBB5c6dW+fPn1e1atUkSdHR0XrppZdUtGhR/frrr6pUqZKefPJJPffcc3rppZe0YMECHT9+3Fk/T548evjhhxUREaG4uDgVLlxYkydPVu/eveXv76+wsDCNGjXKazxu3bpV/fv31+7du3Xo0CHNmjVLtWrV0p133qk2bdqoT58+OnHihLOP0NBQBQUFqXr16ho+fLjatGmjLVu2yN/fX2fOnFF8fLzuuOMO5cuXTz169NCbb76prl27qlq1agoODla+fPnUu3dvBQUFydfXV2lpadq5c6deeeUVJSYmqlKlSho3bpzmzJmjdevWacWKFfL19dWPP/6oVatW6cKFCxowYIDOnDmjadOmadWqVfJ4PKpWrZpeeeUVvfrqq8qXL5/uu+8++fv7q1q1aoqKitLLL7+s4sWLKyEhQR06dNCTTz6pRx55RC+99JI++eQTnT17Vn379tWJEyeUL18+tW7dWuHh4erUqZMiIyP10ksvKT4+XqVKlVLBggXVu3dvnTp1SiVKlFBaWpp27NihV155Rbt379axY8e0YMECVa5cWW3atJGPj4/69OmjU6dOqW/fvjp+/Ljy5cun3bt3q3r16ho3bpw++eQTbdmy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+FhISIh16dLFma1n4sSJ9uOPP2a5fnh4uO3Zs8e+/vprpx8rVqzovKcICgqytWvXZlg/NDTUfHx87Nlnn3W+HjFy5EiTZLfddpt16tTJ8uTJYz4+PjZs2DBLSkrK9GnvkiwkJMRWrVplycnJNnDgQKtevbpVr17dRo8ebZ07d7ZcuXI572NvBoTuv6DfBuLMAq+Z2f/93/9Zu3btbOHChVawYEGT5Nz+MXDgQHv99detXbt29vHHHztvkLt37+6U/+tf/7J27drZf/7zH2f9rl27OuVvv/22xcXF2RdffGExMTHm8XicW1wGDBhgZcqUsc6dO9vevXutXr165uPjY/Xr1/f6nvaMGTMsT548FhER4fzSd+nSJcM20o8zNDTUGjdu7NzWWq1aNWvSpInlzp3b8uTJY76+vhYYGGirV6/O8DT3atWqWf/+/S137ty2Zs0ap/z222+3/PnzW0BAgFWpUsXq1KnjnDR+u43ChQubj4+Pbdy40VJTUzOUh4eHO39Ivv/++wzllSpVsgceeMDy5s3r1cYqVapYkSJFMjxxPrP177//fgsLC7PVq1c7bbz99tutcuXKFhgYaCEhIda6dWvbsGFDptuoX7++ffzxx1a7dm37+eefnfKGDRtaaGioSbIyZcpYtWrVbO3atRmmmfvss8+sadOm5uPjY3PnznXKO3fubH379rXg4GArXLiw+fn52XvvvWdm3lPVnT9/3vr27Ws5c+a0okWL2ubNmzPsIy4uzgICApznB/y2/JtvvrHmzZubj4+Pvffee055bGysbdy4McNUeL9d/+uvv7ZmzZqZj4+PzZs3z2ljiRIlrHHjxla2bFmrVq2alS9fPtM2pqWl2ZkzZ6xnz57m7+9v3333nf30009WunRp69atm917770myaKjo51+2LVrl5UsWdJpw8KFC+3WW281f39/5+S7e/duK1y4sPMGp0KFChYREWEdOnSw1NRUryn9UlNT7fz589agQQPz9fW19evXZ5jy7+6773beWK1YsSJD+apVq6xevXrOG6X08latWjlzdv52ysBLt7Fy5Up7+OGHLTAw0Dp06GDnz593yh977DGbOHGilS1b1goXLmxRUVG2du1ar/XT/xa0a9fO+RAovfz++++3e+65xzwej0VERFiePHmcMZ9u/fr1dvfdd1vjxo2dv1+XzrzwwQcfWLVq1SwgIMD5UCr9FrqzZ886Ux/OmTPHJJmvr6/zwVd6+YABA6x27drOh5bpX2+4tPy5555zgu2yZcuc/c+ePdvmzp1rAwYMyDC94m+3MX78eGcb6W28cOGCLVu2zBo2bGhRUVHOmFq+fHmGY0jffnh4uPNVm3PnztnHH39sZcqUMUkmyfLly+dsf8OGDc4UjwsXLrTu3btbcHCwDRkyxKZPn+5MAfmPf/zDHn/8cQsODrbo6GiLioqykSNH2tatW53109LS7OzZs9amTRvLkSOHPf30017l6T/ngIAA8/f3txEjRmQoX758uTVv3tyCgoJs1KhRZnZxdg1/f3/nvPDbaSh/u41ly5ZZs2bNLCgoyEaOHOkcw4MPPmiTJk2yMmXKWIkSJaxUqVL21FNPea2f/jv1wAMPWHR0tE2ZMsW2bNliuXLlsi5duljHjh2dn0FERISNHDnSGcOLFi2yli1bOv2Yfjtl69atbfbs2bZgwQJr1qyZjR8/3ooXL24FChSwvHnzWqNGjew///mPffLJJ9ayZUtLTU21s2fP2q233uqEiUvLzS7e9pn+QUyDBg0ylC9evNgqV65sOXPmtIYNG9qsWbMsNTXVxo8fb7fddpuZWYaZQ367jUWLFlnFihUtZ86c1qBBA5s1a5Z99tln1rJlS3vnnXesUaNGFhUVZZGRkRmO4fz585aSkmLt2rWzsLAwa968ub399tv2ySefWPPmze3hhx92Qmv6be5vv/22ff3115Y7d24bMmSIffnll9ayZUuTZJMnTzaz/31drlu3bta3b1/n97po0aK2du1aW7Vqldd0o//973/Nx8fHcubMaRs3bsxQXr9+fZNkAQEBzsWIS6csXbVqlbVp0ybTNrRo0cI2btyYYUrT3+7jxRdfNB8fHwsODrb169c76z/22GP2wgsvWHR0tBN21q9f77V+Wlqa893dEiVK2JEjRyw1NdVWr15twcHBVr58efN4PFasWDGvNp45c8buvvtu53bohQsX2p133mk5c+a0zz//3E6cOGF33323PfDAAzZ+/Hjn9yFv3ry2aNEiO3bsmN111132yCOP2IULF+zChQvWtWtX53vKl5abmT3wwAPOeFywYIGdOXPGTp065cwy83//93/24IMPWkhIiDVq1Mh++eUXO378uN19993WunVr5/u+l85C89t9LF261Nq0aeMcw/Hjx53yd955x5o0aWJVqlSxyMhIW7x4sdf66bc7T5o0ycLCwmz9+vV2+vRpO3XqlMXFxTlznpctW9ZKly5tjRs3tl9++cUOHz7sNRPOl19+6UxVFx4ebk8//bTFxsZa7969bcKECVaiRAmrWrWq5cyZ05lKq1mzZs76Fy5csMGDB5ski4qKsjFjxtjRo0etefPm1q9fP3vggQfM4/FYSEiIFShQwIoWLeq1DTNz+tLj8VhkZKSNGjXKmjdvbm3atPEKp+mz9fx2/aVLlzr7iYiIsFGjRjnH+O6771qTJk2sfv36FhAQYFFRUV7rp78HWLBggeXMmdMKFy5so0ePtqNHjzr9n96P1apVswIFCliRIkVs9OjRNmXKFOdp7+n9GBwcbOHh4RYXF2cHDhywlJQUW7BggXXp0sUaN25s99xzj9cUajcDQvdf1Ndff23t2rXLNPAOHDjQVq5cacnJyRYfH2+5c+e2/Pnz21tvvWVly5a1OnXqWOHChW3Lli0WHx9vefLksUaNGtn777+fZXl6eE8vj4qK8irv2rWrrV692imPjo62d99915liLP2X8dI2Ll++3JKTk+3xxx+3kJAQa9u2rX355ZeZbiOr40z/YGDmzJnOwyN69eplZhcDR4sWLeyrr76y77//3vLnz2958uRxvovy6aef2n333WdfffWVrV692ooVK2Z169a1I0eOmNnF0Ltw4UKnzhdffGEhISFWrVo1JxgvWLDAaxthYWGWI0cOW7t2bYbyxYsXW8GCBS0sLMwp/+STT7zWL1mypFfwvnT9L7/80goUKGChoaHOhwLnz5/3auPXX39tJUuWtLp162bZxvR9pN+J8Nlnn3mVR0dHO9NIpKWl2ZQpU7ymmduyZYtz9XH58uUZpqHbv3+/09/p32O/tM7+/fvtjjvusA8//NAKFCiQ6TZ69+5tefLksbCwsAzl+/bts0mTJlmdOnUyLU+XPhXeb8v37t1r48ePt2rVqjnzTv62jUePHrWUlBRbu3Ztlm1M30e+fPkylJ84ccKWLl1qc+fOtXz58mU6Hd/69eudKy0xMTHWpk0be/DBB506+/fvt8OHD1uPHj2cKfsqVqxod9xxh3P17Oeff7bChQs720gvT78i0rt3b/P398+0PL0fCxUq5JSXL1/emjdvftkpA3v16mXdunWzTZs22fjx461u3brWoUMHp0758uWtWbNmThuOHj1qvXv3tvLly2d6DOn7KFOmjMXExFiFChUsNjbWTpw4YSdPnrSlS5dau3btrGzZsl7TFqbPE1qwYEFr2bKl8xCjsWPH2j/+8Q+Lj4+3nTt3WqFChWzfvn02efJkp7xLly7Wt29f27FjhxUqVMj279/vvIHNrLxXr14WHBzsVf7444/bjh07LCIiwiZOnGjlypVzyjt16mSDBg0yM3PacOmV+cy2MW7cOCtZsqRTft9991m/fv2cNhw5csS58p5ZG3+7/c6dOzt9EBUVZUuWLLFhw4Z5lafftTNnzhxbsWKFc+fFpVdzQkNDbc6cOXb27Flr2LChVa1a1YoVK2a5c+e2qKgop/zMmTPWsGFDCwkJscKFC2coP3v2rEVHR5uvr2+m5du2bbOyZcta7ty5rXDhwhYSEmK1a9e2bt26OW387TSUmW2jdOnSzgd/mR1DkyZNrEaNGla8ePEM658+fdrZftGiRTOs/8svv1itWrWsXLlyVrRoUWcazK1bt9qUKVOsUqVKtnr1asuXL5/VrFnThg8fbk2aNLHq1atb06ZNrWLFinb+/Hm7/fbb7bbbbrNBgwZZkyZN7NZbb/Uqv+222ywiIsJ69eqVaXmJEiWc6QTTy5s0aeLceVS+fHnLmzevU16tWjUbMWKETZw40SpVqmTnz5+3Jk2aWIMGDZw2XrqNQ4cOWdmyZS1PnjzONmrUqGFNmza1ChUqOHevNWjQwJ588slM25i+/f79+1uTJk2sZs2aXuUxMTF26623Wnx8vLP9fPnyOQ9p2rp1q/Xu3dtatmxpt99+ux04cMDKli1rffv2df5u7N+/3+666y6rW7dupuXp372tXr16puW9e/c2Pz8/q1Gjhh07dszOnDnj1En/+9ikSRNr0aJFlm0w+9+Upr8tTz/X5M+f32rUqJHp+kePHrWOHTtavXr1Lrv9mJiYDG1MP8+kh9X0aVXT0tLsjjvucD64Wr9+vXP3SdGiRa1GjRpWrFgx54OBQ4cOWf/+/S1//vxWtGhRq1Wrlld5YmKiVapUyVk/vTx9OqunnnrKAgICLG/evFa0aFGLiYmxQYMGWePGjW3IkCE2c+ZMa9WqlfXo0cMJk9WrV7fixYt7TZE2aNAgp/zSNpw6dcqmT59uRYoUcdpQs2ZNrzacOnUqy/Uv3X6+fPmc8vSxO2rUKFu3bp1t27bN+vTp42zj1ltvtaioKOdhrytWrLDevXtbbGys1apVyypXrmzly5e3d99918wu3n1z5swZi4uLs1q1alnVqlWtXLly9u6771paWtr/a+/cg6Kq3z/+WcARWEQCw2S5rGDWoKagrpAuN0FWMUVLs3RyMAa1GSnNaaZJc+qPsmwSsGwcR2266NiMok5qYPD1ghcURydRBwWUDBtv2YzCwsry/v3h7/Np72d198ABnte/7z2f8zp7gOU5e87zoL6+Hvn5+cjKyoJOp0NiYiIOHDiApKQk7NixA5988glCQkJw4cIFzJkzx26N27dvY+PGjcjJycGUKVOg0+kwatQoKwc+UtHZ9sXFxcjIyBDb814EfHs+Hm/27Nl225vNZrH+jBkzoNPpkJCQgN9++00cA79wdOfOHeGQmJiIxYsXY/To0aJXQX5+vhi9GBoaiiVLllj9zFs2putLUNGtQDo6OkRB7azg5bdGjx8/XnQoBSCuTldVVVnlu3btcpnzJk7u5keOHHHpGBkZifr6enR2dj71GhqNxmXhHxkZiR9++EG8b1VVVRg6dCgmTZqE9vZ2GI1GlJeXi19u3u2d5wDQ0tKCQ4cOiSt8x48ft3oNX4M3y9i9eze0Wq1dzjlx4oRDB95R3tbBdnvbY+CO/DgAOF3D1T7KysrElVjbvLq6WnSw5Fe929vb8fzzz6O8vFzkHP54A8+Bxx9WlnMqHz58aPUa27yiogLXr193mjc3N+Off/5xmvPutM7ypqYm3L1716kj/5lwtUZbW5tdbvk+2G7f0tJi9S3oF198AZVKhY8//hjbt2+HTqfDiBEjRENDR68ZO3Ys4uLiROHvLOcXjvgVcducF7yrVq16ovV1Oh1GjhwpGmo1NzdjzZo1Dtfgt4OuXbvW5T4+//xzuzw2NlYU7Y4c+G2aHR0d0Ov14iLWrl27xCMGv//+u8gvXLhgl1dWVoq8trYWRqPRab5t2zY0NTU5zQ8fPoz79+9b5YcPHxa/L3wfrhwqKipw7949q7yiokLk/Iq/s+35nQmW+aFDh1zuf//+/Vi4cCGSkpIQGxuLKVOm4OrVq+LimFarhUajEbnBYLDLIyMjrfLa2lqnuU6nE43jHOUZGRk4e/asyGNjY5GVlWXlKOWQnp6OM2fOPPUxZGdn2+URERFOt4+NjUVOTg7Kysqg1+tRWlqKrKwsq07Bq1atEpNESktLMWXKFLt82LBhIs/OzrZqkGqbT5o0SXTqtszHjx+P0tJSZGZmigkgPE9ISMDWrVuFI58c4myNyZMni6aSjhz4MfDPPme55faxsbFWx2ibjxw50mqfJpMJmzdvxpAhQ3DhwgUxv90S29zybj8A2Lhxo9P8yJEjWLt2rcgB6y7mt27dwv379z1yaG5uRlFRkdPt+SMizrbnj7FYOjpqnstf88cff7ic8FJdXY0PP/wQAwYMQHx8PEpKSvD+++/b5cHBwSJ3tL1lnpeXB39/fzFB5qOPPsLYsWMxZswYTJw4EevWrUNhYaFLB6l9LFu2zOX2K1asQEBAALZs2eJwe55bOiYkJAhHdyfh/Pnnn2ISzpgxYxAYGCjusuns7LSalGOb83NnOUknJycHWq0WK1aswOXLl9Hc3OxyjZaWFly9etXlPlxt/+DBA1y5cuWpj8FsNttNA5o6dao4BkcOjiYGtbW1WXV7V6lUosFzX4aKbgXjqiDu7OxEWloaDAYDiouLkZqaipkzZ+KZZ57BmDFjUFZWhrS0NGRnZ8uS80KGP7v7NI7urGH7PjQ2Nopv4nkO/Nd5ce/evXa3cRcVFYmOtzU1NYiOjsa4cePscl60Olpj/fr1YjyEs5z/QZFykNremWNFRYX4B+hp9uEs58V9UVGRKLYaGhrEmDm+z3379onbZgEgLi5OjAbp7OzEvn370NraKopRy1F1fI09e/aI7pXOcv4MkaPc0sHZ9q2trS4djUajw3F67u5j7969DnPOvn370NjYiA8++ADl5eWiu7/lOD7g8YeWq5F9rvIdO3Z4lFuu78iRXxX3xPFJclfvk7PRhWvWrMHdu3dd5nfu3BF5Q0ODXX779m2X21vmADBv3jwMHDjQan0pR6l9PMkxSOWOHBsbG/HWW2+JEY+W0yYqKyvh7++PnJwct/OGhgaPtue/N01NTaisrERAQACOHDniVUdPc0eOhw8fhlarFVM5amtrxRomkwkDBgxAWFhYl+UPHz4UjnwqyFdffaV4x40bNwKwnoIxfPhwq0kcT5I3NDTY5ZYjUwFg+PDh4rZ6nnvqYDuW1ZNjcOQotYbUhJeIiAgMHTrUo1yr1Yr8m2++Eefy0aNHiIqKwrJlyzx2sNyHp8fgyLGwsPCJJuEEBQVh7ty5AB7ftj9kyBAEBgZK5tOmTRMXAubMmYOmpiZx92hJSQnUarXH++iq3NExbNiwweoY3JkY5Kjbe1+Him4F4m6xWlVVJX6gR40ahdjYWNy8eRPr169HUFAQ9u/fL1uuVqvx8ssve+QotYajwj86Oho+Pj5iH2VlZVYfXIsWLUJERATi4uKQkpKCnJwcqFQqcXW9s7MTM2fOhJ+fH1JSUrBkyRIwxqyuvkutIXcupyP/dmTRokUYMmSIw+2lxszxEVHBwcEIDw8H8F8jP/5h5mqN69evu7UPT3NPHL3hwAtzPi6vtrYWiYmJ+Pbbb8V5dDSyb9iwYeLxgq7IleDoyKGkpAQAXI4u/PTTT/Huu+96lBcWFrq1Pf8mJyoqCtu3b4dKpcKCBQtgNptld3Q3d+S4ePFiGI1GHDhwAO3t7eJ9Bh6Pg4mOjkZTU1OX5ZbnurS0FC+88AIOHjyI9vZ2xTuePn0aMTExGDx4MF555RWxhtFohE6nw9dff91l+YkTJ4Sj0WhEZmYm1q9fr3hHPiOd/w1+++23ERYWJsaFWt5Z5o0cAJKTk9GvXz9xxwy/uNxVDnI48oa3wOPRdpMnTxZ/Y00mEyZOnCiKHG/ku3btshr9Om3aNNE7pKsc5HBMSEjAO++8A71ej1mzZonb1oHH47MiIyOxZ88et/N169YJh02bNiE+Ph7bt2/HwYMHvbYPuXOpYzAYDGLMo9lsFq85fvw4Zs+ejfj4eBw7dgyW6HQ6fPfdd+jrUNGtUE6ePOmyIOZdhAEgLy8PAQEBGD16tPiWcMmSJaIbslz57t27PXaUWoMX/leuXMGoUaMwdOhQZGdniyZZBQUFePTokeiCzru980Y0/fv3F3Mb+W1l/Jk73ljpzTffdGsNuXOlOJpMJrS0tECtViMvLw+RkZHw8/MTDaiuXbuG9vZ2xMXFQa/XY/LkyfDx8cEbb7whHF2tIXeuBEcAomMwf6/1ej3UajUKCgpgMpnw119/icZOfEJBREQEBg8ejBs3bsieK8HRlUN+fj4AiG7rGo0GqampYpKDwWDAxYsXZc9LS0vBGENkZCROnToljiMuLk40gVSyI+8I7mgixnPPPYeoqCj8+++/sueOHJKTkxEcHCzm+irZcenSpWhpacGWLVsQGhqKpKQkjBs3DgUFBYiIiIBarcalS5dkz/fs2YOQkBAkJyfj559/RlpaGvR6Pfr164dFixb1CEf+N5i/z5mZmVCr1YiIiBATWjzNLc8lb9aXkpJiNQVGbgc5HQsLC2EymewmvKxcuRIajQYBAQG4fPmyx3lHRwcSExORn58Po9GIqVOnIjU1FX5+fli4cGGXOMjhaDsJ5/r16zAajeL3fvXq1Rg8eDDi4uLQ2toqmT969Eg89slfo9PpEBISgsLCQgDweB9y5+4cg9TEoGPHjmHu3LkIDAx0OMWhr0NFt8KRKogbGhoQHx+Pa9euYebMmUhPTwfw3/B6uXNvOEqt0dnZidDQUPj6+mL06NHYtGkTwsLCEB0djcbGRrtu71u3bkX//v3h4+MjnpGyfI3ZbEZaWhoYY0hNTbXqlO5sDblzJTrajpmzdZwwYQI0Gg0YY5g0aZJDR6lRdd7OleBo63D+/HlMnz4dKpUKer3eoYOjkX1y5kpwdNfB1ehCuXMAuHnzJsLDw5GTkwMA2LZtW5c6eMvR8lzw8Y1+fn44f/687LntuT537pw41ykpKYp31Ov14rGZhIQE5OTkYPz48Rg0aBB8fHwQFBRkNapTrpw7vvjiiwgLCxNd0n19fcXkEKU72p5rs9mM77//HgEBAQgKCsKDBw9gNps9yvmjYgkJCeKik8FggK+vLwwGg9X7JJdDVzo6m/DCt3/anJ/LYcOGwc/PDxqNBjExMWJSjTtTZuTOveno6LPq3LlzkrmjzzKDweD256k7+5A7d+cYpCYGcW7cuIF169aJbu/JyclWPSr6MlR0Kxh3ilUAoki9ePEiXn31VfGcYVfk3nB0p/CPiYlBdna2+NZBpVKJpg6W49HKy8sxYsQIMMbEH5eVK1fi7NmzoiN8cXGx6FRs2Sldag25cyU5Ohszxx1nzJiBZ599Fowxp47O1pA7V4JjTU0Njh49CoPBgGnTpiEgIMBpZ35nI/vkzpXg6I6Dq9GFXZFfvnwZ//v/Duvd5eANR8tzMWjQIJfnSo6cn+vs7GxkZWWhf//+PdJx06ZNmDVrFn799VcxtYN35O6K/PTp0+Lv27Zt2/DSSy/1SEfLzyL+88rvePBGbvl5yj/vutqhKxxdTXjxRs5/J7KyspCXlycmMLg7ZaanOPL3+eDBg4iJibH72yCV83OZm5uLpUuXiv9THZ3Lp92H3LnUMUhNDOLffHNu376N1tZWq2kpfR0quhWOVEFsidFodPnDLVfuDUdXa3R0dOD+/ftYsWIFgoODER0dbTV6zHb82YIFC1BRUWHV7b2urs6qU/rrr79u1wnd1Rpy50p0tB0zZ+uoVquRm5vr0lFqVJ23cyU4WjosX75cNCVx5WA7sk/uXAmO7jhIjS6UO9doNHa/l13t4A1H23ORm5uLAwcOdFnu6Fy/9tprPc6RT9RYvny5y4kbcuWRkZGoq6tDW1ub5NQPJTvangtv544+T7vaoSscpSa8eJrzc+nJlJme4Gj7Ps+fPx+VlZVu547O5bx587y6D7lzd4/B1cQg4PEz3n11HJg7UNHdQ5AqiJWANxxdrcG7mP/0008Annz8mTuv6e5cCQ5SY+a8sYbcuRIclXQulfzzpgQHciRHcux9jkpwIMe+46gEB28fg9TEoJqaGjGC1nbaDmGPDyN6BP7+/iw4OLi7NVziDUdHawBg6enpLCwsjBUVFbHNmzez3Nxcdv78eRYeHs5aWlpYeno6Cw0NZUVFRay4uNgqb21tZQBYWlqaWMP2NVJryJ0r0bGkpMRjR9s15M6V4KjEc6nEnzclOJAjOZJj73NUggM59h1HJTjIdQxpaWmsurpavKa8vJyZzWbm4/O4fExMTGQ7d+5kf//9N8vMzGRLly5ly5cvZ1FRUR7VAr2Wrq3xCeLpkOrmLjX+7NatWx6vIXdOjr3HUQkOPcFRCQ7kSI7k2PscleBAjn3HUQkO3jwGqYlBwH/z7vn/6CqVCqGhoVZN1QhrqOgmehSejj/zxhpy50pwIMfe49ATHJXgQI7kSI69z1EJDuTYdxyV4OBpLjUxiMOLbrPZjIKCAgQGBuLixYsgnENFN9Fj8MZ4s+4esUaOfcdRCQ49wVEJDuRIjuTY+xyV4ECOfcdRCQ7eOgapiUGW32afPHkSEyZMEF3MCedQ0U30KPhVuacdf+aNNeTOleBAjr3HoSc4KsGBHMlRSQ7k2HscyLHvOCrBwdNcamJQVFQU6uvrxevb29tx7949u/eBsEcFAN39XDlBPCltbW3MZDI5bdwmlXtjDblzJTiQY+9x6AmOSnAgR3JUkgM59h4Hcuw7jkpw8DTX6XSspqaG/fjjj2z+/PksIyOD1dXVsV9++YVNnDiRMfa40bFKpXK4PWEPFd0EQRAEQRAEQRB9HAAsIyOD+fv7s6lTp7Ldu3ezkJAQdvToURYTE8O+/PJLlpWVxcxmM/P19e1u3R4FFd0EQRAEQRAEQRAEO3XqFNPpdMxoNLLk5GTW0tLCqqqq2M6dO9nq1atZQ0MDCw8P727NHodfdwsQBEEQBEEQBEEQ3U9SUhJjjLFly5ax+vp6Nnz4cDZw4ED23nvvsbq6OmY0GrvZsGfi090CBEEQBEEQBEEQhDJobGxk1dXV7NKlS0yr1bLp06czxhjbsGEDi4mJ6Wa7ngkV3QRBEARBEARBEARjjLHY2Fh25swZptVq2WeffcZCQ0PZ3bt3mZ8f3ST9tNAz3QRBEARBEARBEIQd7nRrJ6ShopsgCIIgCIIgCIIgZIJuLycIgiAIgiAIgiAImaCimyAIgiAIgiAIgiBkgopugiAIgiAIgiAIgpAJKroJgiAIgiAIgiAIQiao6CYIgiAIgiAIgiAImaCimyAIgiAIgiAIgiBkgopugiAIgiAIgiAIgpAJKroJgiAIgiAIgiAIQiao6CYIgiAIgiAIgiAImaCimyAIgiAIgiAIgiBkgopugiAIgiAIgiAIgpCJ/wNzMh80zNOZuQAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAmD9JREFUeJzs3XmcTvX///HnNWNWzJixzBjGLvsuSyphGEu2IolshSyFQWWJhMhHUtk+n3yUlNCmzYdKtAoRsu97xhbDYDDz+v3hN+framaYYS5bj/vtdt2Y8z7L67znXHOu53U2l5mZAAAAAABApvO62QUAAAAAAHCnInQDAAAAAOAhhG4AAAAAADyE0A0AAAAAgIcQugEAAAAA8BBCNwAAAAAAHkLoBgAAAADAQwjdAAAAAAB4CKEbAAAAAAAPIXQDAHCbcblc6t27980uA5ls3LhxKlmypJKSkm5aDRcuXFBkZKSmTJly02oAgDsNoRsAkCEulytdr6VLl3q0jt27d7stz8vLS6GhoWrUqJGWLVvm0WVL0uzZszVx4kSPL+dmi42N1YABA1SyZEkFBgYqa9asqlKlikaNGqUTJ054ZJkvv/yy5s+f75F5e8ro0aPVrFkzhYWFyeVy6cUXX8zQ9HFxcXrllVf03HPPycvr/z6eXb6NZ8mSRaGhoapSpYr69OmjjRs3pphP8vti/PjxkqRnnnlGLpdL27dvT3PZQ4YMkcvl0rp16+Tj46OYmBiNHj1a586dy9A6AABSl+VmFwAAuL3MmjXL7ed3331X33zzTYrhpUqVuiH1tG3bVo0bN1ZiYqK2bt2qKVOmqE6dOlq5cqXKlSvnseXOnj1b69evV9++fT22jJtt5cqVaty4sU6fPq327durSpUqkqTffvtNY8eO1Q8//KCvv/4605f78ssvq1WrVmrRokWmz9tThg4dqvDwcFWqVEmLFi3K8PQzZszQxYsX1bZt2xRt9evXV4cOHWRmOnnypNauXauZM2dqypQpeuWVVxQTE5PmfNu1a6c333xTs2fP1rBhw1Id54MPPlC5cuVUvnx5SVLnzp31/PPPa/bs2erSpUuG1wUA4I7QDQDIkPbt27v9/Ouvv+qbb75JMfxGqVy5stuy77vvPjVq1EhTp07lFNnrcOLECbVs2VLe3t76/fffVbJkSbf20aNH66233rpJ1d148fHxypo1a5rtu3btUqFChXT06FHlzp07w/N/++231axZM/n7+6dou+uuu1K8v8aOHaumTZuqf//+KlmypBo3bpzqfKtXr65ixYrpgw8+SDV0L1u2TLt27dLYsWOdYTly5FCDBg30zjvvELoBIBNwejkAINPFx8erf//+ioyMlJ+fn0qUKKHx48fLzNzGS742+f3331eJEiXk7++vKlWq6IcffrjmZd93332SpB07drgN37lzp1q3bq3Q0FAFBgaqRo0a+uqrr9zGeeedd+RyubR792634UuXLnU7Zf6BBx7QV199pT179jin/hYqVMgZPyEhQcOHD1exYsXk5+enyMhIPfvss0pISHCb7zfffKN7771XOXLkULZs2VSiRAkNHjw43et6pX5bsmSJXC6XPv300xTTzZ49Wy6X64qn4f/73//WgQMHNGHChBSBW5LCwsI0dOhQt2FTpkxRmTJl5Ofnp4iICPXq1SvFKejbtm3Tww8/rPDwcPn7+yt//vx69NFHdfLkSUmXton4+HjNnDnT6dtOnTqlWWfy72bu3LkaPHiwwsPDlTVrVjVr1kz79u1LMf7y5cvVsGFDBQcHKzAwULVr19bPP//sNs6LL74ol8uljRs36rHHHlNISIjuvffeNGuQ5Pb7z6hdu3Zp3bp1ioqKSvc0OXPm1Jw5c5QlSxaNHj36iuO2a9dOmzdv1urVq1O0JW8Lfz/CXr9+ff300086fvx4umsCAKSOI90AgExlZmrWrJmWLFmiJ554QhUrVtSiRYs0cOBAHThwQK+99prb+N9//73mzp2rZ555Rn5+fpoyZYoaNmyoFStWqGzZshlefnJgDgkJcYbFxsbqnnvu0ZkzZ/TMM88oZ86cmjlzppo1a6aPPvpILVu2zNAyhgwZopMnT2r//v3O+mTLlk2SlJSUpGbNmumnn35St27dVKpUKf3xxx967bXXtHXrVuda5Q0bNujBBx9U+fLl9dJLL8nPz0/bt29PEQDTcrV+e+CBBxQZGan3338/xfq9//77Klq0qGrWrJnm/D///HMFBASoVatW6arnxRdf1IgRIxQVFaUePXpoy5Ytmjp1qlauXKmff/5ZPj4+On/+vKKjo5WQkKCnn35a4eHhOnDggL788kudOHFCwcHBmjVrlp588klVq1ZN3bp1kyQVLVr0qssfPXq0XC6XnnvuOR0+fFgTJ05UVFSU1qxZo4CAAEnSd999p0aNGqlKlSoaPny4vLy89Pbbb6tu3br68ccfVa1aNbd5tm7dWsWLF9fLL7+c4gujzPTLL79IunTWRkYUKFBAtWvX1pIlSxQXF6egoKBUx2vXrp1GjBih2bNnuy0jMTFR8+bN03333acCBQq4TVOlShWZmX755Rc9+OCDGVwjAIAbAwDgOvTq1csu353Mnz/fJNmoUaPcxmvVqpW5XC7bvn27M0ySSbLffvvNGbZnzx7z9/e3li1bXnG5u3btMkk2YsQIO3LkiB06dMh+/PFHu/vuu02Sffjhh864ffv2NUn2448/OsNOnTplhQsXtkKFClliYqKZmb399tsmyXbt2uW2rCVLlpgkW7JkiTOsSZMmVrBgwRR1zZo1y7y8vNyWZWY2bdo0k2Q///yzmZm99tprJsmOHDlyxfVMTXr7bdCgQebn52cnTpxwhh0+fNiyZMliw4cPv+IyQkJCrEKFCumq5/Dhw+br62sNGjRw+tLMbNKkSSbJZsyYYWZmv//+e4rfTWqyZs1qHTt2TNeyk383+fLls7i4OGf4vHnzTJK9/vrrZmaWlJRkxYsXt+joaEtKSnLGO3PmjBUuXNjq16/vDBs+fLhJsrZt26arhssdOXLEJF21fy83dOhQk2SnTp1K0SbJevXqlea0ffr0MUm2du1aM/u/98W//vUvt/Huvvtuy58/v9vvZ+HChSbJ/v3vf6eY78GDB02SvfLKK+leDwBA6ji9HACQqRYsWCBvb28988wzbsP79+8vM9P//vc/t+E1a9Z0btAlXTp617x5cy1atEiJiYlXXd7w4cOVO3duhYeH67777tOmTZv06quvuh2hXbBggapVq+Z2inC2bNnUrVs37d69O9W7QF+rDz/8UKVKlVLJkiV19OhR51W3bl1Jl077li5dNytJn3322TU9Iio9/dahQwclJCToo48+csabO3euLl68eNVr8OPi4pQ9e/Z01fLtt9/q/Pnz6tu3r9udt7t27aqgoCDnNP7g4GBJ0qJFi3TmzJn0rWg6dejQwa3eVq1aKW/evFqwYIEkac2aNdq2bZsee+wxHTt2zPm9xMfHq169evrhhx9S/B6eeuqpTK0xLceOHVOWLFmcsyUyInmaU6dOXXG89u3ba//+/W6XIMyePVu+vr5q3bp1ivGTzxQ5evRohmsCALgjdAMAMtWePXsUERGRIrAl3818z549bsOLFy+eYh533XWXzpw5oyNHjlx1ed26ddM333yjL774Qv369dPZs2dThPU9e/aoRIkSKaZNq6brsW3bNm3YsEG5c+d2e911112SpMOHD0uS2rRpo1q1aunJJ59UWFiYHn30Uc2bNy/dATw9/VayZEndfffdev/9951x3n//fdWoUUPFihW74vyDgoKuGuSSJfff3/vY19dXRYoUcdoLFy6smJgYTZ8+Xbly5VJ0dLQmT57sXM99Pf7eHy6XS8WKFXMuN9i2bZskqWPHjil+N9OnT1dCQkKKOgoXLnzddXna6dOnJemqX5A8+uij8vb21uzZsyVJ586d06effqpGjRq5XYqRzP7/6fQulyuTKwaAfx6u6QYA3NaKFy/u3IDqwQcflLe3t55//nnVqVNHVatWzdC80goY6TniniwpKUnlypXThAkTUm2PjIyUJAUEBOiHH37QkiVL9NVXX2nhwoWaO3eu6tatq6+//lre3t4Zqj0tHTp0UJ8+fbR//34lJCTo119/1aRJk646XcmSJbVmzRqdP39evr6+mVKLJL366qvq1KmTPvvsM3399dd65plnNGbMGP3666/Knz9/pi3n75K/zPjXv/6lihUrpjrO3480J18L7mk5c+bUxYsXderUqXSfXZBs/fr18vb2vuoXBHny5FH9+vX18ccfa/Lkyfriiy906tQptWvXLtXx//rrL0lSrly5MlQPACAljnQDADJVwYIFdfDgwRRHSTdv3uy0Xy75COTltm7dqsDAwGt69NKQIUOUPXt2tztrFyxYUFu2bEkx7t9rSj7i9/c7bqd2JDytgF60aFEdP35c9erVU1RUVIrX5UeDvby8VK9ePU2YMEEbN27U6NGj9d133zmnoF9Jevst+QjnBx98oPfff18+Pj5q06bNVefftGlTnT17Vh9//PFVx03uv7/38fnz57Vr164Uv/Ny5cpp6NCh+uGHH/Tjjz/qwIEDmjZtmtN+LUdX/94fZqbt27c7dxVPvhlbUFBQqr+XqKgo+fj4ZHi5mSH57vC7du3K0HR79+7V999/r5o1a6YrrLdr107Hjx/X//73P82ePVtBQUFq2rRpquMm15J8NggA4NoRugEAmapx48ZKTExMcTT1tddek8vlUqNGjdyGL1u2zO1RRvv27dNnn32m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2//+978UNdapU8cqVapkuXLlsvfeey9FPxw8eNC8vb0tb968tmLFihTta9asMZfLZaNGjXKGJddvZvbHH39YSEiIPfXUU7ZmzZoU05td+p0EBwdbzpw57d5777WDBw+6ta9bt85KlChh5cuXN5fL5bY9JC+jbt26VqtWLStVqpS9/PLLtn//frd61q9fb82bN7eaNWta48aNbe7cuW7z2L59u82fPz/VdTC79Pvq2bOn1a9f33r37m0///yzW/uGDRvswQcftOrVq1uVKlXsyy+/TLGee/fuNZfLZUWKFLHY2Fgzc/+dJfflK6+8kmod69ats5CQEHv66adt3bp1KaZP7suQkBDz9fW1xx9/3E6dOpXi91GhQgUrU6aMuVwuGzt2rNv0yf1Up04di4qKsrffftvZLi9vT6sf75S+vFo/3il9ebV+vFP68mr9eKf05dX6MT19eb37neRxrmffc737neS+uNK+53r3O8nLuNK+548//rjlt8urbZPJfeHJ7fJq22RyDZ78PJRchye3y1vl8xB9ecn19uWaNWusTJkyVrhwYStcuLDdd999tmnTplRr+ScgdN9iNm3aZC6Xy6pXr55q8N6zZ4/ddddd9uyzz5qZ2ZkzZ2zevHl211132YYNG2znzp1WtGhRe+6555xpxo8fbz169EixE4mJibGPPvrIXC6XPffcc3b69GnbsmWLZcuWzWJiYszM7MKFC/bRRx/ZlClT7L///a8zj3379lmBAgWsf//+Kdbht99+s+zZs9ugQYPMzOzrr7+2LFmy2Oeff25ml/4obNy40UJDQ61nz5720UcfWY0aNeyBBx5w5rFhwwYLCQmxRx991AYMGGBFihSxAgUK2BtvvGFnzpwxM7MdO3ZYaGio9evXzyZNmmQvvviiuVwua9u2ra1evdq2bt1qISEh5nK57NVXX3XmnbwO69evt5CQEOvVq5c9//zz1rFjRytSpIizw1y/fr3lyJHD+vfvb3PnzrXnnnvOcufO7eyUk/31119WvXp1K1++vOXOndt+/fVXp23dunUWGBjo9vswM+d3e+LECatWrZo9/fTTTtupU6ds586dbr+rgIAAe+GFF2zBggUWEhLiLCMxMdG2b99uefPmtRdeeMF27txpX375pblcLtu8ebOZmW3dutVy585tAwcOtLlz59q0adPMy8vLWrRoYd9//72ZmW3bts1y5MhhvXr1ssGDB1u3bt3M5XJZ3759LTY21rZs2WI5c+a0oKAgmzlzplNb8h/4P/74w0JDQ+3JJ5+0jh07WpMmTeyBBx6wPXv2OO3BwcHWp08fmzhxonXp0sWqVq1qJ06ccNtJ7N+/38qWLWulSpWywoUL26FDh5y2tWvXWkBAgLPt/93Ro0etfPny1rdvX7ff9eW/r+S+fPHFF2369OkWFBTkfGGUlJRkW7dutTx58tiQIUPs119/tSlTplhAQICzE9m0aZPlzJnTYmJibOLEiTZ06FBzuVz29NNP25YtW67aj2Z2R/Tl1frRzO6YvrxSP17el39/j99OfXm1frxT+vJq/Zievty5c+d17XfMMmffcz37HbOr73uS+3Lo0KHXtN8x+799z7PPPpvqvud22C6v9rfSzPPb5dW2STO77u3yattk8jie3C5vlc9D9GXm9OWBAwcsX7589uyzz9rvv/9us2fPtsaNG1u2bNlswYIF9k9E6L6FHDp0yGrXrm0NGjSwYsWK2b333usWvJOSkuyNN96wevXquR2Z3rJli/OGHD9+vHXq1MlOnjzptD/11FNWtmxZq169urVs2dIWLVpkW7dutXz58rkd9R45cqSVLFnS/Pz8bM6cOXb27Flr2LChVa1a1YoUKWJBQUHOt1TffPONNW7c2MwuvcljYmKsZcuW1rRpU4uIiLCePXua2f/tHNu2bWv333+/HT9+3M6ePWsPP/ywM46Z2a+//motW7a0P//8044ePWrR0dHWt29ft51rRESEFSxY0EaOHGlnz561qVOnWvXq1d3G+eWXXyx//vzWrFkza9SokbVo0cIGDx5sQUFBNm7cOGe8P//802rWrGkDBgxwhm3cuNEqVKhgs2fPtn379lnZsmWdLw6Sa2zSpInt37/ftm7damZmFy9etGPHjlmdOnVs7dq11qZNGwsLC7Pff//dduzYYQEBAda+fXtnHmPGjLH27dtbmzZt7OOPP7Y9e/ZYlSpVnG8XW7ZsadWrV7csWbJYx44dberUqeZyuWzIkCHOPO677z6rV6+e8wd+9OjRFh0d7bSfP3/eGjZsaD/88IMtWLDAevXqZa1bt3bb1nr37m3e3t720EMP2erVq+3ll1+22rVru43zySefWJYsWaxDhw4WHR1tjRo1sq5du1qJEiXs7bffdsY7cOCA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b6dPn3aujWrZsqVzLfvl16DPmDHDAgMD7f3337c//vjDvvnmG/P29rbp06ebmVnHjh3dTi2LjIx0+rJgwYKWM2dOa9Gihf3555/OONOmTTNJlitXLnv55ZetU6dOtnbtWqd948aNli9fPuc6suRvXY8ePWr58+d3rq35/PPPzeVyWdOmTe2RRx4xX19f+/LLLy0+Pt727Nlj4eHhljVrVlu/fr2ZXfoWPVu2bPbNN9/YF198YX5+fvbqq69alixZ3E4tSu7LqVOnWmBgoP3+++9mdunU/169elmJEiVsxowZtmbNGps1a5bTh8nbaM2aNZ3r0vbt2+es1+TJky0wMNBmzJhh3377rf3nP/8xl8tln332mZmZNWrUyFnnI0eOWJ48eczlctmIESPM5XJZSEiItWrVyvbu3WtmZseOHbNBgwZZ1qxZzd/f3958803r2LGjbd++3VnmihUrzMfHx2bMmOHWl/v377egoCAbOXKkmZm99dZb5uXlZV27drUOHTqYv7+/zZ8/32JjY239+vXm5+dnkZGRzilayX25ePFie/311y04OPiK/fj306r+3pe///77Vfsyeb3T6ktJHu3LBQsWmK+vr82YMSPNfrwV+jIzt8u/92NYWJi5XC775ptvnCO019KXCxcuvCX68krvb7NLpyFefv3i7dqXV+vHkJAQq1WrltWoUSPNvkzeT17Lfie5nz766CM7ffq0mdk17Xu8vLxs+vTpKfY7BQoUSNd+x+Vy2SeffGIRERGp7ntWrVplkZGR9sorr1zzfqdcuXJ2zz33WN68ed32PVmzZrVFixbZF198YVmyZEmxXZ48edIuXrx4xe1y6tSpznW3qW2X1apVs5dffjnN7XLq1Kn29ddfp7ld7t69+6p/K/ft22fPP/+8BQUF2WeffWYBAQFu22V8fLyZmS1atCjV7TJ79uw2YsSINLfLOXPm2MGDB9P1/g4PD7cPPvjgmrfL/fv32yeffHLFz0Nm5pz6nJSUZG+//XaGt8vnnnvO45+H5s+ff92fh6ZPn37Nfbl371779NNP0+zL5LqT3+Op9eXXX3+dZl+m57Pl1KlTM6Uvk/8eZ7Qvk9/fvr6+VqZMGevSpYvz9y75KPqOHTusWrVq9q9//cuthjsdofsm27lzpxNWL5e8ASZfH+3n5+ecat6jRw/ntKaLFy9a586dLUuWLM6NGh577DFzuVy2Z88eO336tD3xxBNWqFAhu3jxoq1fv96KFi1qq1atsr59+9q4ceOsdOnS5u3tbX/++afNnj3bJNmwYcPsyy+/tISEBLc6P/30UytRooRt3rzZChUqZGFhYVatWjXr2LGjFSpUyMwunYISGBhoU6ZMcWrcuXOnvfTSS1a2bFlbvXq1HT582Bo0aGAdOnSwu+66y1588UWnHy5cuGChoaHm4+NjTZo0sUGDBllQUJB16dLFkpKSbOHChVaiRAk7dOiQde/e3QoUKODcOOX8+fOWmJhop0+ftjJlytikSZPc/siNGjXKgoKCnD82PXv2tBEjRjh/UDt27Oh2DczgwYPt888/tw8++MD5YJA8v/vuu8+5Qd27777rnE7Url07Cw8Pt9q1a1v+/PntzTfftKioKFuyZInb9H/++afly5fPWrdubS6Xy7y8vNzWw8ysS5cu1qpVK6ee5D9Y06ZNs8jISOfmGp9//rmNHTvWOnXqZJ07d7akpCTnj/3jjz9uoaGh5ufnZ3Xr1rWAgADr0aOHmV3a+YeHh9unn35qrVq1sgceeMC57ujyL3UiIyPtk08+cWrftGmT2wfzxMRE69Gjh/373/92an3wwQdtzJgxTt3jxo2z7777ziZMmGA//PCDM9758+etbNmyzul3o0ePdj7It2/f3vLkyWMVKlSwUqVK2axZs6xs2bLOtVfJ1q5da6GhofbQQw9Z1qxZLTg42LkEILkfmjVr5qz35es3ePBgq1q1qu3atcvOnj1r//nPf2zAgAHWrFkzt3sbmJnVrVvXcuXKZfny5bM2bdqYv7+/sw2sWrXKcubMadHR0W79eP78eUtKSrKdO3dagQIF7JNPPnHbDjZs2GA9e/Z0CzmX92ViYqI1adLE6UszS9GXyZefJPfl0KFD3foyMTHR2rVrl2ZfJk+fVl9u3rzZLl686NaXyZeHJPfjoEGDrEqVKrZr1y5nvS/vy+QPHMnzqFevXoq+7NChwxX78vDhw3bkyJE0+3LZsmXWpUuXNPvy2LFj1qBBgzT78ssvv7QjR4449ZcpU8ZeeOEFt22ydevWlitXLqcfDx48aF999ZXTl8eOHXPmkVpfrlixwmJjY6/Yl/369bMKFSqk2Zc9evSwI0eOpNmXfn5+1qRJkzT7cseOHbZo0SIzM7e+vPz93b59e8ufP79bP7711ltuH5pq1KiRZl/OmTPH+RI5rb5s3ry55ciRwypUqGAlS5ZM0Zc7duxw5pFaX3777bf29ddfp9mXO3bssLZt2zrv7wsXLqR4f1/eF48//rjdfffdVr9+fbe+TL7fyKpVqyx37tzWpk0bZ7+zZcsWmz59+hX3OzExMebv7++23xk5cqTzd37Lli1Wq1atNPc98+bNczu1Onnfk7zf2bJli9WsWdPy5s1rDzzwQKr7nS1bttjbb7/t7Hf+85//2IQJE5x9zwcffOD8LTdz3/ckJibali1brGPHjhYZGWkrV640s5T7neS+uHwbfuihh5x9j5+fnxUtWtQOHz5s+/fvt9y5c9sDDzzgbJcbN260Vq1a2eHDh9Pc77Rt29ayZ89ub775Zqrb5caNGy1v3rzO38CkpCS37fLdd9+11q1b25EjR1LdLjdu3GgFChRwe4//fb+zceNGa926tS1dutRCQ0Pt888/t2effdbZLhcsWGCtWrVyrg1v2rSp23a5ceNGK1mypPMeP3funNt22bFjR3vkkUecIPX3/U5AQIB16dLFDh8+bL/++qvlypXLNm3a5PZ5KD4+3g4ePGhnz561U6dOpdgud+/ebYMHD7bs2bOn+Xmoffv29uSTTzqfAwcPHmxffPGFJSUl2QcffGBLly61w4cPO9vx37fL+Ph4a9WqldvnoTfeeMPZLuPj453pDx48mOrnoeT1uHDhQqqfh+Lj4238+PGWP39+W758uZldCovJ2+Xjjz9uhw8fdr4E6dSp01U/D/3www/WrVs3t8+WFy5cuOJ7/OWXX77iZ8tOnTqleH9f3peXX6+dWl8m/z4uf49f3peXS36Pt2rVKsVny7+/v5PXIXn4v//9b7f3+Keffur2Hk/uC7NLn5cv78vkz0PHjh2z/fv3W1hYmPXs2dOqVatmY8eOtXPnzrnVWbt2bXviiSfsn4TTy2+y0aNHa/Hixdq1a5ck6euvv1aDBg3kcrl04MABVa5cWd98843q1q2rYsWK6ezZszpy5IiefvppHThwQHny5NGkSZM0b948zZs3T127dtWhQ4e0bNkyeXt7KyAgQNOmTVOrVq300ksvafr06bp48aLy5cunsmXLqmvXroqIiNC9996rqVOn6n//+5+io6PVpk0blS5dOkWdrVu3VoECBfTnn39q3rx5atmypfbs2aPx48frxIkTGj58uL766ivlzJlT+fLlkyR5e3tr9OjRWrRokS5cuKDPPvtMzZs316JFiyRJUVFR+vHHH/XOO+9o+/btMjMVLFhQNWvW1B9//KHNmzfrmWee0bBhw+RyubRr1y55e3srKChI3bp105EjR9SpUyf95z//0QMPPKCkpCRlzZpVWbNmlbe3t1wulw4ePKjcuXOre/fuki6ddj9v3jytXr1aK1euVGxsrHLnzi0fHx/n8WVDhw7VmDFjtGLFClWtWlUHDx7UhQsX5OPjo5MnTyogIECVKlWSJEVGRmratGlq0qSJVq1apYULF6p8+fKqW7eu3nzzTS1YsEDSpWd4ZsmSRUlJSUpMTFR4eLhatmyp/Pnz6/XXX9cnn3yicuXKKXv27EpKSlJ8fLwKFy7s/B4OHTqk3Llz6+6771ZiYqJ+//13Va1aVU2aNFHTpk3VuXNnZc2aVS6Xy+3RF/Xr11eDBg10/PhxPfTQQ4qLi9PAgQPl6+urXLlyqVChQnrsscc0adIkPfPMMypbtqz8/f0VGRmp7t27KzQ0VOfOnXP6/9NPP9XZs2eVO3dujR8/Xm+//bZ+/PFH/fbbb9q1a5fmzJmjLVu2OMt/4YUXNGbMGK1Zs0b9+vXTrl279PLLL+uvv/5SaGiocubMqXLlykmSSpcurRkzZqhs2bLatWuXevXqpV69eqlRo0Z67bXX9Pnnn+vcuXMaM2aMjh07pgIFCqhx48bKnz+/HnzwQfn4+OjDDz/UZ599pgsXLuj48eOKjIxUUlKS8uXL55xKtXfvXs2ZM0dbt27VunXrtHHjRhUqVEhPPvmkXC6XoqOjtXbtWg0cOFARERHq16+fcuTIobp166pixYratm2bqlevrn379qlHjx5q3769wsPD9dBDD2nu3Ll6/vnn1bVrVy1YsED79+9X/vz5FRwc7DxyxuVyaevWrZo4caI2b96sLFmyaNy4cW59uXXrVo0fP16//fabjhw5or59+2rkyJFufbl161Z1795dBw4cUFhYmEJCQlSmTBmnL6dPn65p06bp4MGDatasmUaNGqWWLVs6fXnq1Ck99dRT2r9/vwoWLKhevXopf/78atq0qXx8fDRv3jx1795dgYGBKliwoF577TUlJSUpb968zvt769atWrNmjdasWaNevXrpk08+ka+vr7p27epsfz/88IOaNGmiyMhITZkyRcHBwapXr54qVKigHTt2yN/fX/nz59eRI0d08eJFhYeH6+GHH9acOXP0/PPPq3v37nrqqafUuXNn9ezZUyEhIW59uWPHDj300ENq1qyZ7rnnnhTb5Y4dO3TfffcpKCjIebzKkCFDnL5s1qyZ7rvvPnXq1EkxMTHy8vJSrly5VLp0afn7+2vevHmKjo7Wt99+q06dOql3795q166dmjRpopUrV6ps2bI6deqUypYt68wjMDBQ+fPnV7NmzZy+bNCggXr27Kl+/fopV65cSkpKUkREhNOXO3bs0MyZM3Xq1CktW7ZMhQoVUpYsWZy+bNCggd577z2FhISod+/eyps3r4KDgxUVFaXy5ctr06ZNkqSHH35Ykpy+TN4ue/bsqVWrVmny5MmSpIiICKcvXf//sYznzp3TJ598oho1ajj9+NNPP2nFihXy8vLSmjVrdO+996pEiRLO35nL+7JOnTq69957ncdZnjp1yulLPz8/ffjhh6pXr56WLFmiYcOGqXPnzmrUqJFbXx48eFDly5d35pHcl5dvl02aNNHUqVOVJculjzKX9+Uff/yhe++9V927d9fnn3+e4v390EMP6cyZMypfvrxef/11SZcexVSrVi21adNGS5cu1aZNm+Tn56f8+fNrz549unjxovLkyaPHHntM58+f1+OPP64TJ06ocePGioqKUsGCBZ39TrI///xTs2bNUsmSJTVmzBhnv7NixQr5+Pho3bp1atCggbJnz+48mmjo0KF6+eWXtXLlSvn6+qpBgwaqX7++6tSpo9DQUGffkz9/fr355pt688035XK59Omnn6pBgwbOfuerr75Svnz5nGXUr19fpUqVUnh4uPLnz69KlSpp7969ev3119W1a1c1bdpUdevWVcGCBd32PevXr1eDBg1UpUoVnT9/XqtXr1aVKlWc/U7v3r31119/6f7771dUVJTq1auno0ePqkqVKhoyZIgefPBB/fHHH/rll1+0c+dOTZ8+XS1btlRYWJiaN2+uL774Qj179tTq1at19uxZVa5cWTExMQoNDXXbLs+fP6/PPvtMZ86c0UsvvaR58+bpp59+0sqVK+Xl5aV169apVq1aOn36tFasWOG2H1+zZo3q1aunWrVqKT4+XpUqVVL37t3d3uP//ve/NXToUF28eFG9e/fWgAED3PY74eHhzjLi4+NVoEAB5c+f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",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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1Uve3t7WKakpN05asWKFdcppVunevbtTfzt06KCCBQtq2bJlkqQdO3bo4MGD+t///qdz585Z/5e4uDg1atRIP/zwQ6r/w1NPPZWlfUxL0aJFNXfuXE2bNs06W6JDhw7atm1bqpur3Y727dvf8hrz8+fPa+3atXrsscd08eJFa2zOnTun0NBQHTx40LrZlq+vr/bs2aODBw/eVn969+7tdBT/4YcfVlJSko4dOybp+iUXFy5cUOfOnZ22H1dXV9WsWdPafjLT52XLlqlWrVpOZzLkz59fXbp0cepbRts+c+aMduzYofDwcKebgTVp0kTBwcG3NS4p/ZSkiIgIp+mDBg2SpFSndpcoUUKhoaG3nG/KqeTnzp3Te++9p8GDB+uxxx7Tt99+q+DgYI0dO9aqe+XKlXSvM/fw8NCVK1du2lbDhg11/Phxbdy4UcePH9eUKVOUnJysZ599VoMGDVKxYsU0a9YslS1bVvfff79mz559y/4D+O/i9HIASMexY8cUFBSUKrCl3M085cN1ijJlyqSax3333afLly/r7NmzCgwMvGl7vXv31qOPPqqrV69q7dq1mjZtWqqwfuzYsTRvSHVjn27nVPa0HDx4UPv27Us36ERHR0uSOnbsqPfee09PPvmkXnzxRTVq1EiPPPKIOnTokKHrHTMybmXLltWDDz6ojz/+WE888YSk66eW16pVS6VLl77p/L29vXXx4sVb9kP6v//p309vzZkzp0qWLGmVlyhRQhEREZo8ebI+/vhjPfzww2rdurW6du16x3cy/vt4OBwOlS5d2rrcICUkhoeHpzuPmJgYp8sSSpQocUd9yggfH580w7Wvr2+a62xmZWQZDh06JGOMXnrpJb300ktp1omOjlahQoU0evRotWnTRvfdd58qVKigZs2aqVu3bqpUqVKG+lO0aFGnv1PG+6+//pL0f/+nlC+p/s7b2zvTfU5v+//7+prRtlPW57S2wfvvv1/btm1L8/W3cuzYMbm4uKTaNgMDA+Xr65vqvTOj62fKafRubm5OX0a6uLioY8eOGjlypI4fP66iRYvK09NTCQkJac7nZjdqu1Hu3Lmdxnvu3LmKjIzUiy++qNWrV2vIkCH66KOP5HA49L///U/333+/GjRokKFlAfDfQugGgH+JMmXKqHHjxpKkli1bytXVVS+++KIaNGiQ6rrEW0nvOtqM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du3apRo1auizzz7Tu+++Kyl1+L98+bLOnj2boR3Uja+/cWwuXbqkxMRE/fXXXzd9bXo70JQ3oJu9ycTGxuqvv/5Kdzz++OMPbd++Pd3X79mzR6+//rouXryYbp19+/apW7du2rNnT7rzKF26tBYsWJBmeVRUlDZv3qyff/453TZSxurcuXNO01PGM2U9uXLlSrrzkG7+YSTlDT+9N/64uDjFx8en+4XP8ePHde7cuVTr9I327dunTz75RAkJCWmW79+/X4MHD9ahQ4fSLN+zZ4+KFi2qL774It3lOHfunA4dOpTu/yNljOLi4tIsz+hYSumP552OpXTr8bzTsZRuPZ53OpbSna+btxrLlPbvZN281VhKd75u3mospaxbN9nObz2Wd7r/kW69D7rT/Y90633Qne5/pFvvg261/5Huje383/KeyWej67LisxHb+f+50+38/Pnz2rt3r/744w9dvnxZDofjv3s2rEG2O3XqlElISDDGGJOUlORUtmvXLhMYGGjCwsJMvXr1TJ48eUy/fv1S1cmfP7/p1KmTiYiIMPnz5ze9e/e2ypOTk82cOXOMw+Ewnp6eZujQoebcuXNW+fbt242Xl5cZOHDgTfu5c+dOExAQYLp27Wr++OMPp7IdO3YYT09PExERYV544QXTsGFDEx0d7VTnt99+M02aNDHly5c3tWvXNitXrkzVxu+//26effZZEx4ebiIiIszvv/9uEhMTreXYtWuXqV+/vqlataqpWLGiefPNN81ff/1lvX7v3r1m3rx51t9/H8+9e/eaLl26mDp16pgWLVqY7777LlUffvvtN9OgQQNTtWpVky9fPvPRRx85lZ8+fdq4urqaggULms2bN6d6/Y4dO4zD4TBjx461piUnJzvV2b17t/Hz8zNPPfWU2bFjR6p5bN++3fj4+Ji8efOaOnXqmNOnTzuV79q1y9x///2mUqVKxuFwpFonUtpo2LChqV27tilXrpwZP368OXnypFN5mzZtTEhIiGnRooVZuHCh0+sPHTpklixZku4yGHP9//X000+bJk2amP79+5uff/7ZqXzPnj2mZcuWpmbNmqZatWpm6dKlTuXHjx83DofDlCxZ0kRFRRljUv/PUsbztddeS7Mvu3btMn5+fuaZZ54xu3btSjWP7du3Gz8/P5MzZ07TrVs3c/HixTT/H5UrVzbly5c3DofD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SGvdXL16tVm5cmW6Y5nS7/vuu8/azhMTE53Gs2fPnmb16tXprpvu7u7WfUdS1s2OHTta+5/9+/eb995776b7n4iICOPh4eG0/xkzZoz1Xr1//35Tu3Ztp+suhw0bZr7++mvzySefmEWLFjmdVp3W/qd169bGx8fH1K9f3xQuXNj8+OOPZv369dY+aP/+/dY8UvZBjz76qLX/+eSTT8z7779/0/3P6NGjjb+/v9myZYvVlxv3QY888ojTzb26detm/P39nfY/nTp1Mo8++qjZuXOnCQwMNEuWLHHazvfu3Ws6dOhgoqOj09wHLV261JQqVcqULl063e28Xr16pmLFita2/Nprrzlt5x988IF59NFHzdmzZ9NcN/fu3WuKFi1q8uXLl+Z2vnfvXuv16b1n7t2717Rv3978+eefpnXr1tZ+N2Xd3Lt3rylbtqypXLmyOXr0qLl69arTehkeHm4ee+wxazv/+/7H09PT9OzZ00RHR5uNGzeafPnymX379pk+ffpY62ZcXJw5ffq0uXLlirl48WKqdfOPP/4ww4YNM3ny5En3s1HXrl3Nk08+aX0m/Ptno++//95ER0db6/Lf1824uDjToUMHp89G06ZNc/psFBcXZ6Kjo83x48dNUFCQeeedd8wbb7xhrZtr1qwxkZGRVh/+vm7GxcWZSZMmmcKFC5tNmzYZY64HxRs/G6WMRXx8vBk4cKCpUqWKadeuXbqfjQIDA02rVq2cPmcmJibedDsfP358qs+ZN27nxlz/rJnedv7367XT2s67du1qChYs6LSdr1u3LtVnzRu38w4dOjh9zrxxm+7Zs6dp376907S3337bFClSxGk7//LLL1N91kzZzsPDw52285TPRufOnTMnT540AQEB5umnnzY1atQwr776qvVZIkW9evXME088Yf5LOL38HzZu3DitWbNGR48elSStXLlSTZs21enTp1WoUCEtXrxYTZo00a5du5Q3b14VL15cu3fv1oEDB3TixAkFBQUpf/78CgoKUuPGjbVu3Tp17txZBQsW1KlTp1SwYEHNnj1bHTp00OjRo/Xee+/p2rVrKlSokCpUqKBevXopKChIderU0axZs/Tdd98pNDRUHTt2VHBwcKp+PvrooypatKjOnDmjRYsWqV27djp27JgmTZqkCxcuaOTIkfr222+VN29eFSpUSJLk6uqqcePGacWKFUpMTNRXX32lNm3aaMWKFZKkxo0bq2DBglYbBw4cUMWKFRUQEKDPPvtM48eP1/bt2zVs2DC98MILSk5O1vHjx+Xi4qI+ffro0qVL6tGjh9555x3Vr19fycnJ8vLykpeXl1xdXeVwOHT69Gnlz59fffr0kXT9tPtFixZp27Zt2rJli1xdXXX69Gm5uLgoKSlJycnJevnllzVhwgRt3rxZDodDdevWVf78+a3HG8TFxcnT01NVq1ZVkSJFNHv2bIWFhWnr1q1avny5KlWqpIYNG+qtt97SsmXLFBQUpNOnTytfvnzKmTOnEhMTFRgYqMKFC6tatWo6ceKEpk6dqhUrVuiBBx6wTjGLi4tTiRIlJEmRkZHKnz+/HnzwQSUlJWn79u2qXr26wsLC1KpVK/Xv319Xr15VYmKiXF1dlZSUpD///FPVqlXTSy+9pNatW2v//v0KCAiQl5eXpk2bpqZNmyogIECtWrXSt99+q2effVYVKlSQh4eHihQpoj59+sjf319Xr161Htnm7u6unDlzytPTU0OHDtXcuXP1008/aePGjXJxcdHRo0f16aefav/+/dY69NJLL2nChAnasWOH2rZtq08//VRfffWVihYtqq5duypfvnwKDg6Wh4eHFi1apGbNmunnn39Wu3btVLJkSS1atEgtW7bU5s2bVaFCBcXFxWnChAk6d+6cihYtqhYtWqhw4cJq2bKl3NzctGjRIg0bNkzFixdXkSJF9Oyzz8oYY5265OrqqqNHj+rMmTPauXOnXn31Vc2ePVvu7u7q1auXJCk0NFQ7d+7UkCFDFBQUpIEDB8rX11cNGzZUlSpVdPDgQdWsWVMnTpxQ37591bVrVwUGBuqRRx7RwoUL9eKLL6pXr15atmyZTp48qcKFC8vHx8d61IzD4dCBAwc0depU/f7778qRI4cmTpyouXPn6scff9Svv/6qAwcOaNKkSfr111919uxZDRgwQGPGjLHGcuDAgTpw4ID69OmjU6dOKSAgQH5+fipfvrwkKTg4WO+9955mz56t06dPq3Xr1ho7dqzatWunKVOm6Ouvv9bFixf11FNP6eTJkypWrJj69eunwoULq1WrVnJzc9PixYv1xRdf6PDhw1adxMREBQUFWafMHT58WJMmTdKOHTu0Y8cO7dy5U8WLF9eTTz4ph8OhJk2a6IcfflBYWJiKFCmimTNnysfHR40aNVLlypV17tw5vfLKK5o6daqmTJmiunXrqkCBAipUqJC6deumN998U88884z27Nmj3r17a+DAgQoKCpKfn591Sufhw4f1yCOPqHXr1nrooYc0adIkp7GUrj8u8YcfflBCQoLOnj2rqVOn6tVXX9W2bdvkcDjUunVrPfzww+rRo4ciIiLk4uLitG7OmTNHr7zyilxdXfX111+rVKlSatasmTWWgYGBOnz4sB5++GE9/vjjatOmjQoXLqx8+fKpc+fOOnbsmBYtWqSmTZvq6aef1sCBA5UvXz4lJycrKChI0vVHwzz88MOqV6+e9u7dq7179zqN5SOPPKKkpCRVqFBB4eHhGjhwoOLi4lS7dm116tRJ69at0969eyVJ7du3l3T9EUo3rptPP/20tm7dqhkzZkhSqrGUrp8i+MUXX6hWrVrWWP7000/avHmzXFxctGPHDtWpU0f333+/9TiY4cOHW+tmgwYNVKdOHevRlhcvXrTG0t3dXYsXL1ajRo20bt06vfzyy3r88cfVvHlzhYWFacuWLapQoYJOnz6tSpUqWfPIlSuX07q5aNEihYWFadasWcqR4/pHmBvH0tXVVTt27NDcuXOVnJxsjaWrq6u1nTds2FDLly9XnTp1rGW/cd38/fff5e7ursKFC+vYsWO6du2aChQooP/9739KSEhQt27ddOHCBbVo0UKNGzdWsWLFrP1PijNnzujDDz9U2bJlNWHCBGv/s3nzZrm5uWnXrl1q2rSp8uTJYz2WaMSIERo/fry2bNminDlzqmnTpmrSpIkaNGggf39/a/9TuHBhzZ07V/Xq1dNPP/2k5s2b66233lLPnj3Vs2dP7dq1S3PnztXp06dVt25dax45cuRQYGCg2rRpo0KFCunNN99Ur1691KpVKzVs2FDFihVz2v+4uLho165devPNN3XlyhWtWrVK1atXV1JSklq1aqVWrVqpU6dOWr58uXLlyqW6deuqZMmS1n6+SZMmunDhgpo3b65Ro0YpLi7O2jaKFStmbedPP/20tm3bpitXruiBBx5QRESE/P39rXVz165d6tSpk+Li4lSjRg2ndXPLli2Srj+y9Oeff1ZSUpLeffddXbp0yWk7b9SokWrXrq24uDhVrVpVffr0cdrO3377bY0YMULXrl1T//79NXjwYDVv3tzazs+ePasaNWpYr3/0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",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"# 14a. Top Routes by Chance\n",
"plt.figure(figsize=(10, 6))\n",
"plt.bar(df_chance['Route'], df_chance['Chance'].apply(\n",
" lambda x: x.get_raw_value() if x else 0), color='skyblue')\n",
"plt.xticks(rotation=45, ha='right')\n",
"plt.ylabel('Chance')\n",
"plt.title('Top Routes by Chance')\n",
"plt.tight_layout()\n",
"plt.show()\n",
"\n",
"# 14b. Top Routes by Cost per 1 (DIV)\n",
"plt.figure(figsize=(10, 6))\n",
"plt.bar(df_cost['Route'], df_cost['Cost per 1 (DIV)'].apply(\n",
" lambda x: x if x else 0), color='salmon')\n",
"plt.xticks(rotation=45, ha='right')\n",
"plt.ylabel('Cost per 1 (Divines)')\n",
"plt.title('Top Routes by Cost per 1 (DIV)')\n",
"plt.tight_layout()\n",
"plt.show()\n",
"\n",
"# 14c. Top Routes by Cost per 1 * by tries needed for 60 percent (DIV)\n",
"heights = df_efficiency['Cost per 1 (DIV)'] * \\\n",
" df_efficiency['Tries needed for 60 %'].apply(lambda x: x if x else 0)\n",
"\n",
"plt.figure(figsize=(10, 6))\n",
"plt.bar(df_efficiency['Route'], heights, color='salmon')\n",
"plt.xticks(rotation=45, ha='right')\n",
"plt.ylabel('Cost per 1 (Divines)')\n",
"plt.title('Top Routes by Cost per 1 * Tries needed for 60 %')\n",
"plt.tight_layout()\n",
"plt.show()\n",
"\n",
"# 14d. Top Currency Groups by Chance\n",
"# plt.figure(figsize=(10, 6))\n",
"# plt.bar(df_groups['Currencies'], df_groups['Group Chance'].apply(\n",
"# lambda x: x.get_raw_value() if x else 0), color='lightgreen')\n",
"# plt.xticks(rotation=45, ha='right')\n",
"# plt.ylabel('Group Chance')\n",
"# plt.title('Top Currency Groups by Chance')\n",
"# plt.tight_layout()\n",
"# plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".env",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}