diff --git a/doc/tutorial/connectivity.rst b/doc/tutorial/connectivity.rst index 35ec826ed..0b4655611 100644 --- a/doc/tutorial/connectivity.rst +++ b/doc/tutorial/connectivity.rst @@ -13,8 +13,9 @@ Declarative Connectivity in Arbor In this tutorial, we are going to demonstrate how to leverage Arbor's declarative connection description facilities to generate a few common network types. We will gradually build up complexity and generally show the full recipe -first before discussing some of the relevant parts. - +first before discussing some of the relevant parts. High-level connectivity +descriptions can be more intuitive for some types of networks as well as more +performant in Python simulations, as the construction is handled entirely in C++. Prelude: Unconnected Cells -------------------------- @@ -220,7 +221,7 @@ adjacency matrix might be helpful :width: 400 :align: center -Note that by default the rendering is disabled to avoid the slowdown. +Note that rendering can be disabled, if things get too slow. Final Thoughts diff --git a/python/example/connectivity/04-graph.svg b/python/example/connectivity/04-graph.svg index 622e79d7f..59c40acce 100644 --- a/python/example/connectivity/04-graph.svg +++ b/python/example/connectivity/04-graph.svg @@ -6,7 +6,7 @@ - 2024-12-09T12:59:30.363241 + 2024-12-09T15:32:40.720321 image/svg+xml @@ -30,10098 +30,15498 @@ z - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + +" clip-path="url(#p64bb670f30)" style="stroke: #000000; stroke-linecap: round"/> - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/python/example/connectivity/04-matrix.svg b/python/example/connectivity/04-matrix.svg index 73bf348c6..8001a4c5d 100644 --- a/python/example/connectivity/04-matrix.svg +++ b/python/example/connectivity/04-matrix.svg @@ -6,7 +6,7 @@ - 2024-12-09T12:59:28.953765 + 2024-12-09T15:32:38.665364 image/svg+xml @@ -37,35 +37,35 @@ L 103.104 41.472 z " style="fill: #ffffff"/> - + +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" id="image7b70c13f47" transform="scale(1 -1) translate(0 -266.4)" x="103.104" y="-41.184" width="266.4" height="266.4"/> - - + - - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/example/connectivity/04-raster.svg b/python/example/connectivity/04-raster.svg index 013ae2e78..1fbad7854 100644 --- a/python/example/connectivity/04-raster.svg +++ b/python/example/connectivity/04-raster.svg @@ -6,7 +6,7 @@ - 2024-12-09T13:43:13.558948 + 2024-12-09T15:32:38.490777 image/svg+xml @@ -39,7 +39,7 @@ z - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + @@ -75136,7 +7696,7 @@ z - + @@ -75176,7 +7736,7 @@ z - + @@ -75211,7 +7771,7 @@ z - + @@ -75257,7 +7817,7 @@ z - + @@ -75312,7 +7872,7 @@ z - + @@ -75568,12 +8128,12 @@ z - - + @@ -75586,104 +8146,92 @@ L -3.5 0 - + - - + + - - - + - - + + - - - + - - + + - - - + - - + + - - - + - - + + - - - + - - + + - - - + + diff --git a/python/example/connectivity/brunel.py b/python/example/connectivity/brunel.py index ea70be0fd..142688099 100644 --- a/python/example/connectivity/brunel.py +++ b/python/example/connectivity/brunel.py @@ -8,7 +8,7 @@ # global parameters # cell count -N = 12500 +N = 125 # total runtime [ms] T = 100 # numerical time step [ms] @@ -48,5 +48,4 @@ def network_description(self): sim.record(A.spike_recording.all) sim.run(T * U.ms, dt * U.ms) plot_spikes(sim, T, N, prefix="04-") - # this becomes _very slow_ with many cells - # plot_network(rec, prefix="04-") + plot_network(rec, prefix="04-", graph=True) diff --git a/python/example/connectivity/util.py b/python/example/connectivity/util.py index 8e4dd5e14..8ea3dae62 100644 --- a/python/example/connectivity/util.py +++ b/python/example/connectivity/util.py @@ -6,7 +6,7 @@ import arbor as A -def plot_network(rec, prefix=""): +def plot_network(rec, prefix="", graph=True): fg, ax = plt.subplots() n = rec.num_cells() mat = np.zeros((n, n), dtype=int) @@ -23,17 +23,18 @@ def plot_network(rec, prefix=""): fg.savefig(f"{prefix}matrix.png") fg.savefig(f"{prefix}matrix.svg") - fg, ax = plt.subplots() - g = nx.MultiDiGraph() - g.add_nodes_from(np.arange(n)) - for i in range(n): - for j in range(n): - for _ in range(mat[i, j]): - g.add_edge(i, j) - nx.draw(g, with_labels=True, font_weight="bold") - fg.savefig(f"{prefix}graph.pdf") - fg.savefig(f"{prefix}graph.png") - fg.savefig(f"{prefix}graph.svg") + if graph: + fg, ax = plt.subplots() + g = nx.MultiDiGraph() + g.add_nodes_from(np.arange(n)) + for i in range(n): + for j in range(n): + for _ in range(mat[i, j]): + g.add_edge(i, j) + nx.draw(g, with_labels=True, font_weight="bold") + fg.savefig(f"{prefix}graph.pdf") + fg.savefig(f"{prefix}graph.png") + fg.savefig(f"{prefix}graph.svg") def plot_spikes(sim, T, N, prefix=""):