868 lines
266 KiB
Plaintext
868 lines
266 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Setup"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Open Alteryx XML into a string \n",
|
|
"import polars as pl \n",
|
|
"import xml.etree.ElementTree as ET\n",
|
|
"\n",
|
|
"xml_file_path = \"./SimpleWorkflow/SimpleWorkflow.yxmd\"\n",
|
|
"tree = ET.parse(xml_file_path)\n",
|
|
"root = tree.getroot()\n",
|
|
"\n",
|
|
"xml_string = ET.tostring(root, encoding='unicode')\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"('1', 'TextInput (1)', '<Node ToolID=\"1\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.TextInput.TextInput\">\\n <Position x=\"54\" y=\"54\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <NumRows value=\"3\" />\\n <Fields>\\n <Field name=\"Column1\" />\\n <Field name=\"Column 2\" />\\n </Fields>\\n <Data>\\n <r>\\n <c>1</c>\\n <c>4</c>\\n </r>\\n <r>\\n <c>2</c>\\n <c>5</c>\\n </r>\\n <r>\\n <c>3</c>\\n <c>6</c>\\n </r>\\n </Data>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxTextInput\" />\\n </Node>\\n ')\n",
|
|
"('2', 'AlteryxSelect (2)', '<Node ToolID=\"2\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.AlteryxSelect.AlteryxSelect\">\\n <Position x=\"186\" y=\"54\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <OrderChanged value=\"False\" />\\n <CommaDecimal value=\"False\" />\\n <SelectFields>\\n <SelectField field=\"Column1\" selected=\"True\" type=\"Int64\" size=\"8\" />\\n <SelectField field=\"Column 2\" selected=\"False\" type=\"WString\" size=\"3\" />\\n <SelectField field=\"*Unknown\" selected=\"False\" />\\n </SelectFields>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxSelect\" />\\n </Node>\\n ')\n",
|
|
"('3', 'BrowseV2 (3)', '<Node ToolID=\"3\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.BrowseV2.BrowseV2\">\\n <Position x=\"318\" y=\"54\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <TempFile>C:\\\\Users\\\\casey.morter\\\\AppData\\\\Local\\\\Temp\\\\Engine_28104_a89278053b87e446bfe970eb948f1ef4_\\\\Engine_28104_9b8a61f4c39b2e4ea05f98886a386376~.yxdb</TempFile>\\n <TempFileDataProfiling />\\n <Layout>\\n <View1>\\n <Hints>\\n <Table />\\n </Hints>\\n </View1>\\n </Layout>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxBrowseV2\" />\\n </Node>\\n ')\n",
|
|
"('4', 'TextInput (4)', '<Node ToolID=\"4\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.TextInput.TextInput\">\\n <Position x=\"54\" y=\"246\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <NumRows value=\"3\" />\\n <Fields>\\n <Field name=\"Column 3\" />\\n <Field name=\"Column 4\" />\\n <Field name=\"Ham\" />\\n <Field name=\"Cheese\" />\\n </Fields>\\n <Data>\\n <r>\\n <c>5</c>\\n <c>8</c>\\n <c>z</c>\\n <c>a</c>\\n </r>\\n <r>\\n <c>6</c>\\n <c>9</c>\\n <c>b</c>\\n <c>d</c>\\n </r>\\n <r>\\n <c>7</c>\\n <c>10</c>\\n <c>c</c>\\n <c>c</c>\\n </r>\\n </Data>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxTextInput\" />\\n </Node>\\n ')\n",
|
|
"('5', 'AlteryxSelect (5)', '<Node ToolID=\"5\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.AlteryxSelect.AlteryxSelect\">\\n <Position x=\"426\" y=\"390\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <OrderChanged value=\"False\" />\\n <CommaDecimal value=\"False\" />\\n <SelectFields>\\n <SelectField field=\"Column 3\" selected=\"True\" rename=\"Col_3_renamed\" />\\n <SelectField field=\"Column 4\" selected=\"False\" />\\n <SelectField field=\"*Unknown\" selected=\"True\" />\\n </SelectFields>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxSelect\" />\\n </Node>\\n ')\n",
|
|
"('6', 'Formula (6)', '<Node ToolID=\"6\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.Formula.Formula\">\\n <Position x=\"354\" y=\"474\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <FormulaFields>\\n <FormulaField expression=\"[Count] + 10\" field=\"MoreCount\" size=\"4\" type=\"Int32\" />\\n </FormulaFields>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText>MoreCount = [Count] + 10\\n</DefaultAnnotationText>\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxFormula\" />\\n </Node>\\n ')\n",
|
|
"('7', 'Join (7)', '<Node ToolID=\"7\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.Join.Join\">\\n <Position x=\"522\" y=\"402\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration joinByRecordPos=\"False\">\\n <JoinInfo connection=\"Left\">\\n <Field field=\"Ham\" />\\n <Field field=\"Cheese\" />\\n </JoinInfo>\\n <JoinInfo connection=\"Right\">\\n <Field field=\"Ham\" />\\n <Field field=\"Cheese\" />\\n </JoinInfo>\\n <SelectConfiguration>\\n <Configuration outputConnection=\"Join\">\\n <OrderChanged value=\"False\" />\\n <CommaDecimal value=\"False\" />\\n <SelectFields>\\n <SelectField field=\"Right_Ham\" selected=\"True\" rename=\"Right_Ham\" input=\"Right_\" />\\n <SelectField field=\"Right_Cheese\" selected=\"True\" rename=\"Right_Cheese\" input=\"Right_\" />\\n <SelectField field=\"Right_Column 3\" selected=\"True\" rename=\"Right_Column 3\" input=\"Right_\" type=\"V_String\" size=\"11\" />\\n <SelectField field=\"Right_Column 4\" selected=\"True\" rename=\"Right_Column 4\" input=\"Right_\" type=\"Int64\" size=\"8\" />\\n <SelectField field=\"*Unknown\" selected=\"True\" />\\n </SelectFields>\\n </Configuration>\\n </SelectConfiguration>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxJoin\" />\\n </Node>\\n ')\n",
|
|
"('10', 'BrowseV2 (10)', '<Node ToolID=\"10\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.BrowseV2.BrowseV2\">\\n <Position x=\"618\" y=\"486\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <TempFile>C:\\\\Users\\\\casey.morter\\\\AppData\\\\Local\\\\Temp\\\\Engine_28104_a89278053b87e446bfe970eb948f1ef4_\\\\Engine_28104_c1d268f486209c40bdc02a676a529ee0~.yxdb</TempFile>\\n <TempFileDataProfiling />\\n <Layout>\\n <View1>\\n <Hints>\\n <Table />\\n </Hints>\\n </View1>\\n </Layout>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxBrowseV2\" />\\n </Node>\\n ')\n",
|
|
"('11', 'Formula (11)', '<Node ToolID=\"11\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.Formula.Formula\">\\n <Position x=\"450\" y=\"618\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <FormulaFields>\\n <FormulaField expression=\"[Engine.TempFilePath]\" field=\"Path\" size=\"1073741823\" type=\"V_WString\" />\\n </FormulaFields>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText>Path = [Engine.TempFilePath]\\n</DefaultAnnotationText>\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxFormula\" />\\n </Node>\\n ')\n",
|
|
"('12', 'Sample (12)', '<Node ToolID=\"12\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.Sample.Sample\">\\n <Position x=\"330\" y=\"618\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <Mode>First</Mode>\\n <N>1</N>\\n <GroupFields orderChanged=\"False\" />\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText>First 1</DefaultAnnotationText>\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxSample\" />\\n </Node>\\n ')\n",
|
|
"('13', 'BrowseV2 (13)', '<Node ToolID=\"13\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.BrowseV2.BrowseV2\">\\n <Position x=\"546\" y=\"618\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <TempFile>C:\\\\Users\\\\casey.morter\\\\AppData\\\\Local\\\\Temp\\\\Engine_28104_a89278053b87e446bfe970eb948f1ef4_\\\\Engine_28104_4d6ee2d9de8fac4095ab55a2bceed63e~.yxdb</TempFile>\\n <TempFileDataProfiling />\\n <Layout>\\n <View1>\\n <Hints>\\n <Table />\\n </Hints>\\n </View1>\\n </Layout>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxBrowseV2\" />\\n </Node>\\n ')\n",
|
|
"('14', 'DbFileOutput (14)', '<Node ToolID=\"14\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.DbFileOutput.DbFileOutput\">\\n <Position x=\"702\" y=\"402\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <File MaxRecords=\"\" FileFormat=\"0\">.\\\\SimpleWorkflowOut.csv</File>\\n <Passwords />\\n <FormatSpecificOptions>\\n <LineEndStyle>CRLF</LineEndStyle>\\n <Delimeter>,</Delimeter>\\n <ForceQuotes>False</ForceQuotes>\\n <HeaderRow>True</HeaderRow>\\n <CodePage>28591</CodePage>\\n <WriteBOM>True</WriteBOM>\\n </FormatSpecificOptions>\\n <MultiFile value=\"False\" />\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText>SimpleWorkflowOut.csv</DefaultAnnotationText>\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxDbFileOutput\" />\\n </Node>\\n ')\n",
|
|
"('15', 'TextInput (15)', '<Node ToolID=\"15\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.TextInput.TextInput\">\\n <Position x=\"54\" y=\"330\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <NumRows value=\"3\" />\\n <Fields>\\n <Field name=\"Ham\" />\\n <Field name=\"Cheese\" />\\n <Field name=\"Count\" />\\n </Fields>\\n <Data>\\n <r>\\n <c>a</c>\\n <c>a</c>\\n <c>4</c>\\n </r>\\n <r>\\n <c>b</c>\\n <c>d</c>\\n <c>6</c>\\n </r>\\n <r>\\n <c>c</c>\\n <c>z</c>\\n <c>7</c>\\n </r>\\n </Data>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxTextInput\" />\\n </Node>\\n ')\n",
|
|
"('16', 'HamCheeseJoin', '<Node ToolID=\"16\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.Join.Join\">\\n <Position x=\"306\" y=\"198\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration joinByRecordPos=\"False\">\\n <JoinInfo connection=\"Left\">\\n <Field field=\"Ham\" />\\n <Field field=\"Cheese\" />\\n </JoinInfo>\\n <JoinInfo connection=\"Right\">\\n <Field field=\"Ham\" />\\n <Field field=\"Cheese\" />\\n </JoinInfo>\\n <SelectConfiguration>\\n <Configuration outputConnection=\"Join\">\\n <OrderChanged value=\"False\" />\\n <CommaDecimal value=\"False\" />\\n <SelectFields>\\n <SelectField field=\"Right_Ham\" selected=\"True\" rename=\"Right_Ham\" input=\"Right_\" />\\n <SelectField field=\"Right_Cheese\" selected=\"True\" rename=\"Right_Cheese\" input=\"Right_\" />\\n <SelectField field=\"*Unknown\" selected=\"True\" />\\n </SelectFields>\\n </Configuration>\\n </SelectConfiguration>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name>HamCheeseJoin</Name>\\n <DefaultAnnotationText>HamCheeseJoin</DefaultAnnotationText>\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxJoin\" />\\n </Node>\\n ')\n",
|
|
"('17', 'BrowseV2 (17)', '<Node ToolID=\"17\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.BrowseV2.BrowseV2\">\\n <Position x=\"402\" y=\"114\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <TempFile>C:\\\\Users\\\\casey.morter\\\\AppData\\\\Local\\\\Temp\\\\Engine_28104_a89278053b87e446bfe970eb948f1ef4_\\\\Engine_28104_e692dab3020ec84ebe69a5de3e6990c9~.yxdb</TempFile>\\n <TempFileDataProfiling />\\n <Layout />\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxBrowseV2\" />\\n </Node>\\n ')\n",
|
|
"('18', 'BrowseV2 (18)', '<Node ToolID=\"18\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.BrowseV2.BrowseV2\">\\n <Position x=\"402\" y=\"198\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <TempFile>C:\\\\Users\\\\casey.morter\\\\AppData\\\\Local\\\\Temp\\\\Engine_28104_a89278053b87e446bfe970eb948f1ef4_\\\\Engine_28104_83aac5fa43df8044b1161f8298a2a180~.yxdb</TempFile>\\n <TempFileDataProfiling />\\n <Layout />\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxBrowseV2\" />\\n </Node>\\n ')\n",
|
|
"('19', 'BrowseV2 (19)', '<Node ToolID=\"19\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.BrowseV2.BrowseV2\">\\n <Position x=\"402\" y=\"294\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <TempFile>C:\\\\Users\\\\casey.morter\\\\AppData\\\\Local\\\\Temp\\\\Engine_28104_a89278053b87e446bfe970eb948f1ef4_\\\\Engine_28104_c2ab20e4f5222342bc00e6424dbc38bd~.yxdb</TempFile>\\n <TempFileDataProfiling />\\n <Layout>\\n <View1>\\n <Hints>\\n <Table />\\n </Hints>\\n </View1>\\n </Layout>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxBrowseV2\" />\\n </Node>\\n ')\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Parse out nodes (tool data) into a dict\n",
|
|
"def extract_tool_id_and_contents(xml_string):\n",
|
|
" root = ET.fromstring(xml_string)\n",
|
|
" results = []\n",
|
|
" for node in root.iter('Node'):\n",
|
|
" tool_type = node.find('GuiSettings').get('Plugin').split('.')[-1]\n",
|
|
" # print('tool type:',tool_type)\n",
|
|
" tool_id = node.attrib.get('ToolID')\n",
|
|
"\n",
|
|
" tool_name = node.find('Properties/Annotation/Name').text\n",
|
|
" if not tool_name:\n",
|
|
" tool_name = tool_type + \" (\" + tool_id + \")\"\n",
|
|
"\n",
|
|
" content = ET.tostring(node, encoding='unicode')\n",
|
|
" results.append((tool_id, tool_name, content))\n",
|
|
" return results\n",
|
|
"\n",
|
|
"results = extract_tool_id_and_contents(xml_string)\n",
|
|
"\n",
|
|
"\n",
|
|
"for tool in results:\n",
|
|
" print(tool)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Tool Functions"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def tool_select(col_spec: dict):\n",
|
|
" \"\"\" Generates select tool code\"\"\"\n",
|
|
" dynamic_code = \"df_output = df.with_columns(\\n\"\n",
|
|
" dynamic_code_suffix = ''\n",
|
|
" for old_name, (new_name, type, selected) in col_spec.items():\n",
|
|
"\n",
|
|
" if old_name == '*Unknown':\n",
|
|
" break \n",
|
|
" \n",
|
|
" if new_name:\n",
|
|
" alias = f\".alias('{new_name}')\"\n",
|
|
" dynamic_code_suffix += f\"df_output = df_output.drop(f'{old_name}')\\n\"\n",
|
|
" else:\n",
|
|
" alias = ''\n",
|
|
"\n",
|
|
" if type is not None:\n",
|
|
" if 'Int' in type:\n",
|
|
" cast = f\".cast(pl.{pl.Int64})\"\n",
|
|
" elif 'String' in type:\n",
|
|
" cast = f\".cast(pl.{pl.String})\"\n",
|
|
" else:\n",
|
|
" cast = ''\n",
|
|
"\n",
|
|
" if selected != 'False':\n",
|
|
" dynamic_code += f\"df.select(pl.col(f'{old_name}'){cast}{alias}),\\n\"\n",
|
|
" else:\n",
|
|
" dynamic_code_suffix += f\"df_output = df_output.drop(f'{old_name}')\\n\"\n",
|
|
"\n",
|
|
" dynamic_code += \")\\n\" + dynamic_code_suffix\n",
|
|
" \n",
|
|
" return dynamic_code"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"shape: (2, 4)\n",
|
|
"┌──────────┬──────────┬─────┬────────┐\n",
|
|
"│ Column 3 ┆ Column 4 ┆ Ham ┆ Cheese │\n",
|
|
"│ --- ┆ --- ┆ --- ┆ --- │\n",
|
|
"│ str ┆ str ┆ str ┆ str │\n",
|
|
"╞══════════╪══════════╪═════╪════════╡\n",
|
|
"│ 5 ┆ 8 ┆ z ┆ a │\n",
|
|
"│ 7 ┆ 10 ┆ c ┆ c │\n",
|
|
"└──────────┴──────────┴─────┴────────┘ shape: (1, 7)\n",
|
|
"┌──────────┬──────────┬─────┬────────┬───────────┬──────────────┬───────┐\n",
|
|
"│ Column 3 ┆ Column 4 ┆ Ham ┆ Cheese ┆ Ham_right ┆ Cheese_right ┆ Count │\n",
|
|
"│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n",
|
|
"│ str ┆ str ┆ str ┆ str ┆ str ┆ str ┆ str │\n",
|
|
"╞══════════╪══════════╪═════╪════════╪═══════════╪══════════════╪═══════╡\n",
|
|
"│ 6 ┆ 9 ┆ b ┆ d ┆ b ┆ d ┆ 6 │\n",
|
|
"└──────────┴──────────┴─────┴────────┴───────────┴──────────────┴───────┘ shape: (2, 3)\n",
|
|
"┌─────┬────────┬───────┐\n",
|
|
"│ Ham ┆ Cheese ┆ Count │\n",
|
|
"│ --- ┆ --- ┆ --- │\n",
|
|
"│ str ┆ str ┆ str │\n",
|
|
"╞═════╪════════╪═══════╡\n",
|
|
"│ a ┆ a ┆ 4 │\n",
|
|
"│ c ┆ z ┆ 7 │\n",
|
|
"└─────┴────────┴───────┘\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"def tool_join(join_spec: dict, df_in_L: pl.DataFrame, df_in_R: pl.DataFrame):\n",
|
|
" \"\"\" Generates join tool code \"\"\"\n",
|
|
" dynamic_code = f\"df_out_L = In_L.join(In_R, on={join_spec['joinParams']}, how='anti')\\n\"\n",
|
|
" dynamic_code += f\"df_out_J = In_L.join(In_R, on={join_spec['joinParams']}, how='inner', coalesce=False)\\n\"\n",
|
|
" dynamic_code += f\"df_out_R = In_R.join(In_L, on={join_spec['joinParams']}, how='anti')\"\n",
|
|
"\n",
|
|
" return dynamic_code\n",
|
|
"\n",
|
|
"\n",
|
|
"# Join spec\n",
|
|
"xml_join_tool = results[6][2]\n",
|
|
"join_spec = getConf_Join(xml_join_tool)\n",
|
|
"\n",
|
|
"# Input L: TextInput 4\n",
|
|
"In_L = input_textInput(results[3][2])\n",
|
|
"# Input R: TextInput 15\n",
|
|
"In_R = input_textInput(results[12][2])\n",
|
|
"\n",
|
|
"code = tool_join(join_spec,In_L, In_R)\n",
|
|
"\n",
|
|
"exec(code)\n",
|
|
"\n",
|
|
"print(df_out_L, df_out_J, df_out_R)\n",
|
|
"\n",
|
|
"## Out L\n",
|
|
"# Column 3\tColumn 4\tHam\tCheese\n",
|
|
"# 7\t 10\t c\tc\n",
|
|
"# 5\t 8\t z\ta\n",
|
|
"\n",
|
|
"## Out J\n",
|
|
"# Column 3\tColumn 4\tHam\tCheese\tRight_Ham\tRight_Cheese\tCount\n",
|
|
"# 6\t 9\t b\td\t b\t d\t 6\n",
|
|
"\n",
|
|
"## Out R\n",
|
|
"# Ham\tCheese\tCount\n",
|
|
"# a\t a\t 4\n",
|
|
"# c\t z\t 7\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"L in: shape: (3, 3)\n",
|
|
"┌─────┬─────┬─────┐\n",
|
|
"│ foo ┆ bar ┆ ham │\n",
|
|
"│ --- ┆ --- ┆ --- │\n",
|
|
"│ i64 ┆ f64 ┆ str │\n",
|
|
"╞═════╪═════╪═════╡\n",
|
|
"│ 1 ┆ 6.0 ┆ a │\n",
|
|
"│ 2 ┆ 7.0 ┆ b │\n",
|
|
"│ 3 ┆ 8.0 ┆ c │\n",
|
|
"└─────┴─────┴─────┘\n",
|
|
"R in: shape: (3, 2)\n",
|
|
"┌───────┬─────┐\n",
|
|
"│ apple ┆ ham │\n",
|
|
"│ --- ┆ --- │\n",
|
|
"│ str ┆ str │\n",
|
|
"╞═══════╪═════╡\n",
|
|
"│ x ┆ a │\n",
|
|
"│ y ┆ b │\n",
|
|
"│ z ┆ d │\n",
|
|
"└───────┴─────┘\n",
|
|
"L: shape: (1, 3)\n",
|
|
"┌─────┬─────┬─────┐\n",
|
|
"│ foo ┆ bar ┆ ham │\n",
|
|
"│ --- ┆ --- ┆ --- │\n",
|
|
"│ i64 ┆ f64 ┆ str │\n",
|
|
"╞═════╪═════╪═════╡\n",
|
|
"│ 3 ┆ 8.0 ┆ c │\n",
|
|
"└─────┴─────┴─────┘\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"df = pl.DataFrame(\n",
|
|
" {\n",
|
|
" \"foo\": [1, 2, 3],\n",
|
|
" \"bar\": [6.0, 7.0, 8.0],\n",
|
|
" \"ham\": [\"a\", \"b\", \"c\"],\n",
|
|
" }\n",
|
|
")\n",
|
|
"\n",
|
|
"other_df = pl.DataFrame(\n",
|
|
" {\n",
|
|
" \"apple\": [\"x\", \"y\", \"z\"],\n",
|
|
" \"ham\": [\"a\", \"b\", \"d\"],\n",
|
|
" }\n",
|
|
")\n",
|
|
"\n",
|
|
"print(\"L in:\", df)\n",
|
|
"\n",
|
|
"print(\"R in:\", other_df)\n",
|
|
"\n",
|
|
"print(\"L:\", df.join(other_df, left_on=\"ham\", right_on=\"ham\", how='anti'))\n",
|
|
"\n",
|
|
"# print(\"J: \", df.join(other_df, on=\"ham\", how='inner'))\n",
|
|
"\n",
|
|
"# print(\"R:\", other_df.join(df, on=\"ham\", how='anti'))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Parsing Tool Config data"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def input_textInput(xml_string):\n",
|
|
" # Get XML for a Text input tool\n",
|
|
" root = ET.fromstring(xml_string)\n",
|
|
" # Extract the field names\n",
|
|
" fields = [field.attrib['name'] for field in root.findall(\".//Fields/Field\")]\n",
|
|
" # Extract the data rows\n",
|
|
" data_rows = [[c.text for c in row.findall(\"c\")] for row in root.findall(\".//Data/r\")]\n",
|
|
" # Create the polars dataframe\n",
|
|
" df = pl.DataFrame(data_rows, fields, orient=\"row\")\n",
|
|
" # Display the dataframe\n",
|
|
" return df"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def getConf_Select(xml_string):\n",
|
|
" root = ET.fromstring(xml_string)\n",
|
|
" dict_SelectTool = {}\n",
|
|
"\n",
|
|
" for field in root.findall(\".//SelectFields/SelectField\"):\n",
|
|
" field_name = field.attrib['field']\n",
|
|
" field_selected = field.attrib['selected']\n",
|
|
"\n",
|
|
" try:\n",
|
|
" field_type = field.attrib['type']\n",
|
|
" except:\n",
|
|
" field_type = None\n",
|
|
" try:\n",
|
|
" field_rename = field.attrib['rename']\n",
|
|
" except:\n",
|
|
" field_rename = None\n",
|
|
"\n",
|
|
" dict_SelectTool[field_name] = (field_rename, field_type, field_selected)\n",
|
|
"\n",
|
|
" return dict_SelectTool"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"{'joinParams': ['Ham', 'Cheese'], 'fields': {'Right_Ham': ['Right_Ham', 'Right_', None, None], 'Right_Cheese': ['Right_Cheese', 'Right_', None, None], 'Right_Column 3': ['Right_Column 3', 'Right_', 'V_String', '11'], 'Right_Column 4': ['Right_Column 4', 'Right_', 'Int64', '8']}}\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"def getConf_Join(xml_string):\n",
|
|
" root = ET.fromstring(xml_string)\n",
|
|
" dict_JoinTool = {}\n",
|
|
"\n",
|
|
" # Join parameters\n",
|
|
" for joinField in root.findall(\".//Configuration/JoinInfo\"):\n",
|
|
" if joinField.attrib['connection'] == \"Left\":\n",
|
|
" left_on = [field.attrib['field'] for field in joinField]\n",
|
|
" if joinField.attrib['connection'] == \"Right\":\n",
|
|
" right_on = [field.attrib['field'] for field in joinField]\n",
|
|
"\n",
|
|
" if left_on == right_on:\n",
|
|
" dict_JoinTool['joinParams'] = (left_on)\n",
|
|
" else:\n",
|
|
" dict_JoinTool['joinParams'] = (left_on, right_on)\n",
|
|
"\n",
|
|
" \n",
|
|
" # Field Parameters\n",
|
|
" fieldConfig = {}\n",
|
|
" for fields in root.findall(\".//SelectField\"):\n",
|
|
" result = []\n",
|
|
" if fields.attrib['selected'] == 'True':\n",
|
|
" for field in ['rename', 'input', 'type', 'size']:\n",
|
|
" try:\n",
|
|
" result.append(fields.attrib[field])\n",
|
|
" except KeyError:\n",
|
|
" result.append(None)\n",
|
|
"\n",
|
|
" if fields.attrib['field'] != '*Unknown':\n",
|
|
" fieldConfig[fields.attrib['field']] = result\n",
|
|
"\n",
|
|
" dict_JoinTool['fields'] = fieldConfig\n",
|
|
"\n",
|
|
" return dict_JoinTool\n",
|
|
"\n",
|
|
"print(getConf_Join(xml_join_tool))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Working with the XML file"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"ename": "ParseError",
|
|
"evalue": "syntax error: line 1, column 0 (<string>)",
|
|
"output_type": "error",
|
|
"traceback": [
|
|
"Traceback \u001b[1;36m(most recent call last)\u001b[0m:\n",
|
|
"\u001b[0m File \u001b[0;32mc:\\Users\\casey.morter\\AppData\\Local\\miniconda3\\envs\\polaryx\\Lib\\site-packages\\IPython\\core\\interactiveshell.py:3577\u001b[0m in \u001b[0;35mrun_code\u001b[0m\n exec(code_obj, self.user_global_ns, self.user_ns)\u001b[0m\n",
|
|
"\u001b[0m Cell \u001b[0;32mIn[11], line 6\u001b[0m\n ToolType = ET.fromstring(ToolXML).find(\".//GuiSettings\").attrib['Plugin'].split(\".\")[2]\u001b[0m\n",
|
|
"\u001b[1;36m File \u001b[1;32mc:\\Users\\casey.morter\\AppData\\Local\\miniconda3\\envs\\polaryx\\Lib\\xml\\etree\\ElementTree.py:1335\u001b[1;36m in \u001b[1;35mXML\u001b[1;36m\n\u001b[1;33m parser.feed(text)\u001b[1;36m\n",
|
|
"\u001b[1;36m File \u001b[1;32m<string>\u001b[1;36m\u001b[0m\n\u001b[1;31mParseError\u001b[0m\u001b[1;31m:\u001b[0m syntax error: line 1, column 0\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Parse all tools in tools dict\n",
|
|
"for tool in results:\n",
|
|
"\n",
|
|
" ToolID = tool[0]\n",
|
|
" ToolXML = tool[1]\n",
|
|
" ToolType = ET.fromstring(ToolXML).find(\".//GuiSettings\").attrib['Plugin'].split(\".\")[2]\n",
|
|
"\n",
|
|
" print(ToolID, ToolType)\n",
|
|
"\n",
|
|
" if ToolType == 'TextInput':\n",
|
|
" print(input_textInput(ToolXML))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"############### Input dataframe (TextInput):\n",
|
|
" shape: (3, 4)\n",
|
|
"┌──────────┬──────────┬─────┬────────┐\n",
|
|
"│ Column 3 ┆ Column 4 ┆ Ham ┆ Cheese │\n",
|
|
"│ --- ┆ --- ┆ --- ┆ --- │\n",
|
|
"│ str ┆ str ┆ str ┆ str │\n",
|
|
"╞══════════╪══════════╪═════╪════════╡\n",
|
|
"│ 5 ┆ 8 ┆ z ┆ a │\n",
|
|
"│ 6 ┆ 9 ┆ b ┆ d │\n",
|
|
"│ 7 ┆ 10 ┆ c ┆ c │\n",
|
|
"└──────────┴──────────┴─────┴────────┘\n",
|
|
"\n",
|
|
"############### Generated code from Select tool: \n",
|
|
" df_output = df.with_columns(\n",
|
|
"df.select(pl.col(f'Column 3').alias('Col_3_renamed')),\n",
|
|
")\n",
|
|
"df_output = df_output.drop(f'Column 3')\n",
|
|
"df_output = df_output.drop(f'Column 4')\n",
|
|
"\n",
|
|
"\n",
|
|
"############### Output DF: \n",
|
|
"\n",
|
|
" shape: (3, 3)\n",
|
|
"┌─────┬────────┬───────────────┐\n",
|
|
"│ Ham ┆ Cheese ┆ Col_3_renamed │\n",
|
|
"│ --- ┆ --- ┆ --- │\n",
|
|
"│ str ┆ str ┆ str │\n",
|
|
"╞═════╪════════╪═══════════════╡\n",
|
|
"│ z ┆ a ┆ 5 │\n",
|
|
"│ b ┆ d ┆ 6 │\n",
|
|
"│ c ┆ c ┆ 7 │\n",
|
|
"└─────┴────────┴───────────────┘\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Tool 1: TextInput\n",
|
|
"xml_tool1 = results[3][2]\n",
|
|
"df_in = input_textInput(xml_tool1)\n",
|
|
"print(\"\\n############### Input dataframe (TextInput):\\n\", df_in)\n",
|
|
"# Tool 2: Select\n",
|
|
"col_spec = getConf_Select(results[4][2])\n",
|
|
"# Generate code from \n",
|
|
"code = tool_select(col_spec)\n",
|
|
"print(\"\\n############### Generated code from Select tool: \\n\", code)\n",
|
|
"# Execute and display output\n",
|
|
"df = df_in\n",
|
|
"exec(code)\n",
|
|
"print(\"\\n############### Output DF: \\n\\n\", df_output)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"('1', 'TextInput (1)', '<Node ToolID=\"1\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.TextInput.TextInput\">\\n <Position x=\"54\" y=\"54\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <NumRows value=\"3\" />\\n <Fields>\\n <Field name=\"Column1\" />\\n <Field name=\"Column 2\" />\\n </Fields>\\n <Data>\\n <r>\\n <c>1</c>\\n <c>4</c>\\n </r>\\n <r>\\n <c>2</c>\\n <c>5</c>\\n </r>\\n <r>\\n <c>3</c>\\n <c>6</c>\\n </r>\\n </Data>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxTextInput\" />\\n </Node>\\n ')\n",
|
|
"('2', 'AlteryxSelect (2)', '<Node ToolID=\"2\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.AlteryxSelect.AlteryxSelect\">\\n <Position x=\"186\" y=\"54\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <OrderChanged value=\"False\" />\\n <CommaDecimal value=\"False\" />\\n <SelectFields>\\n <SelectField field=\"Column1\" selected=\"True\" type=\"Int64\" size=\"8\" />\\n <SelectField field=\"Column 2\" selected=\"False\" type=\"WString\" size=\"3\" />\\n <SelectField field=\"*Unknown\" selected=\"False\" />\\n </SelectFields>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxSelect\" />\\n </Node>\\n ')\n",
|
|
"('3', 'BrowseV2 (3)', '<Node ToolID=\"3\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.BrowseV2.BrowseV2\">\\n <Position x=\"318\" y=\"54\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <TempFile>C:\\\\Users\\\\casey.morter\\\\AppData\\\\Local\\\\Temp\\\\Engine_28104_a89278053b87e446bfe970eb948f1ef4_\\\\Engine_28104_9b8a61f4c39b2e4ea05f98886a386376~.yxdb</TempFile>\\n <TempFileDataProfiling />\\n <Layout>\\n <View1>\\n <Hints>\\n <Table />\\n </Hints>\\n </View1>\\n </Layout>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxBrowseV2\" />\\n </Node>\\n ')\n",
|
|
"('4', 'TextInput (4)', '<Node ToolID=\"4\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.TextInput.TextInput\">\\n <Position x=\"54\" y=\"246\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <NumRows value=\"3\" />\\n <Fields>\\n <Field name=\"Column 3\" />\\n <Field name=\"Column 4\" />\\n <Field name=\"Ham\" />\\n <Field name=\"Cheese\" />\\n </Fields>\\n <Data>\\n <r>\\n <c>5</c>\\n <c>8</c>\\n <c>z</c>\\n <c>a</c>\\n </r>\\n <r>\\n <c>6</c>\\n <c>9</c>\\n <c>b</c>\\n <c>d</c>\\n </r>\\n <r>\\n <c>7</c>\\n <c>10</c>\\n <c>c</c>\\n <c>c</c>\\n </r>\\n </Data>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxTextInput\" />\\n </Node>\\n ')\n",
|
|
"('5', 'AlteryxSelect (5)', '<Node ToolID=\"5\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.AlteryxSelect.AlteryxSelect\">\\n <Position x=\"426\" y=\"390\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <OrderChanged value=\"False\" />\\n <CommaDecimal value=\"False\" />\\n <SelectFields>\\n <SelectField field=\"Column 3\" selected=\"True\" rename=\"Col_3_renamed\" />\\n <SelectField field=\"Column 4\" selected=\"False\" />\\n <SelectField field=\"*Unknown\" selected=\"True\" />\\n </SelectFields>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxSelect\" />\\n </Node>\\n ')\n",
|
|
"('6', 'Formula (6)', '<Node ToolID=\"6\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.Formula.Formula\">\\n <Position x=\"354\" y=\"474\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <FormulaFields>\\n <FormulaField expression=\"[Count] + 10\" field=\"MoreCount\" size=\"4\" type=\"Int32\" />\\n </FormulaFields>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText>MoreCount = [Count] + 10\\n</DefaultAnnotationText>\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxFormula\" />\\n </Node>\\n ')\n",
|
|
"('7', 'Join (7)', '<Node ToolID=\"7\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.Join.Join\">\\n <Position x=\"522\" y=\"402\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration joinByRecordPos=\"False\">\\n <JoinInfo connection=\"Left\">\\n <Field field=\"Ham\" />\\n <Field field=\"Cheese\" />\\n </JoinInfo>\\n <JoinInfo connection=\"Right\">\\n <Field field=\"Ham\" />\\n <Field field=\"Cheese\" />\\n </JoinInfo>\\n <SelectConfiguration>\\n <Configuration outputConnection=\"Join\">\\n <OrderChanged value=\"False\" />\\n <CommaDecimal value=\"False\" />\\n <SelectFields>\\n <SelectField field=\"Right_Ham\" selected=\"True\" rename=\"Right_Ham\" input=\"Right_\" />\\n <SelectField field=\"Right_Cheese\" selected=\"True\" rename=\"Right_Cheese\" input=\"Right_\" />\\n <SelectField field=\"Right_Column 3\" selected=\"True\" rename=\"Right_Column 3\" input=\"Right_\" type=\"V_String\" size=\"11\" />\\n <SelectField field=\"Right_Column 4\" selected=\"True\" rename=\"Right_Column 4\" input=\"Right_\" type=\"Int64\" size=\"8\" />\\n <SelectField field=\"*Unknown\" selected=\"True\" />\\n </SelectFields>\\n </Configuration>\\n </SelectConfiguration>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxJoin\" />\\n </Node>\\n ')\n",
|
|
"('10', 'BrowseV2 (10)', '<Node ToolID=\"10\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.BrowseV2.BrowseV2\">\\n <Position x=\"618\" y=\"486\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <TempFile>C:\\\\Users\\\\casey.morter\\\\AppData\\\\Local\\\\Temp\\\\Engine_28104_a89278053b87e446bfe970eb948f1ef4_\\\\Engine_28104_c1d268f486209c40bdc02a676a529ee0~.yxdb</TempFile>\\n <TempFileDataProfiling />\\n <Layout>\\n <View1>\\n <Hints>\\n <Table />\\n </Hints>\\n </View1>\\n </Layout>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxBrowseV2\" />\\n </Node>\\n ')\n",
|
|
"('11', 'Formula (11)', '<Node ToolID=\"11\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.Formula.Formula\">\\n <Position x=\"450\" y=\"618\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <FormulaFields>\\n <FormulaField expression=\"[Engine.TempFilePath]\" field=\"Path\" size=\"1073741823\" type=\"V_WString\" />\\n </FormulaFields>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText>Path = [Engine.TempFilePath]\\n</DefaultAnnotationText>\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxFormula\" />\\n </Node>\\n ')\n",
|
|
"('12', 'Sample (12)', '<Node ToolID=\"12\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.Sample.Sample\">\\n <Position x=\"330\" y=\"618\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <Mode>First</Mode>\\n <N>1</N>\\n <GroupFields orderChanged=\"False\" />\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText>First 1</DefaultAnnotationText>\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxSample\" />\\n </Node>\\n ')\n",
|
|
"('13', 'BrowseV2 (13)', '<Node ToolID=\"13\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.BrowseV2.BrowseV2\">\\n <Position x=\"546\" y=\"618\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <TempFile>C:\\\\Users\\\\casey.morter\\\\AppData\\\\Local\\\\Temp\\\\Engine_28104_a89278053b87e446bfe970eb948f1ef4_\\\\Engine_28104_4d6ee2d9de8fac4095ab55a2bceed63e~.yxdb</TempFile>\\n <TempFileDataProfiling />\\n <Layout>\\n <View1>\\n <Hints>\\n <Table />\\n </Hints>\\n </View1>\\n </Layout>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxBrowseV2\" />\\n </Node>\\n ')\n",
|
|
"('14', 'DbFileOutput (14)', '<Node ToolID=\"14\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.DbFileOutput.DbFileOutput\">\\n <Position x=\"702\" y=\"402\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <File MaxRecords=\"\" FileFormat=\"0\">.\\\\SimpleWorkflowOut.csv</File>\\n <Passwords />\\n <FormatSpecificOptions>\\n <LineEndStyle>CRLF</LineEndStyle>\\n <Delimeter>,</Delimeter>\\n <ForceQuotes>False</ForceQuotes>\\n <HeaderRow>True</HeaderRow>\\n <CodePage>28591</CodePage>\\n <WriteBOM>True</WriteBOM>\\n </FormatSpecificOptions>\\n <MultiFile value=\"False\" />\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText>SimpleWorkflowOut.csv</DefaultAnnotationText>\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxDbFileOutput\" />\\n </Node>\\n ')\n",
|
|
"('15', 'TextInput (15)', '<Node ToolID=\"15\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.TextInput.TextInput\">\\n <Position x=\"54\" y=\"330\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <NumRows value=\"3\" />\\n <Fields>\\n <Field name=\"Ham\" />\\n <Field name=\"Cheese\" />\\n <Field name=\"Count\" />\\n </Fields>\\n <Data>\\n <r>\\n <c>a</c>\\n <c>a</c>\\n <c>4</c>\\n </r>\\n <r>\\n <c>b</c>\\n <c>d</c>\\n <c>6</c>\\n </r>\\n <r>\\n <c>c</c>\\n <c>z</c>\\n <c>7</c>\\n </r>\\n </Data>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxTextInput\" />\\n </Node>\\n ')\n",
|
|
"('16', 'HamCheeseJoin', '<Node ToolID=\"16\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.Join.Join\">\\n <Position x=\"306\" y=\"198\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration joinByRecordPos=\"False\">\\n <JoinInfo connection=\"Left\">\\n <Field field=\"Ham\" />\\n <Field field=\"Cheese\" />\\n </JoinInfo>\\n <JoinInfo connection=\"Right\">\\n <Field field=\"Ham\" />\\n <Field field=\"Cheese\" />\\n </JoinInfo>\\n <SelectConfiguration>\\n <Configuration outputConnection=\"Join\">\\n <OrderChanged value=\"False\" />\\n <CommaDecimal value=\"False\" />\\n <SelectFields>\\n <SelectField field=\"Right_Ham\" selected=\"True\" rename=\"Right_Ham\" input=\"Right_\" />\\n <SelectField field=\"Right_Cheese\" selected=\"True\" rename=\"Right_Cheese\" input=\"Right_\" />\\n <SelectField field=\"*Unknown\" selected=\"True\" />\\n </SelectFields>\\n </Configuration>\\n </SelectConfiguration>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name>HamCheeseJoin</Name>\\n <DefaultAnnotationText>HamCheeseJoin</DefaultAnnotationText>\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxJoin\" />\\n </Node>\\n ')\n",
|
|
"('17', 'BrowseV2 (17)', '<Node ToolID=\"17\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.BrowseV2.BrowseV2\">\\n <Position x=\"402\" y=\"114\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <TempFile>C:\\\\Users\\\\casey.morter\\\\AppData\\\\Local\\\\Temp\\\\Engine_28104_a89278053b87e446bfe970eb948f1ef4_\\\\Engine_28104_e692dab3020ec84ebe69a5de3e6990c9~.yxdb</TempFile>\\n <TempFileDataProfiling />\\n <Layout />\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxBrowseV2\" />\\n </Node>\\n ')\n",
|
|
"('18', 'BrowseV2 (18)', '<Node ToolID=\"18\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.BrowseV2.BrowseV2\">\\n <Position x=\"402\" y=\"198\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <TempFile>C:\\\\Users\\\\casey.morter\\\\AppData\\\\Local\\\\Temp\\\\Engine_28104_a89278053b87e446bfe970eb948f1ef4_\\\\Engine_28104_83aac5fa43df8044b1161f8298a2a180~.yxdb</TempFile>\\n <TempFileDataProfiling />\\n <Layout />\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxBrowseV2\" />\\n </Node>\\n ')\n",
|
|
"('19', 'BrowseV2 (19)', '<Node ToolID=\"19\">\\n <GuiSettings Plugin=\"AlteryxBasePluginsGui.BrowseV2.BrowseV2\">\\n <Position x=\"402\" y=\"294\" />\\n </GuiSettings>\\n <Properties>\\n <Configuration>\\n <TempFile>C:\\\\Users\\\\casey.morter\\\\AppData\\\\Local\\\\Temp\\\\Engine_28104_a89278053b87e446bfe970eb948f1ef4_\\\\Engine_28104_c2ab20e4f5222342bc00e6424dbc38bd~.yxdb</TempFile>\\n <TempFileDataProfiling />\\n <Layout>\\n <View1>\\n <Hints>\\n <Table />\\n </Hints>\\n </View1>\\n </Layout>\\n </Configuration>\\n <Annotation DisplayMode=\"0\">\\n <Name />\\n <DefaultAnnotationText />\\n <Left value=\"False\" />\\n </Annotation>\\n </Properties>\\n <EngineSettings EngineDll=\"AlteryxBasePluginsEngine.dll\" EngineDllEntryPoint=\"AlteryxBrowseV2\" />\\n </Node>\\n ')\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"for tool in results:\n",
|
|
" print(tool)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 31,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA/sAAANKCAYAAADV7l7qAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACSf0lEQVR4nOzde3zPdeP/8ednB9ucj0mupDKkHDZDDjnkIqWTviiRC1coRYqI0Jxns43IOWfGDolymog5DJsNYw5bWsolOcQYY4fP74/ryi8lOWx7fQ6P++3W7fs12z6P1ZX23Ov9/nwsVqvVKgAAAAAA4DBcTAcAAAAAAIC8xdgHAAAAAMDBMPYBAAAAAHAwjH0AAAAAABwMYx8AAAAAAAfD2AcAAAAAwMEw9gEAAAAAcDCMfQAAAAAAHAxjHwAAAAAAB8PYBwDAxvn7+8tisZjOuGlH5cqV1a1btwJvMfW4AADYC8Y+AMChzJ8/XxaL5fpfnp6eeuCBB/TMM8/o008/1cWLF2/58fXr15fFYtH06dNv+X5bt25Vx44dVbFiRRUqVEglSpRQgwYNNGrUKJ06deqWH1urVi1VqlRJVqv1L9+ncePGKl++vLKzs2/5uRzZjh075O/vr/Pnz5tOAQDA7jD2AQAOadSoUVq0aJGmT5+uvn37SpL69++vmjVrav/+/Tf9mJSUFMXFxaly5cpasmTJX37uESNGqGnTptqzZ4+6deum6dOna9y4cXr88ccVHBysRo0a3bKtc+fO+vHHH7V169ab/n5aWppiY2P16quvys3NTcOGDdOVK1du8ysvWEeOHNHs2bPz5XPv2LFDI0eOvOnYz8/HBQDAEbiZDgAAID88++yz8vPzu/7rIUOGaNOmTXr++ef14osv6tChQ/Ly8rrhYxYvXqz77rtPwcHBat++vdLS0lS5cuUb3mf58uUaPXq0OnbsqEWLFqlQoUI3/H5oaKhCQ0Nv2fb6669ryJAhWrp0qZo2bfqn3w8LC5PValXnzp0lSW5ubnJzs83/ZHt4eDjV4wIAYC842QcAOI2nn35aw4cP1w8//KDFixf/6feXLl2q9u3b6/nnn1eJEiW0dOnSP73PiBEjVLZsWX3++ed/GvqSVKJECfn7+9+y48EHH1TTpk0VGRmprKysm3Y8+uijatCggaSb3yu/YcMGNWnSRCVLllTRokVVrVo1DR069Prv/3Y7Q1pa2g0ft3nzZlksFm3evPn627Zu3aoOHTqoUqVK8vDw0IMPPqj333//tq4m+OO987+/heKPf/3Wsn//fnXr1k2PPPKIPD09df/996tHjx46e/bs9c/j7++vDz/8UJL08MMP/+lz3Oye/WPHjqlDhw4qXbq0ChcurCeffFKrV6++6dcfHh6usWPH6h//+Ic8PT3VsmVLpaam/u3XCwCAvbDNYwIAAPLJG2+8oaFDhyo6Olo9e/a8/vZdu3YpNTVV8+bNU6FChfTKK69oyZIlNwzoo0eP6ujRo3rzzTdVtGjRe+ro3LmzevXqpfXr1+v555+//vakpCQdOHBAI0aM+MuPPXjwoJ5//nnVqlVLo0aNkoeHh1JTU7V9+/a7aomIiNDly5f19ttvq0yZMtq9e7emTJmin376SREREXf0uRYtWvSntw0bNky//PLL9b9nGzZs0LFjx9S9e3fdf//9OnjwoGbNmqWDBw9q586dslgseuWVV3T06FGFhYUpNDRUZcuWlSSVK1fupo976tQpNWrUSJcvX1a/fv1UpkwZLViwQC+++KIiIyPVrl27G94/ICBALi4uGjhwoC5cuKDAwEB17txZu3btuqOvFwAAW8XYBwA4lX/84x8qUaKEvvvuuxvevnjxYj344INq3LixJOm1117T3LlztXfvXtWpU0eSdPjwYUnSE088ccPHWq3WG06lJalkyZK3vPS+ffv26tu3r5YuXXrD2P/taoLfLuG/mQ0bNujatWtau3bt9RF8LyZMmHDDLQ29evVSlSpVNHToUB0/flyVKlW67c/VpUuXG34dFBSkH374QQsXLrze2qdPHw0YMOCG93vyySfVqVMnbdu2TU899ZRq1aolX19fhYWF6eWXX/7T7RR/FBAQoFOnTmnr1q1q0qSJJKlnz56qVauWPvjgA7300ktycfn/FzRmZmZq796916/OKFWqlN577z0dOHDgT/98AQCwR1zGDwBwOkWLFr3hWfmzs7O1fPlyvfrqq9cvl3/66ad133333fBEfenp6dc//vcuXLigcuXK3fDX3r17b9lQqlQpPffcc1q1apUyMjIk/feHBsuWLZOfn5+qVq36lx9bsmRJSdLKlSuVm5t721/3X/n90M/IyNCZM2fUqFEjWa1WJSYm3vXn/fbbbzVkyBD17dtXb7zxxk0fLzMzU2fOnNGTTz4pSUpISLirx1qzZo3q169/fehL//3n1KtXL6WlpSk5OfmG9+/evfsNt2E89dRTkv57KwAAAI6AsQ8AcDqXLl1SsWLFrv86Ojpap0+fVv369ZWamqrU1FR9//33atGihcLCwq4P6t8+5tKlSzd8vqJFi2rDhg3asGHD9fvMb0fnzp2VkZGhlStXSvrvs8+npaXd8lRfkl599VU1btxYb775psqXL6/XXntN4eHhdz38jx8/rm7duql06dIqWrSoypUrp2bNmkn67w8y7sZPP/10vTMkJOSG3zt37pzee+89lS9fXl5eXipXrpwefvjhe3q8H374QdWqVfvT2x977LHrv/97f7xaoVSpUpKkX3/99a4eHwAAW8Nl/AAAp/LTTz/pwoULqlKlyvW3/XZ637Fjx5t+zJYtW9SiRQtVr15dknTgwIEbft/NzU3//Oc/r3/+2/X7JwJ8/fXXtXTpUrm6uuq111675cd5eXkpJiZG3377rVavXq1169Zp+fLlevrppxUdHS1XV9c/PaHfb3Jycv7061atWuncuXMaPHiwqlevriJFiujEiRPq1q3bXf0A4dq1a2rfvr08PDwUHh7+p9sZOnbsqB07dujDDz9UnTp1VLRoUeXm5qpNmzZ5cqXC7XB1db3p261Wa4E8PgAA+Y2xDwBwKr89gdwzzzwjSddP1l999VW1b9/+T+/fr18/LVmyRC1atFC1atXk7e2tL7/8UpMmTVKRIkXuqcXDw0Pt27fXwoULderUKUVEROjpp5/W/fff/7cf6+LiopYtW6ply5YKCQnRuHHj9PHHH+vbb7/VP//5z+sn1X98jfo/nnAnJSXp6NGjWrBggbp27Xr97Rs2bLjrr6tfv37au3evYmJiVL58+Rt+79dff9XGjRs1cuTIG56EMCUl5U+f569+YHEzDz30kI4cOfKnt//2PAsPPfTQbX8uAAAcAZfxAwCcxqZNmzR69Gg9/PDD1y+VX7FihTIyMvTOO++offv2f/rr+eefV1RUlK5evSrpvy8Jd+bMGfXs2fOmL5t3pyfDnTt3VlZWlnr37q3Tp0//7SX80n8vg/+j355E8LfORx99VJIUExNz/X1ycnI0a9asGz7utxPu33dbrVZNnjz5jr6O38ybN08zZ87UZ599pvr16//p92/2eJI0adKkP73vbz9M+eMPLG7m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",
|
|
"text/plain": [
|
|
"<Figure size 1000x800 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Nodes in the DAG: ['A', 'B', 'C']\n",
|
|
"Edges in the DAG: [('A', 'B'), ('A', 'C'), ('B', 'C')]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import networkx as nx\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"import pydot\n",
|
|
"from IPython.display import Image, display\n",
|
|
"\n",
|
|
"# Function to create a DAG\n",
|
|
"def create_dag():\n",
|
|
" G = nx.DiGraph()\n",
|
|
" \n",
|
|
" # Adding nodes and edges\n",
|
|
" G.add_node('A')\n",
|
|
" G.add_node('B')\n",
|
|
" G.add_node('C')\n",
|
|
" G.add_edge('A', 'B')\n",
|
|
" G.add_edge('A', 'C')\n",
|
|
" G.add_edge('B', 'C')\n",
|
|
" \n",
|
|
" return G\n",
|
|
"\n",
|
|
"# Function to visualize the DAG\n",
|
|
"def visualize_dag(G):\n",
|
|
" pos = nx.spring_layout(G) # positions for all nodes\n",
|
|
" plt.figure(figsize=(10, 8))\n",
|
|
" nx.draw(G, with_labels=True, node_color='lightblue', node_size=500, font_weight='bold', pos=pos)\n",
|
|
" plt.title('DAG Visualization')\n",
|
|
" plt.show()\n",
|
|
"\n",
|
|
"# Function to build and execute the DAG\n",
|
|
"def build_and_execute_dag():\n",
|
|
" G = create_dag()\n",
|
|
" visualize_dag(G)\n",
|
|
" \n",
|
|
" # You can add more functionality here, such as executing tasks in the DAG\n",
|
|
" print(\"Nodes in the DAG:\", G.nodes())\n",
|
|
" print(\"Edges in the DAG:\", G.edges())\n",
|
|
"\n",
|
|
"# Main function to run the script\n",
|
|
"if __name__ == \"__main__\":\n",
|
|
" build_and_execute_dag()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 46,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"1\n",
|
|
"Output\n",
|
|
"2\n",
|
|
"Input\n",
|
|
"2\n",
|
|
"Output\n",
|
|
"3\n",
|
|
"Input\n",
|
|
"4\n",
|
|
"Output\n",
|
|
"5\n",
|
|
"Input\n",
|
|
"4\n",
|
|
"Output\n",
|
|
"16\n",
|
|
"Left\n",
|
|
"15\n",
|
|
"Output\n",
|
|
"16\n",
|
|
"Right\n",
|
|
"5\n",
|
|
"Output\n",
|
|
"7\n",
|
|
"Left\n",
|
|
"6\n",
|
|
"Output\n",
|
|
"7\n",
|
|
"Right\n",
|
|
"7\n",
|
|
"Right\n",
|
|
"10\n",
|
|
"Input\n",
|
|
"7\n",
|
|
"Join\n",
|
|
"14\n",
|
|
"Input\n",
|
|
"11\n",
|
|
"Output\n",
|
|
"13\n",
|
|
"Input\n",
|
|
"12\n",
|
|
"Output\n",
|
|
"11\n",
|
|
"Input\n",
|
|
"15\n",
|
|
"Output\n",
|
|
"6\n",
|
|
"Input\n",
|
|
"15\n",
|
|
"Output\n",
|
|
"12\n",
|
|
"Input\n",
|
|
"16\n",
|
|
"Left\n",
|
|
"17\n",
|
|
"Input\n",
|
|
"16\n",
|
|
"Join\n",
|
|
"18\n",
|
|
"Input\n",
|
|
"16\n",
|
|
"Right\n",
|
|
"19\n",
|
|
"Input\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# # Parse out nodes (tool data) into a dict\n",
|
|
"# def extract_tool_id_and_contents(xml_string):\n",
|
|
"# root = ET.fromstring(xml_string)\n",
|
|
"# results = []\n",
|
|
"# for node in root.iter('Node'):\n",
|
|
"# tool_type = node.find('GuiSettings').get('Plugin').split('.')[-1]\n",
|
|
"# # print('tool type:',tool_type)\n",
|
|
"# tool_id = node.attrib.get('ToolID')\n",
|
|
"\n",
|
|
"# tool_name = node.find('Properties/Annotation/Name').text\n",
|
|
"# if not tool_name:\n",
|
|
"# tool_name = tool_type + \" (\" + tool_id + \")\"\n",
|
|
"\n",
|
|
"# content = ET.tostring(node, encoding='unicode')\n",
|
|
"# results.append((tool_id, tool_name, content))\n",
|
|
"# return results\n",
|
|
"\n",
|
|
"# results = extract_tool_id_and_contents(xml_string)\n",
|
|
"\n",
|
|
"\n",
|
|
"# for tool in results:\n",
|
|
"# print(tool)\n",
|
|
"\n",
|
|
"root = ET.fromstring(xml_string)\n",
|
|
"\n",
|
|
"for connection in root.iter('Connection'):\n",
|
|
" # print(ET.tostring(connection, encoding='unicode'))\n",
|
|
" # root = ET.fromstring(xml_string)\n",
|
|
" # Extract the field names\n",
|
|
" print(connection.find(\".//Origin\").get('ToolID'))\n",
|
|
" print(connection.find(\".//Origin\").get('Connection'))\n",
|
|
" print(connection.find(\".//Destination\").get('ToolID'))\n",
|
|
" print(connection.find(\".//Destination\").get('Connection'))\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 65,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAGFCAYAAAAFNwJwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABe2klEQVR4nO3d6VeT9743/veVMBNIQgK5oogCUgdQq9ahzvNQp7bW7tpaa9Va9Zy91zqP7/sPuO9H9zm/s462aifb7nZ3sKDiULW2DsUJJ0SZHQAJ85AAISS5fg/SUBGsDEmuJLxfa7HOOjFc1yfskrz5Dp+vIEmSBCIiIqIAp5C7ACIiIiJPYKghIiKioMBQQ0REREGBoYaIiIiCAkMNERERBQWGGiIiIgoKDDVEREQUFBhqiIiIKCgw1BAREVFQYKghIiKioMBQQ0REREGBoYaIiIiCAkMNERERBQWGGiIiIgoKDDVEREQUFBhqiIiIKCgw1BAREVFQCJG7gIAnSUB9PWCxACoVoNMBgiB3VUREREMOR2oGqqkJ+K//AtLSgPh4IDnZ9X/T0lyPNzXJXSEREdGQIkiSJMldRMA5eRJYvx5oa3P9/0/+CN2jNFFRwI8/AsuX+74+IiKiIYihpr9OngRWrXIFGafz2c9TKFwBJzubwYaIiMgHGGr6o6kJSEwE2tv/OtC4KRRAZCRQUQFoNN6ujoiIaEjjmpr++OIL15RTXwIN4HpeWxtw8KB36yIiIiKO1PSZJLkWAZeVdV9D8zyCAKSkAMXF3BVFRETkRQw1fVVX59rdNJjv1+kgSRKqq6tRUFCAoqIijB49GosWLfJcnUREREMU+9T0lcUy4G91CAJK795FqcWCwsJCNDc3Izw8HGlpaRg7dqwHiyQiIhq6GGr6SqUa8LceWr8ed3/5BQAQGxuLsWPHIiUlBQaDAVqt1lMVEhERDWmcfuqrQaypacrIwLe7d6O6urorxDQ1NcH9o1epVIiPj+/6SkhIQHx8PCIjI73xSoiIiIISQ01//Nd/Af/xH/1fKPyf/wnp73/HpUuXcPr0aRgMBqxbtw4AUFNTg9raWtTV1aGmpgYNDQ1dYSc6OhoJCQnQ6/Xdwk5UVJQ3Xh0REVFAY6jpjz/61Dg6OqC025///F761FRVVeGHH36A2WzGq6++ivHjx3f7Frvdjvr6etTW1nb7amhogPOPreRRUVFdYccddOLj4xEdHe3hF0xERBQ4GGr6Kefzz5GTl4f/+M//hNCXjsLHjgHLlnX7J5vNhpMnT0IQBKxevbpP93U4HL2Gnfr6+m5hJz4+vtewI3A7ORERBTmGmn4oKyvDV199hdlGI8b+3/+Lo0uWYMe+fRAkCSWpqbCFh2P8vXuuJ0dFAYcO9Qg0nuZwONDQ0NBr2HE4HACAyMjIbmt23F8qlYphh4iIggZ3P/VRU1MTfvjhB6SkpGDh22/jqFaLjnv3XI31SktROGYMHo0cifEdHcA//gG89x6gVnu9LqVS2RVSnuR0OnuEnYqKCty8ebMr7ERERPQadmJiYhh2iIgo4DDU9IHdbsd3332HsLAwvP7665AkCQVlZZg6axaE//2/gYYGiLm5yL10CZ137yI0LEzukqFQKKDX66HX6zFu3Liux51OJxobG7uFncePH+P27duw/7FOKDw8vNewExsby7BDRER+i6HmOSRJQnZ2Nmpra7F161ZERUWhpKQE7e3tSE9Pd62b0ekgpqdDyslBbV0dhg0bJnfZz6RQKKDT6aDT6bo1/nM6nWhqauoWdkwmE/Ly8rrCTlhYWK9hR61WM+wQEZHsGGqeIzc3Fzdv3sS6detgNBoBAPn5+YiLi4PBYOh6XkJCAgRBQFVVlV+HmmdRKBSIi4tDXFwcxowZ0/W4JEk9wk5NTQ3y8/PR2dkJwBV23NvOn/zSaDQMO0RE5DMMNX+hoqICx48fx7Rp0/Diiy8CcC3MLSgowLRp07p9YIeGhkKv18NkMslUrXcIggCtVgutVosXXnih63FJktDc3NwVcurq6lBbW4t79+7BZrMB+PNn8nRjQYYdIiLyBoaaZ2hvb8cPP/wAo9GI5cuXdz1eVlYGq9Xqmnp6iiiKQRdqnkUQBGg0Gmg0GqSlpXU9LkkSWlpausKOu7FgQUFBV9gJCQnp2nb+ZGNBjUYDhUIh10siIqIAx1DTC0mSkJWVhY6ODmzZsgVKpbLr3+7evQudToeEhIQe3yeKIgoKCuB0Oofsh7MgCFCr1VCr1Rg9enTX45IkwWw2dwUd91dhYSE6OjoAuHZyPRl23L12tFrtkP15EhFR3zHU9OLSpUsoLCzEW2+9Bc0fnYAB19TTvXv3MGPGjF6nT0RRRGdnJxoaGqDX631Ysf8TBAGxsbGIjY3tEXYsFkuPsFNcXAyr1Qrgz7DzdGNBrVbbLXASEdHQxlDzlIqKCpw+fRovv/xytwWzAFBaWoqOjo5ep54AV6gBAJPJxFDTR4IgICYmBjExMUhNTe163B12nm4qWFpaivb2dgB/blt/eoFyXFwcww4R0RDEUPME9zqaYcOGYfHixT3+/e7du13rP3oTFRWF2NhYmEwmZGRkeLvcoPZk2ElJSel6XJIktLa29gg79+/fR1tbG4A/t60/HXZ0Oh3DDhFREGOo+YMkScjMzERHRwfef//9Hh9+drsdBQUFmDlz5l9eZygtFpaDIAhQqVRQqVRITk7u9m+9hZ1r166htbW163ufFXZCQvirQEQU6PhO/odLly6hqKgIb731FtS9HG/w6NEjdHR0dOvO2xtRFJGbm+utMukvREdHIzo6GqNGjer2eFtbW4+wc/36dVgsFgCusBMXF9cj7Oj1eoYdIqIAwnds/PU6GreioiLExsY+c+rJTRRFtLa2wmw2IyYmxhvlUj9FRUVh5MiRGDlyZLfH29vbe4Sdmzdvwmw2A/izR09vYSc0NFSOl0JERH9hyIea9vZ2fP/9989cR+NWUlKC0aNHP7dp3JOLhRlq/FtkZCSSkpKQlJTU7XGr1doj7Ny+fRstLS1dz+kt7MTHxzPsEBHJaEiHGvc6ms7OTrzxxhvPXETa0NCA+vp6LFmy5LnX1Gg0CA8Ph8lk6taUjgJHREQERowYgREjRnR73Gq1dnVOdndRvnPnDpqbm7ueo9Foeg07YX5wyCkRUbAb0qEmJycHRUVF2LhxY6/raNyKi4uhVCq77cJ5FkEQuFg4SEVERCAxMRGJiYndHu/o6OgRdvLz87uFHbVa3eO4CL1ej/DwcF+/DCKioDVkQ01FRQXOnDmDWbNmdTvTqDfFxcUYOXJkn//aFkURxcXFniiTAkB4eDiGDx+O4cOHd3vcZrOhrq6u23ER9+7dQ05OTtdz3Ou0njwuQq/XIyIiwtcvg4go4A3JUNPR0YFDhw5h2LBhWLRo0V8+12az4cGDB32aenITRRGXL19GR0cH/xIfwsLCwjBs2LAep7bbbDbU19d366JcWFiIS5cudT0nJiamx3ER8fHxDDtERH9hSIaaEydOoLW1FZs2bXpuM7YHDx7A4XD0a32M0WgEAFRXV/dYhEoUFhYGo9HY9d+JW2dnZ9c01pPHRVy5cgWSJAFwhZ2nj4uIj49HZGSkHC+FiMivDLlQU1BQgJs3b2LNmjWIi4t77vOLioqg1Wr79Fw3vV4PpVIJk8nEUEN9Fhoa2mvYsdvtPcJOaWkprl692hV2VCpVrwuUo6Ki5HgpRESyGFKhxmKx4MiRIxg7diwmT5783OdLkoSSkhKMGTPmuVu5n6RUKpGQkICqqqrBlEsEAAgJCYEoil3tAtzsdjvq6+u7hZ2ysrJuYSc6OrrXsBMdHS3HSyEi8qohE2okScLhw4chCAJWr17dp5BSW1uL5ubmAW3NNhgMqK6uHkipRH0SEhICg8EAg8HQ7XGHw9Ej7Dx48AC5ublwOp0AXA0JnxV2+hPgiYj8yZAJNbm5uSguLsbGjRv7/FdqcXExQkJCerTd7wuj0Yi8vDw4HA4eokg+5R4pfLr7tcPhQENDQ7ew8+jRI1y/fr0r7ERGRvYadlQqFcMOEfm9IRFq6uvr8fPPP2Pq1KnP3b79pOLiYqSkpAzo/B9RFOFwOFBXV9fjL2kiOSiVyq6Q8iSn09kj7FRUVODmzZtwOBwAXD16egs7MTExDDtE5DeCPtQ4HA4cOnQIMTExWLZsWZ+/z2q14tGjR3jllVcGdF93kKmqqmKoIb+mUCig1+uh1+u7HdjqdDrR2NjYLew8fvwYt2/fht1uB+Dq0dNb2ImNjWXYISKfC/pQc+7cOVRVVWHbtm39alVfVlYGSZIwevToAd03PDwccXFx7CxMAUuhUECn00Gn02Hs2LFdjzudTjQ1NXXroGwymZCXl9cVdsLCwnoEnYSEBIYdIvKqoA41FRUVOH/+PObNm9ej2+vzFBcXIz4+HhqNZsD353EJFIwUCgXi4uIQFxfX7VR7p9OJ5ubmbmGnpqYG+fn56OzsBOAKO+4eO092UVar1Qw7RDRoQRtqbDZbV9fguXPn9ut7JUlCcXExJk2aNKgaRFHExYsXIUkS37Ap6CkUCmi1Wmi12m5r1yRJem7YCQ0N7RZ23I0FNRoNf3eIqM+CNtScPHkSFosF77zzTr93H1VVVaG1tXXQp2yLooiOjg40NzcPasSHKJAJggCNRgONRtPtd0qSJLS0tHQ7LqK2thb37t2DzWYD4Nq27p6+ejrsKBQKuV4SEfmpoAw1paWluH79OlatWgWdTtfv7y8uLkZ4eDhGjBgxqDrczdKqqqoYaoieIggC1Go11Gp1j7BjNpt7hJ3CwkJ0dHQAcIUd9/TVk19arZZhh2gIC7pQY7PZcPToUYwaNQpTp04d0DVKSkqQmpo66P4yKpUK0dHRMJlM3XaVENGzCYKA2NhYxMbGdluo7w47TwYd9/lYVqsVgGvbem9hJy4ujmGHaAgIulDzyy+/wGKx4N133x3QXHxraysqKiqwbt26QdciCAIXCxN5yJNhJzU1tetxSZJgsVh6hJ3S0lK0t7cD+HPbem9hh80xiYJHUIWaiooKXL58GUuXLu3XAZRPKi0tBYABb+V+miiKyMvL88i1iKgnQRAQExODmJgYpKSkdD0uSRJaW1t7hJ379++jra0NwJ/b1p8OOzqdjmGHKAAFTahxOBw4fPgwjEYjZs6cOeDr3L9/HwaDASqVyiN1uXdAtbW18cRkIh8SBAEqlQoqlQrJycnd/q23sHPt2jW0trYC+HPbem9hZyAdxonIN4Lmt/P8+fOor6/HBx98MKi58/Ly8h5vgIPhXixsMpm6/RVJRPKJjo5GdHR0j3Pd2traukKOe/v59evXYbFYALiCUm9hR6/XM+wQ+YGg+C2sqanB+fPnMWvWrK4QMRBtbW2or6/HvHnzPFZbXFwcQkNDGWqIAkBUVBRGjhyJkSNHdnu8ra0NdXV13cLOjRs3uoUdrVbba9gJDQ2V46UQDUkBH2qcTieOHDkCrVaL+fPnD+paFRUVAICkpCRPlAbANYxtMBi4WJgogEVFRSEpKanHe0N7e3tXM8Ha2lrU1dXh1q1bMJvNXc/RarU9Oigz7BB5R8CHmqtXr6KiogJbtmwZ9PBveXk5VCoV1Gq1h6pzEUURDx8+9Og1iUh+kZGRGDFiRI+eVlartVvYqa2tRV5eHlpaWrqeo9Foeg07/Tmjjoi6C+hQ09TUhDNnzuCll17qMVw8EOXl5RgxYoTH27KLoojc3Fx0dnbyrzOiISAiIgKJiYlITEzs9nhHR0ePBcr5+flobm7ueo5Go+nRQVmv1yM8PNzXL4Mo4ARsqJEkCUePHkVkZCSWLFky6Os5HA5UVlZi0aJFHqiuO6PRCEmSUFNT0++DNYkoeISHh/cadmw2W4+wc+/ePeTk5HQ9R61W9wg78fHxDDtETwjYUHP79m2UlpZi48aNHvmlNplMsNvtgz4aoTfx8fEQBAEmk4mhhoh6CAsLw/Dhw3u8P9hstq4Fyk8eF3Hp0qWu58TGxvZYoBwfH4+IiAhfvwwi2QVkqGlvb8fPP/+MjIyMbqcBD0Z5eTmUSuWgdk89i/sE4qqqKo9fm4iCV1hYGIYNG4Zhw4Z1e7yzs7NH2CkqKsLly5chSRIAICYmptewExkZKcdLIfKJgAw1Z8+ehd1ux7Jlyzx2zYqKCgwfPtxrvSaMRiOqq6u9cm0iGlpCQ0NhNBphNBq7Pd7Z2Yn6+vpuYaekpARXrlzpCjsqlarXsMPmoBQMAi7UmEwmXLt2DUuWLEFMTIzHrlteXo6MjAyPXe9pBoMB9+7dg9Pp5MF6ROQVoaGhEEWxx4iz3W7vEXbKyspw9erVrrATHR3da9iJjo6W46UQDUhAhRpJknD8+HHodDrMmDHDY9dtbm5GS0uLV9bTuBmNRnR2dqKhoQF6vd5r9yEielpISAgMBgMMBkO3xx0OR1fYcTcVfPDgAXJzc+F0OgG4evQ8HXQSEhIQFRXl8Z2iRIMVUKHmzp07ePToETZt2uTRw+bKy8sBwKuh5snjEhhqiMgfKJVKJCQkICEhAenp6V2POxwONDQ0dAs7jx49wvXr17vCTmRkZK9hJzo6mmGHZBMwocZms+HUqVMYO3YsUlNTPXrt8vJyxMXFeXWYNTIyEmq1GlVVVV6d5iIiGiylUtkVVMaPH9/1uMPhQGNjY7cOyuXl5bh58yYcDgcAV4+ep5sKxsfHQ6VSMeyQ1wVMqDl37hza29uxfPlyj1/b3XTP20RR5GJhIgpYSqUSer2+x2iz0+nsEXYqKytx69atbmHH3WfnybATExPDsEMeExChpr6+Hjk5OZg7dy40Go1Hr22z2WAymTBlyhSPXrc3oih2LczjLzERBQuFQgGdTgedTodx48Z1Pe4OO08uUK6qqkJeXh7sdjsAV0PC3poKxsbG8n2S+s3vQ40kSThx4gRiY2Mxe/Zsj1//8ePHkCTJo4dYPosoimhra4PFYvHozi0iIn/0ZNgZO3Zs1+NOpxNNTU3dwk51dTXy8/PR2dkJwNWjp7fdWGq1mmGHnsnvQ01RURFKSkrw5ptveuXcpPLy8q6/FLzNvVi4qqqKoYaIhiyFQoG4uDjExcVhzJgxXY9LktQj7NTU1HQLO6Ghob2GHY1Gw7BD/h1q7HY7Tp48iZSUlG4p35PKy8uRmJjok18GtVqNiIgImEwmj3VCJiIKFoIgQKvVQqvVdnuPlCQJzc3NvZ6PZbPZALi2rT8r7LA32NDh16Hm999/R3NzM95++22vhA5JklBeXo6ZM2d6/Nq9EQQBoijCZDL55H5ERMFAEARoNBpoNBqkpaV1PS5JElpaWnqEncLCQnR0dABwhR334uQnv7RaLcNOEPLbUGOxWHDhwgVMnz7da31d6urqYLVafbLzyU0URRQWFvrsfkREwUoQBKjVaqjVaowePbrrcUmSYDabu01h1dXVoaioqCvsuHdyPR124uLiGHYCmN+GmnPnzkGpVGLevHleu0d5eTkEQfDpydmiKOLSpUuwWq08RZeIyAsEQUBsbCxiY2O79TWTJAkWi6VH2CkpKYHVagXgCjs6na5HU0GtVuvRpq/kHX4ZahoaGpCbm4uFCxd69URZk8kEnU6H8PBwr93jae7FwtXV1Rg5cqTP7ktENNQJgoCYmBjExMQgJSWl63FJktDa2toVdNy9dsrKytDe3g7gz51cTzcWjIuLY9jxI34Zas6ePYvo6GiPnu/Um7q6OiQkJHj1Hk/T6/VQKpUwmUwMNUREfkAQBKhUKqhUKiQnJ3c9LkkS2trauoKO++v+/ftoa2sD8GfYebrXTlxcHEJC/PIjNqj53U/cZDLhzp07WL16tVe2cD+ptrbWJ033nuQ+a4WLhYmI/JsgCIiOjkZycnK3sAOga2Tnya/c3Fy0trZ2fW9vYUen0zHseJHf/WTPnDkDnU6HyZMne/U+7e3tsFgsPulP8zRRFFFVVeXz+xIRkWdER0cjOjoao0aN6vZ4W1tbj7Bz48YNWCwWAK6wExcX12OBsl6vZ9jxAL/6CT548AAlJSXYsGGD11ef19XVAYBsocZ9JgrnYomIgkdUVBRGjhzZY3lBe3t7j7Bz8+ZNmM1mAH/26Okt7Hh71iKY+E2okSQJp0+fxrBhw7qdHeIttbW1XcODviaKIpxOJ2pra7sWDhMRUfCKjIxEUlJSjyN5rFZrj7Bz+/ZttLS0dD3nWWEnLCzM1y/j2SQJqK8HLBZApQJ0OkCGDs9+E2oKCgpQWVmJzZs3+6S7b21tLbRarSzDfQaDAYBr/RBDDRHR0BUREYERI0b06JfW0dHRI+zcuXMHzc3NXc/RaDS9dlH2adhpagK++AL47/8GSkv/fDw1Ffj734H33gM8fBD1X/GLUON0OvHLL78gNTW1x2Isb6mrq5Nl6glwnUobFxfHxcJERNSr8PBwJCYmIjExsdvjHR0dqKur6xZ27t69i6ampq7nqNXqXsOOx9uXnDwJrF8P/LETrJuyMuA//gP4X/8L+PFHYPlyz977Gfwi1Ny8eRN1dXV4/fXXfXbP2tpaZGRk+Ox+TzMajQw1RETUL+Hh4Rg+fHiPprE2m60r7LibChYUFCAnJ6frObGxsb2GnQE1gj15Eli1yjXtJEk9/939WHu763nZ2T4JNrKHGrvdjt9++w3p6ekwGo0+uafNZkNzc7NsIzWAawqqpKQEkiTxZFkiIhqUsLAwDBs2DMOGDev2eGdnZ4+wU1RUhEuXLnU9JyYmptew88zmt01NrhEaSQKczr8uzOkEFArX8ysqvD4VJXuouXHjBsxmMxYuXOize8q588nNaDSio6MDTU1N0Gq1stVBRETBKzQ0FEajscegQWdnJ+rr67t1UC4uLsaVK1cg/THKolKpehwXER8fj8gvvnBNOfU2QtMbp9P1/IMHgX/8w9MvsRtZQ43D4cDFixeRkZHh011ItbW1AOC1gzL7wr1A2GQyMdQQEZFPhYaGQhTFHptV7HZ7t7BTW1uL0tJSXL16tSvs/O3sWYwdyE3/v//PtXjYi7MTsoYa90ru2bNn+/S+tbW1UKvVsm6Hc7fkrqqq8skWdiIioucJCQmBwWDo2qXr5g47DQ8fYuT/+T99H6VxkyTX7qiGBtd2by+RLdRIkoQLFy5gzJgxPX543ibnzqcniaKI6upqucsgIiL6S11hp70d+ONE8wExm70aarzbtvcvFBQUoK6uDnPmzPH5vWtra2WdenLjcQlERBRQVKrBfX9MjGfqeAZZQo0kSTh//jySk5N77MH3NrvdjsbGRr8ZqTGbzV0HoBEREfk1nc7VWK+/62IEwfV9cXHeqesPsoSa0tJSVFVVyTJKU19fD0mS/CbUAGC/GiIiCggVlZXYt2ULrg/k0Ol//MPrRyfIEmouXLiA4cOH+6x78JP8YeeTW1xcHMLCwhhqiIjIr9ntdpw+fRqffvopBL0eKVVVrv4zfaFQAFFRwObN3i0SMiwUfvToER4+fIi//e1vsjSdq62thUqlenZTIR8SBAEGg4GhhoiI/FZVVRUyMzNRV1eHBQsWYM6cOVAkJ7s6BSsUf92AT6Fwjc4cOuSTM6B8PlJz4cIFxMfHY8yYMb6+NQD/2fnkJooiQw0REfkdh8OBs2fPYv/+/VAoFNixYwfmzZsHhULhOvIgOxuIjHSFlqcHKdyPRUYCx44By5b5pGafhhqTyYTi4mLMmTNHtqMB/GXnk5soiqivr0dnZ6fcpRAREQEAqqurceDAAZw/fx5z587F9u3be7ZfWb7cdfTBf/4nkJLS/d9SUlyPV1b6LNAAPp5+unjxIjQajWwHSTqdTtTX1+Oll16S5f69EUURkiShurra5zvBiIiInuR0OnHx4kX8+uuv0Ol02L59e4/zpLrRaFwLgP/+d1djPbPZtW07Ls7ri4J747NQYzabcffuXSxdutQ1dCWD1tZWOJ1OqNVqWe7fm4SEBAiCAJPJxFBDRESyqa2tRVZWFh4/foxZs2ZhwYIFCAnpY0wQBNd2bx8eedQbn4Wa3NxcKJVKvPjii766ZQ8WiwWA60RSfxESEoL4+HiuqyEiIlk4nU5cunQJv/zyCzQaDbZu3Rqwf2T7JNQ4HA7k5uZi4sSJiIiI8MUte2U2mwG4zl3yJ1wsTEREcqivr0dWVhbKy8sxc+ZMLFq0CKGhoXKXNWA+CTUFBQWwWCyYNm2aL273TO6RmujoaFnreJooirh79y6cTqdsU3NERDR0SJKEK1eu4PTp04iJicGWLVswcuRIucsaNJ+EmqtXryIpKcnnB1c+zWKxICoqCkqlUtY6niaKYtcJqP603ZyIiIJPY2MjDh8+jAcPHmDatGlYsmQJwsLC5C7LI7weampqavDw4UOsX7/e27d6LrPZ7FfradyePC6BoYaIiLxBkiTk5ubi1KlTiIyMxLvvvouUp7diBzivh5qrV69CpVJh3Lhx3r7Vc1ksFr9bTwMAkZGRUKvVMJlMmDBhgtzlEBFRkGlubsbhw4dRVlaGKVOmYNmyZQgPD5e7LI/zaqjp6OjA7du3MXPmTL+Y8rFYLNDJvN3sWYxGIxcLExGRR0mShJs3b+LkyZMICwvDO++8g9GjR8tdltd4NdTcunULnZ2dmDp1qjdv02cWi8VvF0IZDAZcvXoVkiTJ1m2ZiIiCh9lsxtGjR1FUVIRJkyZhxYoVsu5A9gWvhRpJknD16lWMGzcOsbGx3rpNv+rx1zU1gGukpq2tDWaz2S9+XkREFJgkScKdO3dw7NgxKJVKvPXWW7Kdt+hrXgs1Dx48QF1dHVatWuWtW/SL1WqFw+HwyzU1QPfFwgw1REQ0EK2trTh69CgKCgqQkZGBlStXIioqSu6yfMZroebGjRvQ6/V+M93j7lHjr6EmNjYWkZGRqKqqwgsvvCB3OUREFGDu3r2L7OxsAMCGDRswfvx4mSvyPa+EGpvNhoKCAsydO9dv1of44xEJTxIEAaIoorq6Wu5SiIgogLS1teH48eO4c+cOxo4di9WrV/tdk1lf8UqoKSgoQGdnp19tT/bXIxKeJIoi7t27J3cZREQUIAoLC3HkyBE4HA68/vrryMjI8JvBBDl4JdTcvn0bSUlJ0Gg03rj8gFgsFoSFhfl110RRFJGTkwOr1Rr0K9SJiGjgrFYrTpw4gVu3biEtLQ1r1qzx25kIX/J4qLFYLCgrK8Mrr7zi6UsPir823nvSk4uFR40aJW8xRETkl0pKSnD48GHYbDasXbsWL7744pAenXmSx0PNnTt3IAgC0tPTPX3pQbFYLH6fYvV6PUJCQhhqiIioh46ODvz888+4fv06UlNTsWbNGqjVarnL8iseDzV5eXlIS0tDZGSkpy89KGaz2e9HahQKBRISEthZmIiIurl//z6ysrLQ1taGVatWYerUqRyd6YVHQ01dXR0eP36MDRs2ePKyHmGxWGQ/JbwvRFFEZWWl3GUQEZEfsNlsOH36NK5evYpRo0bhvffeg1arlbssv+XRUJOXl4fw8HC/7LMSCGtqAFeouXnzJhwOh1+cl0VERPJ4+PAhsrKyYDabsWLFCkyfPp2jM8/hsVAjSRJu376NcePGISTE64d/94vdbofVavX7NTWAK9Q4nU7U1NTAaDTKXQ4REflYZ2cnfvnlF1y6dAkjRozAO++847eHMfsbj6WPiooKNDU1YeLEiZ66pMdYrVYACIht0u4pMpPJxFBDRDTEVFRUIDMzE01NTVi6dClmzpwJhUIhd1kBw2Oh5s6dO4iJifHLXTt2ux0A/G4EqTdhYWHQ6XRcLExENITY7Xb8+uuv+P3332E0GvHhhx8iPj5e7rICjkc+5SVJQlFREcaMGeOX830OhwNAYIQawDUFxVBDRDQ0PH78GJmZmaivr8fChQsxe/Zsjs4MkEc+5evq6tDU1OSXC4SBP0dqAmXhrSiKKC4uhiRJfhkSiYho8BwOB86dO4fz58/DYDBgx44dAbFL1595JNQUFRUhJCTEL6eegMCafgJcocZms6GxsRFxcXFyl0NERB5WXV2NzMxM1NTUYN68eZg7d27A/OHtzzwWalJSUhAaGuqJy3lcIE4/Aa7Fwgw1RETBw+l04sKFC/jtt9+g1+uxfft2bgrxoEF/yre3t6O8vByrVq3yRD1eEWjTTyqVCiqVCiaTCePHj5e7HCIi8oDa2lpkZmaiqqoKs2fPxvz58wPmj+1AMeifZklJCSRJQlpamifq8YpAm34CAKPRyMXCRERBwOl0IicnB2fPnoVGo8HWrVuRmJgod1lBadCf8sXFxRBFEbGxsZ6oxysCbfoJcPWruXXrltxlEBHRINTX1yMrKwvl5eWYOXMmFi1a5LdLNYLBoD7lnU4niouLMW3aNE/V4xWBNv0EuEZqLly4gNbWVkRHR8tdDhER9YMkSbhy5QpOnz6NmJgYvP/++0hKSpK7rKA3qFBTUVEBq9Xqt1u53QJx+unJxcKpqakyV0NERH3V2NiIrKwsPHz4ENOmTcOSJUsQFhYmd1lDwqA+5YuKihAVFYXhw4d7qh6vcDgcEAQhoJoZabVahIWFoaqqiqGGiCgASJKE3Nxc/Pzzz4iKisLmzZuRnJwsd1lDyqBCTXFxMdLS0vy+QZzdbg+oURoAEAQBoiiiurpa7lKIiOg5mpubcfjwYZSVlWHKlClYtmwZwsPD5S5ryBnwJ317eztqamowa9YsT9bjFYEYagDXFFRpaancZRAR0TNIkoSbN2/i5MmTCAsLwzvvvIPRo0fLXdaQNeBP+vLycgAIiIVPDocjoBYJu4miiCtXrsBms3E+lojIz5jNZhw5cgTFxcV48cUXsXz5ckRERMhd1pA24FDz6NEjqFQqaDQaD5bjHYE8UgO42mmPGDFC5mqIiAhwjc7k5eXh+PHjCAkJwVtvvYUxY8bIXRZhkKEmKSnJ79fTAK6RmkAMNfHx8VAoFDCZTAw1RER+wGKxIDs7GwUFBcjIyMDKlSsRFRUld1n0hwF90tvtdjx+/BhLly71dD1eYbfbA3L6KSQkBPHx8ewsTETkB/Lz83Hs2DEAwIYNG3iMjR8aUKh5/PgxHA5HwIweBOr0E+CagmKoISKST1tbG44dO4b8/HyMGzcOq1atYlNUPzWgT/ry8nKEhoZ2rfnwd4E6/QS4Qk1+fj6cTmdA9dkhIgoGBQUFOHr0KBwOB15//XVkZGQExLKLoWpAn/SPHj1CYmJiwHzIBur0E+AKNXa7HXV1dUhISJC7HCKiIaG9vR0nTpzA7du38cILL2D16tWIiYmRuyx6jn6HGkmSUF5ejunTp3ujHq8I5FT95HEJDDVERN5XXFyMI0eOwGazYd26dZg0aVJAf44MJf0ONXV1dWhvbw+Y9TQAEBoaipaWFrnLGJCIiAhoNBqYTCZMnDhR7nKIiIJWR0cHTp48iRs3biA1NRVr165FbGys3GVRP/Q71JSXl0MQBCQmJnqjHq8IDQ1FZ2en3GUMGBcLExF5V1lZGQ4fPoz29nasXr0aU6ZM4ehMAOp3qDGZTNDpdAF1pkVoaChsNpvcZQyYKIq4fPkyJEniLxkRkQfZbDacOnUK165dw6hRo7Bly5aAaCpLvRvQ9FN8fLw3avGaYBipaW9vR0tLC9RqtdzlEBEFhYcPHyIrKwsWiwUrV67EtGnT+IdjgOt3qKmpqcHUqVO9UYvXBHqoMRqNAFyjZAw1RESD09nZiTNnzuDy5csYMWIENm3ahLi4OLnLIg/oV6hpa2tDa2trwO3CCQsLC+jpp5iYGERGRsJkMvF8ESKiQaioqEBmZiaampqwbNkyzJgxI2Dak9Dz9SvU1NbWAkBATj85nc6APa1bEAQYjUYuFiYiGiC73Y6zZ88iJycHw4YNw86dO6HX6+UuizysX6GmpqYGCoUCOp3OW/V4RWhoKADXkGMghhoAMBgMuHfvntxlEBEFnMePHyMzMxP19fVYuHAhZs+ezdGZINXvkZq4uLiACwZPhpqIiAiZqxkYo9GInJwctLe3IzIyUu5yiIj8nsPhwLlz53D+/HkYDAbs2LEDBoNB7rLIi/odagJtPQ3gWlMDIKAXC7s7C1dXV2PUqFHyFkNE5OdMJhMyMzNRW1uLefPmYe7cuQH3Bzn1X7/G32prawNuPQ3w50hNIC8W1ul0CAkJQVVVldylEBH5LafTiXPnzmH//v2QJAnbt2/HggULGGiGiD6P1Lh3PgVyqAnkkRqFQgGDwYDq6mq5SyEi8ku1tbXIzMxEVVUVZs+ejfnz5yMkZEDnNlOA6vP/2oG68wkIjlADuBYLV1ZWyl0GEZFfcTqdyMnJwdmzZ6HVarFt2zYMHz5c7rJIBn0ONc3NzQAQkO2jg2FNDeBaLHzz5k3Y7Xb+9UFEBKC+vh6ZmZmoqKjAyy+/jIULF3b9IUtDT58/GS0WC8LDw7sCQiAJhjU1gGuxsNPpRG1tbVeXYSKioUiSJFy+fBlnzpxBTEwM3n//fSQlJcldFsmsz6HGbDYjJibGm7V4TTBNPwmCgKqqKoYaIhqyGhsbkZWVhYcPH2L69OlYvHhxQP7BTZ43JEKNIAgICQkJ+FATGhoKnU7HzsJENCRJkoRr167h1KlTiI6OxubNm5GcnCx3WeRH+hVqAvkwxdDQ0ICffgJcU1AMNUQ01DQ3N+Pw4cMoKyvDlClTsGzZMoSHh8tdFvmZfq2pSUxM9GYtXhUWFhbwIzWAK9QUFRVBkiQIgiB3OUREXiVJEm7evImTJ08iPDwcmzZtQmpqqtxlkZ/qU6iRJCmgp5+A4BqpsdlsaGhoCLgzuIiI+sNsNuPIkSMoLi7Giy++iOXLlwfsUTfkG30KNR0dHejs7AzoUBMdHY3W1la5yxg093EJJpOJoYaIgpIkScjLy8Px48cREhKCjRs34oUXXpC7LAoAfQo1ZrMZAKBSqbxajDfFxsZ29doJZNHR0YiJiYHJZEJ6errc5RAReZTFYkF2djYKCgowYcIErFy5kof4Up/1K9QE8khNbGwsHj16JHcZHsHFwkQUjPLz85GdnQ1BEPDmm29i3LhxcpdEAaZPocY9bRPoIzVmszkoFtiKoogbN27IXQYRkUe0tbXh2LFjyM/Px7hx47Bq1SpER0fLXRYFoD6FGveuoUBuPa1Wq+F0OmGxWAJ6xAlwhRqLxQKLxRLQQZOIqKCgAEePHoXT6cT69euRnp4e8H94knz6FGrsdjuUSmVA/4cWGxsLAGhpaQn4UOPuJmwymTB69GiZqyEi6r/29nacOHECt2/fxgsvvIA1a9bwjzQatD6HmkA/QNHdOLC5uTngT2/VaDQIDw9nqCGigFRcXIwjR47AZrNh3bp1mDRpUkD/0Uz+Y8iEmsjISISEhKClpUXuUgZNEAQuFiaigGO1WvHzzz/jxo0bSE1Nxdq1a7tG0Yk8oc9ragJ5PQ3gCgLBsq0bcB1uWVpaKncZRER9UlZWhqysLFitVqxevRpTpkzh6Ax53JAZqQFcU1DBMFIDuBYLX7lyBTabjafTEpHfstlsOHXqFK5du4ZRo0Zh3bp10Gg0cpdFQWpIhZrY2FjU19fLXYZHuBcLV1dXY8SIETJXQ0TU04MHD5CVlYXW1lasXLkS06ZN4+gMedWQCzVlZWVyl+ER8fHxUCgUMJlMDDVE5Fc6Oztx5swZXL58GUlJSXj33XcRFxcnd1k0BPQpqTgcjqAINWq1GhaLBU6nEwqFQu5yBkWpVCIhIQFVVVVyl0JE1KW8vByZmZloaWnBsmXLMGPGjIB/v6XAMeRGatwnjru3eAcyURRRXV0tdxlERLDb7Th79ixycnIwbNgwbNy4EXq9Xu6yaIjpU1KRJMnbdfjEk71qgiXU5OXlweFwQKlUyl0OEQ1Rjx8/RmZmJhoaGrBo0SLMmjWLozMkiz6FmtDQUFitVm/X4nVPdhUOBqIowuFwoL6+HgkJCXKXQ0RDjMPhwG+//YYLFy5AFEXs2LGD70Ukqz6FmpCQkK7znwJZREQEwsLCgibUGAwGAEBVVRXfSIjIp0wmEzIzM1FbW4v58+djzpw5HDEm2fV5pCYYQg2AoGrAFxERAa1WC5PJhEmTJsldDhENAQ6HAxcuXMC5c+eg1+uxffv2rhYTRHIbcqEmmBrwAeBxCUTkMzU1NcjMzITJZMKcOXMwf/58js6QXxlyoSY2NjaodgyJooicnBxIksSmVkTkFU6nEzk5OTh79iy0Wi22bdsW8AcDU3AacqFGo9Hg3r17QRMCRFGE1WpFc3MzW48TkcfV1dUhKysLFRUVePnll7Fo0aKgaPFBwWnIhRqDwQCr1YqWlpag2dYNuBbtMdQQkadIkoTLly/jzJkziI2NxdatW9m9nPxen0ON0+kMin4oT4aAYAg1MTExiIqKgslkwtixY+Uuh4iCQENDA7KysvDo0SNMnz4dS5YsQWhoqNxlET1Xn0MN4OoYGeihJjY2FpGRkTCZTBgzZozc5QyaIAhcLExEHiFJEq5du4ZTp04hOjoa7733HkaNGiV3WUR91qdQExYWBsB1hHx4eLhXC/I2dwgItsXC+fn5cpdBRAGsqakJhw8fxv379zF16lQsXbo04N/vaejpU6hRqVQAALPZjJiYGK8W5AsGgwGFhYVyl+Exoiji999/R3t7OyIjI+Uuh4gCiCRJuHHjBk6ePImIiAhs2rQJqampcpdFNCB9CjVPHi8wbNgwrxbkC6Io4tKlS+jo6AiKv0Tcja9MJhOSk5NlroaIAkVLSwuOHDmCkpISvPjii1i+fDkiIiLkLotowPoUaqKioqBUKoOmaZ17sXB1dTWSkpJkrmbw4uLiEBISwlBDRH0iSRJu376NEydOICQkBBs3bsQLL7wgd1lEg9anUCMIAmJjY4Mm1Oj1eiiVSphMpqAINQqFAgaDgYuFiei5LBYLjh49isLCQkyYMAErV67ktDUFjT53UAqmUKNUKhEfHx9UIUAURZSXl8tdBhH5sTt37uDYsWMQBAFvvvkmxo0bJ3dJRB41JEMNEHxnJomiiOvXr8Nut7PbJxF109bWhuzsbNy9exfjx4/HK6+8gujoaLnLIvK4foWaYBoJEEUReXl5cDqdUCgUcpczaEajEZIkoaamJigWcxORZ9y7dw/Z2dlwOp1Yv349MjIy5C6JyGv6FWrMZnNQnZnkcDhQV1eHhIQEucsZtISEBAiCAJPJxFBDRGhvb8fx48eRl5eHMWPGYPXq1V3tOYiCVb9CjcPhQGtra1D8YhgMBgCubdDBEGpCQ0Oh1+tRVVUldylEJLOioiIcOXIEnZ2dePXVVzFx4sSg+GOU6Hn6FWoAV1+DYAg1ERER0Gg0MJlMmDhxotzleESwdUomov6xWq04efIkbt68idGjR2PNmjVd791EQ0GfQ01cXBwA1zH0wTK9EWwhQBRFFBQUBM06ISLqu9LSUhw+fBhWqxVr1qzB5MmTOTpDQ06fP/meHNkIFu7eLpIkyV2KR4iiiM7OTjQ2NspdChH5iM1mw9GjR/HVV19Bp9Nh165dmDJlCgMNDUn92vsbjCMbbW1tMJvNQTFE6+6UXFVVBZ1OJ3M1RORtDx48QFZWFlpbW/HKK6/gpZdeYpihIa1fcxTBOLIBIGhGn6KiohAbGxs0r4eIetfZ2Ynjx4/jiy++QGxsLHbu3Ilp06Yx0NCQ1++Rmra2NlgslqA4rVutViMiIgLV1dVBc+5JsDUVJKLuysvLkZmZiZaWFixbtgwzZ85kmCH6Q79DDeAa2QiGUCMIAkRRxOPHj+UuxWNEUURubq7cZRCRh9ntdvzyyy/IyclBYmIiNm7cCL1eL3dZRH6lX6FGrVYjPDwcJpMJaWlp3qrJp0aOHInLly8HzY4hURTR2toKs9kcFMGTiIDKykpkZmaisbERixcvxqxZs4Li/YrI0/r1W+Ee2QimxcIpKSmwWq1BM2UTbOuEiIYy9+jMJ598gtDQUOzYsQNz5sxhoCF6hn6ffGgwGFBaWuqNWmQxfPhwhIaGoqysLCj672g0mqAbTSMaikwmE3766SfU1dVh/vz5mDNnDpRKpdxlEfm1fsd9URRRX18Pm83mjXp8TqlUYuTIkbh//77cpXiEezSNIzVEgcnhcOC3337D/v37IQgCPvjgA8yfP5+BhqgP+j1S4x7NqKysRHJysscLkkNKSgp++eUX2O12hIT0+0fid0RRRHFxsdxlEFE/1dTUIDMzEyaTCXPmzGGYIeqnfo/UJCQkICoqKmhGNgAgOTkZdrsd5eXlcpfiEaIooqGhAR0dHXKXQkR94HQ6ceHCBezbtw+dnZ3Ytm0bFi1axEBD1E/9HpYQBAHJyclBFWoMBkNXUAuG0Sf3YuHq6mokJSXJXA0R/ZW6ujpkZmaisrISs2bNwsKFC4NixJhIDgNaQp+cnIzKykpYrVZP1yMLd1ArKyuTuxSPiI+Ph1Kp5LoaIj8mSRJycnLw8ccfo729HVu3bsXSpUsZaIgGYUC/PcnJyZAkCQ8fPsSYMWM8XZMskpOTkZ2dDavVioiICLnLGRSlUon4+HiGGiI/1dDQgKysLDx69AgzZszA4sWLERoaKndZRAFvQKFGq9VCrVajrKwsaEJNSkpKUAU17oAi8j+SJOHq1as4ffo0oqOj8d5772HUqFFyl0UUNAYUaoJxXY1Wq4VGowmaoCaKIvLy8uBwOLjYkMgPNDU14fDhw7h//z6mTp2KZcuWISwsTO6yiILKgCdvU1JScPPmTVgsFqhUKk/WJJtgCmpGoxEOhwN1dXUwGAxyl0M0ZEmShBs3buDkyZOIiIjApk2bkJqaKndZREFpwL223buEgiUEAK6gVltbC7PZLHcpg+YOMpyCIpJPS0sL/vnPf+LIkSMYP348du3axUBD5EUDDjUqlQrx8fFBs2MICK6gFh4ejri4OFRVVcldCtGQI0kSbt26hT179sBkMmHjxo1Yt25dwG9CIPJ3g9o7mJqairy8vKA54To6OhoGgwH379/HxIkT5S5n0ILt8FGiQGCxWHD06FEUFhZi4sSJWLFiBSIjI+Uui2hIGFQSSU9PR2trKx4+fOipemTn7lcjSZLcpQyaewdUMLwWIn8nSRLu3LmDPXv2oKKiAm+++SZee+01BhoiHxpUqBk+fDjUajXy8/M9VY/skpOT0dLSgoaGBrlLGTRRFGG1WtHc3Cx3KURBrbW1FT/88AN+/PFHJCcnY/fu3Rg3bpzcZRENOYMKNYIgID09HXfv3oXD4fBUTbIaOXIkFApFUKyrcR+XwHU1RN5z79497NmzB/fv38cbb7yBDRs2ICoqSu6yiIakQS+EycjIQHt7e1CEAMC1wHb48OFBsQBapVIhOjqaO6CIvKC9vR2HDh3Cd999hxEjRmD37t1IT0+XuyyiIW3Qh4yIooi4uDjk5+dj9OjRnqhJdikpKbh06VLAN64TBIGLhYm8oKioCEeOHIHdbsdrr72GCRMmQBAEucsiGvIGPVLjnoK6d+8e7Ha7J2qS3fjx49HR0YHS0lK5Sxk0URQ5/UTkIVarFVlZWfjmm28giiJ27dqFiRMnMtAQ+QmP7MPOyMgImhAAAAkJCYiPjw+KBdCiKKKlpQVtbW1yl0IU0EpLS7F3717cvXsXa9aswdtvv43Y2Fi5yyKiJ3jkjPsnQ0AwnJsEuLar//777+js7Azo03Pdi4VNJhNSUlJkroYo8HR0dODUqVPIzc1FSkoK1q5dC7VaLXdZRNQLj3XMS09PR2FhITo7Oz11SVllZGTAZrOhpKRE7lIGJS4uDqGhoVwsTDQADx48wEcffYTbt2/jlVdewaZNmxhoiPyYx0LNhAkTYLPZgmLKBgB0Oh1EUQz416NQKGAwGBhqiPrBZrPh+PHj+OKLL6BWq7Fr1y5MmzaNa2eI/JxHpp8A14jA6NGjceXKFUyaNCkofvnT09Px22+/wWazISwsTO5yBkwUxaDq+kzkTY8ePUJWVhZaWlqwfPlyzJgxIyjez4iGAo8e2DRt2jRUVVWhsrLSk5eVTXp6Oux2O4qKiuQuZVBEUURdXV3QTA0SeYPdbsfPP/+Mzz77DFFRUdi5cydmzpzJQEMUQDw2UgMAo0ePhlarxZUrV5CYmOjJS8tCq9Vi+PDhyM/PR0ZGhtzlDJgoipAkCTU1NRg+fLjc5RD5ncrKSmRmZqKxsRFLlizByy+/HBSH9BINNR79rVUoFHjppZeQn58Pi8XiyUvLJj09HcXFxbBarXKXMmAJCQkQBIHraoieYrfbcebMGXzyyScICwvDhx9+iNmzZzPQEAUoj//mTp48GQqFAtevX/f0pWWRnp4Oh8OBwsJCuUsZsNDQUOj1eoYaoidUVVVh//79+P3337FgwQJs3boV8fHxcpdFRIPg8VATGRmJCRMm4Nq1a0FxyGVsbCySkpICfheU0WhkqCEC4HA48Ouvv+LAgQMQBAEffPAB5s2bF9BHohCRi1fGWKdPnw6z2RzQoxtPSk9PR2lpaUB35TUYDKiurobT6ZS7FCLZ1NTU4JNPPsG5c+cwZ84cfPDBB10NKoko8Hkl1IiiiKSkJFy5csUbl/e58ePHQ5IkFBQUyF3KgBmNRnR2dqKhoUHuUoh8zul04vz589i3bx/sdju2b9+OhQsXcnSGKMh4bTXc9OnT8fDhw6CY8lCpVBg1alRAT0E9eVwC0VBSV1eHTz/9FGfPnsXMmTOxY8cODBs2TO6yiMgLvBZqxo4dC41Gg/Pnz3vrFj6Vnp6O+/fvB+yursjISKjVap7YTUOG0+lETk4OPv74Y1itVrz//vtYsmQJQkI82smCiPyI10KNUqnE3LlzcffuXVRXV3vrNj4zbtw4CIKAe/fuyV3KgImiGBT/WxA9T0NDA7744gv8/PPPmDp1Kj788EOMGDFC7rKIyMu82oxh0qRJ0Gq1+PXXX715G5+IiopCSkpKwE9BVVVVQZIkuUsh8gpJknDlyhV89NFHaGlpwZYtW7BixQqEhobKXRoR+YBXQ41SqcS8efNQUFAQFNMe6enpePjwIVpaWuQuZUBEUURbW1vATqER/ZWmpiYcPHgQx48fx6RJk7Br1y6MHDlS7rKIyIe83jZz4sSJiIuLw2+//ebtW3nd2LFjoVQqA3a0houFKRhJkoTc3Fzs3bsXjY2NePfdd7Fq1aqAPoSWiAbG66FGoVBg3rx5KCwsxOPHj719O6+KiIjAmDFjcP369YCcwlGr1YiIiAiKUTMiAGhpacHXX3+No0ePIj09Hbt27UJKSorcZRGRTHxywMmECROg0+mCYrRm2rRpqKurw4MHD+Qupd8EQeBiYQoKkiTh5s2b2LNnD2pqavD2229j7dq1CA8Pl7s0IpKRT0KNQqHA/PnzUVRUhMrKSl/c0mtGjhyJ+Pj4gG0s6F4sTBSozGYzvv32W2RlZWHMmDHYtWsX0tLS5C6LiPyAz46iTU9Ph16vD/idUIIgYPr06SgsLERzc7Pc5fSbKIpobGxER0eH3KUQ9YskScjLy8PevXtRWVmJv/3tb3jttdcQGRkpd2lE5Cd8FmrcozUlJSUBOXXzpIkTJyIsLAzXrl2Tu5R+42JhCkStra34/vvvcejQIaSkpGD37t0YO3as3GURkZ/xWagBXKM1iYmJOH78eEAfrBgWFoYXX3wR169fh91ul7ucftHr9VAqlQw1FDDu3r2LPXv24MGDB3jjjTfwxhtvICoqSu6yiMgP+TTUCIKAlStXoqamBlevXvXlrT1u2rRpaGtrC7jt3UqlEgkJCQw15Pfa29vx448/4vvvv0dSUhJ2796N9PR0ucsiIj/m80NQhg0bhilTpuDs2bPIyMhAdHS0r0vwCJ1Oh9TUVFy9ehWTJk2Su5x+4WJh8ndFRUU4cuQI7HY7XnvtNUyYMAGCIMhdFhH5OZ+O1LgtXrwYgiDgzJkzctzeY6ZNm4bKysqA29EliiJqamrgcDjkLoWoG6vViszMTHzzzTcwGo3YvXs3Jk6cyEBDRH0iS6iJiorCokWLcOPGjYALBE9KS0uDRqMJuKk0URThdDpRW1srdylEXUpKSrB3717cu3cPa9euxcaNGxETEyN3WUQUQGQJNQAwdepUiKKIY8eOBWR3XsC1o+ull17CnTt30NraKnc5fWYwGABwBxT5h46ODhw5cgRff/019Ho9du/ejcmTJ3N0hoj6TbZQo1AosHLlSjx+/Bg3btyQq4xBc7/5Xr9+Xe5S+iw8PBxxcXEMNSS7+/fvY+/evcjLy8OqVauwadMmqNVqucsiogAlW6gBgKSkJEycOBFnzpxBe3u7nKUMWFRUFDIyMnDt2rWA2qZuNBoZakg2NpsNx44dw8GDB6HRaLBr1y689NJLHJ0hokGRNdQAwJIlS2C323H27Fm5Sxmw6dOno6WlBYWFhXKX0mcGgwEmkylgp/4ocD169Agff/wxbty4gRUrVuC9996DVquVuywiCgKyh5qYmBgsXLgQV69eDdhOw0ajESNGjAioBcNGoxEdHR1oamqSuxQaIjo7O3Hy5El89tlniIqKws6dOzFjxgyOzhCRx8geagBgxowZGDlyJLKysgL2TKJp06bh/v37AbOjiMclkC9VVFRg3759uHr1KpYsWYL3338fOp1O7rKIKMj4RagRBAHr1q1Da2srfv75Z7nLGZDx48cjOjo6YE7vVqlUiI6OZqghr7Lb7Thz5gw+/fRThIWF4cMPP8Ts2bOhUPjFWw8RBRm/eWfRarVYtmwZrl+/juLiYrnL6TelUompU6fi1q1bsFqtcpfTJ1wsTN5UVVWF/fv34/fff8eCBQuwbds2xMfHy10WEQUxvwk1gKt3TWpqKg4fPhyQu6FeeuklOBwO3Lp1S+5S+sS9WJjIkxwOB3799VccOHAAgiDggw8+wLx58zg6Q0Re51fvMoIgYO3atbDb7Th+/Ljc5fRbTEwMxo0bh0uXLgXEEQRGoxEtLS1oa2uTuxQKEtXV1Thw4ADOnTuHOXPm4IMPPuhav0VE5G1+FWoAIDY2FitXrkReXh7u3r0rdzn9NnfuXDQ1NQXEaA0XC5OnOJ1OnD9/Hvv27YPD4cD27duxcOFCKJVKuUsjoiHE56d098WECRNw7949ZGdnIykpCSqVSu6S+sxgMGD8+PE4f/48Jk2a5Ndv6nFxcQgNDUVVVRVSUlLkLocCVG1tLbKysvD48WPMmjULCxYsQEiIX761EFGQ87uRGsA1DbV69WoAwNGjRwOuQdz8+fPR1NSEmzdvyl3KXxIEAaIoorq6Wu5SKAA5nU78/vvv+Pjjj2G1WrF161YsWbKEgYaIZOOXoQYAoqOjsXr1ahQWFuLatWtyl9MvCQkJSE9Px/nz5/1+bY0oiqiqqpK7DAow9fX1+Pzzz3Hq1ClMmzYNH374IRITE+Uui4iGOL8NNQAwbtw4TJ8+HSdOnEBlZaXc5fTL/Pnz0dzc7PeHdYqiiPr6enR2dspdCgUASZJw+fJlfPTRR7BYLNiyZQuWL1+O0NBQuUsjIvLvUAMAy5Ytw7Bhw/Ddd98F1C6d+Ph4ZGRk4Pz587Db7XKX80yiKEKSJE5B0XM1Njbi4MGDOHHiBF588UXs3LkTI0eOlLssIqIufh9qlEol3njjDdjtdhw6dCigTsKeP38+zGazX4/WJCQkQBAE7oCiZ5IkCdeuXcNHH32ExsZGvPvuu1i1ahXCwsLkLo2IqBu/DzUAoFar8frrr6O0tBTnzp2Tu5w+0+v1fj9aExISgvj4eIYa6lVzczO+/vprZGdnIz09Hbt27eJOOSLyWwERagAgNTUVCxcuxG+//YaSkhK5y+mz+fPnw2KxIDc3V+5SnkkURYYa6kaSJNy8eRN79+5FTU0N3n77baxduxbh4eFyl0ZE9EwBE2oAV2O7tLQ0HDp0CE1NTXKX0yc6nQ4TJkzAhQsX/HYxrntbdyBN7ZH3mM1mfPvtt8jKysLYsWOxa9cupKWlyV0WEdFzBVSoEQQBr732GsLDw/H999/77ZTO0+bNm4fW1la/Ha0RRRF2ux319fVyl0IykiQJeXl52LNnDyorK/HWW2/h1VdfRWRkpNylERH1SUCFGgCIjIzEhg0bUF1djZMnT8pdTp/odDpMmjQJFy9e9MvRGh6XQK2trfj+++9x6NAhjB49Grt378aYMWPkLouIqF8CLtQAwLBhw7By5Upcu3bNb0c/njZ37ly0trb6ZSPByMhIqNVqhpoh6u7du9izZw8ePnyIN954A+vXr0dUVJTcZRER9VvA9jOfMmUKqqurkZ2dDbVajdGjR8td0l+Ki4vrGq2ZOnWq322H5WLhoaetrQ3Hjx/HnTt3MHbsWKxevRrR0dFyl0VENGABOVIDuNbXrFixAmlpafj+++8D4gN53rx5aG9v98vRGneoCbRztmhgCgsLsXfvXpSUlOD111/Hm2++yUBDRAEvYEMNACgUCqxfvx5xcXH45z//iZaWFrlL+ktarbZrtMZms8ldTjeiKKKtrQ1ms1nuUsiLrFYrMjMz8e2338JoNGL37t2YMGECBEGQuzQiokEL6FADAGFhYXj77bchCAK++eYbdHR0yF3SX5o3bx6sViuuXr0qdyndGI1GAFwsHMxKSkqwZ88eFBQUYO3atdi4cSNiYmLkLouIyGMCPtQAQExMDN5++200Njbihx9+8Ot+KxqNBpMnT8bFixf9KoDFxsYiIiKCoSYIdXR04MiRI/j6668RHx+PXbt2YfLkyRydIaKgExShBgAMBgPefPNNlJWV4dixY369NmTu3Lmw2Wz4/fff5S6liyAIMBqNDDVB5v79+9i7dy/y8vKwatUqbNq0CWq1Wu6yiIi8ImhCDQCkpKRg9erVyM3N9avA8DS1Wo2XX34ZFy9eRGNjo9zldDEYDAw1QcJms+HYsWM4ePAgtFotdu3ahZdeeomjM0QU1IIq1ADA5MmTMXfuXJw+fRr5+flyl/NMc+fORXR0tF81EDQajWhsbITVapW7FBqER48e4aOPPsKNGzewYsUKbN68GVqtVu6yiIi8LuhCDQAsXLgQEyZMwE8//YSysjK5y+lVWFgYli5disLCQr85oNPdWbi6ulrmSmggOjs7cfLkSXz22WdQqVTYuXMnZsyYwdEZIhoygjLUCIKAtWvXYtSoUfj222/x6NEjuUvqVXp6OkaNGoUTJ07A4XDIXQ70ej2USiWqqqrkLoX6qaKiAh9//DGuXr2KpUuXYsuWLdDpdHKXRUTkU0EZagAgJCQEf/vb3zB8+HB8/fXXqKyslLukHtwNBBsaGnDp0iW5y4FCoYDBYOBITQCx2+04ffo0Pv30U4SHh+PDDz/ErFmzoFAE7a82EdEzBfU7X2hoKDZu3AiDwYCvvvrKLxfBGgwGTJs2DefOnfOLxneiKHKkJkA8fvwY+/btQ05ODhYuXIht27YhPj5e7rKIiGQT1KEG+LM5n1arxZdffona2lq5S+phwYIFCAkJwenTp+UuBaIoora21i+mw6h3DocDZ8+exYEDB6BUKrFjxw7MnTuXozNENOQNiXfBiIgIbNq0CSqVCgcPHkR9fb3cJXUTGRmJxYsX4/bt27Kv/xFFEU6nEzU1NbLWQb2rrq7GgQMHcOHCBcybNw/bt2+HwWCQuywiIr8wJEINAERFRWHz5s2IiIjAwYMH0dTUJHdJ3UyePBnDhg3D8ePHZe2I7P6A9MepuqHM6XTi3Llz2LdvHxwOB7Zv344FCxZAqVTKXRoRkd8YMqEGAKKjo7F582YolUocPHjQrw7AFAQBK1euhMlkQm5urmx1hIWFQafTMdT4kdraWnzyySf49ddfMWvWLOzYsaPrrC4iIvrTkAo1gOucqM2bN8PpdOLgwYOwWCxyl9QlMTERL774Is6ePYu2tjbZ6hBFkaHGDzidTvz+++/4+OOP0dHRga1bt2Lx4sUICQmRuzQiIr805EIN4DpUcvPmzejo6MAXX3zhVyM2ixcvhtPpxC+//CJbDe5Q48/nZwW7+vp6fP755zh16hSmTZuGDz/8EImJiXKXRUTk14ZkqAGAuLg4bNmyBZ2dnfjss8/Q0NAgd0kAAJVKhQULFiA3N1e2rdWiKMJms/nVuVRDhSRJuHz5Mj766CNYLBZs2bIFy5cvR2hoqNylERH5vSEbagBAp9Ph/fffh1KpxGeffeY3O36mTZuG+Ph4HD9+XJbREvdxCZyC8q3GxkZ88cUXOHHiBCZPnoydO3di5MiRcpdFRBQwhnSoAVwnZr///vtQqVT4/PPP/aLzsFKpxMqVK1FeXo68vDyf31+lUkGlUjHU+IgkSbh27Rr27t2LpqYmbN68Ga+88grCwsLkLo2IKKAM+VADuHZFvffee9Dr9Th48CAePHggd0lITk7G+PHjcerUKXR0dPj8/lws7BvNzc346quvkJ2djQkTJmDXrl1ITk6WuywiooDEUPMHd4O+xMREfPXVVygqKpK7JCxbtgxWqxXnzp3z+b0ZarxLkiTcuHEDe/fuRW1tLd555x2sWbMG4eHhcpdGRBSwGGqeEBYWho0bNyItLQ3/+te/ZJn6eZJarcacOXNw6dIl1NXV+fTeoijCbDajtbXVp/cdCsxmM7755hscPnwYY8eOxe7duzF69Gi5yyIiCngMNU8JCQnBhg0bMGHCBBw6dEjWRngAMHv2bGg0Ghw+fNinnYbdzd04WuM5kiTh9u3b2LNnD6qqqvDWW2/h1VdfRUREhNylEREFBYaaXigUCqxbtw7Tp0/H0aNHcfHiRdl6toSEhGDdunUoLy9HTk6Oz+6r1WoRFhbGUOMhFosF3333HX766SeMHj0au3btwpgxY+Qui4goqLA16TMIgoAVK1YgPDwcp0+fRnNzM1asWCHLSchJSUl4+eWXcfbsWaSlpSEhIcHr9xQEgetqPCQ/Px/Hjh0DAGzYsAHjx4+XuSIiouDEUPMXBEHAokWLoFarkZ2djcbGRrzxxhuyLOZctGgRiouLkZmZiW3btvnkIEODwYD79+97/T7Bqq2tDceOHUN+fj7GjRuHVatWITo6Wu6yiIiCFqef+mDq1Kl45513UF5ejs8++wzNzc0+ryEkJASvvvoqTCYTLly44JN7Go1G1NXVwWaz+eR+waSgoAB79uxBaWkpXn/9dWzYsIGBhojIyxhq+ig1NRVbt26F1WrFgQMH8PjxY5/XMHz4cMyZMwfnzp3zyREK7s7C/tJpORC0t7fjp59+wr/+9S8MHz4cu3fvxoQJEyAIgtylEREFPYaafkhISMD27dsRGxuLzz//HAUFBT6vYf78+YiPj0dmZibsdrtX7xUfHw+FQiHbGVSBpri4GHv37kVhYSHWrVuHt956CzExMXKXRUQ0ZDDU9JNKpcKWLVswevRo/Otf/0JOTo5Pd0YplUq89tprqKurw6+//urVe4WEhCA+Pp6LhZ+jo6MDhw8fxj//+U8kJCRg9+7dePHFFzk6Q0TkY1woPAChoaHYsGEDTp8+jZ9//hkNDQ1YuXKlz3ZGGQwGLFiwAGfPnsXYsWORmJjotXuJoojq6mqvXT/QlZWV4fDhw2hvb8fq1asxZcoUhhkiIplwpGaABEHA0qVLsXr1auTm5uKf//ynT89omj17NoYNG4bMzEx0dnZ67T7uUOPLxn+BwGazITs7G19++SW0Wi127dqFqVOnMtAQEcmIoWaQpk6dik2bNqGiogKffvopGhoafHJfhUKBV199Fc3NzThz5ozX7iOKIux2O+rr6712j0Dz8OFDfPTRR7h16xZWrlyJzZs3Q6PRyF0WEdGQx1DjASkpKdi2bRs6Ozuxf/9+nx2GqdfrsWjRIly+fNlrJ4u7d0BxsTDQ2dmJEydO4PPPP4dKpcLOnTsxffp0js4QEfkJhhoPiY+Px44dO5CUlIRvvvkGv/76q08WEM+cORMjR45EVlaWV6a/IiIioNFohvxi4YqKCnz88ce4du0ali5dii1btiAuLk7usoiI6AkMNR4UERGBt956CwsXLsRvv/2Gb775Bu3t7V69pyAIWLduHVpbW3Hq1Cmv3GMoH5dgt9tx6tQpfPrpp4iIiMDOnTsxa9YsWY7LICKiv8Z3Zg8TBAHz5s3r6kC8b98+rwcCrVaLZcuWITc3FyUlJR6/vjvUyHWop1weP36Mffv24dKlS1i4cCG2bt0KvV4vd1lERPQMDDVeMnr0aOzYsQMRERH45JNPcOvWLa/eb+rUqUhJScHhw4dhtVo9em1RFNHe3o6WlhaPXtdfORwOnD17FgcOHIBSqcSOHTswd+5cjs4QEfk5vkt7kVarxdatW5GRkYHMzExkZ2fD4XB45V6CIGDt2rWw2Ww4ceKER6/tXiw8FKagTCYT9u/fjwsXLmDevHnYvn07DAaD3GUREVEfMNR4WWhoKNauXYtVq1bh+vXr+Pzzz7024qFWq7FixQrcunXLo0c4xMbGIjIyMqhDjdPpxLlz57B//35IkoTt27djwYIFPjkNnYiIPIMdhX1AEAS89NJLEEUR3333Hfbt24c33ngDo0aN8vi9Jk2ahHv37uHIkSMYNmwYYmNjB31NQRCCerFwbW0tMjMzUVVVhdmzZ2P+/PkICeGvBhFRoOFIjQ8lJibiww8/RHx8PA4ePIhff/3V45163dNQSqUSP/zwg8emu4Ix1DidTly8eBEff/wxbDYbtm3bhsWLFzPQEBEFKIYaH4uOjsa7776LefPm4dy5c/j888/R1NTk8Xts2LABlZWVOH36tEeuKYoimpqaPL4IWS719fX47LPPcPr0aUyfPh07duzA8OHD5S6LiIgGgaFGBgqFAgsWLMCWLVvQ0tKCjz76CPn5+R69x4gRI7B06VJcunQJd+/eHfT1jEYjgMBfLCxJEi5duoSPPvoIra2teP/997Fs2TKEhobKXRoREQ0Sx9lllJSUhJ07d+Lo0aP44YcfUFJSgpUrVyIsLMwj158xYwbKy8uRlZUFg8EAnU434GvpdDqEhITAZDJ5ZS2QLzQ2NiIrKwsPHz7E9OnTsXjxYo/9rImISH6CNNQ6qvkhSZJw8+ZNHD9+HLGxsVi/fn3XyMhgdXR0YP/+/VAqldi+ffugRiQOHDgAvV6PV1991SO1+YokSbh27RpOnTqF6OhorF27FsnJyXKXRUREHsbpJz8gCAImT56MDz/8EGFhYThw4AB+//13j3TwDQ8Px5tvvonGxkZkZ2cP6poGgyHgpp+am5vx1Vdf4dixY5gwYQJ27tzJQENEFKQYavyITqfDtm3bMGPGDJw6dQpff/01LBbLoK+bkJCAVatW4datW7h+/fqAr2M0GlFbWwu73T7omrxNkiTcuHEDe/fuRV1dHTZt2oQ1a9YgPDxc7tKIiMhLGGr8jFKpxLJly7Bp0yaYTCbs3bsXxcXFg77upEmTMHXqVBw/fhxVVVUDuoYoinA6naitrR10Pd5kNpvxzTff4PDhwxg3bhx27dqF1NRUucsiIiIvY6jxU6mpqdi1axeGDx+Of/7zn8jOzobNZhvUNVesWIGEhAR89913Azo9PCEhAYD/7oCSJAm3b9/Gnj17UFVVhY0bN2LdunWIiIiQuzQiIvIBhho/Fh0djY0bN2LlypW4desW9u7di/v37w/4eiEhIXjzzTdhtVqRmZnZ7/U1YWFh0Ov1Ax7p8SaLxYLvvvsOP/30E9LS0rB792688MILcpdFREQ+xN1PAeLJ7cgvvfQSli5dOuDtyEVFRfjmm2+waNEizJ07t1/f++OPP6KlpQXvv//+gO7tDfn5+cjOzoYgCFi9ejXGjRsnd0lERCQD9qkJEFqtFu+99x6uXr2K06dPo6SkZMBbk1944QXMnTsXZ8+eRWJiYr+uIYoiioqKIEkSBEHo9709qa2tDceOHUN+fj7GjRuHVatWITo6WtaaiIhIPpx+CiCCIGD69OnYtWsX1Go1Dh48OOC1NgsWLMCoUaO6Rl76ShRF2Gw2NDY29vuenlRQUIA9e/agrKwM69evx4YNGxhoiIiGOIaaAOQetRnMWhuFQoH169dDoVD06+BLURQBQLZ1Ne3t7fjpp5/wr3/9C8OHD8fu3buRkZEh+6gRERHJj6EmQD05aqPRaAY0ajOQgy+jo6MRExMjyw6o4uJi7N27F4WFhVi3bh3eeustqFQqn9dBRET+iWtqApxWq8XmzZsHvNbGffDlyZMnkZSU1KdFtqIo+jTUWK1W/Pzzz7hx4wZSU1Oxdu1axMbG+uz+REQUGBhqgoB71CYtLQ2HDx/GwYMHMWXKFCxZsgSRkZHP/f4nD75MSEh47sGXoijixo0bnir/L5WVlSErKwtWqxWrV6/GlClTONVERES94vRTEHGP2rzyyiu4c+cO/ud//ge3b99+bj8aQRCwdu1aqFQqfPfdd+jo6PjL54uiCIvF4pEjHJ7FZrMhOzsbX375JeLi4rBr1y5MnTqVgYaIiJ6JoSbICIKAadOm4d///d8xatQo/PTTT/jyyy9RV1f3l9/nPviyqakJhw4dgtPpfOZz3YuFTSYTzGYz/vWvf3n0PKgHDx5g7969uHXrFlauXInNmzdDo9F47PpERBScGGqCVExMDN544w288847aGpqwkcffYSzZ8/+ZfhISEjAG2+8geLi4l4XDt+6dQsXL16EVqtFeHg4TCYT7t69i+Li4r8MQX3V2dmJEydO4IsvvkBsbCx27tyJ6dOnc3SGiIj6hB2Fh4DOzk6cP38eFy9ehEajwSuvvPKXBzxeunQJJ0+exJo1azBlyhTcv38fV65cQVpaGo4cOYL169fj6tWriImJQUdHBxwOBzZv3jyoGsvLy5GZmYmWlhYsWrQIM2bMgELBzE1ERH3HhcJDQGhoKBYtWoSJEyciOzsbX331FTIyMrBs2TLExMT0eP6MGTNQV1eH7OxsxMXFobOzEwUFBViyZAkyMjJw5MgRjBkzBpWVlWhpacHChQsHXJvdbsfZs2eRk5ODYcOGYePGjdDr9YN5uURENETxT+EhRK/XY/PmzXj11VdRVlaG//mf/8GVK1d6TB0JgoCVK1di5MiR+O677xATEwNBEPDw4UOsXr0aMTExePDgARoaGmC325GWlvbce7e2tuKXX37pdq/Hjx9j3759uHz5MhYtWoStW7cy0BAR0YAx1AwxgiBg0qRJ+Pd//3ekp6fj+PHj+OSTT7p1CG5ubsaXX36JRYsWITIyEocOHYLBYMCDBw+6FhS3t7cDcDXj60sQOX36NK5duwZJkuBwOPDLL7/gwIEDCAkJwY4dOzBnzhxONxER0aDwU2SIioyMxJo1a7B161bY7Xbs378fx48fR3t7O65evYqHDx/iq6++wvTp02E2m2G1WnH//n1IkoSEhAS88sorAACdTvfchbwmkwk3b97EggULUFtbi/379+PixYuYP38+tm3bhoSEBF+8ZCIiCnJcKExwOBy4fPkyfvvtN4SEhGD+/PlobW3FuXPnAABRUVFoa2sDAPzbv/1b18jMiRMnkJGYiESVClCpAJ0OeCrgSJKEgwcPwmw2Iz09HRcuXIBer8err74Ko9Ho2xdKRERBjaGGupjNZpw5cwa3bt2CKIrQ6/W4d+8e0tLSUFRUBKfTiZdffhnLpk8HvvgC+O//BkpL/7xAairw978D770H/NFXprCwEN9++y20Wi2ampowZ84czJ8/H4IgcLqJiIg8iqGGurj/U6isrMTx48fx+PFjhIWFIS4uDps2bcJvv/2GqVYrDJs3A3+M3ODJ/3zcozRRUcCPP8K+eDH+3//7f2hra0NkZCREUURHRwcaGxvR2dmJf/u3f2NTPSIi8hiGGury2Wef4dGjRwgPD0d4eDgkSYLFYoEkSZgyZQrWhIUBq1a5gsxfNdtTKABBQOFXX+HbwkIAgFqthlarhUajgVarRUJCAsaMGcPGekRE5DEMNdSlqqoKjx8/RkdHBzo6OmC1WtHW1oaqqipkpKZiwYYNQHv7XwcaN4UCiIxEc0EBVEYjlEql918AERENaWy+R12MRuOzF+/+13+5ppz6moGdTqCtDepDh4B//MNzRRIRET0DR2ro+SQJSEsDysr6HmoA1xqblBSguLjHrigiIiJPY6ih56urA+LjB/f9Op3n6iEiIuoF99TS81ksg/t+s9kzdRAREf0Fhhp6PpVqcN/fy6GZREREnsZQQ8+n07ka6/V3XYwguL4vLs47dRERET2BoYaeTxBcnYIH4h//4CJhIiLyCS4Upr5pagISE/vdpwYVFV1HJhAREXkTR2qobzQa4McfXaMuzzuz6Y+Owjh0iIGGiIh8hqGG+m75ciA72zUCIwg9p5Xcj0VGAseOAcuWyVMnERENSQw11D/Ll7umlP7zP12N9Z6UkuJ6vLKSgYaIiHyOa2po4CQJaGhw9aGJiXHtcuKiYCIikglDDREREQUFTj8RERFRUGCoISIioqDAUENERERBgaGGiIiIggJDDREREQUFhhoiIiIKCgw1REREFBQYaoiIiCgoMNQQERFRUGCoISIioqDAUENERERBgaGGiIiIggJDDREREQUFhhoiIiIKCgw1REREFBQYaoiIiCgoMNQQERFRUPj/AW5I6xdbPAZYAAAAAElFTkSuQmCC",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"G=nx.MultiGraph ([(1,2),(1,2),(1,2),(3,1),(3,2)])\n",
|
|
"\n",
|
|
"pos = nx.spring_layout(G)\n",
|
|
"\n",
|
|
"\n",
|
|
"nx.draw_networkx_nodes(G, pos, node_color = 'r', node_size = 100, alpha = 1)\n",
|
|
"ax = plt.gca()\n",
|
|
"for e in G.edges:\n",
|
|
" ax.annotate(\"\",\n",
|
|
" xy=pos[e[0]], xycoords='data',\n",
|
|
" xytext=pos[e[1]], textcoords='data',\n",
|
|
" arrowprops=dict(arrowstyle=\"->\", color=\"0.5\",\n",
|
|
" shrinkA=5, shrinkB=5,\n",
|
|
" patchA=None, patchB=None,\n",
|
|
" connectionstyle=\"arc3,rad=rrr\".replace('rrr',str(0.3*e[2])\n",
|
|
" ),\n",
|
|
" ),\n",
|
|
" )\n",
|
|
"plt.axis('off')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 62,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<netgraph._main.Graph at 0x7931c6d7d2e0>"
|
|
]
|
|
},
|
|
"execution_count": 62,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABFAAAAKiCAYAAADxDSgUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1ib5/U38K8kJLH3MtMMsz3wxsbGC7ziFWfHGa3TtE2zm6QjaWabvX6ZTePs5s1oEu+FJ957gW3ADGPM3iCG9vsHQQYbzJL0SOL7ua5eRY+k5z6irpDOc+5zRHq9Xg8iIiIiIiIiIuqRWOgAiIiIiIiIiIgsHRMoRERERERERES9YAKFiIiIiIiIiKgXTKAQEREREREREfWCCRQiIiIiIiIiol4wgUJERERERERE1AsmUIiIiIiIiIiIesEEChERERERERFRL5hAISIiIiIiIiLqBRMoRERERERERES9YAKFiIiIiIiIiKgXTKAQEREREREREfWCCRQiIiIiIiIiol4wgUJERERERERE1AsmUIiIiIiIiIiIesEEChERERERERFRL5hAISIiIiIiIiLqBRMoRERERERERES9YAKFiIiIiIiIiKgXTKAQEREREREREfWCCRQiIiIiIiIiol4wgUJERERERERE1AsmUIiIiIiIiIiIesEEChERERERERFRL5hAISIiIiIiIiLqBRMoRERERERERES9YAKFiIiIiIiIiKgXTKAQEREREREREfWCCRQiIiIiIiIiol4wgUJERERERERE1AsmUIiIiIiIiIiIesEEChERERERERFRL5hAISIiIiIiIiLqBRMoRERERERERES9YAKFiIiIiIiIiKgXTKAQEREREREREfWCCRQiIiIiIiIiol4wgUJERERERERE1As7oQMgIiIiIiIyNp1OB6VKhTalEkqlCm1KFZQqFdRqNVRqNVQqDdQaNdRqDeKjR8DHyxNischo6+v1euRfvITi0nJIpXaQ2tlBJpVCJpNCKpXCXi6DXCaHvVwGe3s5ZFIpRCLjrU9ExscEChERERERWQ29Xo/WNiWaFM1QNDdD0dKC5uYWNLe0orVNiZbWVrS0tkGpUkGv1/d6PplUipQpE42aPOng4+WJ9Iz9fXqsSCSCg70cjg4OcHCwh6ODPZwcHOHs5AAnR0e4ODvBxdkJcpnM6HESUd8w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Z86cQUNDAzZt2oSdO3fi5ptvxp133onExER4enoiKCjI8DyWug09I8JDcexM1oCrUHqrOCEiIvPrqCbtqCxdtmwZli5dip9++glTp04VODoiov5JTEyESqWCUqmEg4MDgPbPmxUVFdi+fTv27t0LoP1icGBgoJChDlncwkM24cSJE1izZg127dqF8+fPo7a2FgDg4OCAm266Cbfddhvmzp3LbTtD3EB6oTBxQkRkPbhFl4is3f33349Vq1ZhzJgxSElJQXBwMLKzs7F69WrU1NQYHvP+++/Dzs6On0vNjAkUsjod+563bt0KuVyOGTNmGO47fvw41q1bh507dyI7O9vwJrNixQp8/fXXAkVMlqI/vVCYOCEiIiIicysuLsaECRNQXV0NnU4HR0dHQwNsJycnzJw5E5988gmGDRsmcKRDExMoZFU6GnM2NTUhMjISwcHBSEtLw6JFi5CUlGR4XOdEyvHjx3HixAnExMSwUzX1WoXCxAkRkeXr6H3C92ciskU//vgjPvjgA+zbtw8A4OLiAg8PDyQlJeGBBx7AtGnTAAANDQ3Izc3FhAkToNFoYGfHDh2mxgQKWaUXX3wRzz//PADA3d0d0dHRSElJwZIlS7okUg4dOoTi4mLcfPPNLOslAD1XoTBxQkRkWTpPMysrK4NSqURVVRViYmLg4uICgIkUIrJdNTU1WLt2Lerq6iCTyRAREYH58+dDJBKhubkZP/zwA9544w3k5OSguroanp6e/L5jBkygkFXas2cPvvrqK6xevRr19fUArp9IAThWlq7oXIUiEokQFxWBCWNGMnFCRGRBOqpGv/jiC7z33ns4ffo04uPjERoaigULFuD222+Hh4cHgPZECgB+cSAim9DT95bW1lZ88803eO+993Du3DnD8eeffx7PPvssv++YARMoZJX0ej3q6+tx+vRpfPfdd/jhhx/Q2NgIoL3ELSEhAWPGjMGjjz6KESNGCBwtWZqOKpTW1jbckDoTfj5eAAaWOFGpVJDJZMYOkYhoSOv4EqBQKDBs2DA0Nzcb7pNIJHBzc0NsbCxuv/32LokUIiJb1NTUhO+//x7vvfcezp49azju5OQEd3d3PPbYY3j88ccB8KKxqTGBQlah441Ar9ejtbUVjo6OhuP19fU4fvw43nvvPWzZsgUajQZA+6z0CxcuICQkRMjQyULl5l+Em6sL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",
|
|
"text/plain": [
|
|
"<Figure size 1400x1400 with 2 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"import networkx as nx\n",
|
|
"\n",
|
|
"from netgraph import Graph # pip install netgraph\n",
|
|
"\n",
|
|
"triangle = nx.DiGraph([('a', 'b'), ('a', 'c'), ('b', 'a'), ('c', 'b'), ('c', 'c')])\n",
|
|
"\n",
|
|
"# node_positions = {\n",
|
|
"# 'a' : np.array([0.2, 0.2]),\n",
|
|
"# 'b' : np.array([0.8, 0.2]),\n",
|
|
"# 'c' : np.array([0.5, 0.8]),\n",
|
|
"# }\n",
|
|
"\n",
|
|
"edge_labels = {\n",
|
|
" ('a', 'b') : 'potato',\n",
|
|
" ('a', 'b') : 'morePotato',\n",
|
|
" ('a', 'c') : 'Lorem ipsum',\n",
|
|
" ('b', 'a') : 4,\n",
|
|
" ('c', 'b') : 'dolor sit',\n",
|
|
" ('c', 'c') : r'$\\pi$'\n",
|
|
"}\n",
|
|
"\n",
|
|
"fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14,14))\n",
|
|
"\n",
|
|
"Graph(triangle, node_labels=True, edge_labels=edge_labels,\n",
|
|
" edge_label_fontdict=dict(size=12, fontweight='bold'),\n",
|
|
" node_layout=node_positions, edge_layout='straight',\n",
|
|
" node_size=6, edge_width=4, arrows=True, ax=ax1)\n",
|
|
"\n",
|
|
"Graph(triangle, node_labels=True, edge_labels=edge_labels,\n",
|
|
" edge_label_fontdict=dict(size=12, fontweight='bold'),\n",
|
|
" node_layout=node_positions, edge_layout='curved',\n",
|
|
" node_size=6, edge_width=4, arrows=True, ax=ax2)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 66,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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6ocfftDSpUvlcvHfVwAA1AaBEnHtk08+Ub9+/fTKK6/owgsvdLocAACiEoEScc22bV166aVq27atnn/+eafLAQAgKjHHh7hmWZZGjhypxYsXa8OGDU6XAwBAVCJQIu717dtXzZo1U05OjtOlAAAQlQiUiHvJyckaMmSIXn31Ve3fv9/pcgAAiDoESkDS8OHDVVxcrNdee83pUgAAiDoESkBS27Zt1bNnT02dOlWBQMDpcgAAiCoESuCA7OxsrV27VsuXL3e6FAAAogptg4ADbNtWjx491KZNG1oIAQBQA4xQAgcEWwgtWrRI69evd7ocAACiBoESOETfvn3VokULWggBAFADBErgEElJSbQQAgCghgiUwBGGDx+ukpISWggBABAiAiVwhDZt2qhnz56aMmUKLYQAAAgBgRKohtfr1bp162ghBABACGgbBFTDtm1ddtllysjI0AsvvOB0OQAARDRGKIFqWJYlr9erxYsX00IIAIDjIFACRxFsITR16lSnSwEAIKIRKIGjCLYQmj59Oi2EAAA4BgIlcAy0EAIA4PgIlMAxtGnTRr169aKFEAAAx0CgBI4j2EJo2bJlTpcCAEBEom0QcBy2bevyyy9Xq1at9OKLLzpdDgAAEYcRSuA4gi2ElixZonXr1jldDgAAEYdACYTgqquuooUQAABHQaAEQpCUlKShQ4dqxowZ2rdvn9PlAAAQUQiUQIhoIQQAQPUIlECIMjMzaSEEAEA1CJRADYwcOVLr16/X0qVLnS4FAICIQdsgoAZs29YVV1yh9PR0vfTSS06XAwBARGCEEqgBy7KUnZ2t9957T2vXrnW6HAAAIgKBEqihq666Sunp6crJyXG6FAAAIgKBEqihYAuh6dOn00IIAAARKIFaGTZsmMrKyjRjxgynSwEAwHEESqAWaCEEAEAlAiVQS16vVxs2bNB7773ndCkAADiKtkFALQVbCLVo0UIvv/yy0+UAAOAYRiiBWrIsS16vV0uXLqWFEAAgrhEogTBcddVVatmypaZOnep0KQAAOIZACYQhMTFRQ4cO1YwZM7R3716nywEAwBEESiBMtBACAMQ7AiUQpoyMDPXq1UtTp06lhRAAIC4RKIE6MHLkSG3YsEFLlixxuhQAABocbYOAOmDbtnr27KnmzZvTQggAEHcYoQTqwKEthHJzc50uBwCABkWgBOpInz59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GuYfAhBHCJRAnNi/f79uueUWvf3225o4caImTJjAekk0uJqcDjRv3jwlHS387d4tnXee9I9/SOvWSWvWmEDZooV5/5e/lM45R7r5Zumrr6Rly6Tly6W//lXq169yJBNAneDcLiAOrF27VtnZ2dq6daumTZumHj16OF0S4pTL5VK7du3Url07de/e/eDrR54OlJ+ff/QwKUl/+5t00knShRdKHTuaae8DazlVUWEC5pgx0imnmGvgQKl7d+mll6Tf/lZipzpQpwiUQIx79913dfPNNysjI0Pz589Xp06dnC4JqMKyLGVmZiozM1MXXHDBsT+8bp306qvSggUmGKamSps3S/v2SRkZZm1lYaGUlXX49wIB81mOpgTqHIESiFGBQEAPP/yw/vnPf+qyyy7TY489psaNOScbUW73bmnyZOnHH80oZEKCCZVXXiktXCh16iRt2GDCY79+Zg1lZqaZCi8vl268UeJkIKDOESiBGLRv3z6NHz9e7777rm677TbdcsstrJdEbJg/32zCufRS6Q9/MCOTfr8Ji4kHjvD8/HPphBOkRYukrVulTz+V3nxT6tpV+sUvql0/adu2KioqlJjIMaBAbRAogRiTm5urESNGaPv27Zo2bZouvfRSp0sC6sa+fdITT0gXXSQ99ZQJhvn55q+33irt2WM+t3KlGak89VRzXXSR1KWLWVPZtavZAX5EqPT7/XrooYc0c+ZMTgcCaoFACcSQhQsXavz48Wrbtq3efvttdezY0emSgLrz0ktm/eSjj1a+lplpgmGPHtKUKVJurpnyPvNM834gYBqfn3uulJwsrV5tXj8iUHo8HnXv3l1ut1urV6/We++9p5ycHE4HAkJE2yAgBgQCAU2ePFmTJ09Wz5499cgjj6hRo0ZOlwXUrbIyacsWs9nmyD6Vq1ebUcilS6XrrpOuvtr0qWzRwuz6vvdec02fLg0YEFLboIg9HQiIQARKIMrt3btX48eP16JFi/SHP/xB48eP5w8yxJ+KCmnGDNMS6MYbpffeM03PmzY1bYX27DFtgx56SApzc9rRTgfKzc1VeXm5pHo4HQiIcARKIIqtXr1aI0aM0M6dO/Xkk08e1tcPiHtlZdL335tp8PR0EyjrUfB0oCOD5po1a8I/HQiIcARKIErNnz9ft9xyi9q3b6+pU6fqxBNPdLokILI5dDpOTU4HOnLq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R8ybP3++evTowXpJAADqCYES0WvnTiktTUpKMmeoAgAARzBkg+g0fry0dauUni794Q9Sx45OVwQAQNwiUCK6rF0rXX65dMop0ogRUkYGYRIAAIcx5Y3osWGDdM010k9+Ik2ZIrEmEgCAiMAub0SPTz+Vysqk228nTAIAEEEIlIh8Pp/564IFUpMm0mmnOVsPAAA4DIESkWvvXmn//spfJyRI27ZV/rq61RpffCF9+2391wYAAA4iUCIyzZwpXXKJ1L27+WtpqfTLX0o7dkj//rf5jGVJgUDld7Ztk267TfrxR2dqBgAgThEoEXluuUUaNkwaOFAaPlzKy5MmTJD69ZOysqT//EdavNh81nXIv8LLlpmA2b69M3UDABCn2NmAyBEISL17S998I339tdS5s3l91y5pzRqpaVPpH/+QRo2SbrpJuu8+6cwzpd27pVdeMTu/n3pK4nhFAAAaFIESkWPRIumTT6TRoyvDpGRGI/ftk84/Xxo82Ixarlpl/t7lMgHS5zOfO+cc5+oHACBO0YcSkcO2zajj/PnSpElSnz7Sr39tRiDHjJHWrzejkNdcI/397+bX+/dLjRpJ3bpJiYlO/wQAAMQlAiUiS1mZCY/ffivl5kpXXSU9/LA5YlGS7rrL/HrlSqlDB2drBQAAktiUg0iTlCQ9+KDUooXUtq305z+bMFlSYt7v0kVq06b6lkEAAMARBEpEntatpfvvl1q1kh54QCoqklJSzDrKadOks84ynwEAABGBQImIUGXlxdlnS2PHmqnvp56S1q0zr5WWSi+8IKWmOlMoAACogkAJx61fv17btm2TL3jEYtB110k9e5pA2amTdNFF0vvvS8nJjtQJAACqR6CEo9555x1dfvnluv322+VyHfGvo2WZ3d7nny/NmFF5Qg4AAIgo7PKGIwKBgB5++GH985//1OWXX65HH31UjRs3rv7Dfr/kdjdsgQAAIGQESjS4vXv3avz48Vq0aJEmTZqk8ePHVx2dBAAAUYOTctCg1qxZoxEjRqigoEDPP/+8Lr74YqdLAgAAYWJYCA1mwYIF6tmzpzwej95++23CJAAAMYJAiXoXCAT04IMPKjs7WxdddJHmzZunk046yemyAABAHWHKG/Vq7969uummm7RkyRLdcccduummm2RZltNlAQCAOkSgRL1ZtWqVRowYoV27dunFF1/Ub3/7W6dLAgAA9YApb9SLt956S7169VJKSooWLFhAmAQAIIYRKFGn/H6/7r//fo0aNUqXXHKJ5s6dqxNPPNHpsgAAQD2iDyXqzJ49e3TjjTdq2bJluuOOOzRu3DjWSwIAEAdYQ4k68cMPPyg7O1u7d+/WSy+9pAsvvNDpkgAAQANhyhthmzt3rnr37n1wvSRhEgCA+EKgRK35/X7dd999GjNmjHr06KG5c+eqQ4cOTpcFAAAaGGsoUSuFhYUaN26c3n//fd11110aPXo06yUBAIhTrKFEjX3//ffKzs7Wvn379Oqrr+r88893uiQAAOAgprxRI2+++aZ69+6txo0ba8GCBYRJAABAoERofD6f7rnnHo0bN049e/bUnDlz1L59e6fLAgAAEYApbxzXrl27NHbsWH300Uf661//Kq/Xy3pJAABwEIESx/Tdd98pOztbxcXFmj59un71q185XRIAAIgwTHnjqGbNmqUrr7xSLVq00MKFCwmTAACgWgRKVOHz+XT33Xfr5ptvVp8+fTR79mydcMIJTpcFAAAiFFPeOMzOnTs1duxYffLJJ7rvvvt0ww03sF4SAAAcE4ESB3377bfKzs5WaWmpZsyYoV/84hdOlwQAAKIAU96QJM2cOVN9+vRRq1attHDhQsIkAAAIGYEyzlVUVOiuu+7S7373O/Xt21dvvPGG2rZt63RZAAAgijDlHccKCgo0evRoff755/rb3/6m4cOHs14SAADUGIEyTn311Vfyer3y+XyaOXOmzj33XKdLAgAAUYop7zg0ffp09e3bV23atNHChQsJkwAAICwEyjhSUVGhO++8UxMmTNCAAQM0a9YsZWZmOl0WAACIckx5x4nt27dr9OjR+vLLL/Xggw9qyJAhTpcEAABiBIEyDnzxxRfyer2ybVuvv/66unXr5nRJAAAghjDlHeNeeeUV9evXT+3atdPChQsJkwAAoM4RKGNURUWFbr/9dk2cOFHXXXedZs2apYyMDKfLAgAAMYgp7xi0bds2jRo1Sl9//bUeeughDR482OmSAABADCNQxpgVK1Zo5MiRkqQ33nhDP//5zx2uCAAAxDqmvGPIiy++qP79+6tDhw5auHAhYRIAADQIAmUMKC8v12233aZJkybp+uuv12uvvabWrVs7XRYAAIgTTHlHuW3btmnkyJH65ptvNHnyZA0aNMjpkgAAQJwh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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"import matplotlib.pyplot as plt\n",
|
|
"import networkx as nx\n",
|
|
"\n",
|
|
"edges = [['A', 'B'], ['B', 'C'], ['B', 'D']]\n",
|
|
"G = nx.Graph()\n",
|
|
"G.add_edges_from(edges)\n",
|
|
"pos = nx.spring_layout(G)\n",
|
|
"plt.figure()\n",
|
|
"nx.draw(\n",
|
|
" G, pos, edge_color='black', width=1, linewidths=1,\n",
|
|
" node_size=500, node_color='pink', alpha=0.9,\n",
|
|
" labels={node: node for node in G.nodes()}\n",
|
|
")\n",
|
|
"nx.draw_networkx_edge_labels(\n",
|
|
" G, pos,\n",
|
|
" edge_labels={('A', 'B'): 'AB', \n",
|
|
" ('B', 'C'): 'BC', \n",
|
|
" ('B', 'D'): 'BD'},\n",
|
|
" font_color='red'\n",
|
|
")\n",
|
|
"plt.axis('off')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "polaryx",
|
|
"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.4"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|