From 4d8e775ef53b01f0be7034af851e9c16cb96c579 Mon Sep 17 00:00:00 2001 From: "Chanwut (Mick) Kittivorawong" Date: Mon, 7 Aug 2023 04:47:42 -0700 Subject: [PATCH] fix --- spatialyze/data_types/__init__.py | 2 - spatialyze/data_types/bounding_box.py | 34 ---- spatialyze/database.py | 9 +- spatialyze/predicate.py | 47 +++--- spatialyze/utils/F/ahead.py | 4 +- .../test_functionality.ipynb | 146 ------------------ spatialyze/world.py | 8 +- 7 files changed, 30 insertions(+), 220 deletions(-) delete mode 100644 spatialyze/data_types/bounding_box.py delete mode 100644 spatialyze/video_processor/stages/detection_estimation/test_functionality.ipynb diff --git a/spatialyze/data_types/__init__.py b/spatialyze/data_types/__init__.py index 252deaa..0b920a0 100644 --- a/spatialyze/data_types/__init__.py +++ b/spatialyze/data_types/__init__.py @@ -1,4 +1,3 @@ -from .bounding_box import BoundingBox from .box import Box from .camera import Camera from .camera_config import CameraConfig @@ -7,7 +6,6 @@ from .trajectory import Trajectory __all__ = [ - "BoundingBox", "Box", "CameraConfig", "Camera", diff --git a/spatialyze/data_types/bounding_box.py b/spatialyze/data_types/bounding_box.py deleted file mode 100644 index 45d0d3b..0000000 --- a/spatialyze/data_types/bounding_box.py +++ /dev/null @@ -1,34 +0,0 @@ -from __future__ import annotations - -from dataclasses import dataclass - - -@dataclass(frozen=True) -class BoundingBox: - x1: int - y1: int - x2: int - y2: int - - def is_in(self, other: BoundingBox): - if other.is_whole_frame(): - return True - - return ( - other.x1 <= self.x1 - and self.x2 <= other.x2 - and other.y1 <= self.y1 - and self.y2 <= other.y2 - ) - - def to_tuples(self): - return (self.y1, self.x1), (self.y2, self.x2) - - def is_whole_frame(self): - return self.x1 == -1 and self.y1 == -1 and self.x2 == -1 and self.y2 == -1 - - @property - def area(self): - if self.is_whole_frame(): - return float("inf") - return (self.x2 - self.x1) * (self.y2 - self.y1) diff --git a/spatialyze/database.py b/spatialyze/database.py index 4781b58..3480816 100644 --- a/spatialyze/database.py +++ b/spatialyze/database.py @@ -1,5 +1,5 @@ from os import environ -from typing import TYPE_CHECKING, Callable, List, Tuple +from typing import TYPE_CHECKING, Callable import pandas as pd import psycopg2 @@ -9,7 +9,6 @@ # from mobilitydb.psycopg import register as mobilitydb_register from postgis.psycopg import register as postgis_register -from spatialyze.data_types import Trajectory from spatialyze.predicate import ( FindAllTablesVisitor, GenSqlVisitor, @@ -69,15 +68,15 @@ ] -def columns(fn: Callable[[Tuple[str, str]], str], columns: List[Tuple[str, str]]) -> str: +def columns(fn: "Callable[[tuple[str, str]], str]", columns: "list[tuple[str, str]]") -> str: return ",".join(map(fn, columns)) -def _schema(column: Tuple[str, str]) -> str: +def _schema(column: "tuple[str, str]") -> str: return " ".join(column) -def _name(column: Tuple[str, str]) -> str: +def _name(column: "tuple[str, str]") -> str: return column[0] diff --git a/spatialyze/predicate.py b/spatialyze/predicate.py index 7476ed9..af6770d 100644 --- a/spatialyze/predicate.py +++ b/spatialyze/predicate.py @@ -1,13 +1,8 @@ from typing import ( Any, Callable, - Dict, Generic, - List, Literal, - Optional, - Set, - Tuple, TypeVar, ) @@ -132,7 +127,7 @@ def __repr__(self): class ArrayNode(PredicateNode): - exprs: List["PredicateNode"] + exprs: "list[PredicateNode]" def wrap_literal(x: Any) -> "PredicateNode": @@ -161,7 +156,7 @@ class BinOpNode(PredicateNode): class BoolOpNode(PredicateNode): op: BoolOp - exprs: List["PredicateNode"] + exprs: "list[PredicateNode]" class UnaryOpNode(PredicateNode): @@ -179,7 +174,7 @@ def lit(value: Any, python: bool = True): class TableNode(PredicateNode): - index: Optional[int] + index: "int | None" def __getattr__(self, name: str) -> "TableAttrNode": return TableAttrNode(name, self, False) @@ -202,7 +197,7 @@ def __init__(self, index: int): class CameraTableNode(TableNode): - def __init__(self, index: Optional[int] = None): + def __init__(self, index: "int | None" = None): self.index = index self.time = TableAttrNode("timestamp", self, True) self.ego = TableAttrNode("egoTranslation", self, True) @@ -230,12 +225,12 @@ def __getitem__(self, index: int) -> "CameraTableNode": camera = CameraTableNode() -Fn = Callable[["GenSqlVisitor", List["PredicateNode"]], str] +Fn = Callable[["GenSqlVisitor", "list[PredicateNode]"], str] class CallNode(PredicateNode): - _fn: Tuple["Fn"] - params: List["PredicateNode"] + _fn: "tuple[Fn]" + params: "list[PredicateNode]" def __init__(self, fn: "Fn", name: "str", params: "list[PredicateNode]"): self._fn = (fn,) @@ -358,7 +353,7 @@ def visit_CastNode(self, node: "CastNode"): class ExpandBoolOpTransformer(BaseTransformer): def __call__(self, node: "PredicateNode"): if isinstance(node, BoolOpNode): - exprs: List["PredicateNode"] = [] + exprs: "list[PredicateNode]" = [] for expr in node.exprs: e = self(expr) if isinstance(e, BoolOpNode) and e.op == node.op: @@ -369,8 +364,8 @@ def __call__(self, node: "PredicateNode"): return super().__call__(node) -class FindAllTablesVisitor(Visitor[Tuple[Set[int], bool]]): - tables: Set[int] +class FindAllTablesVisitor(Visitor["tuple[set[int], bool]"]): + tables: "set[int]" camera: bool def __init__(self): @@ -393,9 +388,9 @@ def reset(self): class MapTablesTransformer(BaseTransformer): - mapping: Dict[int, int] + mapping: "dict[int, int]" - def __init__(self, mapping: Dict[int, int]): + def __init__(self, mapping: "dict[int, int]"): self.mapping = mapping def visit_ObjectTableNode(self, node: "ObjectTableNode"): @@ -415,7 +410,7 @@ def visit_BinOpNode(self, node: "BinOpNode"): return node -normalizers: List[BaseTransformer] = [ExpandBoolOpTransformer(), NormalizeArrayAtTime()] +normalizers: "list[BaseTransformer]" = [ExpandBoolOpTransformer(), NormalizeArrayAtTime()] def normalize(predicate: "PredicateNode") -> "PredicateNode": @@ -425,19 +420,19 @@ def normalize(predicate: "PredicateNode") -> "PredicateNode": return predicate -BIN_OP: Dict[BinOp, str] = { +BIN_OP: "dict[BinOp, str]" = { "add": "+", "sub": "-", "mul": "*", "div": "/", } -BOOL_OP: Dict[BoolOp, str] = { +BOOL_OP: "dict[BoolOp, str]" = { "and": " AND ", "or": " OR ", } -COMP_OP: Dict[CompOp, str] = { +COMP_OP: "dict[CompOp, str]" = { "eq": "=", "ne": "<>", "ge": ">=", @@ -446,7 +441,7 @@ def normalize(predicate: "PredicateNode") -> "PredicateNode": "lt": "<", } -UNARY_OP: Dict[UnaryOp, str] = { +UNARY_OP: "dict[UnaryOp, str]" = { "invert": "NOT ", "neg": "-", } @@ -514,20 +509,20 @@ def visit_CastNode(self, node: "CastNode"): return f"({self(node.expr)})::{node.to}" -def resolve_object_attr(attr: str, num: Optional[int] = None): +def resolve_object_attr(attr: str, num: "int | None" = None): if num is None: return attr return f"t{num}.{attr}" -def resolve_camera_attr(attr: str, num: Optional[int] = None): +def resolve_camera_attr(attr: str, num: "int | None" = None): if num is None: return attr return f"c{num}.{attr}" # TODO: this is duplicate with the one in database.py -TRAJECTORY_COLUMNS: List[Tuple[str, str]] = [ +TRAJECTORY_COLUMNS: "list[tuple[str, str]]" = [ ("itemId", "TEXT"), ("cameraId", "TEXT"), ("objectType", "TEXT"), @@ -538,7 +533,7 @@ def resolve_camera_attr(attr: str, num: Optional[int] = None): ] -CAMERA_COLUMNS: List[Tuple[str, str]] = [ +CAMERA_COLUMNS: "list[tuple[str, str]]" = [ ("cameraId", "TEXT"), ("frameId", "TEXT"), ("frameNum", "Int"), diff --git a/spatialyze/utils/F/ahead.py b/spatialyze/utils/F/ahead.py index fe5e522..b9cd15d 100644 --- a/spatialyze/utils/F/ahead.py +++ b/spatialyze/utils/F/ahead.py @@ -1,5 +1,3 @@ -from typing import List - from spatialyze.predicate import ( BinOpNode, GenSqlVisitor, @@ -12,7 +10,7 @@ @call_node -def ahead(visitor: "GenSqlVisitor", args: "List[PredicateNode]"): +def ahead(visitor: "GenSqlVisitor", args: "list[PredicateNode]"): obj1, obj2 = args if not isinstance(obj2, TableAttrNode) and ( diff --git a/spatialyze/video_processor/stages/detection_estimation/test_functionality.ipynb b/spatialyze/video_processor/stages/detection_estimation/test_functionality.ipynb deleted file mode 100644 index 02bfb88..0000000 --- a/spatialyze/video_processor/stages/detection_estimation/test_functionality.ipynb +++ /dev/null @@ -1,146 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "9c52589a", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "('scene-0757-CAM_FRONT', [309.1868, 668.6659, 0.0], [-0.22986569, 0.010941528, -0.023872094, -0.972868], [307.62964, 669.5079, 1.4374892], [-0.58238214, 0.61657846, 0.36259872, -0.3862437], [[1252.8131, 0.0, 826.58813], [0.0, 1252.8131, 469.98465], [0.0, 0.0, 1.0]], 876, 'samples/CAM_FRONT/n008-2018-08-30-15-16-55-0400__CAM_FRONT__1535657120612404.jpg', 63.98501, 63.39711, datetime.datetime(2018, 8, 30, 12, 25, 20, 612404, tzinfo=datetime.timezone.utc))\n", - "total mapping time: 0.14043354988098145\n" - ] - } - ], - "source": [ - "from segment_mapping_copy import *\n", - "import os\n", - "\n", - "test_img_path = os.path.join(data_path, test_img)\n", - "test_config = fetch_camera_config(\n", - " test_img,\n", - " database)\n", - "test_config = camera_config(**test_config)\n", - "mapping = map_imgsegment_roadsegment(test_config)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "3e2d0ce6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(mapping)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "e4928f99", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ec17e151-b449-4bed-ad13-25197bc872fd ['intersection', 'road']\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAGdCAYAAADqsoKGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAABZTElEQVR4nO3deXgUZb728W9nTwgJELJCCGGRgCwCQYQoiyDBDUFERRhwBsEFZQSH0fge5ozLgLscPTNwYBBxQRQ1GEQQZRMhrBoBwUBYBAMJCiRNWEIg9f5RQ0ObAGlIUt2d+3NddU1S9XTVr2ta+s7zVD1lMwzDQERERMTD+VhdgIiIiEhlUKgRERERr6BQIyIiIl5BoUZERES8gkKNiIiIeAWFGhEREfEKCjUiIiLiFRRqRERExCv4WV1AdSktLWX//v3Url0bm81mdTkiIiJSAYZhcPToUeLi4vDxuXhfTI0JNfv37yc+Pt7qMkREROQy7Nu3j4YNG160TY0JNbVr1wbMkxIWFmZxNSIiIlIRdrud+Ph4x/f4xdSYUHN2yCksLEyhRkRExMNU5NIRXSgsIiIiXkGhRkRERLyCQo2IiIh4BYUaERER8QoKNSIiIuIVFGpERETEK7gcanJzcxk6dCgREREEBwfTpk0bNmzY4NheVFTEo48+SsOGDQkODqZVq1ZMnTrVaR89evTAZrM5LQ899NBFj2sYBn/729+IjY0lODiY3r17s2PHDlfLFxERES/l0jw1R44cISUlhZ49e7Jw4UIiIyPZsWMHdevWdbQZN24cS5cu5b333qNx48YsXryYRx55hLi4OPr16+doN3LkSJ599lnH7yEhIRc99ksvvcQbb7zBrFmzSExMZMKECaSmprJ161aCgoJceRsiIiLihVwKNS+++CLx8fHMnDnTsS4xMdGpzerVqxk+fDg9evQAYNSoUfzf//0f69atcwo1ISEhxMTEVOi4hmEwefJk/uu//os77rgDgHfeeYfo6GjmzZvHvffe68rbEBERES/k0vBTRkYGycnJDBo0iKioKNq3b8/06dOd2nTt2pWMjAxyc3MxDINly5axfft2+vTp49Tu/fffp379+rRu3Zq0tDSOHz9+wePu3r2bvLw8evfu7VgXHh5O586dyczMLPc1xcXF2O12p0VERES8l0s9Nbt27WLKlCmMGzeOp59+mvXr1zNmzBgCAgIYPnw4AG+++SajRo2iYcOG+Pn54ePjw/Tp0+nWrZtjP/fddx8JCQnExcWxadMmnnzySbKzs/n000/LPW5eXh4A0dHRTuujo6Md235v0qRJPPPMM668PREREfFgLoWa0tJSkpOTmThxIgDt27dny5YtTJ061SnUrFmzhoyMDBISEvjmm28YPXo0cXFxjp6WUaNGOfbZpk0bYmNj6dWrFzt37qRp06aV8sbS0tIYN26c4/ezD8QSERER7+RSqImNjaVVq1ZO61q2bMknn3wCwIkTJ3j66adJT0/n1ltvBaBt27ZkZWXxyiuvOA0fna9z584A5OTklBtqzl57k5+fT2xsrGN9fn4+11xzTbn7DAwMJDAw0JW3JyIiIh7MpWtqUlJSyM7Odlq3fft2EhISACgpKaGkpAQfH+fd+vr6UlpaesH9ZmVlATgFlvMlJiYSExPDkiVLHOvsdjtr166lS5currwFERER8VIuhZqxY8eyZs0aJk6cSE5ODrNnz2batGmMHj0agLCwMLp378748eNZvnw5u3fv5u233+add95hwIABAOzcuZPnnnuOjRs3smfPHjIyMhg2bBjdunWjbdu2jmMlJSWRnp4OmI8bf/zxx3n++efJyMhg8+bNDBs2jLi4OPr3719Jp0JEREQ8muGi+fPnG61btzYCAwONpKQkY9q0aU7bDxw4YNx///1GXFycERQUZLRo0cJ49dVXjdLSUsMwDGPv3r1Gt27djHr16hmBgYFGs2bNjPHjxxuFhYVO+wGMmTNnOn4vLS01JkyYYERHRxuBgYFGr169jOzs7ArXXVhYaABljiMiIiLuy5Xvb5thGIbFuapa2O12wsPDKSwsJCwszOpyREREpAJc+f7Ws59ERETEKyjUiIiIiFdQqBERERGvoFAjIiIiXkGhRkRERLyCQo2IiIh4BYUaERER8QoKNSIiIuIVFGpERETEKyjUiIiIiFdQqBERERGvoFAjIiIiXkGhRkRERLyCQo2IiIh4BYUaERER8QoKNSIiIuIVFGpERETEKyjUiIiIiFdQqBERERGv4Gd1ASIilWZDFpw4CU0SIDYafPR3m0hNolAjIt5hy0/w+dfmz0u+haBASGxkBpwmjaBeXbDZrK1RRKqUQo2IeL59uTBvofO6k8WwbYe5AITXPi/kJEBoreqvU0SqlEKNiHi2IwXwwTw4febi7QqPQtaP5gIQVd/swWmSAAkNITCwqisVkSqmUCMinuvECXj/Uzh+wvXXHvzNXNZ8Z1570zD23FBVg1jw9a38ekWkSinUiIhnOnMGPpoPvx2+8n2VlsLeXHNZvhoC/KFx/LmhqsgIXY8j4gEUakTE8xgGfP4V7N5bNfs/VQLbd5kLmNffJJ4XcsLDqua4InJFFGpExPN8uxa+31J9xys6Bpt/MheAiLrnhqoax0NwcPXVIiIXpFAjIp5ly0/mLdtWOnTEXNZnmcNScdHnenHi48BP/7SKWEH/5YmI5yjv1m2rGQbk5pnLyrXg52veTXX29vGYKE0CKFJNFGpExDNU9NZtq50+Azt/NhdWQnDQfwLOf0JO3Tq66Fikirj850Nubi5Dhw4lIiKC4OBg2rRpw4YNGxzbi4qKePTRR2nYsCHBwcG0atWKqVOnOrYfPnyYxx57jBYtWhAcHEyjRo0YM2YMhYWFFz3u/fffj81mc1r69u3ravki4omu5NZtq504CVu3m7MdvzED/mc6ZHxpDqMdO251dSJexaWemiNHjpCSkkLPnj1ZuHAhkZGR7Nixg7p16zrajBs3jqVLl/Lee+/RuHFjFi9ezCOPPEJcXBz9+vVj//797N+/n1deeYVWrVrx888/89BDD7F//34+/vjjix6/b9++zJw50/F7oCbLEvF+lXnrtjsosMN3m80FICby3PU4jRpAQIC19Yl4MJthGEZFGz/11FOsWrWKlStXXrBN69atueeee5gwYYJjXceOHbn55pt5/vnny33N3LlzGTp0KMeOHcPvAhfY3X///RQUFDBv3ryKluvEbrcTHh5OYWEhYWG6HVPEIxiG2atRnXc6WcnXBxrGnRuqahCr63GkxnPl+9ul/1oyMjJITk5m0KBBREVF0b59e6ZPn+7UpmvXrmRkZJCbm4thGCxbtozt27fTp0+fC+73bKEXCjRnLV++nKioKFq0aMHDDz/MoUOHXClfRDxNdd+6bbUzpfDzL7BsNcz4AF78X/ggHdZ+B7/+ZoY8Ebkgl3pqgoKCAHOIadCgQaxfv54///nPTJ06leHDhwNQXFzMqFGjeOedd/Dz88PHx4fp06czbNiwcvf522+/0bFjR4YOHco//vGPCx57zpw5hISEkJiYyM6dO3n66acJDQ0lMzMT33KmMy8uLqa4uNjxu91uJz4+Xj01Ip7ix2yYO9/qKtxL7dBzvTiJjSCsttUViVQ5V3pqXAo1AQEBJCcns3r1ase6MWPGsH79ejIzMwF45ZVXmD59Oq+88goJCQl88803pKWlkZ6eTu/evcsUetNNN1GvXj0yMjLw9/ev8JvctWsXTZs25euvv6ZXr15ltv/973/nmWeeKbNeoUbEA+zLhVkfuf+dTlaLjDh3Z1XjePjPH54i3qTKQk1CQgI33XQT//73vx3rpkyZwvPPP09ubi4nTpwgPDyc9PR0br31VkebBx54gF9++YVFixY51h09epTU1FRCQkL4/PPPHb1AroiMjOT555/nwQcfLLNNPTUiHupIAfx7tu4McpXNBg1izl103DBWkwCKV3Al1Lj0iU9JSSE7O9tp3fbt20lISACgpKSEkpISfH53YZuvry+lpaVOBaamphIYGEhGRsZlBZpffvmFQ4cOERsbW+72wMBA3R0l4mlOnIDZ6Qo0l8Mw4JcD5vLNGvD3MycBPBtyoiM1P454PZdCzdixY+natSsTJ07k7rvvZt26dUybNo1p06YBEBYWRvfu3Rk/fjzBwcEkJCSwYsUK3nnnHV577TXADDR9+vTh+PHjvPfee9jtdux2O2D2vJy9PiYpKYlJkyYxYMAAioqKeOaZZxg4cCAxMTHs3LmTv/71rzRr1ozU1NTKPB8iYpVjx+HdufCrbgCoFCWnIWePuQCEBJ97XlViI3MSQBEv49LwE8Dnn39OWloaO3bsIDExkXHjxjFy5EjH9ry8PNLS0li8eDGHDx8mISGBUaNGMXbsWGw2G8uXL6dnz57l7nv37t00btzYLMxmY+bMmdx///2cOHGC/v378/3331NQUEBcXBx9+vThueeeIzo6ukJ165ZuETdmPwrvzPWeuWg8Qd3wc704ifEQEmJ1RSLlqrJrajyZQo2ImzpSYAaaIxefVVyqkM1WdhJAF27cEKlKVXZNjYhIpfr1N3jnYzhaZHUlNZthwIGD5rJqvTkJYKOG524fj43WJIDiERRqRMQaB/Lh3Y8983lO3u5MKezeay5LvoWgQPM6nLO3j0fU00XH4pYUakSk+u3LNR9QebL40m3FeieLYdsOcwEICz03VNUkAUJrWVufyH8o1IhI9dq915z6/1SJ1ZXI5bIXQdaP5gIQVf/cUFVCQ9B0GmIRhRoRqT47dsGHn2mmYG9z8DdzWfOdee1Nw9hzt483iIVyHmUjUhUUakSkemzNhk8WmNdriPcqLYW9ueayfDUE+DtPAhhVX9fjSJVRqBGRqrdpK8xbZH7hSc1yqgR27DYXMK+/SYw/F3LCNcWGVB6FGhGpWht/gM+/Nm8bFik6Bpt/MheAiLrnhqoax0NwsLX1iUdTqBGRqrNmIyxaZnUV4s4OHTGX9VnmsFRc9LlenPg4PZRTXKJPi4hUjZVrzDlORCrKMCA3z1xWrgU/X3N247MhJyZKkwDKRSnUiEjlOnzEDDM/ZltdiXi602dg115zYSUEB52bALBJgvlQTl10LOdRqBGRynG0CFZkwnebdUGwVI0TJ2HrdnMBqBN23kM5G0EtPZSzplOoEZErc+KE+bygtd9ByWmrq5GapMBuhujvNpu/x0T+pyfnP5MABgRYW59UO4UaEbk8JSVmkPl2nR53IO4h71dzydxoPpSzYdy5oaoGsboepwZQqBER15w+DVlbYMUaPV1b3NeZUvj5F3NZthoCA8xbxs/ePl4/QtfjeCGFGhGpmEI7bPjB7Oo/dtzqakRcU3wKsneaC0Dt0HO9OImNIKy2tfVJpVCoEakupaWwah1ERkCzRM+Yf8MwYNfP5hwi2Ts1gZ54j6NF8MNWcwHzv8uzd1Y1joegIGvrk8viAf+qiniB0lL4bNG5f0ADAyCpGbROMv9SdKcH/hkG/HoIcnbDxk3mxGgi3u7XQ+ay7ntzWKpBzLk7qxrGesYfIYLNMGrGn152u53w8HAKCwsJC9OzRqQalZZC+hfnpoX/veAgaNkcWjSF+vWgTnj1hpyzIWbPvnPL8RPVd3wRd+fv5/xQzuhIXY9TjVz5/laoEalKpaXw6Rew5QKBpjw2mzn/Rr06UK8u1A13/tnf/8pqUogRuTIhwecuOG6SYP4hIlXGle9v9aeJVJUzZ+CTBecmCqsow4Ajheay8+ey28NCzYBTr465hASbd3qcOXPeUur88+nT5s8ni2HffoUYkStx/IT5h8rZP1bqhp83CWA8hGgSQKso1IhUhTNn4OPPYduOyt+3vchc9uyr/H2LiOuOFJrXn23cZPa0xkSeCzmNGlx576pUmEKNSGU7fRrmzj9366iI1ByGAQcOmsuq9eYkgI0anhuqio3WJIBVSKFGpDKdPg0fZcD2XVZXIiLu4Ewp7N5rLku+haDAc49yaNLIHErWRceVRqFGpLKcPg1z5kHOHqsrERF3dbLYHJY+OzQdFnpuqKpJAoTWsrY+D6dQI1IZSkrMQFPehb0iIhdiL4KsH80FIKr+uaGqhIYQGGhtfR5GoUbkSpWUwAfpsGuv1ZWIiKc7+Ju5rPnOvPamYey5oaoGse41UacbUqgRuRKnTsHsdN2JJCKVr7QU9uaay/LVEOB/7qGciY3MXh1dj+NEoUbkcp06Be9/aj4FWESkqp0qMW9COHsjQmgtc16cs9fjhGtiWYUakctRXGwGmr25VlciIjVV0THz8StnH8ESUffcUFXjeAgOtrY+CyjUiLjq5Ekz0Ozbb3UlIiLnHDpiLuuzzGGpP9xlhpwaxOUZgHJzcxk6dCgREREEBwfTpk0bNmzY4NheVFTEo48+SsOGDQkODqZVq1ZMnTrVaR8nT55k9OjRREREEBoaysCBA8nPz7/ocQ3D4G9/+xuxsbEEBwfTu3dvduyogtlaRS7m5El492MFGhFxb3XDzd6aGsalUHPkyBFSUlLw9/dn4cKFbN26lVdffZW6des62owbN45Fixbx3nvvsW3bNh5//HEeffRRMjIyHG3Gjh3L/PnzmTt3LitWrGD//v3ceeedFz32Sy+9xBtvvMHUqVNZu3YttWrVIjU1lZMnT7r4lkUu04kT8M5cyM2zuhIRkYtL6VQjZy526SndTz31FKtWrWLlypUXbNO6dWvuueceJkyY4FjXsWNHbr75Zp5//nkKCwuJjIxk9uzZ3HXXXQD89NNPtGzZkszMTK677roy+zQMg7i4OJ544gn+8pe/AFBYWEh0dDRvv/0299577yVr11O65YocP2720Bw4aHUlIiIXF1oLHh8Jft5xhYkr398uxbiMjAySk5MZNGgQUVFRtG/fnunTpzu16dq1KxkZGeTm5mIYBsuWLWP79u306dMHgI0bN1JSUkLv3r0dr0lKSqJRo0ZkZmaWe9zdu3eTl5fn9Jrw8HA6d+58wdcUFxdjt9udFpHLcvy42UOjQCMinqBLR68JNK5yKdTs2rWLKVOm0Lx5c7788ksefvhhxowZw6xZsxxt3nzzTVq1akXDhg0JCAigb9++/POf/6Rbt24A5OXlERAQQJ06dZz2HR0dTV5e+d36Z9dHR0dX+DWTJk0iPDzcscTH17yxRakEx47DrLmQ96vVlYiIXJq/H3Rsa3UVlnEpypWWlpKcnMzEiRMBaN++PVu2bGHq1KkMHz4cMEPNmjVryMjIICEhgW+++YbRo0cTFxfn1NNS1dLS0hg3bpzjd7vdrmAjrik6ZvbQHPzN6kpERCrmqqYQFGR1FZZxKdTExsbSqlUrp3UtW7bkk08+AeDEiRM8/fTTpKenc+uttwLQtm1bsrKyeOWVV+jduzcxMTGcOnWKgoICp96a/Px8YmJiyj3u2fX5+fnExsY6veaaa64p9zWBgYEE6pkZcrmOFsGsj+C3w1ZXIiJSca1bWF2BpVwafkpJSSE7O9tp3fbt20lIMO+DLykpoaSkBJ/fXXHt6+tLaWkpYF407O/vz5IlSxzbs7Oz2bt3L126dCn3uImJicTExDi9xm63s3bt2gu+RuSyHS2Ctz9UoBERzxLgD80Sra7CUi711IwdO5auXbsyceJE7r77btatW8e0adOYNm0aAGFhYXTv3p3x48cTHBxMQkICK1as4J133uG1114DzAt8R4wYwbhx46hXrx5hYWE89thjdOnSxenOp6SkJCZNmsSAAQOw2Ww8/vjjPP/88zRv3pzExEQmTJhAXFwc/fv3r7yzIWI/avbQHDpidSUiIq5Jagb+/lZXYSmXQk2nTp1IT08nLS2NZ599lsTERCZPnsyQIUMcbebMmUNaWhpDhgzh8OHDJCQk8I9//IOHHnrI0eb111/Hx8eHgQMHUlxcTGpqKv/617+cjpWdnU1hYaHj97/+9a8cO3aMUaNGUVBQwPXXX8+iRYsIqsFjh1LJCu1mD82Rwku3FRFxN62TrK7Aci7NU+PJNE+NXFRBoRloCnTrv4h4oKBAGP8I+PpaXUmlc+X7u2beyC5yviMFZqApPGp1JSIil6dlc68MNK5SqJGa7fAR8xoaBRoR8WQaegIUaqQmO3TYDDT2IqsrERG5fCHBkNjI6ircgkKN1Ey/HTJnCj6qQCMiHq7VVTXy4ZXlUaiRmufX38xAU3TM6kpERK7c1TV7wr3zKdRIzXLwN3PI6dhxqysREblytUIgoaHVVbgNhRqpOfJ/NQPN8RNWVyIiUjkaNdDQ03kUaqRmyDtoPpxSgUZEvEl8nNUVuBWFGvF+B/LNQHPipNWViIhULoUaJwo14t3255mB5mSx1ZWIiFQuXx+Ijba6CreiUCPe65f98N4nCjQi4p3iYsBPX+Pn09kQ77Qv1ww0xaesrkREpGpo6KkMhRrxPnt/MQPNqRKrKxERqToNY62uwO0o1Ih3+XkfvP+pAo2IeL/4BlZX4HYUasR77NkH738CJaetrkREpGoFB0HtUKurcDsKNeIddv0MH6Qr0IhIzRBe2+oK3JJCjXi+nXvMQHP6jNWViIhUjzCFmvIo1Ihny9kNc+Yp0IhIzaKhp3Ip1Ijn2r4TPvwMzpRaXYmISPUKU6gpj0KNeKbsHPgoQ4FGRGomDT+VS6FGPM+27TD3cyhVoBGRGkqhplwKNeJZtmbDxwsUaESkZtPwU7kUasRzbPkJPv1CgUZERD015VKoEc+weZsZaAzD6kpERKwVGACBgVZX4ZYUasT9/fAjzFukQCMiAuDvb3UFbsvH6gJELipriwKNiMj5io7Bac2eXh6FGnFf322Cz75UoBER+T37UasrcEsKNeKeNmRBxmIFGhGR8hTYra7ALemaGnE/67NgwddWVyEi4r4KFWrKo1Aj7mXtd7BwqdVViIi4N/XUlMvl4afc3FyGDh1KREQEwcHBtGnThg0bNji222y2cpeXX34ZgOXLl1+wzfr16y943B49epRp/9BDD13GWxa3lblBgUZEpCLUU1Mul3pqjhw5QkpKCj179mThwoVERkayY8cO6tat62hz4MABp9csXLiQESNGMHDgQAC6du1aps2ECRNYsmQJycnJFz3+yJEjefbZZx2/h4SEuFK+uLPV62HxCqurEBHxDOqpKZdLoebFF18kPj6emTNnOtYlJiY6tYmJiXH6/bPPPqNnz540adIEgICAAKc2JSUlfPbZZzz22GPYbLaLHj8kJKTM/sULfLsWvl5pdRUiIp5DPTXlcmn4KSMjg+TkZAYNGkRUVBTt27dn+vTpF2yfn5/PggULGDFixEX3eejQIf74xz9e8vjvv/8+9evXp3Xr1qSlpXH8+PELti0uLsZutzst4oa+yVSgERFxVeFRKCmxugq341Ko2bVrF1OmTKF58+Z8+eWXPPzww4wZM4ZZs2aV237WrFnUrl2bO++884L7nDFjBqmpqTRs2PCix77vvvt47733WLZsGWlpabz77rsMHTr0gu0nTZpEeHi4Y4mPj6/Ym5Tqs3w1LF1ldRUiIp6ntBT251ldhduxGUbFJwIJCAggOTmZ1atXO9aNGTOG9evXk5mZWaZ9UlISN910E2+++Wa5+/vll19ISEjgo48+clxzU1FLly6lV69e5OTk0LRp0zLbi4uLKS4udvxut9uJj4+nsLCQsLAwl44llcwwzECzouxnRkREKujGFOjWxeoqqpzdbic8PLxC398u9dTExsbSqlUrp3UtW7Zk7969ZdquXLmS7OxsHnjggQvub+bMmURERNCvXz9XygCgc+fOAOTk5JS7PTAwkLCwMKdF3IBhwNJvFWhERK7U3lyrK3A7LoWalJQUsrOzndZt376dhISEMm1nzJhBx44dadeuXbn7MgyDmTNnMmzYMPwv4+FcWVlZgBm0xEMYBnz9Daxca3UlIiKeb99+cxhKHFwKNWPHjmXNmjVMnDiRnJwcZs+ezbRp0xg9erRTO7vdzty5cy/aS7N06VJ2795dbpvc3FySkpJYt24dADt37uS5555j48aN7Nmzh4yMDIYNG0a3bt1o27atK29BrGIYsHg5rLrwXEQiIuKC4lNw8Derq3ArLoWaTp06kZ6ezgcffEDr1q157rnnmDx5MkOGDHFqN2fOHAzDYPDgwRfc14wZM+jatStJSUlltpWUlJCdne24uykgIICvv/6aPn36kJSUxBNPPMHAgQOZP3++K+WLVQwDFi2FzI1WVyIi4l00BOXEpQuFPZkrFxpJJTIMc5bgdd9bXYmIiPdpnQR33WZ1FVXKle9vPftJqo5hmA+m3PCD1ZWIiHinn38x/629xOS1NYXLz34SqRDDgPmLFWhERKrS0SI4fMTqKtyGQo1UvtJS+GwRfLfZ6kpERLyfJjF1UKiRynU20GT9aHUlIiI1w4/ZsOtnq6twCwo1UnlKS2HeQvhhq9WViIjULF8sgTNnrK7Ccgo1UjlKS+HTL2DTNqsrERGpeX47DGs0bYZCjVy5M2fg489hy09WVyIiUnOtyIRCu9VVWEqhRq7M2UCzdbvVlYiI1GynSmDxCqursJRCjVy+06fhowzYtsPqSkREBGr8RcMKNXJ5zgaa7J1WVyIiIuerwRcNK9SI606fhg8/g+27rK5ERER+77fDZrCpGU9BcqJQI64pKYEP0mHHbqsrERGRC9m4qUY+c0+hRirubKDZWXPHa0VEPMaiZZBTs/4AVaiRijl1Cmanw669VlciIiIVYRgwdz78+pvVlVQbhRq5tFOn4P1PYbcCjYiIRyk+BR/Mg+PHra6kWijUyMUVF8N7n5iPtxcREc9zuAA+ml8j7ohSqJELOxto9uZaXYmIiFyJPftqxB1RCjVSvpMn4d2PYd9+qysREZHKsHETrP3O6iqqlEKNlHXiBLwzF345YHUlIiJSmb5cDj/vs7qKKqNQI87OBpr9+VZXIiIilc0wIH2h2RvvhRRq5Jzjx2HWR3DgoNWViIhIVSmww8KlVldRJRRqxHTsOMyaC3m/Wl2JiIhUtR+2wpafrK6i0inUCBQdM3to8hVoRERqjM+/AvtRq6uoVAo1Nd3ZQHOw5sw4KSIiwMli8/oaL7rNW6GmJjtaBG9/CL8esroSERGxwu69sGaj1VVUGoWamsp+1Aw0vx22uhIREbHS19/AL94xJ5lCTU1UaDcDzaEjVlciIiJWO1NqXobw0w6rK7liCjU1TUGhGWgOF1hdiYiIuIuS0/BhBmRu8OhrbBRqapIjBWagOVJodSUiIuJuDMOccXjB11BaanU1l0WhpqY4fMQMNAV2qysRERF3tuEHmP2p+VBjD+NyqMnNzWXo0KFEREQQHBxMmzZt2LBhg2O7zWYrd3n55ZcdbRo3blxm+wsvvHDR4548eZLRo0cTERFBaGgoAwcOJD9fU/lXyKHDZqAp9K75CER6vD0F2zPjsT0znqy88p8m/3bWeuq8MKGaK7PW8j07sT0znoKTJ6wuxVK2Z8Yz76ct5W7bU3DY8dm5Zupr1VyZB8jZA2/NMa/B9CAuhZojR46QkpKCv78/CxcuZOvWrbz66qvUrVvX0ebAgQNOy1tvvYXNZmPgwIFO+3r22Wed2j322GMXPfbYsWOZP38+c+fOZcWKFezfv58777zTlfJrpt8Owdsfgb3I6kpEqsTIDp058MQEWkfFAOe+rM665+pr2P7Yky7ts8fbU3h80WeVWmdVKa/WrvEJHHhiAuGBQZV6LNsz49lTUPE7Jt/OWk+Pt6dUag1X4vz648PqcOCJCTzRpZvFVbmx/F9h+vuwP8/qSirMz5XGL774IvHx8cycOdOxLjEx0alNTEyM0++fffYZPXv2pEmTJk7ra9euXabthRQWFjJjxgxmz57NjTfeCMDMmTNp2bIla9as4brrrnPlbdQcZwNN0TGrKxGpMiH+/sSEhl1we7C/P8H+/tVY0TmnzpwmwNelf2YrRYCv30XPibuw6vwA+Pr4EBMaRmhAoCXH9xhFx2DmHLjrNmjRzOpqLsmlT1NGRgapqakMGjSIFStW0KBBAx555BFGjhxZbvv8/HwWLFjArFmzymx74YUXeO6552jUqBH33XcfY8eOxc+v/HI2btxISUkJvXv3dqxLSkqiUaNGZGZmKtSU5+Bv5tO2FWikhns7az2PL8qg4KnnAPj78sXM+2kLT3TpzoRlX3Lk5AlubtaC6bffRe3AIO6fN4cVP+9ixc+7+J+13wKw+89pNK5Tjy0H8xj/1ees/Hk3tQIC6NP0Kl5P7Uf9kFqA2WvSOioGPx8f3tv0HW2iY1k67EGeWfEVb32/nvxjR4kIrsVdrdrwxs39ASg+fZr/t3QhH2zJouDkCVpHxfBi71vp0bip4z2s2rub/7d0Eety9xHo58e1DeKZM3AIY7/MKLfWPQVH6DlrKkeefJY6QcEAfLJ1E39bvpicw78RGxrGY9em8ETX7o5jNJ48kVEdO5Nz+BBzt26iblAw/9WtF6M6Vt6/r/fPm0PByZN0iovnn+tXE+jny+4/P83m/AP8edFnZP7yMyH+AQxs2YbXUm93BI71uft4eulCvj+QS0lpKdfExPF66u10iG3o2PeOQ78yImMu63L30aRuPf6n7x2VVneNV3Ia5nwGN98I17a3upqLcinU7Nq1iylTpjBu3Diefvpp1q9fz5gxYwgICGD48OFl2s+aNYvatWuXGSYaM2YMHTp0oF69eqxevZq0tDQOHDjAa6+VP66Zl5dHQEAAderUcVofHR1NXl753WLFxcUUn3eRk93uWeOCVyT/VzPQHDtudSUibmnnkcPMy97C5/f9iSMnjnP3x+/xwrfL+Eevm/mfvnew/dBvtI6K4dmefQCIDAml4OQJbpw1lQc6dOb11H6cKCnhya8XcPfcd1k6/CHHvmf9sJGHk69j1Z9GA/DJts28vmYlcwYO4eqoaPKKjvJD3gFH+0e/SGfrb/nMGTiEuNphpP+0hb7v/ZvND4+jeUQkWXm59HpnGn9q34n/6XsHfj4+LNuzkzOGccFa9xQ4z0G1cf8v3P3xe/y9+03c0/oaVu/bwyML0okICeH+azo52r2a+Q3P9Uzl6Rtu5OOtm3h4wad0T2hCi/pRlXbul+zOISwwkK/+YP4xfOzUKVLf+zdd4huxfuSfOXisiAcy5vLoF+m83f9eAI6eKmZ4u468eXN/DMPg1cxvuOX9Gex47ElqBwZRapRy50fvEF0rlLUPPEZh8UkeX5RRaTUL5p1RXywxpwW5qTvYbFZXVC6XQk1paSnJyclMnDgRgPbt27NlyxamTp1abqh56623GDJkCEFBzuO648aNc/zctm1bAgICePDBB5k0aRKBgZXTFThp0iSeeeaZStmXR8k7aAaa4zX7AkGpuRrXqYfx3y9ftE2pUcrbd9xD7f9cc/KHth1YsjuHfwDhQcEE+PqWGdb633WraB/bgIm9bnase+uOu4l//R9sP/QrV0VEAtC8Xn1euuk2R5sFO7YRE1qb3k2a4+/rS6PwulzboBEAewuPMDNrA3vHPk1c7XAA/tK1B4tyspmZtYGJvW7mpVXLSY5ryL9uPffH4dVR54buy6v1915b8w29EpsxoftNAFwVEcnWX/N5efUKp1BzS/MkHunUFYAnU3ry+pqVLNuz0xFqLnVef+/+azo57R+glr8//+43yDHsNH3jWk6eLuGd/oOpFRAAwP/e0p/bP5jJi71vJTq0NjcmOg97TLt9IHVe+IEVP+/itqta8fWuHfz020G+HPqA4zxO7NWXm9+f4fQ6V+uXcqzeYN50MuBmuMDoipVcqig2NpZWrVo5rWvZsiWffPJJmbYrV64kOzubDz/88JL77dy5M6dPn2bPnj20aNGizPaYmBhOnTpFQUGBU29Nfn7+Ba/LSUtLcwpPdrud+Pj4S9bi0Q7km4HmxEmrKxFxa43r1HMEGoDY0DAOHrv4xfQ/5B9g2e6dhE78f2W27Tx8yBFqOsY2cNo2qFU7Jq/5liZvTKJv0xbc0jyJ21u0ws/Hl835eZwxSrnqzZecXlN85jQR/xnSysrbz6BWbS/rfZ617deD3NHC+d/ulPjGTF7zLWdKS/H1Me8ZaRsV69hus9mICa19yfPiqjbRsU7X0Wz7LZ92MXGOQHO2tlLDIPvQr0SH1ia/6Cj/tXQRy3/excFjRZwpLeV4SQl7Cwsc7y8+rI4j0AB0aZhQqXXLeX7MNp8deO8dEBJidTVOXAo1KSkpZGdnO63bvn07CQllPzwzZsygY8eOtGvX7pL7zcrKwsfHh6io8rs4O3bsiL+/P0uWLHHcRZWdnc3evXvp0qVLua8JDAystF4fj7A/zww0Jz1vXgGR6ubv43zjp81mo/QSs6gWnSrm9hYtebH3rWW2xZ7XS3L+lzNAfHgdsh/9K1/v2sFXu7bzyBfpvLx6BSvuf5iiU8X42nzYOOrPjmBxVuh/9lOdFzn7+/o6/W6DS54XV9XyD7h0o98ZPm8Oh04c53/69iMhvC6Bfn50mfG/nDpzplJrExfszYUZH8DQgVC3jtXVOLgUasaOHUvXrl2ZOHEid999N+vWrWPatGlMmzbNqZ3dbmfu3Lm8+uqrZfaRmZnJ2rVr6dmzJ7Vr1yYzM5OxY8cydOhQx63hubm59OrVi3feeYdrr72W8PBwRowYwbhx46hXrx5hYWE89thjdOnSRRcJA+QegHc/VqARqSQBvr6cKXX+Mu8Q04BPtm2mcZ26+Pn4XuCV5Qv29+f2Fq24vUUrRnfqStI/X2bzwQO0j23AGaOUg8eKuCGhSbmvbRsdy5LdOTzTM7XCtf5ey8goVu3b47Ru1b49XBVRv0yYqm4t60fzdtYGjp065QiEq/btwcdmo8V/er9W7fuZf90ygFuatwRgX2EBvx0/dxNEy8go9tkLOHDUTmxtM2Cu+WVvNb+TGujQEfjX29CmJXTuANGRVlfk2jw1nTp1Ij09nQ8++IDWrVvz3HPPMXnyZIYMGeLUbs6cORiGweDBg8vsIzAwkDlz5tC9e3euvvpq/vGPfzB27FinYFRSUkJ2djbHj5+70PX111/ntttuY+DAgXTr1o2YmBg+/fRTV9+v9/llv3poRCpZ4zr1WJu7lz0Fh/nt+DFKjVJGX9uVwyeOM/iT2azP3cfOw7/xZU42f/zsQ85cZEr5t7PWM+O7dWw5mMeuI4d4b9N3BPv5kxBel6siIhnSpj3D5s3h022b2X3kMOty9zJp5VIWbN8GQNr1N7J+/z4eWfApm/L389NvB5myfrXjS728Wn/viS7dWLI7h+dWfMX2Q78yK2sD/7tuNX857+4nqwxp254gP3+Gz5vDloN5LNudw2ML5/GHth2IDq0NmNcpvbtpI9t+zWftL3sZ8ulsgv3O9WD1btKcqyIiGT5vDj/k7Wflz7v4f0sXWfWWapaS0/DdZpgyC77fbHU1rvXUANx2223cdtttF20zatQoRo0aVe62Dh06sGbNmou+vnHjxhi/6/IMCgrin//8J//85z9dK9ib7f0F3v8Uik9ZXYmIV/lL1+4MnzeHVv98hROnSxy3dK/602ie/PoL+rw3neLTp0moU5e+TVvgc5E7QeoEBfPCt8sYt3g+Z0pLaRMdw/zBf3RcMzPzjnt4/puveWLxfHLtduqH1OK6ho247SqzV+KqiEgWDx3J00sXcu30Nwn296dzg3gGt2l/wVp/r0NsQz66ayh/W76Y575ZQmzt2jzbs0+Zi3hd1XjyRO6/Jpm/9+hz2fsI8Q/gy6EP8OdFn9Fp+v843dJ91ox+gxj1+cd0mDaZ+LA6TOx1M39Z/Llju4/Nh/R7hjMiYy7X/vsNGtepxxt976Dv+/++ovcnFRTgD7f3MXtsLGYzfp8evJTdbic8PJzCwkLCwtx/UqpL+nmfGWhOlVhdiYhlerw9hWti4pisOUmq3fGSU0S89N8sHPKA05w6nubsvEVZD427dGMpKzbKnJgvol6VHcKV72/3ux9LLm3PPnj/E7PbT6SG+9f6TP793ToyRzxKm+jYS79AKsWy3Tu5MbGZxwaavYVHaPXPVzh15gytIitvHp4apXN7c84aN7q1Wz01nmbXz/BBugKNCJBrL+TEabO3slF4Hcum3BfPc7r0jGOSwkBfP+LD61hbkCcJCoQ7UqHlVdVyOPXUeKude8xAc1q3MYoANAgLv+j2jOwfWbo7hxsTm9GvxdXVVJV4Aj8fX5rVq291GZ6nQYw53ORGt3GfT6HGU+TshjnzFGhEKigj+0fumPM2NuB/1n7LZ/fer2AjciW6JkOvG8DXtSkNqpO1ExRIxezYpR4aERe9uGoZAAbgY7OxfM9OawsS8VQhwXDfAOjTw60DDainxv1l58BHGXDmwvNgiIiziSuXsHrfzwDYMGcL9tQLWkUsldAQBt4KYbWtrqRCFGrc2U87YO58BRoRF0xcucQx8drQNh2IrFWLHo2bauhJxBU2G9zQGXp0BYtnnXaFQo272poNHy+Ai8xUKiLOzg80/7ixL0/f0MviikQ8UK0QuPMWaNrY6kpcplDjjn7Mhk8UaERcoUAjUgmaNII7b4XQWlZXclkUatzN5m2QvlCBRsQFCjQiV8hmg55d4frOHjXc9HsKNe5k01Yz0NSM+RBFKoUCjcgVqh0Kd90KCfFWV3LFFGrcRdYW+OxLBRoRF/zh0w94b/N3gAKNyGVpngj9bzavo/ECCjXu4PvNkLFYgUbEBWMWznMEGoDWUTEWViPiYXx8oPcN0CXZHHryEp47cOYtNv6gHhqRy1By5txklL42H02uJ1JRdcLgT/dC105eFWhAocZa67Ng/ldWVyHikW5ungSYgeaMUarJ9UQqomVzePAP0DDO6kqqhIafrLLue/hiidVViHisfi2u5rN772f5np2aXE/kUnx9ILUndLrG63pnzqdQY4U1G2HRMqurEPF4/VpcrTAjcin16phP1o7z/uvOFGqq2+r1sHiF1VWIiEhN0DoJbr8JAgOtrqRaKNRUp2/Xwtcrra5CRES8nZ8v3NIL2rfx6uGm31OoqS4r18CSb62uQkREvF39ejDodoiOtLqSaqdQUx1WrIZlq62uQkREvN01V5s9NAEBVldiCYWaqmQYsHw1rMi0uhIREfFmAf5wa29oV7MvnFeoqSqGActWwTdrrK5ERES8WXQkDLoN6kdYXYnlFGqqgmHAkpXw7TqrKxEREW+W3A5Se4C/v9WVuAWFmspmGPDVCli9wepKRETEWwUGQL9UuLqF1ZW4FYWaymQY8OUyWPPdpduKiIhcjrhoczK9enWtrsTtKNRUFsOAhUvNxx+IiIhUhes6QO9u4Kev7/LorFQGwzCf47Q+y+pKRETEGwUHwR2pkNTc6krcmkJNZbm6BRQXw9btcPqM1dWIiIi3iI+DgbdCnXCrK3F7CjWVwWaDxvHmcksv2PwTfLcJDhy0ujIREfFk118LPVPA19fqSjyCj6svyM3NZejQoURERBAcHEybNm3YsOHcnT42m63c5eWXXwZgz549jBgxgsTERIKDg2natCn//d//zalTpy563B49epTZ50MPPeRq+VUvKMh8tPuDw+DBP5i32wXWzJkdRUTkMoUEw9CB5vUzCjQV5lJPzZEjR0hJSaFnz54sXLiQyMhIduzYQd26567APnDggNNrFi5cyIgRIxg4cCAAP/30E6Wlpfzf//0fzZo1Y8uWLYwcOZJjx47xyiuvXPT4I0eO5Nlnn3X8HhIS4kr51S82Gm67Cfp0hy0/wYYfYH++1VWJiIg7axxvDjfVDrW6Eo9jMwzDqGjjp556ilWrVrFyZcWfNN2/f3+OHj3KkiVLLtjm5ZdfZsqUKezateuCbXr06ME111zD5MmTK3zs89ntdsLDwyksLCQsLOyy9lEpDuTDxk2weRsUX7x3SkREahCbDbp3gW7XgY/LAyley5Xvb5fOWkZGBsnJyQwaNIioqCjat2/P9OnTL9g+Pz+fBQsWMGLEiIvut7CwkHr16l3y+O+//z7169endevWpKWlcfz48Qu2LS4uxm63Oy1u4WzvzRMPQb8+5nwDIiJSs4XWgmGDoEdXBZor4NLw065du5gyZQrjxo3j6aefZv369YwZM4aAgACGDx9epv2sWbOoXbs2d9555wX3mZOTw5tvvnnJoaf77ruPhIQE4uLi2LRpE08++STZ2dl8+umn5bafNGkSzzzzjCtvr3oFBECHtuZyIB9WrjXvnBIRkZqlaQIMuMUMNnJFXBp+CggIIDk5mdWrVzvWjRkzhvXr15OZWfZJ1ElJSdx00028+eab5e4vNzeX7t2706NHD/7973+7VPjSpUvp1asXOTk5NG3atMz24uJiiouLHb/b7Xbi4+OtH366EMOA7zebE/iVnLa6GhERqWo+PnBjCqRcaw49SbmqbPgpNjaWVq1aOa1r2bIle/fuLdN25cqVZGdn88ADD5S7r/3799OzZ0+6du3KtGnTXCkDgM6dOwNmT095AgMDCQsLc1rcms1m9tqMHAqRetKqiIhXCwuF+++G6zsr0FQil0JNSkoK2dnZTuu2b99OQkJCmbYzZsygY8eOtGvXrsy23NxcevToQceOHZk5cyY+lzF+mJWVBZhBy6tE1YdRQ6FDG6srERGRqnBVE3hoGDRqaHUlXselNDF27FjWrFnDxIkTycnJYfbs2UybNo3Ro0c7tbPb7cydO7fcXpqzgaZRo0a88sor/Prrr+Tl5ZGXl+fUJikpiXXr1gGwc+dOnnvuOTZu3MiePXvIyMhg2LBhdOvWjbZt217O+3Zv/v7m01f7dLe6EhERqSy+PpDaAwYPAHefksRDuXShcKdOnUhPTyctLY1nn32WxMREJk+ezJAhQ5zazZkzB8MwGDx4cJl9fPXVV+Tk5JCTk0PDhs4p9ezlPSUlJWRnZzvubgoICODrr79m8uTJHDt2jPj4eAYOHMh//dd/ufRmPU7XTlB0DFZvuHRbERFxX3XDzSdrN/Cy0QU349KFwp7MbeapcZVhwLyF8MNWqysREZHL0eoqcwqPoCCrK/FIrnx/69lP7s5mM4eiTpyE7ReenFBERNyMny+k9jQfl6OLgauFZvjxBL6+MOh2aKhuSxERjxBRFx4YYj4LUIGm2ijUeAp/f+jfVzNNioi4u7YtzbtYY6KsrqTG0TekJ6kfAZ3bW12FiIiUx98P7kg1ZwcODLS6mhpJocbTdO9iPpJeRETcR1R9c/LU9m003GQhhRpPExQEva63ugoRETmrQxsYOcQMNmIphRpP1L4NxERaXYWISM0W4A8DbzXvUPX3t7oaQaHGM/n4QM8Uq6sQEam5YiLhwT9Am5ZWVyLn0Tw1nqppY/OiND3RW0Skel3b3nyMjZ++Qt2N/h/xVH5+ZrD5qfynlIuISCULCjRnBm7VwupK5AIUajzZVU0UakREqkODGPPZTXXrWF2JXIRCjSe7qqnVFYiIeL8uHaF3N3N2d3FrCjWeLLSW+ddDbp7VlYiIeJ/gIBhws/6A9CAKNZ6ueROFGhGRytaogXm7dvjFnwot7kWhxtPVr2d1BSIi3sNmgxs6Q4+uetaeB1Ko8XS1a1ldgYiId6gVAnfeYt5ZKh5JocbT1Q61ugIREc+X2MgMNPo31aMp1Hi6UPXUiIhcNpsNenSBG67TcJMXUKjxdAEB5oRQJ4utrkRExLPUDjUvBm4cb3UlUkkUarxBaC2FGhERVzRrDANuMa+jEa+hUOMN1GUqIlIxPj7Q63ro2skcehKvolDj6QwDjhRYXYWIiPsLr20+6iC+gdWVSBVRqPF0x0/oSd0iIpeS1AzuSIXgYKsrkSqkUOPp1EsjInJhvj7Qpwdc217DTTWAQo2nK7BbXYGIiHuqGw6Dboe4GKsrkWqiUOPp1FMjIlJWq6ugXx8ICrK6EqlGCjWe7nCB1RWIiLgPXx/oeyMkt9NwUw2kUOPJTp+G7J1WVyEi4h7q1TGHm2Kjra5ELKJQ48l+yjHvfhIRqelaJ8HtN0FgoNWViIUUajzZxk1WVyAiYi0/X7j5RujQVsNNgstT0ebm5jJ06FAiIiIIDg6mTZs2bNiwwbHdZrOVu7z88suONocPH2bIkCGEhYVRp04dRowYQVFR0UWPe/LkSUaPHk1ERAShoaEMHDiQ/Px8V8v3HocOw+69VlchImKdiLowcih01PUzYnIp1Bw5coSUlBT8/f1ZuHAhW7du5dVXX6Vu3bqONgcOHHBa3nrrLWw2GwMHDnS0GTJkCD/++CNfffUVn3/+Od988w2jRo266LHHjh3L/PnzmTt3LitWrGD//v3ceeedLr5dL6JeGhGpydq2hAf/ANGRVlcibsRmGIZR0cZPPfUUq1atYuXKlRU+QP/+/Tl69ChLliwBYNu2bbRq1Yr169eTnJwMwKJFi7jlllv45ZdfiIuLK7OPwsJCIiMjmT17NnfddRcAP/30Ey1btiQzM5PrrrvuknXY7XbCw8MpLCwkLCyswvW7pdOn4bX/0/U0IlLz+PvBLb3gmtbqnakhXPn+dqmnJiMjg+TkZAYNGkRUVBTt27dn+vTpF2yfn5/PggULGDFihGNdZmYmderUcQQagN69e+Pj48PatWvL3c/GjRspKSmhd+/ejnVJSUk0atSIzMzMcl9TXFyM3W53WryGLhAWkZooMsIcbmrfRoFGyuVSqNm1axdTpkyhefPmfPnllzz88MOMGTOGWbNmldt+1qxZ1K5d22mYKC8vj6ioKKd2fn5+1KtXj7y8vHL3k5eXR0BAAHXq1HFaHx0dfcHXTJo0ifDwcMcSHx/vwjt1cxp6EpGa5pqrYeQQiKpvdSXixly6+6m0tJTk5GQmTpwIQPv27dmyZQtTp05l+PDhZdq/9dZbDBkyhCALZnRMS0tj3Lhxjt/tdrt3BJv9ebpAWERqDn8/uLW3OdwkcgkuhZrY2FhatWrltK5ly5Z88sknZdquXLmS7OxsPvzwQ6f1MTExHDx40Gnd6dOnOXz4MDEx5T+fIyYmhlOnTlFQUODUW5Ofn3/B1wQGBhLobfMVGAYs+NrqKkREqkdUfRh0G0Sqd0YqxqXhp5SUFLKzs53Wbd++nYSEhDJtZ8yYQceOHWnXrp3T+i5dulBQUMDGjRsd65YuXUppaSmdO3cu97gdO3bE39/fcbExQHZ2Nnv37qVLly6uvAXP9v1myC1/uE1ExKt0aGMONynQiAtcCjVjx45lzZo1TJw4kZycHGbPns20adMYPXq0Uzu73c7cuXN54IEHyuyjZcuW9O3bl5EjR7Ju3TpWrVrFo48+yr333uu48yk3N5ekpCTWrVsHQHh4OCNGjGDcuHEsW7aMjRs38sc//pEuXbpU6M4nr3DiBHxd8bvOREQ8UoA/3HkL9EsFf3+rqxEP49LwU6dOnUhPTyctLY1nn32WxMREJk+ezJAhQ5zazZkzB8MwGDx4cLn7ef/993n00Ufp1asXPj4+DBw4kDfeeMOxvaSkhOzsbI4fP+5Y9/rrrzvaFhcXk5qayr/+9S9Xyvdsy1brjicR8W7RkeZwU/0IqysRD+XSPDWezKPnqck7CP/3rnlNjYiIN0puB6k91DsjZbjy/a1nP7k7w4AvlijQiIh3CgyA2/uYD6QUuUIKNe5u01bYm2t1FSIilS82Cu66DSLqWV2JeAmFGnd28iR89Y3VVYiIVL5r20Of7uCnryGpPPo0uSvDgIVLoeiY1ZWIiFSewAC4IxVatbC6EvFCCjXuau138MNWq6sQEak8cdHmcFO9ulZXIl5KocYd7foZFq+wugoRkcrTuT3cpOEmqVr6dLmbIwUwdz6UllpdiYjIlQsKNIebWl5ldSVSAyjUuJNTp2DOZ3DipNWViIhcuQYxMOh2qBNudSVSQyjUuAvDgM++hPxfra5EROTKdekIvbuBr6/VlUgNolDjLtZshB+zL91ORMSdBQdB/77QopnVlUgNpFDjLtq2gj37IHun1ZWIiFye+Djz7qZwD3sUjXgNl57SLVWoVgjc2x/69TGfUisi4klSOsH99yjQiKXUU+NObDbo0BYax0P6Qti33+qKREQuLiQYBtwMzZtYXYmIemrcUr268Md74cYU8NH/RSLipho1gIeGKdCI21BPjbvy8YFuXaBZInz6Bfx22OqKRETOuaEz9NQfXuJe9Gl0d3Ex8OAfzIe/iYhYrVYIDB0IvW5QoBG3o54aT+DvD7f0gquamHPZHC2yuiIRqYkax8PAW6F2qNWViJRLMduTNEuEh4dBK003LiLVyGaD7l1g2CAFGnFr6qnxNCEh5rTjm7bCF0ug+JTVFYmINwutBXfeAk0SrK5E5JIUajyRzQbtroaEhuat3z//YnVFIuKNEhuZw02htayuRKRCNPzkyeqEw/C74aZu4Kv/K0Wkkths0KMr/OEuBRrxKOqp8XQ+PpByLTRtbN76ffA3qysSEU8WWsvsnUlsZHUlIi7Tn/feIiYKRg01n4wrInI5miaYk+kp0IiHUk+NN/Hzg9SecFVTmLcQCo9aXZGIeAKbDXp2hRuuM38W8VDqqfFGiY3g4eHQtqXVlYiIu6sdCvffbc5grkAjHk49Nd4qKAjuvNXstfn8KzhZbHVFIuJumjWGAbeYswSLeAGFGm/XOsl86Ny8hbBrr9XViIg78PExH5ibcq16Z8SraPipJgirDX8YBH17gp+v1dWIiJXC/jPcdH1nBRrxOuqpqSlsNriuo3l3wycLIO9XqysSkep2VRPo39ecmVzEC6mnpqaJrA8jh8IN+itNpMbw8YE+3WHwAAUa8Wouh5rc3FyGDh1KREQEwcHBtGnThg0bNji12bZtG/369SM8PJxatWrRqVMn9u41r+fYs2cPNput3GXu3LkXPO79999fpn3fvn1dLV8AfH2h1w3wx3ugTpjV1YhIVQqvDX+6F7p20h8y4vVcGn46cuQIKSkp9OzZk4ULFxIZGcmOHTuoW7euo83OnTu5/vrrGTFiBM888wxhYWH8+OOPBAUFARAfH8+BAwec9jtt2jRefvllbr755osev2/fvsycOdPxe2BgoCvly+81amje+r1oGXy/xepqRKSytWhqDjcFB1tdiUi1cCnUvPjii8THxzsFi8TERKc2/+///T9uueUWXnrpJce6pk2bOn729fUlJibG6TXp6encfffdhIZe/JH2gYGBZV4rVygwEO7oa461z/8Kjp+wuiIRzxcSbN4mXSvEfOxAreD//G8IBARA0TFzOVr0n+U/v584WTnH9/WBm7pD5w7qnZEaxaVQk5GRQWpqKoMGDWLFihU0aNCARx55hJEjRwJQWlrKggUL+Otf/0pqairff/89iYmJpKWl0b9//3L3uXHjRrKysvjnP/95yeMvX76cqKgo6taty4033sjzzz9PREREuW2Li4spLj43N4vdbnflrdY8La+C+Abw2SLYsdvqakTcn48PREZAXDTExUBsFISHmYHG9zLvMiwpORd2io6BvQj27Ycdu+BUScX2UScMBt0ODWIvrwYRD2YzDMOoaOOzQ0jjxo1j0KBBrF+/nj//+c9MnTqV4cOHk5eXR2xsLCEhITz//PP07NmTRYsW8fTTT7Ns2TK6d+9eZp+PPPIIy5cvZ+vWrRc99pw5cwgJCSExMZGdO3fy9NNPExoaSmZmJr7l/APy97//nWeeeabM+sLCQsLCdB3JBRkGbPwBvlwOJaetrkbEPZQXYKIjwd+/eo5fUgK7foZtOyB754V7dFo2hztSzck3RbyE3W4nPDy8Qt/fLoWagIAAkpOTWb16tWPdmDFjWL9+PZmZmezfv58GDRowePBgZs+e7WjTr18/atWqxQcffOC0vxMnThAbG8uECRN44oknKloGALt27aJp06Z8/fXX9OrVq8z28npq4uPjFWoq6tBh86nfuXlWVyJSvWw2qF/PDDANYs3/rc4AcylnzsDPv5gB56ccs1fH18d87lunazTcJF7HlVDj0vBTbGwsrVq1clrXsmVLPvnkEwDq16+Pn59fuW2+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tPRWpaWlPP7446SkpNC6dWvH+o8++oh77rmHiIgI/Pz8CAkJIT09nWbNmgHmtSJRUVFO+/Lz86NevXrk5eVV63twB5d7HgHGjBlDhw4dqFevHqtXryYtLY0DBw7w2muvWfFWLFfeubzuuuuoVasWTz75JBMnTsQwDJ566inOnDnDgQMHAH0my3O55xL0uQTYvHkzXbp04eTJk4SGhpKenk6rVq3IysoiICCAOnXqOLWPjo52fNby8vKcAs3Z7We31TRXci4Bnn32WW688UZCQkJYvHgxjzzyCEVFRYwZM6ZS61So8XCjR49my5YtZf5CmzBhAgUFBXz99dfUr1+fefPmcffdd7Ny5UratGljUbXu60rO47hx4xzt27ZtS0BAAA8++CCTJk2qkdOul3cuIyMjmTt3Lg8//DBvvPEGPj4+DB48mA4dOuDjow7jC7mSc6nPJbRo0YKsrCwKCwv5+OOPGT58OCtWrLC6LI90pedywoQJjp/bt2/PsWPHePnllys91OiaGg82evRoo2HDhsauXbuc1ufk5BiA4yKus3r16mU8+OCDhmEYxowZM4w6deo4bS8pKTF8fX2NTz/9tGoLdzNXch7Ls2XLFgMwfvrppyqp151d6Fye79dffzWOHDliGIZhREdHGy+99JJhGPpM/t6VnMvy1OTP5Vm9evUyRo0aZSxZssQAHOfurEaNGhmvvfaaYRiGMWHCBKNdu3ZO23ft2mUATjcK1FSunMvyfP755wZgnDx5slLr0p9IHsgwDB599FHS09NZunQpiYmJTtuPHz8OUOYvYF9fX0pLSwHo0qULBQUFbNy40bF96dKllJaW0rlz5yp+B+6hMs5jebKysvDx8SkzlOLNLnUuz1e/fn3q1KnD0qVLOXjwIP369QP0mTyrMs5leWri5/L3SktLKS4upmPHjvj7+7NkyRLHtuzsbPbu3UuXLl0A8/O4efNmDh486Gjz1VdfERYWRqtWraq9dnfjyrksT1ZWFnXr1q38XsNKjUhSLR5++GEjPDzcWL58udPtccePHzcMwzBOnTplNGvWzLjhhhuMtWvXGjk5OcYrr7xi2Gw2Y8GCBY799O3b12jfvr2xdu1a49tvvzWaN29eo26frYzzuHr1auP11183srKyjJ07dxrvvfeeERkZaQwbNszKt1btLnUuDcMw3nrrLSMzM9PIyckx3n33XaNevXrGuHHjnPZT0z+ThlE551KfS8N46qmnjBUrVhi7d+82Nm3aZDz11FOGzWYzFi9ebBiGeRtyo0aNjKVLlxobNmwwunTpYnTp0sXx+rO3dPfp08fIysoyFi1aZERGRtbIW7qv9FxmZGQY06dPNzZv3mzs2LHD+Ne//mWEhIQYf/vb3yq9VoUaDwSUu8ycOdPRZvv27cadd95pREVFGSEhIUbbtm3L3Jp86NAhY/DgwUZoaKgRFhZm/PGPfzSOHj1aze/GOpVxHjdu3Gh07tzZCA8PN4KCgoyWLVsaEydOrPQuVXdXkXP55JNPGtHR0Ya/v7/RvHlz49VXXzVKS0ud9lPTP5OGUTnnUp9Lw/jTn/5kJCQkGAEBAUZkZKTRq1cvx5ewYRjGiRMnjEceecSoW7euERISYgwYMMA4cOCA0z727Nlj3HzzzUZwcLBRv35944knnjBKSkqq+61Y7krP5cKFC41rrrnGCA0NNWrVqmW0a9fOmDp1qtO8SpXFZhhVcE+ViIiISDXTNTUiIiLiFRRqRERExCso1IiIiIhXUKgRERERr6BQIyIiIl5BoUZERES8gkKNiIiIeAWFGhEREfEKCjUiIiLiFRRqRERExCso1IiIiIhXUKgRERERr/D/AbINebTOFCZoAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "visualize_single_segment(['ec17e151-b449-4bed-ad13-25197bc872fd'])" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "4334a6ee", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "82a8db53-8c9a-47b4-84a5-ba0d1aee2e46 lanegroup0\n", - "3d8e2040-aa79-4080-b496-567236e8b3df road1\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAABaV0lEQVR4nO3deXhTZdrH8W/SBSjQlr0iS0GQRUDWYR3UERVxXhxFUcAFKagMoIgyWrdxdKQo4DLqiDClruC+oAIOgiJIZRNGUChhk7WgQFu2tpSc94+HpC10S2l7kvT3ua5c5yE5Se4cg7l5lvtxWJZlISIiIuJHnHYHICIiInImJSgiIiLid5SgiIiIiN9RgiIiIiJ+RwmKiIiI+B0lKCIiIuJ3lKCIiIiI31GCIiIiIn4n1O4ASsPtdrN3715q1qyJw+GwOxwREREpAcuyOHLkCA0bNsTpLLqPJCATlL1799K4cWO7wxAREZFS2LVrF40aNSrynIBMUGrWrAmYDxgZGWlzNCIiIlISGRkZNG7c2Ps7XpSATFA8wzqRkZFKUERERAJMSaZnaJKsiIiI+B0lKCIiIuJ3lKCIiIiI31GCIiIiIn5HCYqIiIj4HSUoIiIi4neUoIiIiIjfUYIiIiIifkcJioiIiPgdJSgiIiLid5SgiIiIiN9RgiIi9nrkEejc2RxFRE4LyM0CRSRIPPIITJpk2mvXmuPTT9sXj4j4DfWgiIh95s/P/+cFC+yJQ0T8jhIUEbHP1Vfn/3PjxvbEISJ+R0M8ImIfz3DOlClw8iQsW2ZvPCLiN9SDIiL2evpp+O9/TfvgQXj2WXvjERG/oARFROx36aVw8cWm/cQTkJNjZzQi4geUoIiIf5gzxxxPnIAJE+yNRURspwRFRPxDmzZw+eWm/eqrcPSovfGIiK2UoIiI/5g9G5xOM8QzfLjd0YiIjZSgiIj/qF8fbr7ZtD/+GHbvtjceEbGNEhQR8S8zZ0JYGFgWDB1qdzQiYhMlKCLiXyIi4N57TXvpUvjpJ3vjERFbKEEREf/zzDNQvbppDxlibywiYgslKCLif5xOSEgw7V9+ga++sjceEalwSlBExD+NG2cmzQLExdkbi4hUOJ8SlNjYWBwOx1m3MWPGADBjxgwuvfRSIiMjcTgcpKWlnfUahw4dYtiwYURGRhIdHU1cXBxHVe9ARAoyfbo57tkDiYn2xiIiFcqnBGXVqlXs27fPe1u4cCEAN954IwDHjx+nf//+PPzww4W+xrBhw/j5559ZuHAhX3zxBd999x133nnnOXwEEQla110HLVqY9v33g9ttbzwiUmEclmVZpX3y+PHj+eKLL3C5XDgcDu/93377LZdddhmHDx8mOjrae//GjRtp27Ytq1atomvXrgAsWLCAAQMGsHv3bho2bFii983IyCAqKor09HQiIyNLG76IBIIVK6BHD9P++9/NXj0iEpB8+f0u9RyU7Oxs3n77bUaMGJEvOSlKcnIy0dHR3uQEoF+/fjidTlasWFHo87KyssjIyMh3E5FKont36NbNtCdPhuxse+MRkQpR6gTl008/JS0tjeE+lKNOTU2lvmfS22mhoaHUrl2b1NTUQp+XkJBAVFSU99a4cePShi0igei998DhgKwsOD3nTUSCW6kTlMTERK6++uoSD8uci/j4eNLT0723Xbt2lft7iogfadYMrr7atJOSoIAJ+CISXEJL86Rff/2Vr7/+mo8//tin58XExHDgwIF89+Xk5HDo0CFiYmIKfV6VKlWoUqVKaUIVkWDx1ltm2fGpU3DLLfDFF3ZHJCLlqFQ9KElJSdSvX59rrrnGp+f17NmTtLQ01qxZ471v8eLFuN1uunfvXppQRKSyqF07d4fjefNg+3ZbwxGR8uVzguJ2u0lKSuL2228nNDR/B0xqairr1q1jy5YtAKxfv55169Zx6NAhANq0aUP//v0ZNWoUK1eu5Pvvv2fs2LHcfPPNFTJUJCIB7t//hipVzEaCnl2PRSQo+ZygfP311+zcuZMRI0ac9dj06dPp1KkTo0aNAqBv37506tSJuXPnes955513aN26NZdffjkDBgygT58+zJgx4xw+gohUGuHh8NBDpr1ypVmCLCJB6ZzqoNhFdVBEKjG32wz3pKdDy5awebPdEYlICVVIHRQREVs4nTB1qmm7XPDJJ/bGIyLlQgmKiASekSPh/PNN++677Y1FRMqFEhQRCUwzZ5rjgQPw0kv2xiIiZU4JiogEpquvhrZtTfvhh7WRoEiQUYIiIoHrnXfM8ejR3NU9IhIUlKCISODq2BH69DHtF16AzEw7oxGRMqQERUQC25w5ZiPBkychLs7uaESkjChBEZHA1qgRXHedab/7rpk0KyIBTwmKiAS+N96A0FAzUXbYMLujEZEy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Sl60LO9mdj17mnohKlomIhIwlKCIPdxuMxfk229zi5bt2uVb0bK6dXOLlnXtapKQCy4o58BFRKQiKEGR8rVzZ8FFy44XUaDJIzw8f9GyLl1M0bIOHTQ5VUQkyClBkXN36JAp356cDOvXm3kh+/ebzexKWrSsYUMzObVjR+jTxxQtUwVJEZFKSwmKlExmptlN98yiZenpJS9a1qBBbtGynj3NKpno6IqIXkREAowSFMnldptJqd99Z46bNpnN7A4fNhNXi1O9utnMLm/RsksvNUM0IiIiPlCCUhk88gjMnw9XXw1PP22GYL75xqyU+eUXM0/k999Lvpmdp2hZmza5RcvatNG8EBERKTNKUILdww9DQoJpr10LkyYV/5ywMDP0cv75plpq586mVki3bipaJiIiFUK/NsFuwYKC73c68xct88wL+eMfTR0RERERGylBCXZXX216Tjyuuw6mTzcb3ImIiPgpJSjB7umnzXHBAujfP/fPIiIifsxhWcUVqvA/GRkZREVFkZ6eTqR2vRQREQkIvvx+a9mFiIiI+B2fE5Q9e/Zwyy23UKdOHapVq0b79u1ZvXp1vnM2btzIwIEDiYqKonr16nTr1o2dO3d6H8/MzGTMmDHUqVOHGjVqMGjQIPbv33/un0ZERESCgk8JyuHDh+nduzdhYWHMnz+fX375hWnTplGrVi3vOVu3bqVPnz60bt2ab7/9lp9++onHHnuMqnnKlt933318/vnnfPDBByxZsoS9e/dy/fXXl92nEhERkYDm0xyUhx56iO+//56lS5cWes7NN99MWFgYb731VoGPp6enU69ePWbPns0NN9wAwKZNm2jTpg3Jycn06NGj2Dg0B0VERCTwlNsclLlz59K1a1duvPFG6tevT6dOnZg5c6b3cbfbzZdffsmFF17IVVddRf369enevTuffvqp95w1a9Zw8uRJ+vXr572vdevWNGnShOTk5ALfNysri4yMjHw3ERERCV4+JSjbtm3j1VdfpWXLlnz11VeMHj2ae+65hzfeeAOAAwcOcPToUSZPnkz//v3573//y3XXXcf111/PkiVLAEhNTSU8PJzoMzaJa9CgAampqQW+b0JCAlFRUd5b48aNS/FRRUREJFD4VAfF7XbTtWtXJp0ul96pUyc2bNjA9OnTuf3223G73QBce+213HfffQB07NiR5cuXM336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uVStWjXfubZ+F8p1Cm45Gj16tBUVFWV9++23+ZaPHj9+3LIsy9qyZYv15JNPWqtXr7a2b99uffbZZ1bz5s2tvn37el/Ds3zqyiuvtNatW2ctWLDAqlevXkAtpSvuOliWWU4XGRlpffDBB5bL5bIeffRRq2rVqtaWLVu85/Tv39/q1KmTtWLFCmvZsmVWy5YtA2Y5XUmugWVZlsvlshwOhzV//vyzXqMyfBeys7OtFi1aWH/84x+tFStWWFu2bLGmTp1qORwO68svv/S+TrB/F2bNmmUlJydbW7Zssd566y2rdu3a1oQJE/K9TiBfA8uyrIceeshasmSJtX37duunn36yHnroIcvhcFj//e9/Lcsyy4ybNGliLV682Fq9erXVs2dPq2fPnt7nB8Pfh+Kuwb59+6y1a9daM2fOtADru+++s9auXWsdPHjQ+xqB/j2wrKKvQ3p6utW9e3erffv21pYtW/L9ncnJybEsy97vQsAmKECBt6SkJMuyLGvnzp1W3759rdq1a1tVqlSxWrRoYU2cODHf8kLLsqwdO3ZYV199tVWtWjWrbt261v333+9dXhUIirsOHgkJCVajRo2siIgIq2fPntbSpUvzPX7w4EFryJAhVo0aNazIyEjrjjvu8NYI8XclvQbx8fFW48aN89W7yKsyfBc2b95sXX/99Vb9+vWtiIgIq0OHDmctOw7278KDDz5oNWjQwAoLC7NatmxpTZs2zXK73fleJ5CvgWVZ1ogRI6ymTZta4eHhVr169azLL7/c+8NsWZZ14sQJ669//atVq1YtKyIiwrruuuusffv25XuNQP/7UNw1+Pvf/17sdyXQvweWVfR18CyxLui2fft272vY9V1wWJZllVfvjIiIiEhpBOwcFBEREQleSlBERETE7yhBEREREb+jBEVERET8jhIUERER8TtKUERERMTvKEERERERv6MERURERPyOEhQRERHxO0pQRERExO8oQRERERG/owRFRERE/M7/AzsLwaBXx3beAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "visualization(test_img_path, test_config, mapping)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "77bf7e66", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "28e436ec", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/spatialyze/world.py b/spatialyze/world.py index 7df6fb2..b880f35 100644 --- a/spatialyze/world.py +++ b/spatialyze/world.py @@ -31,10 +31,10 @@ def addGeogConstructs(self, geogConstructs: "RoadNetwork"): def object(self, index: "int | None" = None): if index is not None: - node = ObjectTableNode(self._objectCounts) - self._objectCounts += 1 - else: - node = ObjectTableNode(index) + return ObjectTableNode(index) + + node = ObjectTableNode(self._objectCounts) + self._objectCounts += 1 return node def camera(self):