Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SoH now based on internal values (lost/gained energy) instead of external values...
authorAdrien Gougeon <adrien.gougeon@ens-rennes.fr>
Thu, 13 Jul 2023 13:08:31 +0000 (15:08 +0200)
committerAdrien Gougeon <adrien.gougeon@ens-rennes.fr>
Thu, 13 Jul 2023 13:08:31 +0000 (15:08 +0200)
docs/source/img/battery_degradation.svg
examples/cpp/battery-energy/s4u-battery-energy.tesh
examples/cpp/battery-simple/s4u-battery-simple.tesh
src/plugins/battery.cpp

index a887272..432fa43 100644 (file)
@@ -6,7 +6,7 @@
   <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <cc:Work>
     <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
-    <dc:date>2023-06-28T16:42:29.585725</dc:date>
+    <dc:date>2023-07-13T14:07:53.987014</dc:date>
     <dc:format>image/svg+xml</dc:format>
     <dc:creator>
      <cc:Agent>
@@ -40,13 +40,13 @@ z
    <g id="matplotlib.axis_1">
     <g id="xtick_1">
      <g id="line2d_1">
-      <path d="M 181.865242 512.64 
-L 181.865242 69.12 
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
+      <path d="M 182.150041 512.64 
+L 182.150041 69.12 
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
      </g>
      <g id="text_1">
       <!-- 0 -->
-      <g style="fill: #262626" transform="translate(178.365867 530.498281) scale(0.11 -0.11)">
+      <g style="fill: #262626" transform="translate(178.650666 530.498281) scale(0.11 -0.11)">
        <defs>
         <path id="DejaVuSans-30" d="M 2034 4250 
 Q 1547 4250 1301 3770 
@@ -76,13 +76,13 @@ z
     </g>
     <g id="xtick_2">
      <g id="line2d_2">
-      <path d="M 321.467091 512.64 
-L 321.467091 69.12 
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
+      <path d="M 307.116388 512.64 
+L 307.116388 69.12 
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
      </g>
      <g id="text_2">
       <!-- 10000 -->
-      <g style="fill: #262626" transform="translate(303.970216 530.498281) scale(0.11 -0.11)">
+      <g style="fill: #262626" transform="translate(289.619513 530.498281) scale(0.11 -0.11)">
        <defs>
         <path id="DejaVuSans-31" d="M 794 531 
 L 1825 531 
@@ -109,13 +109,13 @@ z
     </g>
     <g id="xtick_3">
      <g id="line2d_3">
-      <path d="M 461.06894 512.64 
-L 461.06894 69.12 
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
+      <path d="M 432.082736 512.64 
+L 432.082736 69.12 
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
      </g>
      <g id="text_3">
       <!-- 20000 -->
-      <g style="fill: #262626" transform="translate(443.572065 530.498281) scale(0.11 -0.11)">
+      <g style="fill: #262626" transform="translate(414.585861 530.498281) scale(0.11 -0.11)">
        <defs>
         <path id="DejaVuSans-32" d="M 1228 531 
 L 3431 531 
@@ -152,13 +152,13 @@ z
     </g>
     <g id="xtick_4">
      <g id="line2d_4">
-      <path d="M 600.670789 512.64 
-L 600.670789 69.12 
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
+      <path d="M 557.049084 512.64 
+L 557.049084 69.12 
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
      </g>
      <g id="text_4">
       <!-- 30000 -->
-      <g style="fill: #262626" transform="translate(583.173914 530.498281) scale(0.11 -0.11)">
+      <g style="fill: #262626" transform="translate(539.552209 530.498281) scale(0.11 -0.11)">
        <defs>
         <path id="DejaVuSans-33" d="M 2597 2516 
 Q 3050 2419 3304 2112 
@@ -203,13 +203,13 @@ z
     </g>
     <g id="xtick_5">
      <g id="line2d_5">
-      <path d="M 740.272638 512.64 
-L 740.272638 69.12 
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
+      <path d="M 682.015432 512.64 
+L 682.015432 69.12 
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
      </g>
      <g id="text_5">
       <!-- 40000 -->
-      <g style="fill: #262626" transform="translate(722.775763 530.498281) scale(0.11 -0.11)">
+      <g style="fill: #262626" transform="translate(664.518557 530.498281) scale(0.11 -0.11)">
        <defs>
         <path id="DejaVuSans-34" d="M 2419 4116 
 L 825 1625 
@@ -241,13 +241,13 @@ z
     </g>
     <g id="xtick_6">
      <g id="line2d_6">
-      <path d="M 879.874487 512.64 
-L 879.874487 69.12 
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
+      <path d="M 806.98178 512.64 
+L 806.98178 69.12 
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
      </g>
      <g id="text_6">
       <!-- 50000 -->
-      <g style="fill: #262626" transform="translate(862.377612 530.498281) scale(0.11 -0.11)">
+      <g style="fill: #262626" transform="translate(789.484905 530.498281) scale(0.11 -0.11)">
        <defs>
         <path id="DejaVuSans-35" d="M 691 4666 
 L 3169 4666 
@@ -285,13 +285,13 @@ z
     </g>
     <g id="xtick_7">
      <g id="line2d_7">
-      <path d="M 1019.476336 512.64 
-L 1019.476336 69.12 
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
+      <path d="M 931.948127 512.64 
+L 931.948127 69.12 
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
      </g>
      <g id="text_7">
       <!-- 60000 -->
-      <g style="fill: #262626" transform="translate(1001.979461 530.498281) scale(0.11 -0.11)">
+      <g style="fill: #262626" transform="translate(914.451252 530.498281) scale(0.11 -0.11)">
        <defs>
         <path id="DejaVuSans-36" d="M 2113 2584 
 Q 1688 2584 1439 2293 
@@ -426,13 +426,13 @@ z
    <g id="matplotlib.axis_2">
     <g id="ytick_1">
      <g id="line2d_8">
-      <path d="M 144 447.44377 
-L 1036.8 447.44377 
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
+      <path d="M 144 447.472913 
+L 1036.8 447.472913 
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
      </g>
      <g id="text_9">
       <!-- 0.2 -->
-      <g style="fill: #262626" transform="translate(117.006563 451.62291) scale(0.11 -0.11)">
+      <g style="fill: #262626" transform="translate(117.006563 451.652054) scale(0.11 -0.11)">
        <defs>
         <path id="DejaVuSans-2e" d="M 684 794 
 L 1344 794 
@@ -450,13 +450,13 @@ z
     </g>
     <g id="ytick_2">
      <g id="line2d_9">
-      <path d="M 144 357.56544
-L 1036.8 357.56544
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
+      <path d="M 144 357.58727
+L 1036.8 357.58727
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
      </g>
      <g id="text_10">
       <!-- 0.4 -->
-      <g style="fill: #262626" transform="translate(117.006563 361.744587) scale(0.11 -0.11)">
+      <g style="fill: #262626" transform="translate(117.006563 361.766418) scale(0.11 -0.11)">
        <use xlink:href="#DejaVuSans-30"/>
        <use xlink:href="#DejaVuSans-2e" x="63.623047"/>
        <use xlink:href="#DejaVuSans-34" x="95.410156"/>
@@ -465,13 +465,13 @@ L 1036.8 357.565447
     </g>
     <g id="ytick_3">
      <g id="line2d_10">
-      <path d="M 144 267.687123 
-L 1036.8 267.687123 
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
+      <path d="M 144 267.70164 
+L 1036.8 267.70164 
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
      </g>
      <g id="text_11">
       <!-- 0.6 -->
-      <g style="fill: #262626" transform="translate(117.006563 271.866264) scale(0.11 -0.11)">
+      <g style="fill: #262626" transform="translate(117.006563 271.880781) scale(0.11 -0.11)">
        <use xlink:href="#DejaVuSans-30"/>
        <use xlink:href="#DejaVuSans-2e" x="63.623047"/>
        <use xlink:href="#DejaVuSans-36" x="95.410156"/>
@@ -480,13 +480,13 @@ L 1036.8 267.687123
     </g>
     <g id="ytick_4">
      <g id="line2d_11">
-      <path d="M 144 177.8088 
-L 1036.8 177.8088 
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
+      <path d="M 144 177.816004 
+L 1036.8 177.816004 
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
      </g>
      <g id="text_12">
       <!-- 0.8 -->
-      <g style="fill: #262626" transform="translate(117.006563 181.987941) scale(0.11 -0.11)">
+      <g style="fill: #262626" transform="translate(117.006563 181.995144) scale(0.11 -0.11)">
        <defs>
         <path id="DejaVuSans-38" d="M 2034 2216 
 Q 1584 2216 1326 1975 
@@ -536,13 +536,13 @@ z
     </g>
     <g id="ytick_5">
      <g id="line2d_12">
-      <path d="M 144 87.93047
-L 1036.8 87.93047
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
+      <path d="M 144 87.93036
+L 1036.8 87.93036
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #ffffff; stroke-linecap: round"/>
      </g>
      <g id="text_13">
       <!-- 1.0 -->
-      <g style="fill: #262626" transform="translate(117.006563 92.109618) scale(0.11 -0.11)">
+      <g style="fill: #262626" transform="translate(117.006563 92.109508) scale(0.11 -0.11)">
        <use xlink:href="#DejaVuSans-31"/>
        <use xlink:href="#DejaVuSans-2e" x="63.623047"/>
        <use xlink:href="#DejaVuSans-30" x="95.410156"/>
    <g id="PolyCollection_1"/>
    <g id="PolyCollection_2"/>
    <g id="line2d_13">
-    <path d="M 184.581818 447.44377 
-L 187.905786 177.8088 
-L 190.604223 447.44377 
-L 193.905996 177.8088 
-L 196.586414 447.44377 
-L 199.866139 177.8088 
-L 202.528659 447.44377 
-L 205.786484 177.8088 
-L 208.431225 447.44377 
-L 211.667297 177.8088 
-L 214.294377 447.44377 
-L 217.50884 177.8088 
-L 220.118379 447.44377 
-L 223.311377 177.8088 
-L 225.903491 447.44377 
-L 229.075168 177.8088 
-L 231.649973 447.44377 
-L 234.800471 177.8088 
-L 237.358083 447.44377 
-L 240.487544 177.8088 
-L 243.028078 447.44377 
-L 246.136642 177.8088 
-L 248.660212 447.44377 
-L 251.748019 177.8088 
-L 254.254737 447.44377 
-L 257.321926 177.8088 
-L 259.811905 447.44377 
-L 262.858613 177.8088 
-L 265.331966 447.44377 
-L 268.35833 177.8088 
-L 270.815167 447.44377 
-L 273.821322 177.8088 
-L 276.261754 447.44377 
-L 279.247836 177.8088 
-L 281.671972 447.44377 
-L 284.638114 177.8088 
-L 287.046064 447.44377 
-L 289.9924 177.8088 
-L 292.38427 447.44377 
-L 295.310932 177.8088 
-L 297.686831 447.44377 
-L 300.59395 177.8088 
-L 302.953984 447.44377 
-L 305.841691 177.8088 
-L 308.185966 447.44377 
-L 311.054391 177.8088 
-L 313.383012 447.44377 
-L 316.232283 177.8088 
-L 318.545355 447.44377 
-L 321.3756 177.8088 
-L 323.673227 447.44377 
-L 326.484573 177.8088 
-L 328.766857 447.44377 
-L 331.559431 177.8088 
-L 333.826476 447.44377 
-L 336.600402 177.8088 
-L 338.852308 447.44377 
-L 341.607712 177.8088 
-L 343.844582 447.44377 
-L 346.581587 177.8088 
-L 348.803519 447.44377 
-L 351.522248 177.8088 
-L 353.729344 447.44377 
-L 356.429919 177.8088 
-L 358.622277 447.44377 
-L 361.304818 177.8088 
-L 363.482537 447.44377 
-L 366.147166 177.8088 
-L 368.310344 447.44377 
-L 370.95718 177.8088 
-L 373.105913 447.44377 
-L 375.735075 177.8088 
-L 377.86946 447.44377 
-L 380.481066 177.8088 
-L 382.601198 447.44377 
-L 385.195366 177.8088 
-L 387.301341 447.44377 
-L 389.878186 177.8088 
-L 391.970099 447.44377 
-L 394.529737 177.8088 
-L 396.607681 447.44377 
-L 399.150228 177.8088 
-L 401.214297 447.44377 
-L 403.739865 177.8088 
-L 405.790152 447.44377 
-L 408.298856 177.8088 
-L 410.335451 447.44377 
-L 412.827404 177.8088 
-L 414.8504 447.44377 
-L 417.325713 177.8088 
-L 419.335201 447.44377 
-L 421.793985 177.8088 
-L 423.790055 447.44377 
-L 426.23242 177.8088 
-L 428.215161 447.44377 
-L 430.641218 177.8088 
-L 432.61072 447.44377 
-L 435.020576 177.8088 
-L 436.976927 447.44377 
-L 439.370692 177.8088 
-L 441.313979 447.44377 
-L 443.69176 177.8088 
-L 445.622071 447.44377 
-L 447.983974 177.8088 
-L 449.901395 447.44377 
-L 452.247527 177.8088 
-L 454.152145 447.44377 
-L 456.482611 177.8088 
-L 458.374511 447.44377 
-L 460.689415 177.8088 
-L 462.568682 447.44377 
-L 464.868128 177.8088 
-L 466.734846 447.44377 
-L 469.018939 177.8088 
-L 470.873192 447.44377 
-L 473.142032 177.8088 
-L 474.983904 447.44377 
-L 477.237594 177.8088 
-L 479.067166 447.44377 
-L 481.305808 177.8088 
-L 483.123164 447.44377 
-L 485.346857 177.8088 
-L 487.152077 447.44377 
-L 489.360922 177.8088 
-L 491.154088 447.44377 
-L 493.348183 177.8088 
-L 495.129375 447.44377 
-L 497.308819 177.8088 
-L 499.078118 447.44377 
-L 501.243009 177.8088 
-L 503.000493 447.44377 
-L 505.150928 177.8088 
-L 506.896677 447.44377 
-L 509.032752 177.8088 
-L 510.766844 447.44377 
-L 512.888656 177.8088 
-L 514.611168 447.44377 
-L 516.718812 177.8088 
-L 518.429822 447.44377 
-L 520.523393 177.8088 
-L 522.222978 447.44377 
-L 524.302568 177.8088 
-L 525.990805 447.44377 
-L 528.056509 177.8088 
-L 529.733472 447.44377 
-L 531.785383 177.8088 
-L 533.451148 447.44377 
-L 535.489357 177.8088 
-L 537.143999 447.44377 
-L 539.168598 177.8088 
-L 540.812192 447.44377 
-L 542.823272 177.8088 
-L 544.45589 447.44377 
-L 546.453541 177.8088 
-L 548.075258 447.44377 
-L 550.05957 177.8088 
-L 551.670458 447.44377 
-L 553.64152 177.8088 
-L 555.241651 447.44377 
-L 557.199551 177.8088 
-L 558.788998 447.44377 
-L 560.733824 177.8088 
-L 562.312657 447.44377 
-L 564.244497 177.8088 
-L 565.812787 447.44377 
-L 567.731728 177.8088 
-L 569.289546 447.44377 
-L 571.195672 177.8088 
-L 572.743089 447.44377 
-L 574.636487 177.8088 
-L 576.17357 447.44377 
-L 578.054326 177.8088 
-L 579.581145 447.44377 
-L 581.449342 177.8088 
-L 582.965966 447.44377 
-L 584.821689 177.8088 
-L 586.328186 447.44377 
-L 588.171516 177.8088 
-L 589.667954 447.44377 
-L 591.498976 177.8088 
-L 592.985421 447.44377 
-L 594.804216 177.8088 
-L 596.280736 447.44377 
-L 598.087386 177.8088 
-L 599.554046 447.44377 
-L 601.348633 177.8088 
-L 602.8055 447.44377 
-L 604.588103 177.8088 
-L 606.035242 447.44377 
-L 607.805942 177.8088 
-L 609.243417 447.44377 
-L 611.002294 177.8088 
-L 612.43017 447.44377 
-L 614.177302 177.8088 
-L 615.595644 447.44377 
-L 617.331109 177.8088 
-L 618.73998 447.44377 
-L 620.463857 177.8088 
-L 621.863321 447.44377 
-L 623.575687 177.8088 
-L 624.965805 447.44377 
-L 626.666737 177.8088 
-L 628.047573 447.44377 
-L 629.737147 177.8088 
-L 631.108763 447.44377 
-L 632.787054 177.8088 
-L 634.149511 447.44377 
-L 635.816596 177.8088 
-L 637.169955 447.44377 
-L 638.825908 177.8088 
-L 640.170231 447.44377 
-L 641.815126 177.8088 
-L 643.150472 447.44377 
-L 644.784384 177.8088 
-L 646.110813 447.44377 
-L 647.733814 177.8088 
-L 649.051386 447.44377 
-L 650.66355 177.8088 
-L 651.972324 447.44377 
-L 653.573723 177.8088 
-L 654.873757 447.44377 
-L 656.464463 177.8088 
-L 657.755817 447.44377 
-L 659.3359 177.8088 
-L 660.618631 447.44377 
-L 662.188164 177.8088 
-L 663.462329 447.44377 
-L 665.021382 177.8088 
-L 666.287039 447.44377 
-L 667.835681 177.8088 
-L 669.092887 447.44377 
-L 670.631188 177.8088 
-L 671.879999 447.44377 
-L 673.408028 177.8088 
-L 674.6485 447.44377 
-L 676.166326 177.8088 
-L 677.398514 447.44377 
-L 678.906205 177.8088 
-L 680.130166 447.44377 
-L 681.627789 177.8088 
-L 682.843577 447.44377 
-L 684.3312 177.8088 
-L 685.53887 447.44377 
-L 687.016559 177.8088 
-L 688.216165 447.44377 
-L 689.683987 177.8088 
-L 690.875582 447.44377 
-L 692.333603 177.8088 
-L 693.517241 447.44377 
-L 694.965526 177.8088 
-L 696.141261 447.44377 
-L 697.579875 177.8088 
-L 698.747759 447.44377 
-L 700.176767 177.8088 
-L 701.336852 447.44377 
-L 702.756318 177.8088 
-L 703.908657 447.44377 
-L 705.318645 177.8088 
-L 706.463289 447.44377 
-L 707.863861 177.8088 
-L 709.000862 447.44377 
-L 710.392082 177.8088 
-L 711.521491 447.44377 
-L 712.903421 177.8088 
-L 714.025289 447.44377 
-L 715.397991 177.8088 
-L 716.512367 447.44377 
-L 717.875903 177.8088 
-L 718.982838 447.44377 
-L 720.33727 177.8088 
-L 721.436813 447.44377 
-L 722.7822 177.8088 
-L 723.874402 447.44377 
-L 725.210805 177.8088 
-L 726.295713 447.44377 
-L 727.623193 177.8088 
-L 728.700857 447.44377 
-L 730.019473 177.8088 
-L 731.08994 447.44377 
-L 732.399751 177.8088 
-L 733.463071 447.44377 
-L 734.764135 177.8088 
-L 735.820355 447.44377 
-L 737.112731 177.8088 
-L 738.161898 447.44377 
-L 739.445645 177.8088 
-L 740.487806 447.44377 
-L 741.76298 177.8088 
-L 742.798182 447.44377 
-L 744.064842 177.8088 
-L 745.093132 447.44377 
-L 746.351333 177.8088 
-L 747.372757 447.44377 
-L 748.622557 177.8088 
-L 749.637159 447.44377 
-L 750.878614 177.8088 
-L 751.886442 447.44377 
-L 753.119607 177.8088 
-L 754.120705 447.44377 
-L 755.345635 177.8088 
-L 756.340049 447.44377 
-L 757.5568 177.8088 
-L 758.544573 447.44377 
-L 759.753199 177.8088 
-L 760.734377 447.44377 
-L 761.934933 177.8088 
-L 762.909558 447.44377 
-L 764.102097 177.8088 
-L 765.070215 447.44377 
-L 766.254791 177.8088 
-L 767.216444 447.44377 
-L 768.39311 177.8088 
-L 769.348342 447.44377 
-L 770.517151 177.8088 
-L 771.466004 447.44377 
-L 772.627009 177.8088 
-L 773.569526 447.44377 
-L 774.722778 177.8088 
-L 775.659001 447.44377 
-L 776.804553 177.8088 
-L 777.734525 447.44377 
-L 778.872426 177.8088 
-L 779.796189 447.44377 
-L 780.926492 177.8088 
-L 781.844086 447.44377 
-L 782.966842 177.8088 
-L 783.878309 447.44377 
-L 784.993567 177.8088 
-L 785.898948 447.44377 
-L 787.00676 177.8088 
-L 787.906094 447.44377 
-L 789.006509 177.8088 
-L 789.899838 447.44377 
-L 790.992905 177.8088 
-L 791.880269 447.44377 
-L 792.966037 177.8088 
-L 793.847476 447.44377 
-L 794.925993 177.8088 
-L 795.801547 447.44377 
-L 796.872862 177.8088 
-L 797.742569 447.44377 
-L 798.806731 177.8088 
-L 799.670631 447.44377 
-L 800.727687 177.8088 
-L 801.585818 447.44377 
-L 802.635815 177.8088 
-L 803.488216 447.44377 
-L 804.531203 177.8088 
-L 805.377911 447.44377 
-L 806.413933 177.8088 
-L 807.254988 447.44377 
-L 808.284092 177.8088 
-L 809.119531 447.44377 
-L 810.141763 177.8088 
-L 810.971624 447.44377 
-L 811.98703 177.8088 
-L 812.811349 447.44377 
-L 813.819975 177.8088 
-L 814.63879 447.44377 
-L 815.640681 177.8088 
-L 816.454028 447.44377 
-L 817.449229 177.8088 
-L 818.257144 447.44377 
-L 819.2457 177.8088 
-L 820.048221 447.44377 
-L 821.030176 177.8088 
-L 821.827338 447.44377 
-L 822.802736 177.8088 
-L 823.594575 447.44377 
-L 824.563459 177.8088 
-L 825.350011 447.44377 
-L 826.312426 177.8088 
-L 827.093726 447.44377 
-L 828.049714 177.8088 
-L 828.825797 447.44377 
-L 829.775401 177.8088 
-L 830.546302 447.44377 
-L 831.489566 177.8088 
-L 832.255318 447.44377 
-L 833.192284 177.8088 
-L 833.952923 447.44377 
-L 834.883632 177.8088 
-L 835.639192 447.44377 
-L 836.563686 177.8088 
-L 837.314201 447.44377 
-L 838.232522 177.8088 
-L 838.978026 447.44377 
-L 839.890214 177.8088 
-L 840.63074 447.44377 
-L 841.536837 177.8088 
-L 842.272418 447.44377 
-L 843.172465 177.8088 
-L 843.903134 447.44377 
-L 844.797171 177.8088 
-L 845.522961 447.44377 
-L 846.411029 177.8088 
-L 847.131972 447.44377 
-L 848.01411 177.8088 
-L 848.730239 447.44377 
-L 849.606486 177.8088 
-L 850.317833 447.44377 
-L 851.188229 177.8088 
-L 851.894827 447.44377 
-L 852.759411 177.8088 
-L 853.46129 447.44377 
-L 854.3201 177.8088 
-L 855.017293 447.44377 
-L 855.870369 177.8088 
-L 856.562906 447.44377 
-L 857.410286 177.8088 
-L 858.098198 447.44377 
-L 858.93992 177.8088 
-L 859.623239 447.44377 
-L 860.459339 177.8088 
-L 861.138096 447.44377 
-L 861.968614 177.8088 
-L 862.642838 447.44377 
-L 863.46781 177.8088 
-L 864.137532 447.44377 
-L 864.956995 177.8088 
-L 865.622245 447.44377 
-L 866.436236 177.8088 
-L 867.097044 447.44377 
-L 867.9056 177.8088 
-L 868.561995 447.44377 
-L 869.365152 177.8088 
-L 870.017164 447.44377 
-L 870.814958 177.8088 
-L 871.462616 447.44377 
-L 872.255083 177.8088 
-L 872.898417 447.44377 
-L 873.685592 177.8088 
-L 874.32463 447.44377 
-L 875.106548 177.8088 
-L 875.741319 447.44377 
-L 876.518017 177.8088 
-L 877.148549 447.44377 
-L 877.92006 177.8088 
-L 878.546382 447.44377 
-L 879.312741 177.8088 
-L 879.934881 447.44377 
-L 880.696123 177.8088 
-L 881.314108 447.44377 
-L 882.070267 177.8088 
-L 882.684126 447.44377 
-L 883.435235 177.8088 
-L 884.044995 447.44377 
-L 884.791089 177.8088 
-L 885.396777 447.44377 
-L 886.137889 177.8088 
-L 886.739533 447.44377 
-L 887.475697 177.8088 
-L 888.073323 447.44377 
-L 888.804571 177.8088 
-L 889.398206 447.44377 
-L 890.124571 177.8088 
-L 890.714243 447.44377 
-L 891.435757 177.8088 
-L 892.021492 447.44377 
-L 892.738188 177.8088 
-L 893.320011 447.44377 
-L 894.031922 177.8088 
-L 894.60986 447.44377 
-L 895.317018 177.8088 
-L 895.891096 447.44377 
-L 896.593532 177.8088 
-L 897.163777 447.44377 
-L 897.861522 177.8088 
-L 898.427959 447.44377 
-L 899.121045 177.8088 
-L 899.6837 447.44377 
-L 900.372158 177.8088 
-L 900.931056 447.44377 
-L 901.614917 177.8088 
-L 902.170083 447.44377 
-L 902.849377 177.8088 
-L 903.400836 447.44377 
-L 904.075594 177.8088 
-L 904.623371 447.44377 
-L 905.293623 177.8088 
-L 905.837742 447.44377 
-L 906.503519 177.8088 
-L 907.044005 447.44377 
-L 907.705336 177.8088 
-L 908.242213 447.44377 
-L 908.899128 177.8088 
-L 909.432419 447.44377 
-L 910.084948 177.8088 
-L 910.614679 447.44377 
-L 911.26285 177.8088 
-L 911.789044 447.44377 
-L 912.432887 177.8088 
-L 912.955567 447.44377 
-L 913.595111 177.8088 
-L 914.1143 447.44377 
-L 914.749574 177.8088 
-L 915.265297 447.44377 
-L 915.896328 177.8088 
-L 916.408607 447.44377 
-L 917.035425 177.8088 
-L 917.544284 447.44377 
-L 918.166916 177.8088 
-L 918.672377 447.44377 
-L 919.290851 177.8088 
-L 919.792937 447.44377 
-L 920.407282 177.8088 
-L 920.906014 447.44377 
-L 921.516257 177.8088 
-L 922.011659 447.44377 
-L 922.617827 177.8088 
-L 923.109922 447.44377 
-L 923.712042 177.8088 
-L 924.20085 447.44377 
-L 924.79895 177.8088 
-L 925.284494 447.44377 
-L 925.8786 177.8088 
-L 926.360902 447.44377 
-L 926.951041 177.8088 
-L 927.430123 447.44377 
-L 928.016321 177.8088 
-L 928.492203 447.44377 
-L 929.074487 177.8088 
-L 929.547192 447.44377 
-L 930.125588 177.8088 
-L 930.595136 447.44377 
-L 931.16967 177.8088 
-L 931.636083 447.44377 
-L 932.20678 177.8088 
-L 932.670079 447.44377 
-L 933.236965 177.8088 
-L 933.69717 447.44377 
-L 934.260271 177.8088 
-L 934.717403 447.44377 
-L 935.276744 177.8088 
-L 935.730823 447.44377 
-L 936.286429 177.8088 
-L 936.737477 447.44377 
-L 937.289372 177.8088 
-L 937.737408 447.44377 
-L 938.285619 177.8088 
-L 938.730662 447.44377 
-L 939.275212 177.8088 
-L 939.717285 447.44377 
-L 940.258198 177.8088 
-L 940.697319 447.44377 
-L 941.23462 177.8088 
-L 941.670808 447.44377 
-L 942.204522 177.8088 
-L 942.637798 447.44377 
-L 943.167948 177.8088 
-L 943.59833 447.44377 
-L 944.12494 177.8088 
-L 944.552449 447.44377 
-L 945.075543 177.8088 
-L 945.500196 447.44377 
-L 946.019797 177.8088 
-L 946.441615 447.44377 
-L 946.957746 177.8088 
-L 947.376748 447.44377 
-L 947.889433 177.8088 
-L 948.305636 447.44377 
-L 948.814898 177.8088 
-L 949.228322 447.44377 
-L 949.734183 177.8088 
-L 950.144847 447.44377 
-L 950.64733 177.8088 
-L 951.055251 447.44377 
-L 951.554379 177.8088 
-L 951.959577 447.44377 
-L 952.455371 177.8088 
-L 952.857863 447.44377 
-L 953.350348 177.8088 
-L 953.750152 447.44377 
-L 954.239348 177.8088 
-L 954.636482 447.44377 
-L 955.122411 177.8088 
-L 955.516894 447.44377 
-L 955.999579 177.8088 
-L 956.391427 447.44377 
-L 956.870888 177.8088 
-L 957.260121 447.44377 
-L 957.73638 177.8088 
-L 958.123013 447.44377 
-L 958.596093 177.8088 
-L 958.980144 447.44377 
-L 959.450065 177.8088 
-L 959.831552 447.44377 
-L 960.298334 177.8088 
-L 960.677274 447.44377 
-L 961.14094 177.8088 
-L 961.517349 447.44377 
-L 961.977918 177.8088 
-L 962.351814 447.44377 
-L 962.809308 177.8088 
-L 963.180708 447.44377 
-L 963.635147 177.8088 
-L 964.004066 447.44377 
-L 964.455471 177.8088 
-L 964.821926 447.44377 
-L 965.270317 177.8088 
-L 965.634326 447.44377 
-L 966.079722 177.8088 
-L 966.4413 447.44377 
-L 966.883722 177.8088 
-L 967.242886 447.44377 
-L 967.682354 177.8088 
-L 968.03912 447.44377 
-L 968.475653 177.8088 
-L 968.830036 447.44377 
-L 969.263655 177.8088 
-L 969.615672 447.44377 
-L 970.046395 177.8088 
-L 970.396061 447.44377 
-L 970.823908 177.8088 
-L 971.171239 447.44377 
-L 971.596229 177.8088 
-L 971.941241 447.44377 
-L 972.363394 177.8088 
-L 972.706102 447.44377 
-L 973.125435 177.8088 
-L 973.465855 447.44377 
-L 973.882388 177.8088 
-L 974.220535 447.44377 
-L 974.634287 177.8088 
-L 974.970176 447.44377 
-L 975.381165 177.8088 
-L 975.71481 447.44377 
-L 976.123055 177.8088 
-L 976.454473 447.44377 
-L 976.859992 177.8088 
-L 977.189197 447.44377 
-L 977.592008 177.8088 
-L 977.919014 447.44377 
-L 978.319136 177.8088 
-L 978.643959 447.44377 
-L 979.041408 177.8088 
-L 979.364062 447.44377 
-L 979.758858 177.8088 
-L 980.079357 447.44377 
-L 980.471516 177.8088 
-L 980.789876 447.44377 
-L 981.179416 177.8088 
-L 981.49565 447.44377 
-L 981.88259 177.8088 
-L 982.196712 447.44377 
-L 982.581067 177.8088 
-L 982.893092 447.44377 
-L 983.274881 177.8088 
-L 983.584822 447.44377 
-L 983.964062 177.8088 
-L 984.271933 447.44377 
-L 984.648641 177.8088 
-L 984.954456 447.44377 
-L 985.328648 177.8088 
-L 985.632422 447.44377 
-L 986.004115 177.8088 
-L 986.30586 447.44377 
-L 986.675072 177.8088 
-L 986.974802 447.44377 
-L 987.341548 177.8088 
-L 987.639276 447.44377 
-L 988.003574 177.8088 
-L 988.299314 447.44377 
-L 988.661179 177.8088 
-L 988.954945 447.44377 
-L 989.314393 177.8088 
-L 989.606197 447.44377 
-L 989.963245 177.8088 
-L 990.253101 447.44377 
-L 990.607765 177.8088 
-L 990.895685 447.44377 
-L 991.247981 177.8088 
-L 991.533978 447.44377 
-L 991.883922 177.8088 
-L 992.16801 447.44377 
-L 992.515616 177.8088 
-L 992.797807 447.44377 
-L 993.143092 177.8088 
-L 993.423399 447.44377 
-L 993.766379 177.8088 
-L 994.044814 447.44377 
-L 994.385503 177.8088 
-L 994.662079 447.44377 
-L 995.000494 177.8088 
-L 995.275222 447.44377 
-L 995.611377 177.8088 
-L 995.884272 447.44377 
-L 996.218182 177.8088 
-L 996.218182 177.8088 
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #4c72b0; stroke-width: 1.5; stroke-linecap: round"/>
+    <path d="M 184.581818 447.472913 
+L 187.560091 177.816004 
+L 189.977321 447.472913 
+L 192.937778 177.816004 
+L 195.340548 447.472913 
+L 198.283295 177.816004 
+L 200.671692 447.472913 
+L 203.596835 177.816004 
+L 205.970944 447.472913 
+L 208.878589 177.816004 
+L 211.238496 447.472913 
+L 214.128747 177.816004 
+L 216.474537 447.472913 
+L 219.347498 177.816004 
+L 221.679255 447.472913 
+L 224.53503 177.816004 
+L 226.852839 447.472913 
+L 229.69153 177.816004 
+L 231.995473 447.472913 
+L 234.817183 177.816004 
+L 237.107344 447.472913 
+L 239.912175 177.816004 
+L 242.188636 447.472913 
+L 244.976687 177.816004 
+L 247.23953 447.472913 
+L 250.010904 177.816004 
+L 252.26021 447.472913 
+L 255.015005 177.816004 
+L 257.250856 447.472913 
+L 259.989171 177.816004 
+L 262.211647 447.472913 
+L 264.933582 177.816004 
+L 267.142763 447.472913 
+L 269.848415 177.816004 
+L 272.04438 447.472913 
+L 274.733846 177.816004 
+L 276.916675 447.472913 
+L 279.590053 177.816004 
+L 281.759824 447.472913 
+L 284.41721 177.816004 
+L 286.574001 447.472913 
+L 289.21549 177.816004 
+L 291.359379 447.472913 
+L 293.985066 177.816004 
+L 296.11613 447.472913 
+L 298.726111 177.816004 
+L 300.844427 447.472913 
+L 303.438794 177.816004 
+L 305.544438 447.472913 
+L 308.123285 177.816004 
+L 310.216333 447.472913 
+L 312.779754 177.816004 
+L 314.860281 447.472913 
+L 317.408367 177.816004 
+L 319.476448 447.472913 
+L 322.009291 177.816004 
+L 324.065001 447.472913 
+L 326.582693 177.816004 
+L 328.626105 447.472913 
+L 331.128736 177.816004 
+L 333.159924 447.472913 
+L 335.647584 177.816004 
+L 337.666622 447.472913 
+L 340.1394 177.816004 
+L 342.14636 447.472913 
+L 344.604345 177.816004 
+L 346.5993 447.472913 
+L 349.042581 177.816004 
+L 351.025602 447.472913 
+L 353.454267 177.816004 
+L 355.425425 447.472913 
+L 357.839562 177.816004 
+L 359.798929 447.472913 
+L 362.198624 177.816004 
+L 364.146269 447.472913 
+L 366.53161 177.816004 
+L 368.467604 447.472913 
+L 370.838675 177.816004 
+L 372.763088 447.472913 
+L 375.119976 177.816004 
+L 377.032876 447.472913 
+L 379.375665 177.816004 
+L 381.277122 447.472913 
+L 383.605896 177.816004 
+L 385.495979 447.472913 
+L 387.810822 177.816004 
+L 389.689598 447.472913 
+L 391.990593 177.816004 
+L 393.85813 447.472913 
+L 396.145361 177.816004 
+L 398.001726 447.472913 
+L 400.275274 177.816004 
+L 402.120535 447.472913 
+L 404.380483 177.816004 
+L 406.214705 447.472913 
+L 408.461133 177.816004 
+L 410.284383 447.472913 
+L 412.517373 177.816004 
+L 414.329716 447.472913 
+L 416.549348 177.816004 
+L 418.350849 447.472913 
+L 420.557203 177.816004 
+L 422.347928 447.472913 
+L 424.541083 177.816004 
+L 426.321096 447.472913 
+L 428.501131 177.816004 
+L 430.270496 447.472913 
+L 432.43749 177.816004 
+L 434.19627 447.472913 
+L 436.350302 177.816004 
+L 438.09856 447.472913 
+L 440.239706 177.816004 
+L 441.977506 447.472913 
+L 444.105844 177.816004 
+L 445.833249 447.472913 
+L 447.948854 177.816004 
+L 449.665925 447.472913 
+L 451.768875 177.816004 
+L 453.475675 447.472913 
+L 455.566045 177.816004 
+L 457.262634 447.472913 
+L 459.340499 177.816004 
+L 461.026939 447.472913 
+L 463.092375 177.816004 
+L 464.768726 447.472913 
+L 466.821806 177.816004 
+L 468.48813 447.472913 
+L 470.528928 177.816004 
+L 472.185283 447.472913 
+L 474.213873 177.816004 
+L 475.86032 447.472913 
+L 477.876775 177.816004 
+L 479.513373 447.472913 
+L 481.517765 177.816004 
+L 483.144572 447.472913 
+L 485.136974 177.816004 
+L 486.75405 447.472913 
+L 488.734533 177.816004 
+L 490.341935 447.472913 
+L 492.310571 177.816004 
+L 493.908358 447.472913 
+L 495.865217 177.816004 
+L 497.453446 447.472913 
+L 499.398598 177.816004 
+L 500.977326 447.472913 
+L 502.910843 177.816004 
+L 504.480127 447.472913 
+L 506.402077 177.816004 
+L 507.961974 447.472913 
+L 509.872427 177.816004 
+L 511.422992 447.472913 
+L 513.322016 177.816004 
+L 514.863305 447.472913 
+L 516.75097 177.816004 
+L 518.283039 447.472913 
+L 520.159411 177.816004 
+L 521.682316 447.472913 
+L 523.547463 177.816004 
+L 525.061257 447.472913 
+L 526.915248 177.816004 
+L 528.419986 447.472913 
+L 530.262886 177.816004 
+L 531.758623 447.472913 
+L 533.590498 177.816004 
+L 535.077287 447.472913 
+L 536.898204 177.816004 
+L 538.376099 447.472913 
+L 540.186123 177.816004 
+L 541.655178 447.472913 
+L 543.454374 177.816004 
+L 544.91464 447.472913 
+L 546.703073 177.816004 
+L 548.154604 447.472913 
+L 549.932339 177.816004 
+L 551.375187 447.472913 
+L 553.142287 177.816004 
+L 554.576504 447.472913 
+L 556.333033 177.816004 
+L 557.75867 447.472913 
+L 559.504691 177.816004 
+L 560.9218 447.472913 
+L 562.657377 177.816004 
+L 564.066008 447.472913 
+L 565.791203 177.816004 
+L 567.191408 447.472913 
+L 568.906282 177.816004 
+L 570.29811 447.472913 
+L 572.002726 177.816004 
+L 573.386229 447.472913 
+L 575.080647 177.816004 
+L 576.455874 447.472913 
+L 578.140156 177.816004 
+L 579.507156 447.472913 
+L 581.181363 177.816004 
+L 582.540185 447.472913 
+L 584.204376 177.816004 
+L 585.55507 447.472913 
+L 587.209306 177.816004 
+L 588.55192 447.472913 
+L 590.196261 177.816004 
+L 591.530843 447.472913 
+L 593.165347 177.816004 
+L 594.491945 447.472913 
+L 596.116672 177.816004 
+L 597.435334 447.472913 
+L 599.050341 177.816004 
+L 600.361116 447.472913 
+L 601.966461 177.816004 
+L 603.269395 447.472913 
+L 604.865137 177.816004 
+L 606.160276 447.472913 
+L 607.746473 177.816004 
+L 609.033864 447.472913 
+L 610.610572 177.816004 
+L 611.890263 447.472913 
+L 613.457538 177.816004 
+L 614.729573 447.472913 
+L 616.287474 177.816004 
+L 617.551899 447.472913 
+L 619.10048 177.816004 
+L 620.357342 447.472913 
+L 621.896659 177.816004 
+L 623.146002 447.472913 
+L 624.676111 177.816004 
+L 625.91798 447.472913 
+L 627.438936 177.816004 
+L 628.673376 447.472913 
+L 630.185233 177.816004 
+L 631.412289 447.472913 
+L 632.915102 177.816004 
+L 634.134818 447.472913 
+L 635.628641 177.816004 
+L 636.84106 447.472913 
+L 638.325947 177.816004 
+L 639.531113 447.472913 
+L 641.007117 177.816004 
+L 642.205074 447.472913 
+L 643.672249 177.816004 
+L 644.863039 447.472913 
+L 646.321437 177.816004 
+L 647.505105 447.472913 
+L 648.954778 177.816004 
+L 650.131365 447.472913 
+L 651.572366 177.816004 
+L 652.741914 447.472913 
+L 654.174296 177.816004 
+L 655.336847 447.472913 
+L 656.76066 177.816004 
+L 657.916257 447.472913 
+L 659.331553 177.816004 
+L 660.480237 447.472913 
+L 661.887066 177.816004 
+L 663.028879 447.472913 
+L 664.427292 177.816004 
+L 665.562275 447.472913 
+L 666.952323 177.816004 
+L 668.080515 447.472913 
+L 669.462248 177.816004 
+L 670.583692 447.472913 
+L 671.957159 177.816004 
+L 673.071894 447.472913 
+L 674.437145 177.816004 
+L 675.545212 447.472913 
+L 676.902295 177.816004 
+L 678.003734 447.472913 
+L 679.352699 177.816004 
+L 680.447549 447.472913 
+L 681.788444 177.816004 
+L 682.876744 447.472913 
+L 684.209619 177.816004 
+L 685.291409 447.472913 
+L 686.61631 177.816004 
+L 687.691628 447.472913 
+L 689.008604 177.816004 
+L 690.077489 447.472913 
+L 691.386586 177.816004 
+L 692.449078 447.472913 
+L 693.750344 177.816004 
+L 694.80648 447.472913 
+L 696.099962 177.816004 
+L 697.149779 447.472913 
+L 698.435524 177.816004 
+L 699.479061 447.472913 
+L 700.757114 177.816004 
+L 701.794409 447.472913 
+L 703.064816 177.816004 
+L 704.095906 447.472913 
+L 705.358714 177.816004 
+L 706.383636 447.472913 
+L 707.638889 177.816004 
+L 708.65768 447.472913 
+L 709.905424 177.816004 
+L 710.918121 447.472913 
+L 712.158401 177.816004 
+L 713.165039 447.472913 
+L 714.3979 177.816004 
+L 715.398516 447.472913 
+L 716.624002 177.816004 
+L 717.618633 447.472913 
+L 718.836788 177.816004 
+L 719.825468 447.472913 
+L 721.036336 177.816004 
+L 722.019102 447.472913 
+L 723.222727 177.816004 
+L 724.199614 447.472913 
+L 725.396038 177.816004 
+L 726.367082 447.472913 
+L 727.556349 177.816004 
+L 728.521583 447.472913 
+L 729.703736 177.816004 
+L 730.663197 447.472913 
+L 731.838277 177.816004 
+L 732.791998 447.472913 
+L 733.96005 177.816004 
+L 734.908066 447.472913 
+L 736.06913 177.816004 
+L 737.011475 447.472913 
+L 738.165593 177.816004 
+L 739.102301 447.472913 
+L 740.249515 177.816004 
+L 741.180619 447.472913 
+L 742.320971 177.816004 
+L 743.246505 447.472913 
+L 744.380035 177.816004 
+L 745.300033 447.472913 
+L 746.426782 177.816004 
+L 747.341276 447.472913 
+L 748.461285 177.816004 
+L 749.370308 447.472913 
+L 750.483617 177.816004 
+L 751.387203 447.472913 
+L 752.493852 177.816004 
+L 753.392032 447.472913 
+L 754.492061 177.816004 
+L 755.384868 447.472913 
+L 756.478317 177.816004 
+L 757.365783 447.472913 
+L 758.452691 177.816004 
+L 759.334848 447.472913 
+L 760.415254 177.816004 
+L 761.292134 447.472913 
+L 762.366077 177.816004 
+L 763.237711 447.472913 
+L 764.305229 177.816004 
+L 765.17165 447.472913 
+L 766.232782 177.816004 
+L 767.09402 447.472913 
+L 768.148804 177.816004 
+L 769.00489 447.472913 
+L 770.053364 177.816004 
+L 770.904329 447.472913 
+L 771.946531 177.816004 
+L 772.792405 447.472913 
+L 773.828373 177.816004 
+L 774.669187 447.472913 
+L 775.698957 177.816004 
+L 776.534741 447.472913 
+L 777.558352 177.816004 
+L 778.389136 447.472913 
+L 779.406623 177.816004 
+L 780.232438 447.472913 
+L 781.243838 177.816004 
+L 782.064713 447.472913 
+L 783.070063 177.816004 
+L 783.886027 447.472913 
+L 784.885363 177.816004 
+L 785.696446 447.472913 
+L 786.689804 177.816004 
+L 787.496034 447.472913 
+L 788.48345 177.816004 
+L 789.284858 447.472913 
+L 790.266367 177.816004 
+L 791.062981 447.472913 
+L 792.038618 177.816004 
+L 792.830466 447.472913 
+L 793.800267 177.816004 
+L 794.587379 447.472913 
+L 795.551378 177.816004 
+L 796.333781 447.472913 
+L 797.292014 177.816004 
+L 798.069737 447.472913 
+L 799.022237 177.816004 
+L 799.795307 447.472913 
+L 800.74211 177.816004 
+L 801.510556 447.472913 
+L 802.451695 177.816004 
+L 803.215543 447.472913 
+L 804.151052 177.816004 
+L 804.910331 447.472913 
+L 805.840244 177.816004 
+L 806.594981 447.472913 
+L 807.519331 177.816004 
+L 808.269553 447.472913 
+L 809.188374 177.816004 
+L 809.934108 447.472913 
+L 810.847432 177.816004 
+L 811.588705 447.472913 
+L 812.496565 177.816004 
+L 813.233404 447.472913 
+L 814.135834 177.816004 
+L 814.868265 447.472913 
+L 815.765296 177.816004 
+L 816.493346 447.472913 
+L 817.385011 177.816004 
+L 818.108705 447.472913 
+L 818.995036 177.816004 
+L 819.714401 447.472913 
+L 820.59543 177.816004 
+L 821.310492 447.472913 
+L 822.18625 177.816004 
+L 822.897035 447.472913 
+L 823.767554 177.816004 
+L 824.474087 447.472913 
+L 825.339399 177.816004 
+L 826.041704 447.472913 
+L 826.90184 177.816004 
+L 827.599945 447.472913 
+L 828.454935 177.816004 
+L 829.148864 447.472913 
+L 829.998739 177.816004 
+L 830.688517 447.472913 
+L 831.533308 177.816004 
+L 832.218959 447.472913 
+L 833.058697 177.816004 
+L 833.740247 447.472913 
+L 834.574961 177.816004 
+L 835.252434 447.472913 
+L 836.082155 177.816004 
+L 836.755575 447.472913 
+L 837.580333 177.816004 
+L 838.249724 447.472913 
+L 839.069548 177.816004 
+L 839.734935 447.472913 
+L 840.549855 177.816004 
+L 841.211261 447.472913 
+L 842.021306 177.816004 
+L 842.678756 447.472913 
+L 843.483955 177.816004 
+L 844.137472 447.472913 
+L 844.937854 177.816004 
+L 845.587462 447.472913 
+L 846.383056 177.816004 
+L 847.028778 447.472913 
+L 847.819613 177.816004 
+L 848.461472 447.472913 
+L 849.247576 177.816004 
+L 849.885596 447.472913 
+L 850.666997 177.816004 
+L 851.3012 447.472913 
+L 852.077927 177.816004 
+L 852.708336 447.472913 
+L 853.480417 177.816004 
+L 854.107054 447.472913 
+L 854.874517 177.816004 
+L 855.497406 447.472913 
+L 856.260277 177.816004 
+L 856.87944 447.472913 
+L 857.637747 177.816004 
+L 858.253206 447.472913 
+L 859.006978 177.816004 
+L 859.618755 447.472913 
+L 860.368017 177.816004 
+L 860.976134 447.472913 
+L 861.720915 177.816004 
+L 862.325394 447.472913 
+L 863.065719 177.816004 
+L 863.666583 447.472913 
+L 864.402479 177.816004 
+L 864.999748 447.472913 
+L 865.731242 177.816004 
+L 866.324938 447.472913 
+L 867.052056 177.816004 
+L 867.642201 447.472913 
+L 868.36497 177.816004 
+L 868.951584 447.472913 
+L 869.670029 177.816004 
+L 870.253134 447.472913 
+L 870.967281 177.816004 
+L 871.546898 447.472913 
+L 872.256773 177.816004 
+L 872.832923 447.472913 
+L 873.538551 177.816004 
+L 874.111254 447.472913 
+L 874.812662 177.816004 
+L 875.381939 447.472913 
+L 876.07915 177.816004 
+L 876.645022 447.472913 
+L 877.338063 177.816004 
+L 877.900549 447.472913 
+L 878.589444 177.816004 
+L 879.148566 447.472913 
+L 879.83334 177.816004 
+L 880.389117 447.472913 
+L 881.069794 177.816004 
+L 881.622247 447.472913 
+L 882.298852 177.816004 
+L 882.848 447.472913 
+L 883.520558 177.816004 
+L 884.066421 447.472913 
+L 884.734955 177.816004 
+L 885.277553 447.472913 
+L 885.942088 177.816004 
+L 886.481439 447.472913 
+L 887.142 177.816004 
+L 887.678125 447.472913 
+L 888.334733 177.816004 
+L 888.867651 447.472913 
+L 889.520332 177.816004 
+L 890.050062 447.472913 
+L 890.698838 177.816004 
+L 891.225399 447.472913 
+L 891.870294 177.816004 
+L 892.393705 447.472913 
+L 893.034743 177.816004 
+L 893.555023 447.472913 
+L 894.192226 177.816004 
+L 894.709393 447.472913 
+L 895.342784 177.816004 
+L 895.856858 447.472913 
+L 896.48646 177.816004 
+L 896.997459 447.472913 
+L 897.623294 177.816004 
+L 898.131236 447.472913 
+L 898.753328 177.816004 
+L 899.258231 447.472913 
+L 899.876602 177.816004 
+L 900.378484 447.472913 
+L 900.993156 177.816004 
+L 901.492036 447.472913 
+L 902.103031 177.816004 
+L 902.598927 447.472913 
+L 903.206266 177.816004 
+L 903.699196 447.472913 
+L 904.302902 177.816004 
+L 904.792883 447.472913 
+L 905.392978 177.816004 
+L 905.880028 447.472913 
+L 906.476533 177.816004 
+L 906.960669 447.472913 
+L 907.553606 177.816004 
+L 908.034846 447.472913 
+L 908.624235 177.816004 
+L 909.102597 447.472913 
+L 909.68846 177.816004 
+L 910.16396 447.472913 
+L 910.746319 177.816004 
+L 911.218975 447.472913 
+L 911.79785 177.816004 
+L 912.267678 447.472913 
+L 912.84309 177.816004 
+L 913.310108 447.472913 
+L 913.882078 177.816004 
+L 914.346302 447.472913 
+L 914.91485 177.816004 
+L 915.376297 447.472913 
+L 915.941445 177.816004 
+L 916.400131 447.472913 
+L 916.961898 177.816004 
+L 917.41784 447.472913 
+L 917.976246 177.816004 
+L 918.429461 447.472913 
+L 918.984527 177.816004 
+L 919.435031 447.472913 
+L 919.986776 177.816004 
+L 920.434585 447.472913 
+L 920.98303 177.816004 
+L 921.42816 447.472913 
+L 921.973324 177.816004 
+L 922.415791 447.472913 
+L 922.957694 177.816004 
+L 923.397514 447.472913 
+L 923.936175 177.816004 
+L 924.373364 447.472913 
+L 924.908803 177.816004 
+L 925.343377 447.472913 
+L 925.875612 177.816004 
+L 926.307587 447.472913 
+L 926.836639 177.816004 
+L 927.266029 447.472913 
+L 927.791916 177.816004 
+L 928.218737 447.472913 
+L 928.741478 177.816004 
+L 929.165746 447.472913 
+L 929.685361 177.816004 
+L 930.107091 447.472913 
+L 930.623597 177.816004 
+L 931.042804 447.472913 
+L 931.55622 177.816004 
+L 931.972919 447.472913 
+L 932.483264 177.816004 
+L 932.897471 447.472913 
+L 933.404763 177.816004 
+L 933.816492 447.472913 
+L 934.320749 177.816004 
+L 934.730015 447.472913 
+L 935.231255 177.816004 
+L 935.638073 447.472913 
+L 936.136315 177.816004 
+L 936.540699 447.472913 
+L 937.035961 177.816004 
+L 937.437926 447.472913 
+L 937.930225 177.816004 
+L 938.329786 447.472913 
+L 938.81914 177.816004 
+L 939.21631 447.472913 
+L 939.702737 177.816004 
+L 940.097531 447.472913 
+L 940.581048 177.816004 
+L 940.97348 447.472913 
+L 941.454105 177.816004 
+L 941.84419 447.472913 
+L 942.321939 177.816004 
+L 942.709691 447.472913 
+L 943.184582 177.816004 
+L 943.570014 447.472913 
+L 944.042064 177.816004 
+L 944.425191 447.472913 
+L 944.894417 177.816004 
+L 945.275252 447.472913 
+L 945.741672 177.816004 
+L 946.120228 447.472913 
+L 946.583857 177.816004 
+L 946.960149 447.472913 
+L 947.421005 177.816004 
+L 947.795046 447.472913 
+L 948.253145 177.816004 
+L 948.624948 447.472913 
+L 949.080307 177.816004 
+L 949.449886 447.472913 
+L 949.902521 177.816004 
+L 950.269889 447.472913 
+L 950.719816 177.816004 
+L 951.084987 447.472913 
+L 951.532222 177.816004 
+L 951.895208 447.472913 
+L 952.339768 177.816004 
+L 952.700583 447.472913 
+L 953.142484 177.816004 
+L 953.50114 447.472913 
+L 953.940397 177.816004 
+L 954.296908 447.472913 
+L 954.733538 177.816004 
+L 955.087916 447.472913 
+L 955.521934 177.816004 
+L 955.874192 447.472913 
+L 956.305613 177.816004 
+L 956.655764 447.472913 
+L 957.084605 177.816004 
+L 957.432661 447.472913 
+L 957.858936 177.816004 
+L 958.20491 447.472913 
+L 958.628635 177.816004 
+L 958.97254 447.472913 
+L 959.39373 177.816004 
+L 959.735578 447.472913 
+L 960.154248 177.816004 
+L 960.494051 447.472913 
+L 960.910217 177.816004 
+L 961.247987 447.472913 
+L 961.661663 177.816004 
+L 961.997413 447.472913 
+L 962.408615 177.816004 
+L 962.742355 447.472913 
+L 963.151097 177.816004 
+L 963.482842 447.472913 
+L 963.889139 177.816004 
+L 964.218898 447.472913 
+L 964.622765 177.816004 
+L 964.950552 447.472913 
+L 965.352003 177.816004 
+L 965.677829 447.472913 
+L 966.076878 177.816004 
+L 966.400755 447.472913 
+L 966.797417 177.816004 
+L 967.119356 447.472913 
+L 967.513646 177.816004 
+L 967.833659 447.472913 
+L 968.22559 177.816004 
+L 968.543689 447.472913 
+L 968.933275 177.816004 
+L 969.249471 447.472913 
+L 969.636727 177.816004 
+L 969.951032 447.472913 
+L 970.33597 177.816004 
+L 970.648395 447.472913 
+L 971.031031 177.816004 
+L 971.341587 447.472913 
+L 971.721934 177.816004 
+L 972.030632 447.472913 
+L 972.408704 177.816004 
+L 972.715555 447.472913 
+L 973.091365 177.816004 
+L 973.396381 447.472913 
+L 973.769943 177.816004 
+L 974.073134 447.472913 
+L 974.444462 177.816004 
+L 974.745839 447.472913 
+L 975.114945 177.816004 
+L 975.41452 447.472913 
+L 975.781418 177.816004 
+L 976.0792 447.472913 
+L 976.443903 177.816004 
+L 976.739905 447.472913 
+L 977.102426 177.816004 
+L 977.396657 447.472913 
+L 977.757009 177.816004 
+L 978.04948 447.472913 
+L 978.407677 177.816004 
+L 978.698398 447.472913 
+L 979.054452 177.816004 
+L 979.343434 447.472913 
+L 979.697358 177.816004 
+L 979.984611 447.472913 
+L 980.336419 177.816004 
+L 980.621953 447.472913 
+L 980.971656 177.816004 
+L 981.255482 447.472913 
+L 981.603093 177.816004 
+L 981.885222 447.472913 
+L 982.230753 177.816004 
+L 982.511194 447.472913 
+L 982.854658 177.816004 
+L 983.133422 447.472913 
+L 983.474831 177.816004 
+L 983.751927 447.472913 
+L 984.091295 177.816004 
+L 984.366733 447.472913 
+L 984.70407 177.816004 
+L 984.97786 447.472913 
+L 985.31318 177.816004 
+L 985.585332 447.472913 
+L 985.918646 177.816004 
+L 986.18917 447.472913 
+L 986.52049 177.816004 
+L 986.789396 447.472913 
+L 987.118733 177.816004 
+L 987.386031 447.472913 
+L 987.713398 177.816004 
+L 987.979097 447.472913 
+L 988.304506 177.816004 
+L 988.568615 447.472913 
+L 988.892078 177.816004 
+L 989.154607 447.472913 
+L 989.476134 177.816004 
+L 989.737093 447.472913 
+L 990.056697 177.816004 
+L 990.316095 447.472913 
+L 990.633787 177.816004 
+L 990.891633 447.472913 
+L 991.207425 177.816004 
+L 991.463728 447.472913 
+L 991.777631 177.816004 
+L 992.032401 447.472913 
+L 992.344426 177.816004 
+L 992.597672 447.472913 
+L 992.90783 177.816004 
+L 993.159562 447.472913 
+L 993.467865 177.816004 
+L 993.71809 447.472913 
+L 994.024548 177.816004 
+L 994.273277 447.472913 
+L 994.577902 177.816004 
+L 994.825143 447.472913 
+L 995.127946 177.816004 
+L 995.373708 447.472913 
+L 995.674699 177.816004 
+L 995.918991 447.472913 
+L 996.218182 177.816004 
+L 996.218182 177.816004 
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #4c72b0; stroke-width: 1.5; stroke-linecap: round"/>
    </g>
    <g id="line2d_14">
     <path d="M 184.581818 89.28 
+L 187.560091 90.618847 
+L 189.977321 91.96039 
+L 192.937778 93.291147 
+L 195.340548 94.625049 
+L 198.283295 95.947717 
+L 200.671692 97.27353 
+L 203.596835 98.588107 
+L 205.970944 99.905831 
+L 208.878589 101.213217 
+L 211.238496 102.522851 
+L 214.128747 103.822148 
+L 216.474537 105.124141 
+L 219.347498 106.415798 
+L 221.679255 107.709701 
+L 224.53503 108.993718 
+L 226.852839 110.279981 
+L 229.69153 111.555908 
+L 231.995473 112.834531 
+L 234.817183 114.103267 
+L 237.107344 115.37425 
+L 239.912175 116.635345 
+L 242.188636 117.898688 
+L 244.976687 119.152143 
+L 247.23953 120.407845 
+L 250.010904 121.65366 
+L 252.26021 122.902172 
+L 255.015005 124.140346 
+L 257.250856 125.381218 
+L 259.989171 126.612201 
+L 262.211647 127.845882 
+L 264.933582 129.069675 
+L 267.142763 130.295715 
+L 269.848415 131.511867 
+L 272.04438 132.730717 
+L 274.733846 133.939679 
+L 276.916675 135.151337 
+L 279.590053 136.353108 
+L 281.759824 137.557126 
+L 284.41721 138.751706 
+L 286.574001 139.948983 
+L 289.21549 141.136372 
+L 291.359379 142.326008 
+L 293.985066 143.506656 
+L 296.11613 144.689102 
+L 298.726111 145.862559 
+L 300.844427 147.038263 
+L 303.438794 148.204529 
+L 305.544438 149.373042 
+L 308.123285 150.532567 
+L 310.216333 151.694339 
+L 312.779754 152.846673 
+L 314.860281 154.001254 
+L 317.408367 155.146846 
+L 319.476448 156.294686 
+L 322.009291 157.433087 
+L 324.065001 158.574186 
+L 326.582693 159.705846 
+L 328.626105 160.840202 
+L 331.128736 161.965121 
+L 333.159924 163.092287 
+L 335.647584 164.210464 
+L 337.666622 165.331338 
+L 340.1394 166.442774 
+L 342.14636 167.556907 
+L 344.604345 168.661601 
+L 346.5993 169.768992 
+L 349.042581 170.867395 
+L 351.025602 171.968044 
+L 353.454267 173.059705 
+L 355.425425 174.153613 
+L 357.839562 175.238983 
+L 359.798929 176.326599 
+L 362.198624 177.405226 
+L 364.146269 178.486101 
+L 366.53161 179.558437 
+L 368.467604 180.63302 
+L 370.838675 181.698614 
+L 372.763088 182.766905 
+L 375.119976 183.826207 
+L 377.032876 184.888206 
+L 379.375665 185.941216 
+L 381.277122 186.996473 
+L 383.605896 188.043641 
+L 385.495979 189.092606 
+L 387.810822 190.133033 
+L 389.689598 191.175706 
+L 391.990593 192.21029 
+L 393.85813 193.246671 
+L 396.145361 194.274963 
+L 398.001726 195.305052 
+L 400.275274 196.327501 
+L 402.120535 197.351299 
+L 404.380483 198.367456 
+L 406.214705 199.385411 
+L 408.461133 200.395276 
+L 410.284383 201.406938 
+L 412.517373 202.410961 
+L 414.329716 203.416781 
+L 416.549348 204.414512 
+L 418.350849 205.41449 
+L 420.557203 206.406378 
+L 422.347928 207.400063 
+L 424.541083 208.386109 
+L 426.321096 209.373952 
+L 428.501131 210.354155 
+L 430.270496 211.336155 
+L 432.43749 212.310066 
+L 434.19627 213.286224 
+L 436.350302 214.254742 
+L 438.09856 215.225057 
+L 440.239706 216.187733 
+L 441.977506 217.152205 
+L 444.105844 218.108589 
+L 445.833249 219.067668 
+L 447.948854 220.018658 
+L 449.665925 220.971446 
+L 451.768875 221.917043 
+L 453.475675 222.863988 
+L 455.566045 223.803743 
+L 457.262634 224.745744 
+L 459.340499 225.679656 
+L 461.026939 226.615815 
+L 463.092375 227.544333 
+L 464.768726 228.47465 
+L 466.821806 229.397326 
+L 468.48813 230.322249 
+L 470.528928 231.239532 
+L 472.185283 232.159062 
+L 474.213873 233.070952 
+L 475.86032 233.984639 
+L 477.876775 234.891136 
+L 479.513373 235.79943 
+L 481.517765 236.700534 
+L 483.144572 237.603435 
+L 485.136974 238.499145 
+L 486.75405 239.396653 
+L 488.734533 240.286971 
+L 490.341935 241.179086 
+L 492.310571 242.06401 
+L 493.908358 242.950731 
+L 495.865217 243.830712 
+L 497.453446 244.71204 
+L 499.398598 245.586628 
+L 500.977326 246.462563 
+L 502.910843 247.331757 
+L 504.480127 248.202749 
+L 506.402077 249.067 
+L 507.961974 249.932598 
+L 509.872427 250.791456 
+L 511.422992 251.65211 
+L 513.322016 252.505575 
+L 514.863305 253.361286 
+L 516.75097 254.209806 
+L 518.283039 255.060124 
+L 520.159411 255.903701 
+L 521.682316 256.748626 
+L 523.547463 257.587259 
+L 525.061257 258.42724 
+L 526.915248 259.26093 
+L 528.419986 260.095967 
+L 530.262886 260.924263 
+L 531.758623 261.754357 
+L 533.590498 262.578159 
+L 535.077287 263.403309 
+L 536.898204 264.221718 
+L 538.376099 265.041924 
+L 540.186123 265.855839 
+L 541.655178 266.671102 
+L 543.454374 267.480072 
+L 544.91464 268.290391 
+L 546.703073 269.094418 
+L 548.154604 269.899794 
+L 549.932339 270.698877 
+L 551.375187 271.499758 
+L 553.142287 272.294347 
+L 554.576504 273.090284 
+L 556.333033 273.87993 
+L 557.75867 274.670923 
+L 559.504691 275.456074 
+L 560.9218 276.242574 
+L 562.657377 277.022781 
+L 564.066008 277.804786 
+L 565.791203 278.580049 
+L 567.191408 279.357111 
+L 568.906282 280.12833 
+L 570.29811 280.900447 
+L 572.002726 281.666722 
+L 573.386229 282.434795 
+L 575.080647 283.196576 
+L 576.455874 283.959705 
+L 578.140156 284.716991 
+L 579.507156 285.475626 
+L 581.181363 286.228418 
+L 582.540185 286.982559 
+L 584.204376 287.730407 
+L 585.55507 288.480054 
+L 587.209306 289.223857 
+L 588.55192 289.969009 
+L 590.196261 290.708318 
+L 591.530843 291.448976 
+L 593.165347 292.183791 
+L 594.491945 292.919955 
+L 596.116672 293.650275 
+L 597.435334 294.381944 
+L 599.050341 295.10822 
+L 600.361116 295.835845 
+L 601.966461 296.557177 
+L 603.269395 297.280307 
+L 604.865137 297.998044 
+L 606.160276 298.716679 
+L 607.746473 299.429922 
+L 609.033864 300.144063 
+L 610.610572 300.852811 
+L 611.890263 301.563357 
+L 613.457538 302.267611 
+L 614.729573 302.973663 
+L 616.287474 303.674322 
+L 617.551899 304.375879 
+L 619.10048 305.072043 
+L 620.357342 305.769556 
+L 621.896659 306.461675 
+L 623.146002 307.155143 
+L 624.676111 307.842768 
+L 625.91798 308.532191 
+L 627.438936 309.215771 
+L 628.673376 309.901149 
+L 630.185233 310.580684 
+L 631.412289 311.261568 
+L 632.915102 311.937059 
+L 634.134818 312.614347 
+L 635.628641 313.285793 
+L 636.84106 313.958587 
+L 638.325947 314.625987 
+L 639.531113 315.295186 
+L 641.007117 315.958542 
+L 642.205074 316.623246 
+L 643.672249 317.283007 
+L 644.863039 317.943666 
+L 646.321437 318.599382 
+L 647.505105 319.256446 
+L 648.954778 319.908117 
+L 650.131365 320.561136 
+L 651.572366 321.208762 
+L 652.741914 321.858186 
+L 654.174296 322.501767 
+L 655.336847 323.147146 
+L 656.76066 323.787132 
+L 657.916257 324.428466 
+L 661.887066 326.33494 
+L 663.028879 326.968634 
+L 666.952323 328.851738 
+L 668.080515 329.478241 
+L 671.957159 331.338873 
+L 673.071894 331.957736 
+L 676.902295 333.796347 
+L 678.003734 334.408018 
+L 681.788444 336.224607 
+L 682.876744 336.828639 
+L 686.61631 338.624104 
+L 687.691628 339.220945 
+L 691.386586 340.994388 
+L 692.449078 341.584038 
+L 696.099962 343.336808 
+L 697.149779 343.919267 
+L 700.757114 345.651363 
+L 701.794409 346.227081 
+L 705.358714 347.938054 
+L 706.383636 348.50658 
+L 709.905424 350.197329 
+L 710.918121 350.759564 
+L 714.3979 352.430089 
+L 715.398516 352.985132 
+L 718.836788 354.635882 
+L 719.825468 355.184634 
+L 723.222727 356.815609 
+L 726.367082 358.434449 
+L 729.703736 360.036211 
+L 732.791998 361.626288 
+L 736.06913 363.199287 
+L 739.102301 364.76105 
+L 742.320971 366.306184 
+L 745.300033 367.840082 
+L 748.461285 369.357801 
+L 751.387203 370.864284 
+L 754.492061 372.354588 
+L 757.365783 373.834106 
+L 760.415254 375.298343 
+L 763.237711 376.751344 
+L 766.232782 378.189065 
+L 769.00489 379.616449 
+L 771.946531 381.028552 
+L 774.669187 382.430319 
+L 777.558352 383.817254 
+L 780.232438 385.194302 
+L 783.070063 386.556519 
+L 785.696446 387.908848 
+L 788.48345 389.246796 
+L 791.062981 390.574856 
+L 793.800267 391.888984 
+L 796.333781 393.193225 
+L 799.022237 394.483982 
+L 801.510556 395.764853 
+L 804.151052 397.03269 
+L 806.594981 398.291089 
+L 809.188374 399.536005 
+L 811.588705 400.771932 
+L 814.135834 401.994377 
+L 816.493346 403.208282 
+L 818.995036 404.409154 
+L 821.310492 405.601487 
+L 823.767554 406.780787 
+L 826.041704 407.951997 
+L 828.454935 409.110173 
+L 830.688517 410.26026 
+L 833.058697 411.398212 
+L 835.252434 412.527625 
+L 837.580333 413.645353 
+L 839.734935 414.754542 
+L 842.021306 415.852045 
+L 844.137472 416.941909 
+L 846.383056 418.019638 
+L 848.461472 419.089726 
+L 850.666997 420.148579 
+L 852.708336 421.199791 
+L 854.874517 422.239319 
+L 856.87944 423.271655 
+L 859.006978 424.293206 
+L 860.976134 425.307116 
+L 863.065719 426.310239 
+L 864.999748 427.305723 
+L 867.052056 428.291319 
+L 868.951584 429.269274 
+L 870.967281 430.236893 
+L 872.832923 431.197321 
+L 876.07915 432.777061 
+L 877.900549 433.715018 
+L 881.069794 435.257006 
+L 882.848 436.172941 
+L 885.942088 437.678525 
+L 887.678125 438.572438 
+L 890.698838 440.042517 
+L 892.393705 440.914857 
+L 895.342784 442.350331 
+L 896.997459 443.201997 
+L 899.876602 444.603315 
+L 901.492036 445.434757 
+L 904.302902 446.802816 
+L 906.960669 448.15155 
+L 909.68846 449.479161 
+L 912.267678 450.788345 
+L 914.91485 452.076406 
+L 917.41784 453.34694 
+L 919.986776 454.5968 
+L 922.415791 455.829581 
+L 924.908803 457.043037 
+L 927.266029 458.239415 
+L 929.685361 459.416467 
+L 931.972919 460.57779 
+L 934.320749 461.720236 
+L 936.540699 462.846953 
+L 938.81914 463.955692 
+L 940.97348 465.049151 
+L 943.184582 466.125082 
+L 945.275252 467.186182 
+L 948.253145 468.643677 
+L 950.269889 469.667475 
+L 953.142484 471.073736 
+L 955.087916 472.061129 
+L 957.858936 473.417504 
+L 959.735578 474.369842 
+L 962.408615 475.678577 
+L 964.218898 476.597208 
+L 966.797417 477.859202 
+L 969.249471 479.096478 
+L 971.721934 480.306788 
+L 974.073134 481.492829 
+L 976.443903 482.653253 
+L 978.698398 483.790306 
+L 981.603093 485.217241 
+L 983.751927 486.300812 
+L 986.52049 487.660782 
+L 988.568615 488.694017 
+L 991.207425 489.989718 
+L 993.159562 490.974416 
+L 995.674699 492.209894 
 L 996.218182 492.48 
 L 996.218182 492.48 
-" clip-path="url(#p2cce2f2c75)" style="fill: none; stroke: #dd8452; stroke-width: 1.5; stroke-linecap: round"/>
+" clip-path="url(#pc407524690)" style="fill: none; stroke: #dd8452; stroke-width: 1.5; stroke-linecap: round"/>
    </g>
    <g id="line2d_15"/>
    <g id="line2d_16"/>
@@ -1514,7 +1979,7 @@ L 992.865937 116.787969
   </g>
  </g>
  <defs>
-  <clipPath id="p2cce2f2c75">
+  <clipPath id="pc407524690">
    <rect x="144" y="69.12" width="892.8" height="443.52"/>
   </clipPath>
  </defs>
index eed565d..43094f4 100644 (file)
@@ -4,10 +4,10 @@ $ ${bindir:=.}/s4u-battery-energy ${platfdir}/energy_platform.xml
 > [MyHost1:manager:(1) 0.000000] [battery_energy/INFO] Battery state: SoC: 0.800000 SoH: 1.000000 Energy stored: 28800.000000J Energy provided: 0.000000J Energy consumed 0.000000J
 > [MyHost1:manager:(1) 0.000000] [battery_energy/INFO] Connecting hosts MyHost1 and MyHost2 to the battery
 > [MyHost1:manager:(1) 0.000000] [battery_energy/INFO] Host MyHost1 will now execute 1000000000.000000 flops
-> [96.208749] [battery_energy/INFO] Event -> Battery low: SoC: 0.200000 SoH: 0.999730 Energy stored: 7198.055825J Energy provided: 19441.749757J Energy consumed 0.000000J
-> [96.208749] [battery_energy/INFO] Disconnecting hosts MyHost1 and MyHost2
-> [96.208749] [battery_energy/INFO] Energy consumed this far by: MyHost1: 9820.874879J, MyHost2: 9620.874879J, MyHost3: 9620.874879J
-> [MyHost1:manager:(1) 200.000000] [battery_energy/INFO] Battery state: SoC: 0.200000 SoH: 0.999730 Energy stored: 7198.055825J Energy provided: 19441.749757J Energy consumed 0.000000J
+> [96.209721] [battery_energy/INFO] Event -> Battery low: SoC: 0.200000 SoH: 0.999700 Energy stored: 7197.839784J Energy provided: 19441.944194J Energy consumed 0.000000J
+> [96.209721] [battery_energy/INFO] Disconnecting hosts MyHost1 and MyHost2
+> [96.209721] [battery_energy/INFO] Energy consumed this far by: MyHost1: 9820.972097J, MyHost2: 9620.972097J, MyHost3: 9620.972097J
+> [MyHost1:manager:(1) 200.000000] [battery_energy/INFO] Battery state: SoC: 0.200000 SoH: 0.999700 Energy stored: 7197.839784J Energy provided: 19441.944194J Energy consumed 0.000000J
 > [200.000000] [host_energy/INFO] Total energy consumption: 60200.000000 Joules (used hosts: 20200.000000 Joules; unused/idle hosts: 40000.000000)
 > [200.000000] [host_energy/INFO] Energy consumption of host MyHost1: 20200.000000 Joules
 > [200.000000] [host_energy/INFO] Energy consumption of host MyHost2: 20000.000000 Joules
index 1ea75ed..253e7d1 100644 (file)
@@ -3,7 +3,7 @@
 $ ${bindir:=.}/s4u-battery-simple ${platfdir}/energy_platform.xml
 > [0.000000] [battery_simple/INFO] Initial state: SoC: 0.800000 SoH: 1.000000 Energy stored: 28800.000000J Energy provided: 0.000000J Energy consumed 0.000000J
 > [0.000000] [battery_simple/INFO] Set load to 100.000000W
-> [194.417498] [battery_simple/INFO] Discharged state: SoC: 0.200000 SoH: 0.999730 Energy stored: 7198.055825J Energy provided: 19441.749757J Energy consumed 0.000000J
-> [194.417498] [battery_simple/INFO] Set load to -100.000000W
-> [434.246101] [battery_simple/INFO] Charged state: SoC: 0.800000 SoH: 0.999397 Energy stored: 28782.630156J Energy provided: 19441.749757J Energy consumed 23982.860368J
-> [434.246101] [battery_simple/INFO] Set load to 0.000000W
\ No newline at end of file
+> [194.419442] [battery_simple/INFO] Discharged state: SoC: 0.200000 SoH: 0.999700 Energy stored: 7197.839784J Energy provided: 19441.944194J Energy consumed 0.000000J
+> [194.419442] [battery_simple/INFO] Set load to -100.000000W
+> [434.251502] [battery_simple/INFO] Charged state: SoC: 0.800000 SoH: 0.999400 Energy stored: 28782.725182J Energy provided: 19441.944194J Energy consumed 23983.205998J
+> [434.251502] [battery_simple/INFO] Set load to 0.000000W
index df6ae46..15c715a 100644 (file)
@@ -21,33 +21,61 @@ SIMGRID_REGISTER_PLUGIN(battery, "Battery management", nullptr)
 
 This is the battery plugin, enabling management of batteries.
 
-With this plugin you can:
+Batteries
+.........
 
-- create Batteries
-- associate positive or negative load to Batteries
-- connect Hosts to Batteries
-- create Events triggered whenever a Battery reach a specific state of charge
+A battery has an initial State of Charge :math:`SoC`, a charge efficiency :math:`\eta_{charge}`, a discharge efficiency
+:math:`\eta_{discharge}`, an initial capacity :math:`C_{initial}` and a number of cycle :math:`N`.
 
-The natural depletion of batteries over time is not taken into account.
+We distinguish the energy provided :math:`E_{provided}` / consumed :math:`E_{consumed}` from the energy lost
+:math:`E_{lost}` / gained :math:`E_{gained}`. The energy provided / consumed shows the external point of view, and the
+energy lost / gained shows the internal point of view:
+
+.. math::
+
+  E_{lost} = {E_{provided} \over \eta_{discharge}}
 
-A battery starts with an energy budget :math:`E` such as:
+  E_{gained} = E_{consumed} \times \eta_{charge}
+
+For instance, if you apply a load of 100W to a battery for 10s with a discharge efficiency of 0.8, the energy provided
+will be equal to 10kJ, and the energy lost will be equal to 12.5kJ.
+
+Use the battery reduces its State of Health :math:`SoH` and its capacity :math:`C` linearly in consequence:
 
 .. math::
 
-  E = C \times N \times 2
+  SoH = 1 - {E_{lost} + E_{gained} \over E_{budget}}
 
-Where :math:`C` is the initial capacity and :math:`N` is the number of cycles of the battery.
+  C = C_{initial} \times SoH
 
-The SoH represents the consumption of this energy budget during the lifetime of the battery.
-Use the battery reduces its SoH and its capacity in consequence.
-When the SoH reaches 0, the battery becomes unusable.
+With:
+
+.. math::
 
-Plotting the output of the example "battery-degradation" highlights the linear decrease of the SoH due to a continuous
-use of the battery and the decreasing cycle duration as its capacity reduces:
+  E_{budget} = C_{initial} \times N \times 2
+
+Plotting the output of the example "battery-degradation" highlights the linear decrease of the :math:`SoH` due to a
+continuous use of the battery alternating between charge and discharge:
 
 .. image:: /img/battery_degradation.svg
    :align: center
 
+The natural depletion of batteries over time is not taken into account.
+
+Loads & Hosts
+..............
+
+You can add named loads to a battery. Those loads may be positive and consume energy from the battery, or negative and
+add energy to the battery. You can also connect hosts to a battery. Theses hosts will consume their energy from the
+battery until the battery is empty or until the connection between the hosts and the battery is set inactive.
+
+Events
+......
+
+You can create events that will happen at specific SoC of the battery and trigger a callback.
+Theses events may be recurrent, for instance you may want to always set all loads to zero and deactivate all hosts
+connections when the battery reaches 20% SoC.
+
   @endrst
  */
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(Battery, kernel, "Logging specific to the battery plugin");
@@ -143,7 +171,9 @@ void Battery::update()
     // Updating battery
     energy_provided_j_ += energy_lost_delta_j * discharge_efficiency_;
     energy_consumed_j_ += energy_gained_delta_j / charge_efficiency_;
-    capacity_wh_ = initial_capacity_wh_ * (1 - (energy_provided_j_ + energy_consumed_j_) / energy_budget_j_);
+    capacity_wh_ =
+        initial_capacity_wh_ *
+        (1 - (energy_provided_j_ / discharge_efficiency_ + energy_consumed_j_ * charge_efficiency_) / energy_budget_j_);
     energy_stored_j_ += energy_gained_delta_j - energy_lost_delta_j;
     energy_stored_j_ = std::min(energy_stored_j_, 3600 * capacity_wh_);
     last_updated_    = now;
@@ -191,12 +221,13 @@ double Battery::next_occurring_event()
       /* The time to reach a state of charge depends on the capacity, but charging and discharging deteriorate the
        * capacity, so we need to evaluate the time considering a capacity that also depends on time
        */
-      event->time_delta_ = (3600 * event->state_of_charge_ * initial_capacity_wh_ *
-                                (1 - (energy_provided_j_ + energy_consumed_j_) / energy_budget_j_) -
-                            energy_stored_j_) /
-                           (gained_power_w - lost_power_w +
-                            3600 * event->state_of_charge_ * initial_capacity_wh_ *
-                                (consumed_power_w + provided_power_w) / energy_budget_j_);
+      event->time_delta_ =
+          (3600 * event->state_of_charge_ * initial_capacity_wh_ *
+               (1 - (energy_provided_j_ / discharge_efficiency_ + energy_consumed_j_ * charge_efficiency_) /
+                        energy_budget_j_) -
+           energy_stored_j_) /
+          (gained_power_w - lost_power_w +
+           3600 * event->state_of_charge_ * initial_capacity_wh_ * (gained_power_w + lost_power_w) / energy_budget_j_);
       if ((time_delta == -1 or event->time_delta_ < time_delta) and abs(event->time_delta_) > 0.000000001)
         time_delta = event->time_delta_;
     }
@@ -241,8 +272,8 @@ BatteryPtr Battery::init(const std::string& name, double state_of_charge, double
     init_plugin();
     plugin_inited = true;
   }
-  auto battery = BatteryPtr(new Battery(name, state_of_charge, charge_efficiency, discharge_efficiency,
-                                        initial_capacity_wh, cycles));
+  auto battery = BatteryPtr(
+      new Battery(name, state_of_charge, charge_efficiency, discharge_efficiency, initial_capacity_wh, cycles));
   battery_model_->add_battery(battery);
   return battery;
 }
@@ -257,7 +288,7 @@ void Battery::set_load(const std::string& name, double power_w)
 }
 
 /** @ingroup plugin_battery
- *  @param h The Host to connect.
+ *  @param host The Host to connect.
  *  @param active Status of the connected Host (default true).
  *  @brief Connect a Host to the Battery with the status active. As long as the status is true the Host takes its energy
  from the Battery. To modify this status connect again the same Host with a different status.
@@ -282,7 +313,8 @@ double Battery::get_state_of_charge()
  */
 double Battery::get_state_of_health()
 {
-  return 1 - ((energy_provided_j_ + energy_consumed_j_) / energy_budget_j_);
+  return 1 -
+         ((energy_provided_j_ / discharge_efficiency_ + energy_consumed_j_ * charge_efficiency_) / energy_budget_j_);
 }
 
 /** @ingroup plugin_battery
@@ -314,7 +346,7 @@ double Battery::get_energy_consumed()
 }
 
 /** @ingroup plugin_battery
- *  @param Unit Valid units are J (default) and Wh.
+ *  @param unit Valid units are J (default) and Wh.
  *  @return Energy stored in the Battery.
  */
 double Battery::get_energy_stored(std::string unit)