prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Flaky `test_fk()` results
  - Fails occasionally due to a small difference in the x-component of the transform matrix
    - https://ci.appveyor.com/project/nnadeau/pybotics/build/1.0.732/job/c9mmdfvctt9jasie
    - https://ci.appveyor.com/project/nnadeau/pybotics/build/1.0.732/job/qs645jqgd49iwa3s
  - This corresponds to the first row of the UR10 resources
  ```
  -45.0,147.0,-39.0,96.0,49.0,67.0,-0.10936549564013165,0.9937209495290638,0.02361912001841469,341.25528339185024,-0.30766985716369466,-0.011247226994026319,-0.9514266965341137,-658.5887448195482,-0.       9451869906829335,-0.11132014351410438,0.30696804115695675,-625.3245786240964,0.0,0.0,0.0,1.0
  ```
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `pybotics/predefined_models.py`
  Content:
  ```
  1 """Predefined robot models."""
  2 from typing import Any
  3 
  4 import numpy as np  # type: ignore
  5 
  6 from pybotics import Robot
  7 from pybotics.kinematic_chain import MDHKinematicChain
  8 
  9 
  10 class KukaLBRiiwa7(Robot):
  11     """KUKA LBR iiwa 7 R800 collaborative robot."""
  12 
  13     # TODO: add manufacturer's joint limits
  14     kinematic_chain = MDHKinematicChain(
  15         np.array([
  16             0, 0, 0, 340,
  17             -np.pi / 2, 0, 0, 0,
  18             np.pi / 2, 0, 0, 400,
  19             np.pi / 2, 0, 0, 0,
  20             -np.pi / 2, 0, 0, 400,
  21             -np.pi / 2, 0, 0, 0,
  22             np.pi / 2, 0, 0, 126
  23         ])
  24     )
  25 
  26     def __init__(self, **kwargs: Any) -> None:
  27         """Init robot."""
  28         super().__init__(self.kinematic_chain, **kwargs)
  29 
  30 
  31 class MecademicMeca500(Robot):
  32     """Mecademic Meca500 small robot."""
  33 
  34     # TODO: add manufacturer's joint limits
  35     kinematic_chain = MDHKinematicChain(
  36         np.array([
  37             0, 0, 0, 135,
  38             -np.pi / 2, 0, -np.pi / 2, 0,
  39             0, 135, 0, 0,
  40             -np.pi / 2, 38, 0, 120,
  41             np.pi / 2, 0, 0, 0,
  42             -np.pi / 2, 0, np.pi, 72
  43         ])
  44     )
  45 
  46     def __init__(self, **kwargs: Any) -> None:
  47         """Init robot."""
  48         super().__init__(self.kinematic_chain, **kwargs)
  49 
  50 
  51 class PUMA560(Robot):
  52     """PUMA 560 robot."""
  53 
  54     # TODO: add manufacturer's joint limits
  55     kinematic_chain = MDHKinematicChain(
  56         np.array([
  57             0, 0, 0, 0,
  58             -np.pi / 2, 0, 0, 0,
  59             0, 612.7, 0, 0,
  60             0, 571.6, 0, 163.9,
  61             -np.pi / 2, 0, 0, 115.7,
  62             np.pi / 2, 0, np.pi, 92.2
  63         ])
  64     )
  65 
  66     def __init__(self, **kwargs: Any) -> None:
  67         """Init robot."""
  68         super().__init__(self.kinematic_chain, **kwargs)
  69 
  70 
  71 class UR10(Robot):
  72     """Universal Robots UR10 collaborative robot."""
  73 
  74     # TODO: add manufacturer's joint limits
  75     kinematic_chain = MDHKinematicChain(
  76         np.array([
  77             0, 0, 0, 118,
  78             np.pi / 2, 0, np.pi, 0,
  79             0, 612.7, 0, 0,
  80             0, 571.6, 0, 163.9,
  81             -np.pi / 2, 0, 0, 115.7,
  82             np.pi / 2, 0, np.pi, 92.2
  83         ])
  84     )
  85 
  86     def __init__(self, **kwargs: Any) -> None:
  87         """Init robot."""
  88         super().__init__(self.kinematic_chain, **kwargs)
  89
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/pybotics/predefined_models.py b/pybotics/predefined_models.py
  --- a/pybotics/predefined_models.py
  +++ b/pybotics/predefined_models.py
  @@ -1,4 +1,5 @@
   """Predefined robot models."""
  +from copy import deepcopy
   from typing import Any
   
   import numpy as np  # type: ignore
  @@ -25,7 +26,7 @@
   
       def __init__(self, **kwargs: Any) -> None:
           """Init robot."""
  -        super().__init__(self.kinematic_chain, **kwargs)
  +        super().__init__(deepcopy(self.kinematic_chain), **kwargs)
   
   
   class MecademicMeca500(Robot):
  @@ -45,7 +46,7 @@
   
       def __init__(self, **kwargs: Any) -> None:
           """Init robot."""
  -        super().__init__(self.kinematic_chain, **kwargs)
  +        super().__init__(deepcopy(self.kinematic_chain), **kwargs)
   
   
   class PUMA560(Robot):
  @@ -65,7 +66,7 @@
   
       def __init__(self, **kwargs: Any) -> None:
           """Init robot."""
  -        super().__init__(self.kinematic_chain, **kwargs)
  +        super().__init__(deepcopy(self.kinematic_chain), **kwargs)
   
   
   class UR10(Robot):
  @@ -85,4 +86,4 @@
   
       def __init__(self, **kwargs: Any) -> None:
           """Init robot."""
  -        super().__init__(self.kinematic_chain, **kwargs)
  +        super().__init__(deepcopy(self.kinematic_chain), **kwargs)
  
verification_info: {"golden_diff": "diff --git a/pybotics/predefined_models.py b/pybotics/predefined_models.py\n--- a/pybotics/predefined_models.py\n+++ b/pybotics/predefined_models.py\n@@ -1,4 +1,5 @@\n \"\"\"Predefined robot models.\"\"\"\n+from copy import deepcopy\n from typing import Any\n \n import numpy as np  # type: ignore\n@@ -25,7 +26,7 @@\n \n     def __init__(self, **kwargs: Any) -> None:\n         \"\"\"Init robot.\"\"\"\n-        super().__init__(self.kinematic_chain, **kwargs)\n+        super().__init__(deepcopy(self.kinematic_chain), **kwargs)\n \n \n class MecademicMeca500(Robot):\n@@ -45,7 +46,7 @@\n \n     def __init__(self, **kwargs: Any) -> None:\n         \"\"\"Init robot.\"\"\"\n-        super().__init__(self.kinematic_chain, **kwargs)\n+        super().__init__(deepcopy(self.kinematic_chain), **kwargs)\n \n \n class PUMA560(Robot):\n@@ -65,7 +66,7 @@\n \n     def __init__(self, **kwargs: Any) -> None:\n         \"\"\"Init robot.\"\"\"\n-        super().__init__(self.kinematic_chain, **kwargs)\n+        super().__init__(deepcopy(self.kinematic_chain), **kwargs)\n \n \n class UR10(Robot):\n@@ -85,4 +86,4 @@\n \n     def __init__(self, **kwargs: Any) -> None:\n         \"\"\"Init robot.\"\"\"\n-        super().__init__(self.kinematic_chain, **kwargs)\n+        super().__init__(deepcopy(self.kinematic_chain), **kwargs)\n", "issue": "Flaky `test_fk()` results\n- Fails occasionally due to a small difference in the x-component of the transform matrix\r\n  - https://ci.appveyor.com/project/nnadeau/pybotics/build/1.0.732/job/c9mmdfvctt9jasie\r\n  - https://ci.appveyor.com/project/nnadeau/pybotics/build/1.0.732/job/qs645jqgd49iwa3s\r\n- This corresponds to the first row of the UR10 resources\r\n```\r\n-45.0,147.0,-39.0,96.0,49.0,67.0,-0.10936549564013165,0.9937209495290638,0.02361912001841469,341.25528339185024,-0.30766985716369466,-0.011247226994026319,-0.9514266965341137,-658.5887448195482,-0.       9451869906829335,-0.11132014351410438,0.30696804115695675,-625.3245786240964,0.0,0.0,0.0,1.0\r\n```\r\n\n", "before_files": [{"content": "\"\"\"Predefined robot models.\"\"\"\nfrom typing import Any\n\nimport numpy as np  # type: ignore\n\nfrom pybotics import Robot\nfrom pybotics.kinematic_chain import MDHKinematicChain\n\n\nclass KukaLBRiiwa7(Robot):\n    \"\"\"KUKA LBR iiwa 7 R800 collaborative robot.\"\"\"\n\n    # TODO: add manufacturer's joint limits\n    kinematic_chain = MDHKinematicChain(\n        np.array([\n            0, 0, 0, 340,\n            -np.pi / 2, 0, 0, 0,\n            np.pi / 2, 0, 0, 400,\n            np.pi / 2, 0, 0, 0,\n            -np.pi / 2, 0, 0, 400,\n            -np.pi / 2, 0, 0, 0,\n            np.pi / 2, 0, 0, 126\n        ])\n    )\n\n    def __init__(self, **kwargs: Any) -> None:\n        \"\"\"Init robot.\"\"\"\n        super().__init__(self.kinematic_chain, **kwargs)\n\n\nclass MecademicMeca500(Robot):\n    \"\"\"Mecademic Meca500 small robot.\"\"\"\n\n    # TODO: add manufacturer's joint limits\n    kinematic_chain = MDHKinematicChain(\n        np.array([\n            0, 0, 0, 135,\n            -np.pi / 2, 0, -np.pi / 2, 0,\n            0, 135, 0, 0,\n            -np.pi / 2, 38, 0, 120,\n            np.pi / 2, 0, 0, 0,\n            -np.pi / 2, 0, np.pi, 72\n        ])\n    )\n\n    def __init__(self, **kwargs: Any) -> None:\n        \"\"\"Init robot.\"\"\"\n        super().__init__(self.kinematic_chain, **kwargs)\n\n\nclass PUMA560(Robot):\n    \"\"\"PUMA 560 robot.\"\"\"\n\n    # TODO: add manufacturer's joint limits\n    kinematic_chain = MDHKinematicChain(\n        np.array([\n            0, 0, 0, 0,\n            -np.pi / 2, 0, 0, 0,\n            0, 612.7, 0, 0,\n            0, 571.6, 0, 163.9,\n            -np.pi / 2, 0, 0, 115.7,\n            np.pi / 2, 0, np.pi, 92.2\n        ])\n    )\n\n    def __init__(self, **kwargs: Any) -> None:\n        \"\"\"Init robot.\"\"\"\n        super().__init__(self.kinematic_chain, **kwargs)\n\n\nclass UR10(Robot):\n    \"\"\"Universal Robots UR10 collaborative robot.\"\"\"\n\n    # TODO: add manufacturer's joint limits\n    kinematic_chain = MDHKinematicChain(\n        np.array([\n            0, 0, 0, 118,\n            np.pi / 2, 0, np.pi, 0,\n            0, 612.7, 0, 0,\n            0, 571.6, 0, 163.9,\n            -np.pi / 2, 0, 0, 115.7,\n            np.pi / 2, 0, np.pi, 92.2\n        ])\n    )\n\n    def __init__(self, **kwargs: Any) -> None:\n        \"\"\"Init robot.\"\"\"\n        super().__init__(self.kinematic_chain, **kwargs)\n", "path": "pybotics/predefined_models.py"}], "after_files": [{"content": "\"\"\"Predefined robot models.\"\"\"\nfrom copy import deepcopy\nfrom typing import Any\n\nimport numpy as np  # type: ignore\n\nfrom pybotics import Robot\nfrom pybotics.kinematic_chain import MDHKinematicChain\n\n\nclass KukaLBRiiwa7(Robot):\n    \"\"\"KUKA LBR iiwa 7 R800 collaborative robot.\"\"\"\n\n    # TODO: add manufacturer's joint limits\n    kinematic_chain = MDHKinematicChain(\n        np.array([\n            0, 0, 0, 340,\n            -np.pi / 2, 0, 0, 0,\n            np.pi / 2, 0, 0, 400,\n            np.pi / 2, 0, 0, 0,\n            -np.pi / 2, 0, 0, 400,\n            -np.pi / 2, 0, 0, 0,\n            np.pi / 2, 0, 0, 126\n        ])\n    )\n\n    def __init__(self, **kwargs: Any) -> None:\n        \"\"\"Init robot.\"\"\"\n        super().__init__(deepcopy(self.kinematic_chain), **kwargs)\n\n\nclass MecademicMeca500(Robot):\n    \"\"\"Mecademic Meca500 small robot.\"\"\"\n\n    # TODO: add manufacturer's joint limits\n    kinematic_chain = MDHKinematicChain(\n        np.array([\n            0, 0, 0, 135,\n            -np.pi / 2, 0, -np.pi / 2, 0,\n            0, 135, 0, 0,\n            -np.pi / 2, 38, 0, 120,\n            np.pi / 2, 0, 0, 0,\n            -np.pi / 2, 0, np.pi, 72\n        ])\n    )\n\n    def __init__(self, **kwargs: Any) -> None:\n        \"\"\"Init robot.\"\"\"\n        super().__init__(deepcopy(self.kinematic_chain), **kwargs)\n\n\nclass PUMA560(Robot):\n    \"\"\"PUMA 560 robot.\"\"\"\n\n    # TODO: add manufacturer's joint limits\n    kinematic_chain = MDHKinematicChain(\n        np.array([\n            0, 0, 0, 0,\n            -np.pi / 2, 0, 0, 0,\n            0, 612.7, 0, 0,\n            0, 571.6, 0, 163.9,\n            -np.pi / 2, 0, 0, 115.7,\n            np.pi / 2, 0, np.pi, 92.2\n        ])\n    )\n\n    def __init__(self, **kwargs: Any) -> None:\n        \"\"\"Init robot.\"\"\"\n        super().__init__(deepcopy(self.kinematic_chain), **kwargs)\n\n\nclass UR10(Robot):\n    \"\"\"Universal Robots UR10 collaborative robot.\"\"\"\n\n    # TODO: add manufacturer's joint limits\n    kinematic_chain = MDHKinematicChain(\n        np.array([\n            0, 0, 0, 118,\n            np.pi / 2, 0, np.pi, 0,\n            0, 612.7, 0, 0,\n            0, 571.6, 0, 163.9,\n            -np.pi / 2, 0, 0, 115.7,\n            np.pi / 2, 0, np.pi, 92.2\n        ])\n    )\n\n    def __init__(self, **kwargs: Any) -> None:\n        \"\"\"Init robot.\"\"\"\n        super().__init__(deepcopy(self.kinematic_chain), **kwargs)\n", "path": "pybotics/predefined_models.py"}]}