From 676ce62ba4d2e4fa25c00e8a0eb8fc4360ec92c3 Mon Sep 17 00:00:00 2001 From: BlueAndi Date: Thu, 6 Feb 2025 20:03:31 +0100 Subject: [PATCH 1/5] Updated to be compliant to Webots 2025a. --- .github/workflows/test.yml | 2 +- LICENSE | 2 +- scripts/generate.py | 2 +- setup.py | 2 +- src/pyLineFollowerTrackGenerator/__init__.py | 2 +- src/pyLineFollowerTrackGenerator/__main__.py | 2 +- src/pyLineFollowerTrackGenerator/base/__init__.py | 2 +- src/pyLineFollowerTrackGenerator/base/world_file.py | 2 +- src/pyLineFollowerTrackGenerator/cmd_etrack.py | 8 ++++---- src/pyLineFollowerTrackGenerator/cmd_friction.py | 2 +- src/pyLineFollowerTrackGenerator/cmd_grid.py | 8 ++++---- src/pyLineFollowerTrackGenerator/cmd_simple.py | 8 ++++---- src/pyLineFollowerTrackGenerator/constants.py | 2 +- src/pyLineFollowerTrackGenerator/friction.py | 2 +- .../nodes/ContactProperties.py | 6 +++--- src/pyLineFollowerTrackGenerator/nodes/LinearMotor.py | 2 +- src/pyLineFollowerTrackGenerator/nodes/RotationalMotor.py | 2 +- src/pyLineFollowerTrackGenerator/nodes/__init__.py | 2 +- src/pyLineFollowerTrackGenerator/prg_arg_parser.py | 4 ++-- src/pyLineFollowerTrackGenerator/util.py | 2 +- src/pyLineFollowerTrackGenerator/version.py | 2 +- tests/__init__.py | 2 +- 22 files changed, 34 insertions(+), 34 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e6698a1..83e9610 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.9", "3.10"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} diff --git a/LICENSE b/LICENSE index b3a1e7e..b57af6a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 Andreas Merkle +Copyright (c) 2024 - 2025 Andreas Merkle Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/generate.py b/scripts/generate.py index 45fdee8..d518d64 100644 --- a/scripts/generate.py +++ b/scripts/generate.py @@ -5,7 +5,7 @@ import urllib.request import re -WEBOTS_VERSION = "R2023b" +WEBOTS_VERSION = "R2025a" WEBOTS_DOCS_REFERENCE_URL = "https://raw.githubusercontent.com/cyberbotics/webots/master/docs/reference" # pylint: disable=line-too-long def get_file_from_url(url: str) -> str: diff --git a/setup.py b/setup.py index dab8f3d..3aa7a5f 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2024 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/src/pyLineFollowerTrackGenerator/__init__.py b/src/pyLineFollowerTrackGenerator/__init__.py index de0636b..6e21dd6 100644 --- a/src/pyLineFollowerTrackGenerator/__init__.py +++ b/src/pyLineFollowerTrackGenerator/__init__.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2024 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/src/pyLineFollowerTrackGenerator/__main__.py b/src/pyLineFollowerTrackGenerator/__main__.py index 4dfe795..131fdf9 100644 --- a/src/pyLineFollowerTrackGenerator/__main__.py +++ b/src/pyLineFollowerTrackGenerator/__main__.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2024 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/src/pyLineFollowerTrackGenerator/base/__init__.py b/src/pyLineFollowerTrackGenerator/base/__init__.py index 133e24d..1ec41dd 100644 --- a/src/pyLineFollowerTrackGenerator/base/__init__.py +++ b/src/pyLineFollowerTrackGenerator/base/__init__.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2024 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/src/pyLineFollowerTrackGenerator/base/world_file.py b/src/pyLineFollowerTrackGenerator/base/world_file.py index 2fe54cf..971ecf1 100644 --- a/src/pyLineFollowerTrackGenerator/base/world_file.py +++ b/src/pyLineFollowerTrackGenerator/base/world_file.py @@ -15,7 +15,7 @@ def __init__(self, protos: list[Proto], nodes: list[Node]) -> None: def _get_header(self, code_format: CodeFormat) -> str: line_ending = code_format.line_ending() - return f"#VRML_SIM R2023b utf8{line_ending}{line_ending}" + return f"#VRML_SIM R2025a utf8{line_ending}{line_ending}" def export(self, code_format: CodeFormat) -> str: """Export to string. diff --git a/src/pyLineFollowerTrackGenerator/cmd_etrack.py b/src/pyLineFollowerTrackGenerator/cmd_etrack.py index 6b5bbc6..fb0509a 100644 --- a/src/pyLineFollowerTrackGenerator/cmd_etrack.py +++ b/src/pyLineFollowerTrackGenerator/cmd_etrack.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2024 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -245,13 +245,13 @@ def _exec(args): world_info = create_world_info(world_title, world_description, world_author, world_email, _BASIC_TIME_STEP) viewpoint = create_viewpoint(arena_width, arena_height) - proto_textured_background = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/backgrounds/protos/TexturedBackground.proto") # pylint: disable=line-too-long + proto_textured_background = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/backgrounds/protos/TexturedBackground.proto") # pylint: disable=line-too-long textured_background = create_textured_background() - proto_textured_background_light = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/backgrounds/protos/TexturedBackgroundLight.proto") # pylint: disable=line-too-long + proto_textured_background_light = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/backgrounds/protos/TexturedBackgroundLight.proto") # pylint: disable=line-too-long textured_background_light = create_textured_background_light() - proto_rectangle_arena = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/floors/protos/RectangleArena.proto") # pylint: disable=line-too-long + proto_rectangle_arena = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/floors/protos/RectangleArena.proto") # pylint: disable=line-too-long rectangle_arena = create_rectangle_arena(arena_width, arena_height, image_file_name) if add_friction_to_world(world_info, material_ground, material_robot, material_property) is True: diff --git a/src/pyLineFollowerTrackGenerator/cmd_friction.py b/src/pyLineFollowerTrackGenerator/cmd_friction.py index 58469f8..94cae05 100644 --- a/src/pyLineFollowerTrackGenerator/cmd_friction.py +++ b/src/pyLineFollowerTrackGenerator/cmd_friction.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2024 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/src/pyLineFollowerTrackGenerator/cmd_grid.py b/src/pyLineFollowerTrackGenerator/cmd_grid.py index 32fa66c..46e1638 100644 --- a/src/pyLineFollowerTrackGenerator/cmd_grid.py +++ b/src/pyLineFollowerTrackGenerator/cmd_grid.py @@ -4,7 +4,7 @@ # MIT License # -# Copyright (c) 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2024 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -368,13 +368,13 @@ def _exec(args): world_info = create_world_info(world_title, world_description, world_author, world_email, _BASIC_TIME_STEP) viewpoint = create_viewpoint(arena_width, arena_height) - proto_textured_background = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/backgrounds/protos/TexturedBackground.proto") # pylint: disable=line-too-long + proto_textured_background = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/backgrounds/protos/TexturedBackground.proto") # pylint: disable=line-too-long textured_background = create_textured_background() - proto_textured_background_light = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/backgrounds/protos/TexturedBackgroundLight.proto") # pylint: disable=line-too-long + proto_textured_background_light = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/backgrounds/protos/TexturedBackgroundLight.proto") # pylint: disable=line-too-long textured_background_light = create_textured_background_light() - proto_rectangle_arena = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/floors/protos/RectangleArena.proto") # pylint: disable=line-too-long + proto_rectangle_arena = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/floors/protos/RectangleArena.proto") # pylint: disable=line-too-long rectangle_arena = create_rectangle_arena(arena_width, arena_height, image_file_name) if add_friction_to_world(world_info, material_ground, material_robot, material_property) is True: diff --git a/src/pyLineFollowerTrackGenerator/cmd_simple.py b/src/pyLineFollowerTrackGenerator/cmd_simple.py index 4c29cbc..3d44b80 100644 --- a/src/pyLineFollowerTrackGenerator/cmd_simple.py +++ b/src/pyLineFollowerTrackGenerator/cmd_simple.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2024 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -189,13 +189,13 @@ def _exec(args): world_info = create_world_info(world_title, world_description, world_author, world_email, _BASIC_TIME_STEP) viewpoint = create_viewpoint(arena_width, arena_height) - proto_textured_background = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/backgrounds/protos/TexturedBackground.proto") # pylint: disable=line-too-long + proto_textured_background = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/backgrounds/protos/TexturedBackground.proto") # pylint: disable=line-too-long textured_background = create_textured_background() - proto_textured_background_light = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/backgrounds/protos/TexturedBackgroundLight.proto") # pylint: disable=line-too-long + proto_textured_background_light = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/backgrounds/protos/TexturedBackgroundLight.proto") # pylint: disable=line-too-long textured_background_light = create_textured_background_light() - proto_rectangle_arena = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/floors/protos/RectangleArena.proto") # pylint: disable=line-too-long + proto_rectangle_arena = Proto("https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/floors/protos/RectangleArena.proto") # pylint: disable=line-too-long rectangle_arena = create_rectangle_arena(arena_width, arena_height, image_file_name) if add_friction_to_world(world_info, material_ground, material_robot, material_property) is True: diff --git a/src/pyLineFollowerTrackGenerator/constants.py b/src/pyLineFollowerTrackGenerator/constants.py index 0e66f50..0677ea8 100644 --- a/src/pyLineFollowerTrackGenerator/constants.py +++ b/src/pyLineFollowerTrackGenerator/constants.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2024 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/src/pyLineFollowerTrackGenerator/friction.py b/src/pyLineFollowerTrackGenerator/friction.py index c108a92..d87a82f 100644 --- a/src/pyLineFollowerTrackGenerator/friction.py +++ b/src/pyLineFollowerTrackGenerator/friction.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2022 - 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2022 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/src/pyLineFollowerTrackGenerator/nodes/ContactProperties.py b/src/pyLineFollowerTrackGenerator/nodes/ContactProperties.py index d1ddedf..eabc438 100644 --- a/src/pyLineFollowerTrackGenerator/nodes/ContactProperties.py +++ b/src/pyLineFollowerTrackGenerator/nodes/ContactProperties.py @@ -24,8 +24,8 @@ def __init__(self) -> None: MFFloat("forceDependentSlip", [ 0 ]), SFFloat("softERP", 0.2), SFFloat("softCFM", 0.001), - SFString("bumpSound", "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/sounds/bump.wav"), # pylint: disable=line-too-long - SFString("rollSound", "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/sounds/roll.wav"), # pylint: disable=line-too-long - SFString("slideSound", "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/sounds/slide.wav"), # pylint: disable=line-too-long + SFString("bumpSound", "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/sounds/bump.wav"), # pylint: disable=line-too-long + SFString("rollSound", "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/sounds/roll.wav"), # pylint: disable=line-too-long + SFString("slideSound", "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/sounds/slide.wav"), # pylint: disable=line-too-long SFInt32("maxContactJoints", 10) ]) diff --git a/src/pyLineFollowerTrackGenerator/nodes/LinearMotor.py b/src/pyLineFollowerTrackGenerator/nodes/LinearMotor.py index c409cb1..e7010d2 100644 --- a/src/pyLineFollowerTrackGenerator/nodes/LinearMotor.py +++ b/src/pyLineFollowerTrackGenerator/nodes/LinearMotor.py @@ -16,5 +16,5 @@ def __init__(self) -> None: self.add_fields([ SFString("name", [ "linear, motor" ]), SFFloat("maxForce", 10), - SFString("sound", "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/sounds/linear_motor.wav") # pylint: disable=line-too-long + SFString("sound", "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/sounds/linear_motor.wav") # pylint: disable=line-too-long ]) diff --git a/src/pyLineFollowerTrackGenerator/nodes/RotationalMotor.py b/src/pyLineFollowerTrackGenerator/nodes/RotationalMotor.py index 9441ec4..e8581d6 100644 --- a/src/pyLineFollowerTrackGenerator/nodes/RotationalMotor.py +++ b/src/pyLineFollowerTrackGenerator/nodes/RotationalMotor.py @@ -16,5 +16,5 @@ def __init__(self) -> None: self.add_fields([ SFString("name", [ "rotational, motor" ]), SFFloat("maxTorque", 10), - SFString("sound", "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/sounds/rotational_motor.wav") # pylint: disable=line-too-long + SFString("sound", "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/sounds/rotational_motor.wav") # pylint: disable=line-too-long ]) diff --git a/src/pyLineFollowerTrackGenerator/nodes/__init__.py b/src/pyLineFollowerTrackGenerator/nodes/__init__.py index 133e24d..1ec41dd 100644 --- a/src/pyLineFollowerTrackGenerator/nodes/__init__.py +++ b/src/pyLineFollowerTrackGenerator/nodes/__init__.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2024 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/src/pyLineFollowerTrackGenerator/prg_arg_parser.py b/src/pyLineFollowerTrackGenerator/prg_arg_parser.py index 078f97c..b0c92c0 100644 --- a/src/pyLineFollowerTrackGenerator/prg_arg_parser.py +++ b/src/pyLineFollowerTrackGenerator/prg_arg_parser.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2022 - 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2022 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -50,7 +50,7 @@ def __init__(self): def _create_main_parser(self): main_parser = argparse.ArgumentParser( \ description="Generate a Webots world with a random line follower track.", - epilog="Copyright (c) 2024 " + __author__ + " - " + __license__ + \ + epilog="Copyright (c) 2022 - 2025 " + __author__ + " - " + __license__ + \ " - Find the project on github: " + __repository__) main_parser.set_defaults(which="") diff --git a/src/pyLineFollowerTrackGenerator/util.py b/src/pyLineFollowerTrackGenerator/util.py index f5d3c1d..43bcdd1 100644 --- a/src/pyLineFollowerTrackGenerator/util.py +++ b/src/pyLineFollowerTrackGenerator/util.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2024 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/src/pyLineFollowerTrackGenerator/version.py b/src/pyLineFollowerTrackGenerator/version.py index dd6e615..2be21a8 100644 --- a/src/pyLineFollowerTrackGenerator/version.py +++ b/src/pyLineFollowerTrackGenerator/version.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2022 - 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2022 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/tests/__init__.py b/tests/__init__.py index 133e24d..1ec41dd 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2024 Andreas Merkle (web@blue-andi.de) +# Copyright (c) 2024 - 2025 Andreas Merkle (web@blue-andi.de) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal From 40da120bfa4964fca9b3776f3ce9e84f5762ed0b Mon Sep 17 00:00:00 2001 From: BlueAndi Date: Thu, 6 Feb 2025 20:04:22 +0100 Subject: [PATCH 2/5] Python support for 3.11, 3.12 and 3.13 added. --- pyproject.toml | 10 ++++++++-- setup.cfg | 3 +++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 39e0f82..4b339cd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pyLineFollowerTrackGenerator" -version = "0.1.0" +version = "1.0.0" description = "A CLI tool to generate a Webots world with a random line follower track." readme = "README.md" requires-python = ">=3.9" @@ -16,7 +16,10 @@ classifiers = [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10" + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13" ] dependencies = [ "matplotlib >= 3.8.3", @@ -43,3 +46,6 @@ pyLineFollowerTrackGenerator = "pyLineFollowerTrackGenerator.__main__:main" pythonpath = [ "src" ] + +[tool.setuptools.package-data] +pyLineFollowerTrackGenerator = ["pyproject.toml"] diff --git a/setup.cfg b/setup.cfg index 97e0acd..80ae100 100644 --- a/setup.cfg +++ b/setup.cfg @@ -14,6 +14,9 @@ classifiers = Operating System :: OS Independent Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.11 + Programming Language :: Python :: 3.12 + Programming Language :: Python :: 3.13 project_urls = Documentation = https://github.com/BlueAndi/pyLineFollowerTrackGenerator Source = https://github.com/BlueAndi/pyHepyLineFollowerTrackGeneratorxDump From a93e026fccf4a1c6c5168104347540549e9f48fb Mon Sep 17 00:00:00 2001 From: BlueAndi Date: Thu, 6 Feb 2025 20:04:37 +0100 Subject: [PATCH 3/5] Examples moved out from doc folder. --- README.md | 20 ++-- doc/examples/etrack/etrack.png | Bin 71353 -> 0 bytes doc/examples/etrack/etrack.wbt | 47 -------- doc/examples/simple/simple.png | Bin 30267 -> 0 bytes examples/etrack/etrack.png | Bin 0 -> 78434 bytes examples/etrack/etrack.wbt | 101 ++++++++++++++++++ .../etrack/example_etrack.png | Bin examples/etrack/generate.bat | 5 + .../grid/example_grid.png | Bin examples/grid/generate.bat | 5 + {doc/examples => examples}/grid/grid.png | Bin {doc/examples => examples}/grid/grid.wbt | 20 ++-- .../grid/grid_points.json | 0 .../simple/example_simple.png | Bin examples/simple/generate.bat | 5 + examples/simple/simple.png | Bin 0 -> 32472 bytes {doc/examples => examples}/simple/simple.wbt | 12 +-- 17 files changed, 142 insertions(+), 73 deletions(-) delete mode 100644 doc/examples/etrack/etrack.png delete mode 100644 doc/examples/etrack/etrack.wbt delete mode 100644 doc/examples/simple/simple.png create mode 100644 examples/etrack/etrack.png create mode 100644 examples/etrack/etrack.wbt rename {doc/examples => examples}/etrack/example_etrack.png (100%) create mode 100644 examples/etrack/generate.bat rename {doc/examples => examples}/grid/example_grid.png (100%) create mode 100644 examples/grid/generate.bat rename {doc/examples => examples}/grid/grid.png (100%) rename {doc/examples => examples}/grid/grid.wbt (78%) rename {doc/examples => examples}/grid/grid_points.json (100%) rename {doc/examples => examples}/simple/example_simple.png (100%) create mode 100644 examples/simple/generate.bat create mode 100644 examples/simple/simple.png rename {doc/examples => examples}/simple/simple.wbt (81%) diff --git a/README.md b/README.md index 8e35dd3..a21099a 100644 --- a/README.md +++ b/README.md @@ -35,10 +35,10 @@ Example: A arena 2 x 2 m generated with splines through 30 points. The line widt ```bash $ ./pyLineFollowerTrackGenerator Parameters: etrack -a "Andreas Merkle" -d "Line follower track along a 'E'." -e web@blue-andi.de -mg cardboard -mr rubber -mp dry etrack ``` -![example_etrack](./doc/examples/etrack/example_etrack.png) +![example_etrack](./examples/etrack/example_etrack.png) Files: -* [etrack.wbt](./doc/examples/etrack/etrack.wbt) -* [etrack.png](./doc/examples/etrack/etrack.png) +* [etrack.wbt](./examples/etrack/etrack.wbt) +* [etrack.png](./examples/etrack/etrack.png) ## Track: Grid Geneate a line follower track in a fixed grid by coordinates in a JSON file. @@ -49,11 +49,11 @@ Example: A arena 3 x 3 m generated with quarter circles. The line width is 1.5 c ```bash $ .pyLineFollowerTrackGenerator grid -a "Andreas Merkle" -d "Line follower grid track." -e web@blue-andi.de -mg cardboard -mr rubber -mp dry -s 3 grid.wbt grid_points.json ``` -![example_grid](./doc/examples/grid/example_grid.png) +![example_grid](./examples/grid/example_grid.png) Files: -* [grid_points.json](./doc/examples/grid/grid_points.json) -* [grid.wbt](./doc/examples/grid/grid.wbt) -* [grid.png](./doc/examples/grid/grid.png) +* [grid_points.json](./examples/grid/grid_points.json) +* [grid.wbt](./examples/grid/grid.wbt) +* [grid.png](./examples/grid/grid.png) ## Track: Simple Generate a simple line follower track with the "simple" command. @@ -64,10 +64,10 @@ Example: A arena 2 x 2 m generated with splines through 12 points. The line widt ```bash $ ./pyLineFollowerTrackGenerator simple simple.wbt -s=2 -np=12 ``` -![example_simple](./doc/examples/simple/example_simple.png) +![example_simple](./examples/simple/example_simple.png) Files: -* [simple.wbt](./doc/examples/simple/simple.wbt) -* [simple.png](./doc/examples/simple/simple.png) +* [simple.wbt](./examples/simple/simple.wbt) +* [simple.png](./examples/simple/simple.png) ## Track: <...> You are invited to extend it with more different kind of tracks. ;-) diff --git a/doc/examples/etrack/etrack.png b/doc/examples/etrack/etrack.png deleted file mode 100644 index 3f4c26d29be783dbb3f16090b94854cfdeecf61c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71353 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" - "2024-03-23" - "Parameters: etrack -a Andreas Merkle -d Line follower track along a 'E'. -e web@blue-andi.de -mg cardboard -mr rubber -mp dry etrack" - ] - title "my world" - basicTimeStep 8 - contactProperties [ - ContactProperties { - material1 "cardboard" - material2 "rubber" - coulombFriction [ - 0.5658597043160902 - ] - } - ] -} -Viewpoint { - orientation -0.21731789124848477 0.8379643241690167 0.5005883793729883 0.955999172465028 - position -2.3680840829884233 -1.2976240930158087 2.7219141988796696 -} -TexturedBackground { -} -TexturedBackgroundLight { -} -RectangleArena { - contactMaterial "cardboard" - floorSize 2 2 - floorTileSize 2 2 - floorAppearance PBRAppearance { - baseColorMap ImageTexture { - url [ - "etrack.png" - ] - } - roughness 1 - metalness 0 - } -} diff --git a/doc/examples/simple/simple.png b/doc/examples/simple/simple.png deleted file mode 100644 index 563343b53bcc41ab174695c8e6c71ff381aa61d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30267 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%0AZC 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", "2025-02-06", "Parameters: -v etrack -a Andreas Merkle -d Line follower track along a 'E'. -e web@blue-andi.de -mg cardboard -mr rubber -mp dry examples/etrack/etrack" ] + window "" + gravity 9.81 + CFM 1e-05 + ERP 0.2 + physics "" + basicTimeStep 8 + FPS 60 + optimalThreadCount 1 + physicsDisableTime 1 + physicsDisableLinearThreshold 0.01 + physicsDisableAngularThreshold 0.01 + defaultDamping NULL + inkEvaporation 0 + coordinateSystem "ENU" + gpsCoordinateSystem "local" + gpsReference 0 0 0 + lineScale 0.1 + dragForceScale 30.0 + dragTorqueScale 5.0 + randomSeed 0 + contactProperties [ ContactProperties { + material1 "cardboard" + material2 "rubber" + coulombFriction [ 0.6612954068122848 ] + frictionRotation 0 0 + rollingFriction 0 0 0 + bounce 0.5 + bounceVelocity 0.01 + forceDependentSlip [ 0 ] + softERP 0.2 + softCFM 0.001 + bumpSound "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/sounds/bump.wav" + rollSound "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/sounds/roll.wav" + slideSound "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/sounds/slide.wav" + maxContactJoints 10 + } + ] +} + +Viewpoint { + fieldOfView 0.785398 + orientation 0 1 0 0.7853981633974483 + position -4 0 4 + description "" + near 0.05 + far 0.0 + exposure 1.0 + follow "" + followType "Tracking Shot" + followSmoothness 0.5 + lensFlare NULL + ambientOcclusionRadius 2 + bloomThreshold 21 +} + +TexturedBackground { +} + +TexturedBackgroundLight { +} + +RectangleArena { + floorSize 2 2 + floorTileSize 2 2 + floorAppearance PBRAppearance { + baseColor 1 1 1 + baseColorMap ImageTexture { + url [ "examples/etrack/etrack.png" ] + repeatS TRUE + repeatT TRUE + filtering 4 + } + + transparency 0 + roughness 1 + roughnessMap NULL + metalness 0 + metalnessMap NULL + IBLStrength 1 + normalMap NULL + normalMapFactor 1 + occlusionMap NULL + occlusionMapStrength 1 + emissiveColor 0 0 0 + emissiveColorMap NULL + emissiveIntensity 1 + textureTransform NULL + name "PBRAppearance" + } + + contactMaterial "cardboard" +} diff --git a/doc/examples/etrack/example_etrack.png b/examples/etrack/example_etrack.png similarity index 100% rename from doc/examples/etrack/example_etrack.png rename to examples/etrack/example_etrack.png diff --git a/examples/etrack/generate.bat b/examples/etrack/generate.bat new file mode 100644 index 0000000..08591cd --- /dev/null +++ b/examples/etrack/generate.bat @@ -0,0 +1,5 @@ +@echo off + +cd ../../ +pyLineFollowerTrackGenerator etrack -a "Andreas Merkle" -d "Line follower track along a 'E'." -e web@blue-andi.de -mg cardboard -mr rubber -mp dry examples/etrack/etrack +cd examples/etrack diff --git a/doc/examples/grid/example_grid.png b/examples/grid/example_grid.png similarity index 100% rename from doc/examples/grid/example_grid.png rename to examples/grid/example_grid.png diff --git a/examples/grid/generate.bat b/examples/grid/generate.bat new file mode 100644 index 0000000..255add4 --- /dev/null +++ b/examples/grid/generate.bat @@ -0,0 +1,5 @@ +@echo off + +cd ../../ +pyLineFollowerTrackGenerator grid -a "Andreas Merkle" -d "Line follower grid track." -e web@blue-andi.de -mg cardboard -mr rubber -mp dry -s 3 examples/grid/grid.wbt examples/grid/grid_points.json +cd examples/grid diff --git a/doc/examples/grid/grid.png b/examples/grid/grid.png similarity index 100% rename from doc/examples/grid/grid.png rename to examples/grid/grid.png diff --git a/doc/examples/grid/grid.wbt b/examples/grid/grid.wbt similarity index 78% rename from doc/examples/grid/grid.wbt rename to examples/grid/grid.wbt index 205582e..0e46d6d 100644 --- a/doc/examples/grid/grid.wbt +++ b/examples/grid/grid.wbt @@ -1,12 +1,12 @@ -#VRML_SIM R2023b utf8 +#VRML_SIM R2025a utf8 -EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/backgrounds/protos/TexturedBackground.proto" -EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/backgrounds/protos/TexturedBackgroundLight.proto" -EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/floors/protos/RectangleArena.proto" +EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/backgrounds/protos/TexturedBackground.proto" +EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/backgrounds/protos/TexturedBackgroundLight.proto" +EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/floors/protos/RectangleArena.proto" WorldInfo { title "my world" - info [ "Line follower grid track.", "Andreas Merkle ", "2024-04-02", "Parameters: grid -a Andreas Merkle -d Line follower grid track. -e web@blue-andi.de -mg cardboard -mr rubber -mp dry -s 3 grid.wbt grid_points.json" ] + info [ "Line follower grid track.", "Andreas Merkle ", "2025-02-06", "Parameters: grid -a Andreas Merkle -d Line follower grid track. -e web@blue-andi.de -mg cardboard -mr rubber -mp dry -s 3 examples/grid/grid.wbt examples/grid/grid_points.json" ] window "" gravity 9.81 CFM 1e-05 @@ -30,7 +30,7 @@ WorldInfo { contactProperties [ ContactProperties { material1 "cardboard" material2 "rubber" - coulombFriction [ 0.7462734870965546 ] + coulombFriction [ 0.6699351427316589 ] frictionRotation 0 0 rollingFriction 0 0 0 bounce 0.5 @@ -38,9 +38,9 @@ WorldInfo { forceDependentSlip [ 0 ] softERP 0.2 softCFM 0.001 - bumpSound "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/sounds/bump.wav" - rollSound "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/sounds/roll.wav" - slideSound "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/sounds/slide.wav" + bumpSound "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/sounds/bump.wav" + rollSound "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/sounds/roll.wav" + slideSound "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/sounds/slide.wav" maxContactJoints 10 } ] @@ -74,7 +74,7 @@ RectangleArena { floorAppearance PBRAppearance { baseColor 1 1 1 baseColorMap ImageTexture { - url [ "grid.png" ] + url [ "examples/grid/grid.png" ] repeatS TRUE repeatT TRUE filtering 4 diff --git a/doc/examples/grid/grid_points.json b/examples/grid/grid_points.json similarity index 100% rename from doc/examples/grid/grid_points.json rename to examples/grid/grid_points.json diff --git a/doc/examples/simple/example_simple.png b/examples/simple/example_simple.png similarity index 100% rename from doc/examples/simple/example_simple.png rename to examples/simple/example_simple.png diff --git a/examples/simple/generate.bat b/examples/simple/generate.bat new file mode 100644 index 0000000..fbf49f5 --- /dev/null +++ b/examples/simple/generate.bat @@ -0,0 +1,5 @@ +@echo off + +cd ../../ +pyLineFollowerTrackGenerator simple examples/simple/simple.wbt -s=2 -np=12 +cd examples/simple diff --git a/examples/simple/simple.png b/examples/simple/simple.png new file mode 100644 index 0000000000000000000000000000000000000000..8e612d2760d4736547b24c295bf9e99739e564de GIT binary patch literal 32472 zcmeFad05VC_c#14nYRp4NQ1FNwG9n~!ln!*L}?I(q)BOzMr=c+0U0ZWj7_3Rr9=Z! zGBi(=lID=obUmMSX7Brcj`uy@<9+^pj^94+d)wD_eTQ>c!)JZgS|=}UE%h;@rjFt` zZp=E3zqW9k0RB^e8!-%jc!}^X)`UjoH2hE?dWIhih!UdSai*<|DD5TLk9HgdLOK zGO_Ng+`B*-Zyob@2K*yOnulM~tZvS48=L-FeV5t8l+q=O%<_BtkF;1Q86Mgve@!aV z#UtOL`i{({S9Sat#ohgdx2*9eC%uA?{@CM5|K=8|u|K9r(jT6GjH5r)hK-;85^%lGpv)ZEi-!#%;}F-5vtm)1|NK>=u~6 z3s(^Ckxy-3wei}r#~-3PR?uS0CRW(_YVUfKr+6rzQatH%#(!d?g1b9w8^7I z*|VB^9H(VhpTq4{L%1s=G(S0b*ngTVjM)|@W-RWYtnjKeQ3%%J^DLugn!Q} zfNbd5Jn7u7>fQDvX80eI$0;Z%L`V$Pi+nR?%$NnH*=NSO%{NMpOXAfu-HncxOQ<^1 zq_FC!uTqtsG^Z9(XZN_f&4VYZYvi!40vou%EI)WlVq6)vspgJqzq#wz4aN@@JYSFJ zI17kqN0~)T*7B|jA*X6Lr)57&O!vlrjERXceiC3~Zp*6*#rw4{-fVenXzjb}W2IBI z)q+`<7nrWyvAi?PsjVs&+nALxTwK9%(O+y;|7A&xQ*^8zOGapPWHl=V3!enh$zOOVvtnzG@cQ~K6BTCpA3 zqB)QZ@zp2)c8rP`u8ZeL+^jc!^i1_FTKihN=BO%R8DMy~+0A z^;Q>#o?m+Y`t93u9Luc|mAgM4uYEdX?3tCvht2-x#wY#c#AuP|v~u3F(ee{pde2N- zvM>P)h0XGtvS?rCkFW1ddwzTsJ91L3INC@zbnLEN-}Q4i&olciEzd|@J3ND}$Cqm^ zHHEsynxA{4(+7GYM1Hl&_NeTy)v-mij2Rk0^%X-pPCCcQa{ppZ3Pv*fw zeJQbglvkwJVDq@{;@cSG^c!xQ^kW`BUILkn8he7@M?_w(tg8YGSrc|#(EIq<70OI! z?%$Uw>*5bf5|%TZTx{&&#w4Z2N8a&;i(^xfEHgeBrLO!>Ou6(r&!q#)n>qJR@Vk0Z ziImo4i@rK}53i#`hCAxXYYPf++AFUH1=T+Oa?QZ)67P!HH7}DssVWR-tZ%zbYDf0l zTN^G3@^((#bm-8bGZL!qzSG%t;!ptRPm?aitdlJg{HkNi6XEP#>PZk&i~bA&c6 z8^7G;=X?_ow03cz1giPZQ{>QjZO57 z(ALz{Twq<11heS!#?so_y7fWZ0@v<#<%Y21Z1qB%s!D5z^5wpMxc60!zek^`p>y4Z zj&~d6qu#rWnf#|@+CXPa&RKQwDW*AoEn$M?W&?e{I?jjo&2s-9RGoQ$TZFzt-av1g z1T-k6h12bho3tdO#6FNfY$oX)2b^`iYU2*rfNHdty&WKLyX-xWf zY_v)CnJG;_cH+q{uD#{eenSM6!iZ3S-v#i!Wc=46Tfeja@MCvS~nfuL}R~Glv)w8Uu?C|Ha>Lxj2P8%Pn zG#uvVq)o|O2HB)7VWWBUW<^SVTk*ZEcS_9fglw1ZQ7X4wh87EoIjsk zuVj@p+B9@f{_A8x#Nrv?h{lMZq1z;4ETcd<_U zRd4%jq*Ug3^=Z4e3=Io`xvhZychpMoly|!Ss>9%5>ZYiRIp{Q}^9Jsvl&355u+k=> zZa=+l-@ct1QwmpC3*q;QHcFXOGR1xx9~bC_*Cj#8Y7*1?tw_w9esrfrC6vkhtoGos zu|ebgwL+FU?7CBM1a@-gk*~LsS`y0H_;hzV?+qa%;@%Nu<2KK4`OlKc*!bZNBehFu ze0ZL1{S~uph+J`f)4UdIkLj0;9CrjCd^U2Z@u7z6r?O#Ob}jVPnZT)e`!WPxf+PAnUGP`^FD*1(!C2DR*QF)nXlzjGuA( z0k7(6LV0~=!7%6@pU-bf_|>!f`N=FoFUGu{;(4vs9xE`9wEh;G95@f7c84#a9`1b& z>ZT6kyy#}iN%3)x7Gj~ z_`Z@)cMTC&ipR2KkCX}?2Zz1?Ls60Au2bCC&W4-**)X?L#;W!m42lt3ykDE%s^tRc`Q-LniQg(%moWS}RkSp*FC7 zyw}b*V<~oM)$NT}CfvDp;w5=U3?JsWQM;UiOg&cs( z2@%_)4ivjUk26KmyR&GImPe0#aYkh4;pzEHnHAnGI8W4BLD5v)$t) z1S_>J)xA4Yzvru1rKOR`F8LflB3qd?>(NDdV{xTw*F%O-7s7Xmy>5hWl-p9jn?Tzq z2yl~jBj~X0$P&qU<1z4EFWKHaD7pnka+*h9M@N5~M|DWk_U^BnJoMY2reD2!_41#) zS49HljC35@GL!S1!GaPPE5oKw3uLD(vHRS(y1%ih$)`Xpd=s2=j)ccDxhFr~C1GVo zuekX*z{s(5cD^dFuVn8fqoql!J@?QY;EfsR-gsr_CS%^xjOZ{o0j}WazBkvz%z|y#8X|rfs-C6)kiaHwL~rw>O;FE! z8e*$@o?wM+v8AMLV&CiYEQ(!Rd)|lo!73;b<`rxe3_E-cHdgs-`1zWS90{BE4ip5D zigetR=$AezD5f9YDpL-pZh|fGg?=Vv9WgR8LOio%nBcU_2h9o;`MCy;3_H2${1v^; zdPxU&N5n)RRwD(_QvURJ$*$vLyi2C*Tm#g}Mt~?sTEKEJr}i`1V`R3R;$&S0 zetoG8Kd*J*`^slDkG^l0($BbcRVHeLjPFQ4xDO`lG~&l}*`lVVCev@9U%rhpNc>yn zc+mnrE{cGJNB46HljmcU&KURAh(zt|)7`c$YqPr8B=X$B_V3mS^8!49`jgt9jW&Ju z_efhf*7&dKDHrDHWszI!KfgjStxj){f3i4Vr7d+o{^@imEG+B@ zX>*mzU-D&|{}?SjfOpG;(tXZ}o`Rx^^XF{5JPx7$x}-&VDni@?VGm$5f=ia~YY<2m z`@^=+9)PJa=vzHy@&c2;AjBT0i+8%n3NHUqplFnWphp?vLom|z?HZA+cegh9e3%_D z8^TMTxWxXwX6=Wqo2>9S|K&eV6JJ8WOTX`u8e+n}_EV~_4MLYX95950k8~7>GUMmI z?YFk}8!eY4NiJY}s7zJ7MR7M?JDH&F4U6LFHLc_J$6VTZWG-Eh1j|wG+7h<%c+Htb z`KNFCEzP|s9%e)sgxQMgr^FAucM!FFu#$Q+ zDPweiV`f)OnYfRi(|>Tdqo%t?Bz-b@!w3-`1$$>imE`i5ec$NgA$^Ga9>Z6dU>1N? z>1~T@h#bLFlUK5dXUOwvi1A<8-&*n5_QzZG9K~`=I1~@;RSlvvKV4%tg%!P}Z?G6g z^Fvga15fRQOIS3}Q=C4hWPF_8NUqz{OGqjk9%iz9dY@gy&U8W$w=V6RiVZ$=R%M8H z9bmQ}eD-p2cm+k{6!QD>?j1fQd(LZm7fjI}3C~c|7!kv+0V`JA*mOT4qV~m1|1)G= zVH@=_1qxAd6fkM(XA8(Uj*NNt`cps1dvayWK61D{zN%$(_A}M+ezyxMotOiiW`u&^J z6oOFHodh~bcHor`BKX?Cty(V)JmBp#y*E2<q*<1Lx;ZW8}oj> z@mS#w-as8@La0GdV+-6E87J(>>%*Oey5;s(>F)hC2nf8|T)(JnMqCyycyuvQEx|_` z?{$1pq6p_D1>eV1ku-ecx*@8d%46pBe>GnlxO@UOTnB#>ckOp*Rcg(sye~ zb^cyMXoX;ME1>oa$B}^%khg9G+*8Ot!Q3LgJp&Z_g>gsV8unydp77*ICyTgj`n{yC zoyL!

K^*ILY_7wL+%Si;p*)BVvRJQ*nMIiGBrXPouo(5F9hiS%=FTsk->uM1L z`ytR6l?>~! zKZUqG@8Ei;;Kik^odTJL$$dQBE74o$)=xbztK^%k2dkUZpFJqELX8IUrQwu0-c4csb;x`r~DQBc@|}GXMn~xbYpg|X%5(O7g9iyVq?S+a19t4 zlh$*9biD(?bW~^jOm#oTrlqx?ke^jBC14-?i7g_`%p}{|n#f1_-pR?y+l_m%bFwgR zkGiY6(nN^nHMyjwu9te)HrTPuJeDXOObe!G?U~8ri7BjwMLP|SB>c44mIEjFJx@uv zD^Hy|bwcwn{rW#RnW{MR_vD7o0Aj^-#)tNNxKo3P`N0DVEFB_~2jeFM^si50hE=jP z2skFiU<#*n zJishpV%9!I@6w!ubmfMN^S%1Js?)dm@W4hbfEK&^c!X6J8GH06eL5++U3G7GJYn1F zfuD({G*oboH%^Q3TM?I(C8hf7rE*{U^YXZERYVgtAgX*oQ{>dBuEtO(lzVNEIL6aX zk_$5-BJxstUmeliqtYm{9Y9c?J^PYj%^vHp)x<}3kc+`HM3MKf?sUNIhOPj2{xPm~ z^N7oy;W%RALeOW*1KqWzK~@P~6ekuI`--V3wt{X%xTsBpW%_DxB;{O=87K@jQhwfPmFO7E?dv(<2FsvINA0L(W6YFxM zkFC3Ckd1vZhSHrrO_(|X&I?dp$OOb)R9Y+HWzzI}cdnJ)4)f1lj0{T&sMK#oRzt!* z2yi;VBzt~K8}A;AnX>$dJt1JLsd+>7L}so%bDEeU@@^&8DJ}YLl@NN9wkKUgz)8;0 z3Wlan4#-fG^pT~h74`8kUx%uy zl6@_4{hn6~Uuxdz;MViQ>y=!}eDbW_nNlk@X9}*1SjG30@=VCiZ+sxCcb@a~COVDb zegs;tdanZUWFZ)@S(2)@Zkw)dPBCI0w$NQE)mEK+;iM)2S@Mcihij9t+Rx6rUT-1Z zHodp9&7`>`*7oJ>OM}Fy5!@l8ynIlcuOdKT>{VO0?q!BwJVz1a&rn0$Og} zuV`8FfHBhKti>EluH&WV*l9{gjk4A~VRAqBio~osxyPT+DgXL>estPCBHBQ_ze*C< z{&`W>K=@w|g+v+T2Ih_8`KgRTO4d&sJAOQD=^0vmiqsWllad`yNM7!Zmg_gI*`Y$P}HI?YqWB3YO%cR)V(witsW9d?Oa+!U3R|^}P2z4Cp>&U5vw>JvHVY_-z=9N1DCne7SkzF3scR)4EOi8gdjEM5@UV!A)u> z#a+LrpWFBAdo7Z4^SiIE9=jZDLal_5(1vUNmEB_+5hnxUX`t?$%rnR1^zC@-5DpJ2J|s2}8On_P0k4WezT zdem2ZJDXI0)#3(*mJ!XJ(={?;)T>EfcZcn}by90659ii`1hY6C;tqpn>+#TmiC2t_J1!8Jc|m2?1r~D zO|hA>MW@C}h*K{7kEx5LKjm}l+rVG>V$GLeGd$wHCKLaO98;}wPs7cdhrZ;mX%s9Y zJ4BnM-2dZ!d8%3RhD&lZ-YnSsRxh={%wt1G-#`x5x#|0tH~vttS;gb7nDKjlphVC& zxq+E8+!2oK=o@k+zI0zu7F?f1SH+=CLE@syHdU#_p_+crQ}TzEiTHSP+jMirK*1h# zz_29e`S6YlE|uQt(h}bd0BhZ`=_T^0QUq$SwP0&9tkpQR^+Z_OW=+!l9AyK8NXbyC zlJRQ4C}M!pN-+%C_wCiqw6wIsVn49%l)YlW75G|u=lOzB^-Aee-rw0IZ*r-9H?os!2^XBf(-ncDt|=O+9B%)}@+tV_v&pS->zc-K zW%*0EK$O7kZG$A9p*?VJf-TB1g-h3ZFw@h%0eHm_v?;mq9MXgB#wcH_xoQ#ZMM{zn z+;prwCT!-$tBdEdJRzA>k6*8h%LW6_8$NR0l&Yl6LE=}njT*;Ba=Bisxw$Ut(`^5$ zIQV>wbJN)6KeS!Hoe$j@J>4_#2w62`AgEg7wr24dv89WNnC#BgO?!9SoL?^pDLN(M zWGPU-85!8IlVTwpxB_PoN<#N;gTgi9Tq~0h~=sU4samu z9IS6)VHP-731WSJv{k2rvCT0*aKIZ}e0_h)Khe`OqqEx*IPD?|#*ayD2}RHXfEnOU z0YmqvQ#nL#ArZQhyjEec7I;~TuQG>;T8<-9Fj6n}#_5nPUWfu}U^RRxokFxXLPd)M z2Wl>x`gx5MnnO(B{*FxtD6gYf?fN~{p`6n=huW9U*Nfg{iaAxBO-$nr^yUz9G+fP1 z3O7i!w(a?PCx-wRg{eV;TS6A@T~F~ECFi>HY}|!jU6PkKxubK8I1qVk=VZV@N=Q>m zf4i{(42yApqpm3o3!{!t{xM}srq*@kX#yIEn6wk}m21zW#uG6B5f*A57PfE<%mL+Y zi9<0(Lf7VfJW7jvD3^*nsu*mjd64?!d#k{gshz6@mxS*+H%hIXifLeQ`eqKmdFCMA|8U#F z?DggGQX%$R&P-L1afgT=Ily&*2FfN<6RC2439vX;?%|(-%Eic~RDj@({dzk{_}&H$ z@J_iWAhs%?@f^Ww5Fw%;>4Y^W%TWS37Ha)NQuH4O^8JmfY8B!;MPt>2AD^-iFlXAK zjY0X7B`ZnbfJeQE$sq%f(6rnUK>~3orbzUC{n#27SN|qdqQ9r}m4WetT`PaIR;pz9 zy^s;&0z(LrwbiK3s38}arK&dG0cA|s+9WD!GPHX+djYgu(MZ*zC=!^+eH;a=M5(+j zD9{eqnmZhoK8#yd1YgmOQjGHGEFMguD7M6S8KN^`o=!NDs@d(Io_{YgMut=%W%?_u z@dZOU-Ggl&U-Cn05#p|gX=rXNi?;{{i?x9Aw9OA+nKTq!w@P-;4_;ym#whE>*_lM{ z?|+|R6PQkNO0IwPDM4R?j|3YP({oVrFag%Vf+!qjjWthgUR9<%oJE0=%Q`=7?LeAK z$)+Fq3CA;&7tF};b?=A-0XhU|&{rEg9{xFaw5g2n=Bzn3{ZpCYl=_2z7nhTZj}7 zv%4U^sWie$aL*U)4{;cOfG|$$jIzmshnwOzWBn;o81k4UcCTbf&i%pP*tGQUD#3!) zAmsB`syaL~?c0Tzzu=6$3uFVOu&YB(aa*=iQs*$RkU^wdn@hEik6g0!CqM3mSzYdh z4nk?R8AC-fQKL{9-NiU$N~pU+iv6fs<>0Bv2+$$fb(f6Asd(gdh)QB*+oK$DmrNk> z$rNAe=%(=gQhWlt82fTgP#m+3ix)5MZaaQMh|^Z2z#ZUzXO+q*;A0O{lpkp(&Etx0 zqqrd&u9Jx;X#SQX{-94ubVRHB>XmBWhYr}oG1(uy6vq~UG?^*Rfx`QaPt=ibVuKXY zQl3uMNw9U?yF2&p%{}s?VLXhCP3!>8X&GH|Vo*17zJCyPea8ctVe!WnyAxusD zM+@j$Y?(VE>+BErw$|Q{h<@08igyRqVMBQ??X$RZpdTzN;A5OELV(H@V#gf>iDQy2+GsB%54oglt>li?czUEKM?)F@tK=h^eBoIB(+F zP=YX?fKf`71!ZX|j3%5-oDF%9<0&V8l$-d-ek+2z4-rtA9uaw0dNe2rTV8+Hmnit- zDiX%zyU5K^CTk}`5Mo`vwK`k*k^xNn86T7NG2?jc-J5>i@JqQFN1Ga+xb=f`cS6x- z&h%5$CQxk%qU7|vwn8jv;q?sIUvWzBFeKJ6Rc7_|J9jq*DavMOy^t~Ew1uz1WgYA7 z1qb@|ptNV;0puZA#+(w96h}F@r-S0N?94biWY`~iUBl)Xf`6uzMk{hPl!#!pQ(wBK z{kcmG^m8>!D^gya&uEn*MNzgNHmk?$slf8o0%2@Qn)z@or?!KIe5wdw^&^2_9Gye| z;M9^gUjB1B3n*w~9Ma0SZQUvabLc@?$XJBTnP9A!Z5rV1KuPGbZ!c!r!nI}_IaL`H7AC_ zB=#+h-2PL(;mi=?a-V>qMH#38z1+2{35-=H#(2SU^&UUY^PB-n?;sSaZR?)sbz5K-HSwr~+KZOd%Cg{pg?G1d`IerA%Raq~2Q-H>8ND@bB-G85^)A6;6Og1o;di z#q0}K+G3KkE5>uT5>VjV4V*TWvX$NmQVA%XBrsff^eHyT@SA$Etlk46rb=pZKEFJ# z@rnSf{$emE2J-z% zSGW%M@DnOI_1zABM6BS`^Mt~-$tZ5br#o5x@SpAtp$-6_g)>tqyN;1W#y;?Xtm%4G zUQ_Rg&w=|BVU<&!Lj+GFUSAFti4#y!tmS*P#o{6 zIK~8~#2<)o!PeokRxMcqQlbXP_du*85=B(tcjch^o^_h{L?z3qWG^)yrN1RL5}t(z z4jeE+sOt+rqeLRuRqf%i4DnkBa#z`?Zr=GYjo2?x^NuE z#SiZy12KL)u_1?1r^1T4)Fs>&Uqj)FUYe`3dC>fG(^sF2Ona4%+VnM0hI~9W?l@iSsh?d9B;6z%k3u8^2n->_`+xC zXyL$wmyQj{N}qv*6V5fTj9tTmK!|ARo3V3EMsv4jVboMHpBhhQM{Cxwu;&o!*eg{;bD_mo=5D?H zIjRMgYosH;S`qDsuz}@xdjGUTuNRzsRmZf`sw_?q2(!xn*Y__T4R5U6rmjS~P~Wh^ z9~k*0LV1*w$h}Kf&=!Qz4o*}Ap^hbc9JOqsFU-{3xSW??dE6{S!R%syXjGv9AtTka z^H1r!V4lv-RFB^IxeI!s%$uMlLlYwg_wtfM`+Pd7mTiJ@UjV>DPy8GdfP2@sO=);Fi0sZQkM zBtc9BdSh&tSGXNP9geU?e{WY8wN1%f)U$j_(FI(4kdx%N z9eeo)f1iVkU&!zgdlxoqBR&LdgP39l>L?UARv9oG@4QhU;E7*6*B7CJB=ywJ82xye zi}QD!g94qv10M{GAH-xNQdnb)o<_%Nir61Xrp9#Fe`c zZT9Axvjq_PNXJzdM{pVyFefPgkJqDAURA#~$7#>q$Z3z_=O&o(RPh*aAX|{2QtqW0 zEd`J~#(8Es3rPOgPX>7KzdxZ^P~OI>AZ#UMg5z!>nM=1PVVtS)l;tlO$#H=vM{?^| za%wdo_gF&Yzprd;?DJ@Wl|B}No;35zgR{t|)!m^h&Hc%z7K>pA<0;(3=mKF*h@0qx z5ly6i!5G_fw0?GqooeNz7)cu(x9}JX;KURnbc{-9`P1WclBphmnI zP{hE*1mIm5i+@M-7eMjnC?q(ssyn80lC~$#g?YlXzF~W4z4lxgT)dZ9-F^ANS9VEZV#|csg1-D?%EDPT zR>;FMjd=NcQm=uJz8B5Wyc(z{0U;QLtO5AAb67DhVDAZWHzOmfduwyPCwiZoJCURI zjh70T%WUliIgjftd<8o(dlWB0DT+!;E+=9j*p zS|E6r6f+yZmtG+AzeEM$abf35`PrfcTG1?Er)Xd1(zfrI&9NoUJ&zACWv95ML)fZq zL32i~0n?S)zvmK2^8L@<_u_|gFwc+o(YyKC8ij+qIoEZn{Kgs|D))G)h=Gr^9maNO z3o4ksQS+y2Q@PTU<8;74khr{DGGZL(Ie)_7rhk!C!#3W<&W+}>5Iucni++|#`0o#! zudn8YaubhZ4N0p4*8E=3dG;edBBB+;kTTE-D>)^9a9-AE`*QYpD!VgP8Ra>b4yt1l zTz}safo7NSGuM8OLPEYA5fR6su%D!F@AZNuoRE~(#%S!5#_84EI_%lQ2LK+Qqn;q$ zKDfgN2WKV>>qayx)4PR(;*)y}WAlt0KlrrWNaHzMB;YG;FX$Aey@Nh=dNfkQ3kZyKg727BG6uhf4z7b`2`Sgb!+%JU32c zbY~5FzkLKJEs9;|2y>FEjA51=(2w1~j3OKlNwp<`2^%XkKoF!6NP&LU4DQ9=n|PS` zP&|7dOcqVwL==xC^8<~{^*+wQPr#beBe%0h4h1}YTT)VD5|y01G}-8vm5MBxs@md9nE1W7T)JAR zaWAzKn0gLdiBoXDP;5s_Y+2Ylh%#N5!{llyoGm1$nb|)q_(;qjuI%B~{iB)vmcfwN zy_oa)#QJe+@aF$~HEQ{&gSmlo345`n@RMR*DKG?{ca58yn@>DyGtud>J^@CoVHZ>r z&TYp-?2RXSqsR>h-da`8k{gVu! z;_hdEqv?&wqu2&OFs#D{w3&GkMXzUoX0kD9Eys7|5+wFpVye>bs=AG>)OE2}_5)HWZb$sHDu%mUDjoK(h-J>WbSKOD-?R*@wPTG%@{GWGzA zAP%*TS`Q$$dQPCuf$wt5C|Cj%w2DnYGaYrp3bmpgzQ|XWA-#v&QEm=5(B{Q`yfE(IS6TM04t)KA)C6RA_@N;`PqEspf1+d5!o$YGzuU) zfznWL{4*%T19*GV*w{E3eK1wYbMeG?&$?9+8c0rJ`Z8fM?@l1{tHc5Z}De`gmB=Jqy1gIE7g&;Vbv;RJTY;0l?V(r0T zCw$d)jyf`Z5nIkC)s6E9G(%h=V~-X(G#I`&i9#nH`BF=?78D3V4e;v$=1cR)|Gs-F zJouIJa11vNo(Lg{hA-+aaI;V|##VM`(9;7rOl6XpvdVz4k0tWgcqXTIl}dn+_xn}^ z#}UMNeqac4ALafH<%&(BU|*>DZji7EKZ#pB7a!szZvj;)uux_De)&m2v!Ha@cSpKf zLlP5^yY!&bZ_ z@DW3l=OmGLWfo)Gby;W@Jx2#nU_Mk4p)40>g+2Lz?P3;JV;%$p(sa*+1V4@h9}kwv z$MYnkFy{l9bCxhZy~~}#1ybUV+1P(CBp(#89m+r#-eRyCBca+!R5QOYkpJN#XOGBd z@bQcFDV)7cUa3v;l@QS#9K8;#F@+mEB-HXBN zaT%={Y#5EePZmFguY-mi9_9&D2Lsetf<;xk3UAEnZ6d+3tx2@5oX~nY5bB+~1)^9n2vv#6J_yF5;x|#w|J1Juz~x!A~;Y zG><@0hz0wNUS$p@0PWjqYuKxn>_CkzWg4^ektVo-5}=Vze_g~*ioqpu;aSb4kG`XX zuc_a9!wmsWXCi$Ycz#ta4=gO)768$zEjT{qorx7BZPvfj$rRw~052LZ<8nz^h@RHJ zHw(c42|n_`T%M20U`XEqtIAsJc3F66a~R zo2N=k+Bkp5!&x?@`3%bay26E3VDAtBVEGU>*v*7E(I~=?B3Vbz!04zmo>Wp&6%!Qw zXM&3{!N&l4OEFtmD@=)=PrIox6LeTz|No;jE4zLViWp^ZdEeTEa(^pH~4?>VF#*AtMtLDP9R(R4QS8rU;TxO zE`esiv0~=`|32haLXE$R?*ua@hKLoQp<4ngxkZ|5pNOaAuDqVYgVFGBJn-tz_0Ox9 zZ5dRa{BG5{^)LvZMQ?dCPbCgSFz+8jWe1#Q2#LOcHrx8BPNeXe<=l&zBGl2D`{Q{W z`t1IDgv4$}2 zO^DhOjfFVb;X%6&t;L%@v>%^{EqDNPgs4h^>2@oznN$jB(B(3ZJ*N2MUf6* zAziKLJAK82{?;tSjkC)i&7DHqk`@yXQJKu&nI(wT0Wm=AmaRc zlA1%YOjq=8u?v}1N@0Em7-Tqhb|-QO==ZOS>fMc%St1SnM3y5%D~z_i>e-3WgEd45 zL?$4rSVxe3KfDIXO0#CjQUx2U7Xi~Z8@0qN0DbiZa}T*7wAZFA&fMAJ`N=UG2(Z6+ z18vp8%8U4=@rHU$d|kG`bdtntu749flV(oiGn>se&FIk zb*f6uy~Zqc$|@%wnxt+rL1JV5=le|@A|Y}LKN*g#DCKRMN0v>rvwwo!&s9 zqU&V{8m=uG<;xq3dI%Qz6Wm_N$C*n494`S+M%G}uC%HSIXRLIQaer(=2;T{1~ZZ!oDo0wj-n1sn^T)g zi1f$T^M*4Y2xDFsF;vgR()J_5s7?s6$6jIz%>ir8rz7+w7%n*mG7f+H5Dc5npCIV) z6l_5N-Tn?$@;6Wvl%4S}CHLLS<2$O(wm;N4*b z13U^q;k^+r713;W#G0(3)T&J-VZGcF9UkxCi%XI0b(%pWuP9Qa5+nL+;8oaR-fi#V43%GB*blZKn*ysuDgaRsrSx)8+$CR3RQdXGO z7;G*;7*Exleo95<0c1tpUyDo%^#O+aLf|$_bF3)_?Dx|$42^E|rS3EvtK(x78DH@4 zwRB{|Wt3G_^-zYRnN|wcn4Ug=;!^J5lg^^^VX&iU>k3fB{;ay*&!fGTR!13szQLf& z4#aL_RF9A~NsT8REg2c-hjB>aTS+U%&H!mm!$yuiagF;p-VVHVF^9sfPg5Y z3JdFiu~v9bnpcCzVtQDC-~Qb z+yDe&`snb_uVvRbZAOg1Y#+feXJVMOwD94DSln+#PzwaO`kSzBboPRc6^cVPk`V0= zay8g7a|Us2yQB(^U_iHFnK33$yY13k12FQj5Va<3{b?&1E%2RlD0%xuympg*i=SwS?M;6Q{&_4ku|8p3P@B$ z)ma1C72@m5vB*G%gsw76>4jyG5WGVpxSxlG!rtK>g9(=ZuMhBa*tZGs2R}W#tYER- zhw2F@FWR?}QU2x5quAg!pUCE+s->UEEMkrJOBk?C@p?$sXT2nw>8#uVxGbU!>BZ7C zQ=MZ#@O4pujmXH*iv7hHo(T}NFHzfc4fbum)|WSH!DB-xEvDoJT>hF4dSD%qWPZpa z{2an@Ef-$ZeJjGyfVFAcO-5DrODG%&e1iB(M__P`OwM2@wC6%T)gEI2mq8*7f#_-o z{T?gB_(Nd@XvN4%-kpfV3r#*YL7lVyXVse!j=t02)MlUuU=qxPb!-vvuO7Pp80zs}UbNv|19VZs4mG+_-4Vww-Csy8z-w`}3K@vyt7m$ZV^OK$x=A_XFx z5gq!(<4Bflv}a8qI?(&oPquzHWEKykgY*aC$Z_{{8syTUVS78*Y-W-;TgHAS=vnN7 zwhp*P!Wv+23m8E_O6i?TD{%o4JuS;-XIi9xKD`CiK?h1yCDVOG&ycDtrb_+!#%ZZp z`e@lTMdpGbbFt?z_89$s5(nfBGCm+w%DpnU+;2AqD=)CIg12Xptk|pH*Rowek|i9m z-VG88?R&phWGz0Z-CD@URCOwOg$o!dy+Hb+oYB-p`(D2=kU*D?T^_C*4#JI8+I!vk zIdxIgxj~55a1l&a#$Z6JiMJ->H%6}^oTNbD)dWe^vQ*qHnv4UK9e zP$|rywVxSW_yn%tlig#MO4V6Bc#&WiYDkFxL2QO%X>`-FZCVNzgO>J`L3t%_mHFJk zXq|ntXaJ_-);wYqC^Bp~$Ru>oS`>VuwLvN`hJ;dVP(Th{3T1B|{0Vpw>LVCWeiym_ zsvh)iGr#NEHG*r<#-US=Rb?2)4VG|$=4K%mPb;{ZLA*R#jvc_6WYkVwCC^=kG~js) zJl#`)o`50%B5jHS`JHpDEe8C)Gb=sWB$BM|{k zE|2+}fT0N1;D+okBR=|fnJ8gF=8bC?$1L|*_3~z4hsul^R2i{sGGmBTzd>W3(~i9u z^?R|2tw6dxP#(9DtZ>?C^z2ps+%%lj$g*6vgGRXFPqOV4{9eNNsXpi+zZ$;bwDtM9 zrJ0dC9u0aw)N$S16uN@t1J~^Ny;6}@ebtj8$U8nc8MD=9CPmFzh%1=hOfX>sl=XWN z2qT)>2r{&L)}?)qnektKZ|Psxxm_g>b~Dk>N<`jh#+N9H3GOaN7@>jF8gT;BPS8v!lYj&I0V08U>?8yU*dYf+m!Hk4@u-oV zLz(nhu#pgIJu_5YyfgsZ0n-V=KFK`8gM3(MbjnFG!f49x$I~PNkl$tR8vKBL#yMI7 zDo2ZOKm>CTdx(^r%-N$D8-3cH0vz(=xNpZhN&s(1p<-d-#T|iC9*cIEo#5v-;Wy+w zc$@TTD6}7x(J`OR?Fz}m0cC@!iCf^Ow)1mEcrrap?KWHxWWQ+->h7G!uDpkYKC%b^ zL!cS4m2nfe2U`Elc64I_pb!ow1fnRbNe}Z<=MYlTY}RAtSe#IV0BjJol&!^g%oiyD z*|2y0CVSy2-ZFRt6O6$$fk?#Uw*HG-%13Z|QlzdAZ&NrF1^0vPwVH_uF)_W$5)qv( z%^|w>8i=8hfyz2J^9zvs26?#J{v&9Ck zmV&a1I=5j50P+#U&S6Us%9fzO`b6u16A&+R$iq199CDvg0$f}@Ky{5M})qgY<%R`Xd{+Y^rz48G%b>s8ZqYnQ*^=Lm&2dVv* z`URdax<{peH*viI%=q^rGz25#2l-rvHvWm20?}yB7HGg>l$rE3>fj{yz#M^m<$qWD z;b0;xWDfOFp!bmsF9q){ggYlIAKX<%*+A?+62etT4V%DR$QI!&73#M`E%$y^vR7ye zK_La!Gr)1v@=l$qGF1HUY&V=Q4PK&X9h?D@Z%kyw+R*TqZ%~ewWXN3+Jio(2R@zA` zMUle#889d;;dAQ%jx@zdrgAp@bm9b<^JJJ}Em~il`*ey7g5x3+s;!^~9$1J-L{d$E z;b*m5GWOg@w3Ld#h#;70()w-mwC^?Z?z|&IhSDRrvB7Ei;jLuGs0XL*(I#CG!;j3~ zXrUS$32JJlK~ZLXlnQD_$b4Z_EP*V-YN%!vHJ193V{kYO^%DNAa?C*r&ml>=yVydM z7sE;_8YW{6NV7fHZ*3UK{p6h|D?Ru{Ei$g;!4Mu^rpz|64#`0f3>-W*+r|xjs~QhP z>Fm9t(g(Yre=DNNhv%WQ{d}S#`Xd^OV~k;+a>m0&0rgSSZ`J#)eBcYF@a}9O$3xw- zI=YE{x^xI99eBJ)lt4U0iv5fdywh}KiA_KH>d+~V;3~boejhS5K+vbUaUS2*#O)2^ z!T)M&RiWjcnoxb>smT`=o*|a23yuNy!4aw^Oh_;Wlp4p#M`rTOeG zrGgH68&c@UhTmYtHjh(4;(TB6EE!dmbo3vpb?oN@9^EcbgvA9*(2CmUTmuyxd262!cL$3O z>KdRS`35MH?W_?B?fwh9*uenk9F7j$g}GvJo%DRP&7ws6a^gUiy!!&GLfoaUy^Nl< z-N0%R0yEhnY8^xY7jzK@tPR!cbGudUcX-HvSrsgV5|=;`zT?;jtZ4AWrF}MNa+X*A zG>T}d=aYJ-6FJFn(`ST%qlR%fDNsX4*I?o1C4E-6pSv}iO1v^ip$3Pd$Q^9+WL?m~ zWLlHy#pVTswzLBMaTmI#d4i^(b`=%`AVKrVL)1EHH_rG~q{YQXKc~_bL7cFd+KJP= z6sbfljEv(@37!)*ZNS&#Fq#euYhuvu>ufPYIzdhslIpK1YzuJy5`0K&K5E`<`q9FJE!Non zo358BhQyh`W)GfcfDZK^tA#;XKs7|^B$+S$mG(F?j~y-tUpArjk8|)iH>Scu(-9ob zP0acRQim(+9i&5_vQ#GlW51nLHmseF%B1EKl>WrwjiZMgS1VhN@_uTdsgG(yCr<|s zw^q#XlXOPVVo#@EWE>x!19W5%Nr#fNvw%NEbKPOon8e5lVOejq@PlqXO-D)9Wcip< zY7}a`C2>T79P0hp=@dAlE2K+-nxg1@6CBd`62#VNI>N#oCvAWdM?_0qKldZXgmZ!K zs167x;va}rL>(}-TOd@jKSPaFbo3gUKhbh;jWrQaIri>B&5ZHJzjAfIQ5ok%IyM*k zRd8;VQ@1FcsUr|pOJRmPnnvoQP}IJJjtZpvfRmZYqB9ZdqdYJS$}!^PF;3zG41a1o z=7RuFE$0`VAk2cw9y&q;c?C2@N+WjjLb068;mIHAKpr~G;+Pm;`$|AdA;1pmMWL4I z)J{4k0;j8B5?ot9s}dPzc!ujBPo_wvF!kym0zR+(!#K5R!1zDhyBD z08WdwXVN+1shw!lO898XcO817K}tV~dOxaq=p-gOP!uy7hm6|YKcLeVmD`V?%SPQH z{?@qCTASsw*=dbLjV8L&$+sZdCNz)W%)osU{e)xCywFlv?QHxA$6jRNM3Re!Tea6B z7Rdxo8a3w;`mNeEggyT*<>$gH(GIP5FvT3>r@nQ}p>7SxSUOkl%=Oi$>Z6Q*A0AKr z`w4VMDV-ujZFm{QuHS>InPIr@7uE;X>Ixn9uyNO+$A-Z;eHRXWLh~re6fE((Mz9-x zHaGx#s4-gZLzSVs6B-CBG_(Mq2kA_{@R-R$Hq zoVq2{I4aj*TmCSM+^0lwqVRR_P-e|uXQE-;}S_)w3vLuQ$S z4`sb~*yb(m4pO16cIYNdmsYkKwFA`NLv6I+;M}K8qtfcBBZfM@$h>Ona-|Ow7I77e zxZDhIMAXlt*HlBzYX0bmL(@?e>PhyRBACEIovt(Ju)Je2Dmcg*=RrreKc5yh0$~Id zYsnS~%kP{9+zuD#$)go@{WRM6G^&c9d~BjKbm+ufVLH$8?jnuhU`TvX`N$4`!Ze2( zI~8uzb^d#_+S$WczGx(xs0-f0sLuu#!xrtZ`hBZML(VRcveCH`bhu`BGLEg1qO;d= zs>ut%P2g<{H@Sa1Pu*!a&<2^H(>QJD&aTT;R~6Pw-R9Izbu9hwwSUp$S?}71NotCy zkjd3VogfZy%A!+HL|iM$#8Gz@{kItK4D<1Xag zDj>EJcL!5InC^Liu#%(Q;nCgH-5OKA-Bxh8E&hpb%38izcw@N<2SmNpU0XorY zl4~Ai>*?U9m*=IVFq^uELpkYqYDA^ern+Bla-V?O;-SU{sLsSqp|x8>dvsP+u1qcr zOy<)IqSH(X!qG9(RmD_%N}H7g|4XO6u79B7nfng*mYThBrb6@pHBk|_1M$;t{OLJL z5pu1J{_tAhZ|hD4>N=+5F6Nu)YVY`+Fnn4D!nV68F>Mm{2I3eoL<8(#CUm;(IM~E- zveXOFcwopeH9PD)JNcj5l;Pk@8=G*F=6wH?Clz68r{Yj%_E!wxT(fi>07pG#)VsRb z*f>0dg75C(NL!74?l78e$dR1Q0X zEmg67y&xwOwU(8Q7MR&Mn#MFVg0E@*Lk6ZqX9o^Arrxp+wD6ln#fYIgl-i$T5&6t1 zn4;E$B1!ett5;J$0iAdRUc#`pY4(PTuKPO%s){B0g4;qbJdY6r6vW^5f)d((ZS8=z z&?jAwsfGod zPTG$_BIF|zOGo(oL8hK;i&4cXxHWK8?Hi_OcVH=LJah~ONdI7o^g>Pp-iz7OY>qBySjh>2p|z1z3<`Ks+gyAxHS z3#$Sh&YUlKff}>f;pMPXr-4eh8<81iCrHt8sjzjzk5}JyMfr{e+IHCn(V1oUi?MB4 z|Es+-eQWZ}!uYFz)@nhmf}%D+ZEM8^^s0_1B%+LhRI#E~5y8Mn6>O_@!BRuqMn|AH zr3FW;P%Un3GG*TcOF*rcVv$9WrQkxt5V3fNbd zrYb#{_pz9%_SyJkHqst=q%*88L>@-2>-sGnnf7d5Zc$OglgYuEsEGN_#&v zr9VirsXfjW-;V%P9_5vgxNM^3KoE1Rs28Qhp;|{kD0Yvy-o`X<7Iw;I4$wi^bBV7L zcU+J9cc<9k_Q$9w2Lgvkf`l0&wNj6JlE~b*+VnZWA^C^%OnY$K_&aZcph2GiLl0P; z9cZf}B9=g)eP%U&`9VbMh&y}K(ExV^MX3hiqnVT4ScHqQqkplI`$R;9&ef0A-Gor9 z!;d~741m!+UW0U;d4Y7Qu1QMpCp&mN=&tT1nP{xW?A%>gI;#HJm8Aa_k)=M z@3_JF;x;I|q8LTx9_-$nGHiT{KwW8VC=9#eb1{k=5}37nWDXGhMb+}~RQm-pAogjG zxgN9_W(K#?2Px~P;<$1|8Am864%Ir8TF-Y1(R;$l96&@JBNrEK?!E86n*JIQ1*$WU zWJXC`3Vdt!LgzJ?zUm@eSq^bS-E`Nc4&JE%=vw=&bb!~dRCU&L-oH?;UY0`+j^>7< zsrcZ1Y+9vO3khCfT!r^TD-m|5jDa@7b;@?Hn1)x33DNUc6HWM|r9O9mc8|gKlse}1 z0&Sz`3JJ>d$699iLpX5+U9f88E9}P3#L-NExPXbjSEp?QC zCWkB(y&ZMg=MD1};Dxb4h(-PVc%)VBhTLbxINLycg?J$vDI3c{{g7bXK<4sPBE}aW z%6(@Wf*4|vBEzHUVbb!gDA7NKiC1D~z-W2YZ#{MeMPhK>rEI>FopD*h%@-PtUFSUZ z1EFGvDu1*m^IW?2B$_3p?R0oHT)GM;&6?=!b_^IiiQ!n7a2gSbZZRd~VeArzHnsYE zR#w(psf6ZGvNmzfCU@ti7(@P0&q@zhgLr7myC_5aip~+938AJ!;9X460BjcQ{qyD7 zhD$hm(+OlEiVtyN*r+K^8Hb&Y{Q5_B%j$9Xb)*hH%6_;7%K3Wf-S)xgd10D+;GEul z@LQ-vUt8Wx&{g_N04ho`WT@Ht7LN7^s1V~ujR2M8+`~(fjI}GaES?qT6EG&eEM=8g z_6;Fx=S|yVyfb;!n|mn*H4WI9nVuxx4HRnp*412;AfW9++lD-$yyBzcH41VKJ za9pVHcd%JNhu_mzj%mLF8(9cnC-3eYIiBqJbrl{%h2zHw)8R1~w`rGqLwZdX8(qQj zqUhUQymDd3lk`JVx1s~r{`mdqCuaY&^8lhN0(q#n64?x3kUYu_2U41*IB%~GkV^?c zyFSUlA$-W8fF!t$2}q1cnKim2Ni=8O9dM?eaL&0l7Emr{_LL$vbPQ)@2*7XS)1QvO z@)tBQxR;_oStM5~qwT%5dNRSFPG*g0vvvDN?&<7bd^MVC`QQ_ zFh@aJJ$3Ce9Oc$jaYOQczlfGjpN~{r78JpUw8YXuW|&K`GSvM}pQn50E&x?%J*W;`A*yrnL`_ z)W=%(eV2DFTIZKA4-Q{TP1E)43hmUWp50{=gG&3K$2ZD5*fD`1J7%4rA;`O%Rc0oK zwBdJ7e~={4T2|NyCxA=F%|^_G0BE*}pT03|2x$N6qaN=j^8;Y1t+~qi2x;KbA}e%3vNE!O(oOd z{PCZ{y&9;pMWA1H<2E^$1hiO{Z3rJ5q8Ls5^c|!OglaND`)^iHr&!2 zC@|hTx*d5JzKg1eeh3+E>%vXLjtNeG7k{mkM_Bs_DaWGkVD?AYEFV z%`ueZk8A6Bj?$~lSx=npws%0SVUJ45#@g$~Hk?>_VXHPH*O4#>X;wQQh-sWU8=P&s zdMj52Z9VdRGdfv@m*i`~L7Vx@2=iZCL^drp$eGpT_pmh=74p{C&>^fAH|!R|KS4!y z5Z@i1%Vbi+%2mN3szu9j-t{$QDB*KLwGBI}U}TW6NYD`1VU;a(6xT z82;f<+3O<&r3D#{_yTqiM5Gn4xT{1WX&ZRXw9&|ZhZNvq3(!Z-+ z1b^SEKY2^ZjpP+Ev(Q-X5$So{MCD!&A8_~? z=^H{|19{b`ZI9%bvuX;c`lRc4?0sCP4`vP(b}(&)M!+PG{1>&trKjZojjlNeHvfs< z-=MwJ9^|(xZNl3Y&x)J?U$`JR*znU|#?N9UKb1q6Q58(Y*ENiZXkiqMKf?doe=yxR WR%t%=wl0zn@9ws8X{xLLp??8fe%GD= literal 0 HcmV?d00001 diff --git a/doc/examples/simple/simple.wbt b/examples/simple/simple.wbt similarity index 81% rename from doc/examples/simple/simple.wbt rename to examples/simple/simple.wbt index 6fcc3b2..3c9377c 100644 --- a/doc/examples/simple/simple.wbt +++ b/examples/simple/simple.wbt @@ -1,12 +1,12 @@ -#VRML_SIM R2023b utf8 +#VRML_SIM R2025a utf8 -EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/backgrounds/protos/TexturedBackground.proto" -EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/backgrounds/protos/TexturedBackgroundLight.proto" -EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/floors/protos/RectangleArena.proto" +EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/backgrounds/protos/TexturedBackground.proto" +EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/backgrounds/protos/TexturedBackgroundLight.proto" +EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/floors/protos/RectangleArena.proto" WorldInfo { title "my world" - info [ "Line follower track generated by pyLineFollowerTrackGenerator.", "anonymous <>", "2024-02-28", "Parameters: simple simple.wbt -s=2 -np=12" ] + info [ "Line follower track generated by pyLineFollowerTrackGenerator.", "anonymous <>", "2025-02-06", "Parameters: simple examples/simple/simple.wbt -s=2 -np=12" ] window "" gravity 9.81 CFM 1e-05 @@ -58,7 +58,7 @@ RectangleArena { floorAppearance PBRAppearance { baseColor 1 1 1 baseColorMap ImageTexture { - url [ "simple.png" ] + url [ "examples/simple/simple.png" ] repeatS TRUE repeatT TRUE filtering 4 From 17ad912591d39c2e4ff5ac4c8037290dff9a03c6 Mon Sep 17 00:00:00 2001 From: BlueAndi Date: Thu, 6 Feb 2025 20:07:00 +0100 Subject: [PATCH 4/5] CI actions updated. --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 83e9610..5029e54 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,9 +9,9 @@ jobs: matrix: python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies @@ -22,7 +22,7 @@ jobs: - name: Analysing the code with pylint run: | pylint ./src/pyLineFollowerTrackGenerator - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: coverage-report path: coverage_report/ From 4a8a9acb81758669cc342918f75afa81b7d3e088 Mon Sep 17 00:00:00 2001 From: BlueAndi Date: Thu, 6 Feb 2025 20:10:45 +0100 Subject: [PATCH 5/5] Use pylint v3.2.7 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5029e54..0ddb098 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,7 +17,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install pylint toml + pip install "pylint==3.2.7" toml pip install . - name: Analysing the code with pylint run: |