You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by we...@apache.org on 2018/09/29 05:59:29 UTC

[1/2] samza git commit: SAMZA-1915: Added docs for table API

Repository: samza
Updated Branches:
  refs/heads/master 11471672d -> 6c9715fbc


http://git-wip-us.apache.org/repos/asf/samza/blob/6c9715fb/docs/img/versioned/learn/documentation/api/table-class-diagram.svg
----------------------------------------------------------------------
diff --git a/docs/img/versioned/learn/documentation/api/table-class-diagram.svg b/docs/img/versioned/learn/documentation/api/table-class-diagram.svg
new file mode 100644
index 0000000..ae604c0
--- /dev/null
+++ b/docs/img/versioned/learn/documentation/api/table-class-diagram.svg
@@ -0,0 +1,370 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   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#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="161.74503mm"
+   height="112.12096mm"
+   viewBox="0 0 161.74503 112.12096"
+   version="1.1"
+   id="svg142"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
+   sodipodi:docname="table2.svg">
+  <defs
+     id="defs136">
+    <clipPath
+       id="clipEmfPath1"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path144"
+         d="M 0,0 H 613.35144 V 426.00979 H 0 Z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <pattern
+       y="0"
+       x="0"
+       height="6"
+       width="6"
+       patternUnits="userSpaceOnUse"
+       id="EMFhbasepattern" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.35"
+     inkscape:cx="305.65988"
+     inkscape:cy="211.88212"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1366"
+     inkscape:window-height="705"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata139">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-24.960824,-92.772856)">
+    <path
+       id="path150"
+       d="m 82.032741,92.80822 v 13.62257 H 126.91791 V 92.80822 Z"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path152"
+       d="M 216.74745,52.502712 H 386.39216 V 1.0158366 H 216.74745 Z"
+       clip-path="url(#clipEmfPath1)"
+       style="fill:none;stroke:#000000;stroke-width:0.26732543px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.26458333,0,0,0.26458333,24.684978,92.539447)" />
+    <text
+       id="text158"
+       y="98.461517"
+       x="92.679207"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan156"
+         y="98.461517"
+         x="92.679207"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan154"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">&lt;&lt;interface&gt;&gt;</tspan></tspan></text>
+    <text
+       id="text164"
+       y="103.53136"
+       x="99.891167"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan162"
+         y="103.53136"
+         x="99.891167"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan160"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">Table</tspan></tspan></text>
+    <path
+       id="path166"
+       d="m 82.032741,113.85742 v 13.62257 h 44.885169 v -13.62257 z"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path168"
+       d="M 82.032741,127.47999 H 126.91791 V 113.85742 H 82.032741 Z"
+       style="fill:none;stroke:#000000;stroke-width:0.07072985px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <text
+       id="text174"
+       y="119.51072"
+       x="92.679207"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan172"
+         y="119.51072"
+         x="92.679207"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan170"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">&lt;&lt;interface&gt;&gt;</tspan></tspan></text>
+    <text
+       id="text180"
+       y="124.58056"
+       x="91.91375"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan178"
+         y="124.58056"
+         x="91.91375"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan176"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">ReadableTable</tspan></tspan></text>
+    <path
+       id="path182"
+       d="M 82.032741,134.90663 V 148.5292 H 126.91791 V 134.90663 Z"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path184"
+       d="M 82.032741,148.5292 H 126.91791 V 134.90663 H 82.032741 Z"
+       style="fill:none;stroke:#000000;stroke-width:0.07072985px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <text
+       id="text190"
+       y="140.55992"
+       x="92.679207"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan188"
+         y="140.55992"
+         x="92.679207"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan186"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">&lt;&lt;interface&gt;&gt;</tspan></tspan></text>
+    <text
+       id="text196"
+       y="145.62976"
+       x="90.712067"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan194"
+         y="145.62976"
+         x="90.712067"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan192"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">ReadWriteTable</tspan></tspan></text>
+    <path
+       id="path198"
+       d="m 104.46825,113.85742 v -4.45598"
+       style="fill:none;stroke:#000000;stroke-width:0.22633553px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path200"
+       d="m 105.45847,109.40144 -0.99022,-2.97065 -0.99022,2.97065 z"
+       style="fill:none;stroke:#000000;stroke-width:0.22633553px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path202"
+       d="m 104.46825,134.90663 v -4.45598"
+       style="fill:none;stroke:#000000;stroke-width:0.22633553px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path204"
+       d="m 105.45847,130.45065 -0.99022,-2.97066 -0.99022,2.97066 z"
+       style="fill:none;stroke:#000000;stroke-width:0.22633553px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path206"
+       d="m 81.028377,165.44778 v 13.63671 h 44.885163 v -13.63671 z"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path208"
+       d="M 81.028377,179.08449 H 125.91354 V 165.44778 H 81.028377 Z"
+       style="fill:none;stroke:#000000;stroke-width:0.07072985px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <text
+       id="text214"
+       y="171.10335"
+       x="91.679832"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan212"
+         y="171.10335"
+         x="91.679832"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan210"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">&lt;&lt;interface&gt;&gt;</tspan></tspan></text>
+    <text
+       id="text220"
+       y="176.17319"
+       x="89.932335"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan218"
+         y="176.17319"
+         x="89.932335"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan216"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">TableDescriptor</tspan></tspan></text>
+    <path
+       id="path222"
+       d="m 24.996189,191.23588 v 13.62257 h 44.885163 v -13.62257 z"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path224"
+       d="M 1.1762318,424.51276 H 170.82094 V 373.02589 H 1.1762318 Z"
+       clip-path="url(#clipEmfPath1)"
+       style="fill:none;stroke:#000000;stroke-width:0.26732543px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.26458333,0,0,0.26458333,24.684978,92.539447)" />
+    <text
+       id="text230"
+       y="199.41685"
+       x="27.136927"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan228"
+         y="199.41685"
+         x="27.136927"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan226"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">RemoteTableDescriptor</tspan></tspan></text>
+    <path
+       id="path232"
+       d="m 78.666,191.23588 v 13.62257 h 49.60992 v -13.62257 z"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path234"
+       d="M 204.02276,424.51276 H 391.52481 V 373.02589 H 204.02276 Z"
+       clip-path="url(#clipEmfPath1)"
+       style="fill:none;stroke:#000000;stroke-width:0.26732543px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.26458333,0,0,0.26458333,24.684978,92.539447)" />
+    <text
+       id="text240"
+       y="199.41685"
+       x="80.938965"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan238"
+         y="199.41685"
+         x="80.938965"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan236"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">InMemoryTableDescriptor</tspan></tspan></text>
+    <path
+       id="path242"
+       d="m 137.06056,191.23588 v 13.62257 h 49.60992 v -13.62257 z"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path244"
+       d="M 424.72662,424.51276 H 612.22867 V 373.02589 H 424.72662 Z"
+       clip-path="url(#clipEmfPath1)"
+       style="fill:none;stroke:#000000;stroke-width:0.26732543px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.26458333,0,0,0.26458333,24.684978,92.539447)" />
+    <text
+       id="text250"
+       y="199.41685"
+       x="140.97668"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan248"
+         y="199.41685"
+         x="140.97668"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan246"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:4.29947901px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">RocksDbTableDescriptor</tspan></tspan></text>
+    <path
+       id="path252"
+       d="m 47.31853,191.23588 v -1.58435 c 0,-0.0707 0.05658,-0.11317 0.113168,-0.11317 0.07073,0 0.113168,0.0424 0.113168,0.11317 v 1.58435 c 0,0.0566 -0.04244,0.11317 -0.113168,0.11317 -0.05658,0 -0.113168,-0.0566 -0.113168,-0.11317 z m 0,-2.71603 v -1.58435 c 0,-0.0707 0.05658,-0.11316 0.113168,-0.11316 0.07073,0 0.113168,0.0424 0.113168,0.11316 v 1.58435 c 0,0.0566 -0.04244,0.11317 -0.113168,0.11317 -0.05658,0 -0.113168,-0.0566 -0.113168,-0.11317 z m 0.113168,-2.82919 h 1.584349 c 0.07073,0 0.113167,0.0424 0.113167,0.11317 0,0.0566 -0.04244,0.11317 -0.113167,0.11317 h -1.584349 c -0.05658,0 -0.113168,-0.0566 -0.113168,-0.11317 0,-0.0707 0.05658,-0.11317 0.113168,-0.11317 z m 2.716026,0 h 1.584349 c 0.07073,0 0.113167,0.0424 0.113167,0.11317 0,0.0566 -0.04244,0.11317 -0.113167,0.11317 h -1.584349 c -0.05658,0 -0.113168,-0.0566 -0.113168,-0.11317 0,-0.0707 0.05658,-0.11317 0.113168,-0.11317 z m 2.716027,0 H 54.4481 c 0.07073,0 0.113168,0.0424 0.113168,0.11317 0,0.0566 -0.04244,0.
 11317 -0.113168,0.11317 h -1.584349 c -0.05658,0 -0.113167,-0.0566 -0.113167,-0.11317 0,-0.0707 0.05658,-0.11317 0.113167,-0.11317 z m 2.716025,0 h 1.584349 c 0.07073,0 0.113167,0.0424 0.113167,0.11317 0,0.0566 -0.04244,0.11317 -0.113167,0.11317 h -1.584349 c -0.05658,0 -0.113168,-0.0566 -0.113168,-0.11317 0,-0.0707 0.05658,-0.11317 0.113168,-0.11317 z m 2.716027,0 h 1.584349 c 0.07073,0 0.113168,0.0424 0.113168,0.11317 0,0.0566 -0.04244,0.11317 -0.113168,0.11317 h -1.584349 c -0.05658,0 -0.113167,-0.0566 -0.113167,-0.11317 0,-0.0707 0.05658,-0.11317 0.113167,-0.11317 z m 2.716025,0 h 1.584349 c 0.07073,0 0.113167,0.0424 0.113167,0.11317 0,0.0566 -0.04244,0.11317 -0.113167,0.11317 h -1.584349 c -0.05658,0 -0.113168,-0.0566 -0.113168,-0.11317 0,-0.0707 0.05658,-0.11317 0.113168,-0.11317 z m 2.716027,0 h 1.584349 c 0.07073,0 0.113167,0.0424 0.113167,0.11317 0,0.0566 -0.04244,0.11317 -0.113167,0.11317 h -1.584349 c -0.05658,0 -0.113167,-0.0566 -0.113167,-0.11317 0,-0.0707 0.05658,-0.11
 317 0.113167,-0.11317 z m 2.716027,0 h 1.584349 c 0.07073,0 0.113168,0.0424 0.113168,0.11317 0,0.0566 -0.04244,0.11317 -0.113168,0.11317 h -1.584349 c -0.05658,0 -0.113167,-0.0566 -0.113167,-0.11317 0,-0.0707 0.05658,-0.11317 0.113167,-0.11317 z m 2.716025,0 h 1.584349 c 0.07073,0 0.113167,0.0424 0.113167,0.11317 0,0.0566 -0.04244,0.11317 -0.113167,0.11317 h -1.584349 c -0.05658,0 -0.113168,-0.0566 -0.113168,-0.11317 0,-0.0707 0.05658,-0.11317 0.113168,-0.11317 z m 2.716027,0 h 1.584349 c 0.07073,0 0.113168,0.0424 0.113168,0.11317 0,0.0566 -0.04244,0.11317 -0.113168,0.11317 h -1.584349 c -0.05658,0 -0.113167,-0.0566 -0.113167,-0.11317 0,-0.0707 0.05658,-0.11317 0.113167,-0.11317 z m 2.716025,0 h 1.584349 c 0.07073,0 0.113167,0.0424 0.113167,0.11317 0,0.0566 -0.04244,0.11317 -0.113167,0.11317 h -1.584349 c -0.05658,0 -0.113168,-0.0566 -0.113168,-0.11317 0,-0.0707 0.05658,-0.11317 0.113168,-0.11317 z m 2.716027,0 h 1.584349 c 0.07073,0 0.113168,0.0424 0.113168,0.11317 0,0.0566 -0.0424
 4,0.11317 -0.113168,0.11317 h -1.584349 c -0.05658,0 -0.113167,-0.0566 -0.113167,-0.11317 0,-0.0707 0.05658,-0.11317 0.113167,-0.11317 z m 2.716028,0 h 1.584348 c 0.07073,0 0.113168,0.0424 0.113168,0.11317 0,0.0566 -0.04244,0.11317 -0.113168,0.11317 h -1.584348 c -0.05658,0 -0.113168,-0.0566 -0.113168,-0.11317 0,-0.0707 0.05658,-0.11317 0.113168,-0.11317 z m 2.716024,0 h 1.584349 c 0.07073,0 0.113168,0.0424 0.113168,0.11317 0,0.0566 -0.04244,0.11317 -0.113168,0.11317 h -1.584349 c -0.05658,0 -0.113167,-0.0566 -0.113167,-0.11317 0,-0.0707 0.05658,-0.11317 0.113167,-0.11317 z m 2.716027,0 h 1.584349 c 0.07073,0 0.113168,0.0424 0.113168,0.11317 0,0.0566 -0.04244,0.11317 -0.113168,0.11317 h -1.584349 c -0.05658,0 -0.113167,-0.0566 -0.113167,-0.11317 0,-0.0707 0.05658,-0.11317 0.113167,-0.11317 z m 2.716025,0 h 1.584349 c 0.07073,0 0.113168,0.0424 0.113168,0.11317 0,0.0566 -0.04244,0.11317 -0.113168,0.11317 H 88.17209 c -0.05658,0 -0.113167,-0.0566 -0.113167,-0.11317 0,-0.0707 0.05658,-0
 .11317 0.113167,-0.11317 z m 2.716027,0 h 1.584349 c 0.07073,0 0.113168,0.0424 0.113168,0.11317 0,0.0566 -0.04244,0.11317 -0.113168,0.11317 h -1.584349 c -0.05658,0 -0.113167,-0.0566 -0.113167,-0.11317 0,-0.0707 0.05658,-0.11317 0.113167,-0.11317 z m 2.716028,0 h 1.584349 c 0.07073,0 0.113167,0.0424 0.113167,0.11317 0,0.0566 -0.04244,0.11317 -0.113167,0.11317 h -1.584349 c -0.05658,0 -0.113168,-0.0566 -0.113168,-0.11317 0,-0.0707 0.05658,-0.11317 0.113168,-0.11317 z m 2.716024,0 h 1.584349 c 0.07073,0 0.113168,0.0424 0.113168,0.11317 0,0.0566 -0.04244,0.11317 -0.113168,0.11317 h -1.584349 c -0.05658,0 -0.113167,-0.0566 -0.113167,-0.11317 0,-0.0707 0.05658,-0.11317 0.113167,-0.11317 z m 2.716028,0 h 1.584343 c 0.0707,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0424,0.11317 -0.11317,0.11317 h -1.584343 c -0.05658,0 -0.113168,-0.0566 -0.113168,-0.11317 0,-0.0707 0.05658,-0.11317 0.113168,-0.11317 z m 2.716023,0 h 1.58435 c 0.0707,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0424,0.113
 17 -0.11317,0.11317 h -1.58435 c -0.0566,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0566,-0.11317 0.11317,-0.11317 z m 1.61264,-0.8912 v -1.58434 c 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 0.0566,0 0.11317,0.0424 0.11317,0.11317 v 1.58434 c 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 z m 0,-2.71602 v -0.0424 c 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 0.0566,0 0.11317,0.0424 0.11317,0.11317 v 0.0424 c 0,0.0566 -0.0566,0.11316 -0.11317,0.11316 -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11316 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01414597px;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path254"
+       d="m 104.4541,182.041 -0.97607,-2.95651 -0.99022,2.95651 z"
+       style="fill:none;stroke:#000000;stroke-width:0.22633553px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path256"
+       d="m 103.36486,191.23588 v -1.58435 c 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 0.0566,0 0.11317,0.0424 0.11317,0.11317 v 1.58435 c 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 z m 0,-2.71603 v -1.58435 c 0,-0.0707 0.0424,-0.11316 0.11317,-0.11316 0.0566,0 0.11317,0.0424 0.11317,0.11316 v 1.58435 c 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 z m 0,-2.71602 v -1.58435 c 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 0.0566,0 0.11317,0.0424 0.11317,0.11317 v 1.58435 c 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 z m 0,-2.71603 v -1.0468 c 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 0.0566,0 0.11317,0.0424 0.11317,0.11317 v 1.0468 c 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01414597px;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path258"
+       d="m 104.4541,182.041 -0.97607,-2.95651 -0.99022,2.95651 z"
+       style="fill:none;stroke:#000000;stroke-width:0.22633553px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path260"
+       d="m 161.75943,191.23588 v -1.58435 c 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 0.0566,0 0.11316,0.0424 0.11316,0.11317 v 1.58435 c 0,0.0566 -0.0566,0.11317 -0.11316,0.11317 -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 z m 0,-2.71603 v -1.58435 c 0,-0.0707 0.0424,-0.11316 0.11317,-0.11316 0.0566,0 0.11316,0.0424 0.11316,0.11316 v 1.58435 c 0,0.0566 -0.0566,0.11317 -0.11316,0.11317 -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 z m 0.11317,-2.60285 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566,0 0.11316,0.0424 0.11316,0.11317 0,0.0566 -0.0566,0.11317 -0.11316,0.11317 z m -2.71603,0 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71602,0 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566
 ,0 0.11316,0.0424 0.11316,0.11317 0,0.0566 -0.0566,0.11317 -0.11316,0.11317 z m -2.71603,0 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71603,0 h -1.58435 c -0.0707,0 -0.11316,-0.0566 -0.11316,-0.11317 0,-0.0707 0.0424,-0.11317 0.11316,-0.11317 h 1.58435 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71602,0 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566,0 0.11316,0.0424 0.11316,0.11317 0,0.0566 -0.0566,0.11317 -0.11316,0.11317 z m -2.71603,0 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71603,0 h -1.58434 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.070
 7 0.0424,-0.11317 0.11317,-0.11317 h 1.58434 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71602,0 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566,0 0.11316,0.0424 0.11316,0.11317 0,0.0566 -0.0566,0.11317 -0.11316,0.11317 z m -2.71603,0 h -1.58435 c -0.0707,0 -0.11316,-0.0566 -0.11316,-0.11317 0,-0.0707 0.0424,-0.11317 0.11316,-0.11317 h 1.58435 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71603,0 h -1.58434 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58434 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71602,0 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71603,0 h -1.58435 c 
 -0.0707,0 -0.11316,-0.0566 -0.11316,-0.11317 0,-0.0707 0.0424,-0.11317 0.11316,-0.11317 h 1.58435 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71602,0 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566,0 0.11316,0.0424 0.11316,0.11317 0,0.0566 -0.0566,0.11317 -0.11316,0.11317 z m -2.71603,0 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71603,0 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71603,0 h -1.58434 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58434 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,
 0.11317 -0.11317,0.11317 z m -2.71602,0 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71603,0 h -1.58435 c -0.0707,0 -0.11316,-0.0566 -0.11316,-0.11317 0,-0.0707 0.0424,-0.11317 0.11316,-0.11317 h 1.58435 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71602,0 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566,0 0.11316,0.0424 0.11316,0.11317 0,0.0566 -0.0566,0.11317 -0.11316,0.11317 z m -2.71603,0 h -1.58435 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 h 1.58435 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -2.71603,0 h -1.35801 c -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 v -0.22634 c 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 0.0
 566,0 0.11317,0.0424 0.11317,0.11317 v 0.22634 l -0.11317,-0.11317 h 1.35801 c 0.0566,0 0.11317,0.0424 0.11317,0.11317 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 z m -1.47118,-1.47119 v -1.58434 c 0,-0.0707 0.0424,-0.11317 0.11317,-0.11317 0.0566,0 0.11317,0.0424 0.11317,0.11317 v 1.58434 c 0,0.0566 -0.0566,0.11317 -0.11317,0.11317 -0.0707,0 -0.11317,-0.0566 -0.11317,-0.11317 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01414597px;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path262"
+       d="m 104.4541,182.041 -0.97607,-2.95651 -0.99022,2.95651 z"
+       style="fill:none;stroke:#000000;stroke-width:0.22633553px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

http://git-wip-us.apache.org/repos/asf/samza/blob/6c9715fb/docs/img/versioned/learn/documentation/api/table-descriptor-class-diagram.svg
----------------------------------------------------------------------
diff --git a/docs/img/versioned/learn/documentation/api/table-descriptor-class-diagram.svg b/docs/img/versioned/learn/documentation/api/table-descriptor-class-diagram.svg
new file mode 100644
index 0000000..df3d213
--- /dev/null
+++ b/docs/img/versioned/learn/documentation/api/table-descriptor-class-diagram.svg
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   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#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="85.625557mm"
+   height="60.502312mm"
+   viewBox="0 0 85.625557 60.502312"
+   version="1.1"
+   id="svg8"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
+   sodipodi:docname="table1.svg">
+  <defs
+     id="defs2">
+    <clipPath
+       id="clipEmfPath1"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path10"
+         d="M 0,0 H 325.92315 V 230.96916 H 0 Z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <pattern
+       y="0"
+       x="0"
+       height="6"
+       width="6"
+       patternUnits="userSpaceOnUse"
+       id="EMFhbasepattern" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.35"
+     inkscape:cx="216.09779"
+     inkscape:cy="-19.950636"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1366"
+     inkscape:window-height="705"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-48.657461,-83.052416)">
+    <path
+       id="path16"
+       d="M 48.692826,83.08778 V 94.630892 H 86.717193 V 83.08778 Z"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path18"
+       d="M 1.0158366,44.643345 H 144.72998 V 1.0158366 H 1.0158366 Z"
+       clip-path="url(#clipEmfPath1)"
+       style="fill:none;stroke:#000000;stroke-width:0.26732543px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.26458333,0,0,0.26458333,48.424052,82.819007)" />
+    <text
+       id="text24"
+       y="88.060989"
+       x="59.312599"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan22"
+         y="88.060989"
+         x="59.312599"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan20"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">&lt;&lt;interface&gt;&gt;</tspan></tspan></text>
+    <text
+       id="text30"
+       y="91.682304"
+       x="58.064411"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan28"
+         y="91.682304"
+         x="58.064411"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan26"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">TableDescriptor</tspan></tspan></text>
+    <path
+       id="path32"
+       d="m 48.692826,102.09996 v 11.54312 h 38.024367 v -11.54312 z"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path34"
+       d="M 1.0158366,116.50042 H 144.72998 V 72.872909 H 1.0158366 Z"
+       clip-path="url(#clipEmfPath1)"
+       style="fill:none;stroke:#000000;stroke-width:0.26732543px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.26458333,0,0,0.26458333,48.424052,82.819007)" />
+    <text
+       id="text40"
+       y="108.88383"
+       x="53.237019"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan38"
+         y="108.88383"
+         x="53.237019"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan36"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">RemoteTableDescriptor</tspan></tspan></text>
+    <path
+       id="path42"
+       d="m 67.591841,102.09996 v -1.58435 c 0,-0.0566 0.05658,-0.11316 0.113168,-0.11316 0.05658,0 0.113168,0.0566 0.113168,0.11316 v 1.58435 c 0,0.0566 -0.05658,0.11317 -0.113168,0.11317 -0.05658,0 -0.113168,-0.0566 -0.113168,-0.11317 z m 0,-2.716022 v -1.584349 c 0,-0.05658 0.05658,-0.113167 0.113168,-0.113167 0.05658,0 0.113168,0.05658 0.113168,0.113167 v 1.584349 c 0,0.05658 -0.05658,0.113168 -0.113168,0.113168 -0.05658,0 -0.113168,-0.05658 -0.113168,-0.113168 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01414597px;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path44"
+       d="M 68.695227,97.5874 67.705009,94.630892 66.714791,97.5874 Z"
+       style="fill:none;stroke:#000000;stroke-width:0.22633553px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path46"
+       d="m 98.93931,115.6801 v 11.54311 h 35.30834 V 115.6801 Z"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path48"
+       d="M 190.92381,167.8269 H 324.37266 V 124.19939 H 190.92381 Z"
+       clip-path="url(#clipEmfPath1)"
+       style="fill:none;stroke:#000000;stroke-width:0.26732543px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.26458333,0,0,0.26458333,48.424052,82.819007)" />
+    <text
+       id="text54"
+       y="120.65331"
+       x="108.20107"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan52"
+         y="120.65331"
+         x="108.20107"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan50"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">&lt;&lt;interface&gt;&gt;</tspan></tspan></text>
+    <text
+       id="text60"
+       y="124.27463"
+       x="104.90981"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan58"
+         y="124.27463"
+         x="104.90981"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan56"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">TableReadFunction</tspan></tspan></text>
+    <path
+       id="path62"
+       d="m 98.93931,131.97625 v 11.54311 h 35.30834 v -11.54311 z"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path64"
+       d="m 190.92381,229.41867 h 133.44885 v -43.6275 H 190.92381 Z"
+       clip-path="url(#clipEmfPath1)"
+       style="fill:none;stroke:#000000;stroke-width:0.26732543px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.26458333,0,0,0.26458333,48.424052,82.819007)" />
+    <text
+       id="text70"
+       y="136.94946"
+       x="108.20107"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan68"
+         y="136.94946"
+         x="108.20107"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan66"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">&lt;&lt;interface&gt;&gt;</tspan></tspan></text>
+    <text
+       id="text76"
+       y="140.57079"
+       x="104.52448"
+       style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;line-height:125%;font-family:Calibri;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         id="tspan74"
+         y="140.57079"
+         x="104.52448"
+         sodipodi:role="line"
+         style="stroke-width:0.26458332"><tspan
+           id="tspan72"
+           style="font-style:normal;font-variant:normal;font-weight:400;font-size:2.94348955px;font-family:Calibri;fill:#000000;stroke-width:0.26458332"
+           dy="0"
+           dx="0">TableWriteFunction</tspan></tspan></text>
+    <path
+       id="path78"
+       d="m 86.943528,107.87152 h 5.205716 v 13.58013 h 6.790066"
+       style="fill:none;stroke:#000000;stroke-width:0.22633553px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path80"
+       d="m 88.527877,106.85301 -2.03702,1.01851 2.03702,1.01851 2.037019,-1.01851 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path82"
+       d="m 88.527877,106.85301 -2.03702,1.01851 2.03702,1.01851 2.037019,-1.01851 z"
+       style="fill:none;stroke:#000000;stroke-width:0.22633553px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path84"
+       d="m 86.943528,107.87152 h 5.205716 v 29.87629 h 6.790066"
+       style="fill:none;stroke:#000000;stroke-width:0.22633553px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path86"
+       d="m 88.527877,106.85301 -2.03702,1.01851 2.03702,1.01851 2.037019,-1.01851 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26458332"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path88"
+       d="m 88.527877,106.85301 -2.03702,1.01851 2.03702,1.01851 2.037019,-1.01851 z"
+       style="fill:none;stroke:#000000;stroke-width:0.22633553px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

http://git-wip-us.apache.org/repos/asf/samza/blob/6c9715fb/docs/learn/documentation/versioned/api/table-api.md
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/api/table-api.md b/docs/learn/documentation/versioned/api/table-api.md
new file mode 100644
index 0000000..d95dfac
--- /dev/null
+++ b/docs/learn/documentation/versioned/api/table-api.md
@@ -0,0 +1,558 @@
+---
+layout: page
+title: Samza Table API
+---
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+
+# Introduction
+
+Samza Table API is an abstraction for data sources that support random 
+access by key, which simplifies stream-table-join. It is the natural 
+evolution of the existing [storage API] (https://github.com/apache/samza/blob/master/samza-kv/src/main/scala/org/apache/samza/storage/kv/KeyValueStorageEngine.scala), 
+and it offers support for both local and remote data sources and 
+composition through hybrid tables.
+
+For various reasons, a real-time stream often only contain minimal or a 
+small amount of information, and may need to be augmented with richer 
+information fetched from adjunct data sources through joining. This is 
+quite common in advertising, relevance ranking, fraud detection, and 
+other domains. However, there exists a wide variety of data stores with 
+different characteristics and levels of sophistication. Samza Table API 
+simplifies the application developer experience by hiding the details of 
+individual technologies, while making it easier to migrate from one 
+technology to another.
+
+For remote data sources, the Samza remote table provides optimized access 
+such as caching, rate-limiting, retry and batching (future) support.
+
+In addition, more advanced functionalities can be provided through table 
+composition. For example, bootstrapping a stream is often used to build 
+an authoritative local cache, and today stream processing has to wait 
+until bootstrap is completed. A hybrid table can provide access to remote 
+data source while the local cache is being built, so that stream processing 
+could begin earlier.
+
+Application developers can now take advantage of the aforementioned benefits, 
+which are all encapsulated under the Samza Table API.
+
+# Sample Applications
+
+Sample applications demonstrating how to use Samza Table API can be found 
+[here] (https://github.com/apache/samza-hello-samza/tree/latest/src/main/java/samza/examples/cookbook).
+
+# Architecture and Concepts
+
+The diagram below illustrates the overall architecture of Samza Table API. 
+
+![diagram-medium](/img/{{site.version}}/learn/documentation/api/table-api-arch.svg)
+
+Let’s look at a few concepts before diving into the API.
+
+![diagram-medium](/img/{{site.version}}/learn/documentation/api/table-class-diagram.svg)
+
+[`Table`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/table/Table.java) - 
+This interface represents a dataset that can be accessed by key. We support 
+two types of tables: read-only and read-write. A table can be accessed either 
+synchronously or asynchronously and a request may contain one or more keys. 
+There are three broad categories of tables: local, remote and hybrid.
+
+[`ReadableTable`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/table/ReadableTable.java) - 
+Interface that represents a read-only table. It implements Table.
+
+[`ReadWriteTable`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/table/ReadWriteTable.java) - 
+Interface that represents a read-write table. It implements Table.
+
+[`TableDescriptor`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/operators/TableDescriptor.java) - 
+User-facing object that contains metadata that completely describes a table. 
+It may include identifier, serialization, provider, configuration, etc. 
+Example implementations of this interface are
+
+* [`RemoteTableDescriptor`] (https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/remote/RemoteTableDescriptor.java) 
+ facilitates access to remotely stored data, 
+* [`InMemoryTableDescriptor`] (https://github.com/apache/samza/blob/master/samza-kv-inmemory/src/main/java/org/apache/samza/storage/kv/inmemory/InMemoryTableDescriptor.java) 
+ describes a table stored in-memory, and 
+* [`RocksDbTableDescriptor`] (https://github.com/apache/samza/blob/master/samza-kv-rocksdb/src/main/java/org/apache/samza/storage/kv/RocksDbTableDescriptor.java) 
+ describes a table stored in RocksDB.
+
+# Table Sync and Async API
+
+Samza Table supports both synchronous and asynchronous API. Below is an example for 
+the **`get`** operation.
+
+{% highlight java %}
+ /**
+   * Gets the value associated with the specified {@code key}.
+   *
+   * @param key the key with which the associated value is to be fetched.
+   * @return if found, the value associated with the specified {@code key}; 
+   * otherwise, {@code null}.
+   * @throws NullPointerException if the specified {@code key} is {@code null}.
+   */
+  V get(K key);
+
+ /**
+   * Asynchronously gets the value associated with the specified {@code key}.
+   *
+   * @param key the key with which the associated value is to be fetched.
+   * @return completableFuture for the requested value
+   * @throws NullPointerException if the specified {@code key} is {@code null}.
+   */
+  CompletableFuture<V> getAsync(K key);
+{% endhighlight %}
+
+
+# Using Table with Samza High Level API
+
+The code snippet below illustrates the usage of table in Samza high level API.
+
+{% highlight java %}
+ 1  class SamzaStreamApplication implements StreamApplication {
+ 2    @Override
+ 3    public void describe(StreamApplicationDescriptor appDesc) {
+ 4      TableDescriptor<Integer, Profile> desc = new InMemoryTableDescriptor(
+ 5          "t1", KVSerde.of(new IntegerSerde(), new ProfileJsonSerde()));
+ 6 
+ 7      Table<KV<Integer, Profile>> table = appDesc.getTable(desc);
+ 8 
+ 9      appDesc.getInputStream("PageView", new NoOpSerde<PageView>())
+10          .map(new MyMapFunc())
+11          .join(table, new MyJoinFunc())
+12          .sendTo(anotherTable);
+13    }
+14  }
+15
+16  static class MyMapFunc implements MapFunction<PageView, KV<Integer, PageView>> {
+17    private ReadableTable<Integer, Profile> profileTable;
+18
+19    @Override
+20    public void init(Config config, TaskContext context) {
+21      profileTable = (ReadableTable<Integer, Profile>) context.getTable("t1");
+22    }
+23 
+24    @Override
+25    public KV<Integer, PageView> apply(PageView message) {
+26      return new KV.of(message.getId(), message);
+27    }
+28  }
+29
+30  static class MyJoinFunc implements StreamTableJoinFunction
+31      <Integer, KV<Integer, PageView>, KV<Integer, Profile>, EnrichedPageView> {
+32
+33    @Override
+34    public EnrichedPageView apply(KV<Integer, PageView> m, KV<Integer, Profile> r) {
+35      counterPerJoinFn.get(this.currentSeqNo).incrementAndGet();
+36        return r == null ? null : new EnrichedPageView(
+37            m.getValue().getPageKey(), m.getKey(), r.getValue().getCompany());
+38    }
+39  }
+{% endhighlight %}
+
+In the code snippet above, we read from an input stream, perform transformation, 
+join with a table and finally write the output to another table.
+
+1. Line 4-5: A `TableDescriptor` for an in-memory table is created, and then 
+   the serde is set. 
+2. Line 7: A table object is created from the `TableDescriptor`; internally, 
+   the `TableDescriptor` is converted to a `TableSpec`, and registered with the 
+   `TaskApplicationDescriptor`. The table object has a reference to the `TableSpec`.
+3. Line 9: creates an `InputStream`
+4. Line 10: applies a map operator defined in line 16-28, all table instances 
+   can be accessed from the task context in `Task.init()`. In this example, 
+   it is stored in a local variable.
+5. Line 11: joins the mapped stream with the table using the supplied join 
+   function defined in lines 30-39.
+6. Line 12: writes the join result stream to another table
+
+# Using Table with Samza Low Level API
+
+The code snippet below illustrates the usage of table in Samza low level API.
+
+{% highlight java %}
+ 1  class SamzaTaskApplication implements TaskApplication {
+ 2  
+ 3  @Override
+ 4  public void describe(TaskApplicationDescriptor appDesc) {
+ 5    DelegatingSystemDescriptor ksd = new DelegatingSystemDescriptor("mySystem");
+ 6 
+ 7    TableDescriptor<Integer, Profile> tableDesc = new InMemoryTableDescriptor(
+ 8        "T1", KVSerde.of(new IntegerSerde(), new ProfileJsonSerde()));
+ 9    GenericInputDescriptor<Profile> profileISD = ksd.getInputDescriptor("Profile", new NoOpSerde<>());
+10 
+11   appDesc.addTable(tableDesc); 
+12   appDesc.addInputStream(profileISD);  
+13 }
+14
+15
+16  public class MyStreamTask implements StreamTask, InitableTask {
+17    private ReadWriteTable<Integer, Profile> profileTable;
+18 
+19    @Override
+20    public void init(Config config, TaskContext context) {
+21      profileTable = (ReadWriteTable<Integer, Profile>) context.getTable("t1");
+22    }
+23 
+24    @Override
+25    public void process(IncomingMessageEnvelope envelope, MessageCollector collector, TaskCoordinator coordinator) {
+26      String key = (String)message.getKey();
+27      Profile profile = (Profile)message.getMessage();
+28      profileTable.put(key, profile);
+29    }
+30  }
+{% endhighlight %}
+
+In the code snippet above, we read from an input stream, perform transformation, 
+join with a table and finally write the output to another table.
+
+1. Line 7-8: A `TableDescriptor` for an in-memory table is created with tableId “t1”, 
+     and then the serde is set. 
+2. Line 9: creates an `InputStreamDescriptor`.
+3. Line 11-12: adds `TableDescriptor` and `InputStreamDescriptor` to the `TaskApplicationDescriptor`.
+4. Line 16: `InitiableStreamTask` is implemented.
+5. Line 21: A reference to table “t1” is obtained in the `Task.init()` method.
+6. Line 26-28: gets the profile key and record from the incoming stream and writes to the table. 
+
+[`ReadableTable`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/table/ReadableTable.java) 
+or [`ReadWriteTable`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/table/ReadWriteTable.java) 
+can be used in the 
+[`StreamTask.process()`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/task/StreamTask.java#L49) 
+method on the table reference obtained 
+in the 
+[`InitableTask.init()`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/task/InitableTask.java#L35) 
+method.
+
+
+# Table Metrics
+
+The table below summarizes table metrics:
+
+
+| Metrics | Class | Description |
+|---------|-------|-------------|
+|`get-ns`|`ReadableTable`|Average latency of `get/getAsync()` operations|
+|`getAll-ns`|`ReadableTable`|Average latency of `getAll/getAllAsync()` operations|
+|`num-gets`|`ReadableTable`|Count of `get/getAsync()` operations
+|`num-getAlls`|`ReadableTable`|Count of `getAll/getAllAsync()` operations
+|`put-ns`|`ReadWriteTable`|Average latency of `put/putAsync()` operations
+|`putAll-ns`|`ReadWriteTable`|Average latency of `putAll/putAllAsync()` operations
+|`num-puts`|`ReadWriteTable`|Count of `put/putAsync()` operations
+|`num-putAlls`|`ReadWriteTable`|Count of `putAll/putAllAsync()` operations
+|`delete-ns`|`ReadWriteTable`|Average latency of `delete/deleteAsync()` operations
+|`deleteAll-ns`|`ReadWriteTable`|Average latency of `deleteAll/deleteAllAsync()` operations
+|`delete-num`|`ReadWriteTable`|Count of `delete/deleteAsync()` operations
+|`deleteAll-num`|`ReadWriteTable`|Count of `deleteAll/deleteAllAsync()` operations
+|`flush-ns`|`ReadWriteTable`|Average latency of flush operations
+|`flush-num`|`ReadWriteTable`|Count of flush operations
+|`hit-rate`|`CachingTable`|Cache hit rate (%)
+|`miss-rate`|`CachingTable`|Cache miss rate (%)
+|`req-count`|`CachingTable`|Count of requests
+|`retry-count`|`TableRetryPolicy`|Count of retries executed (excluding the first attempt)
+|`success-count`|`TableRetryPolicy`|Count of successes at first attempt
+|`perm-failure-count`|`TableRetryPolicy`|Count of operations that failed permanently and exhausted all retries
+|`retry-timer`|`TableRetryPolicy`|Total time spent in each IO; this is updated only when at least one retry has been attempted.
+
+
+# Table Types
+
+## Remote Table
+
+[`RemoteTable`](https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/remote/RemoteTableDescriptor.java) 
+provides a unified abstraction for Samza applications to access any remote data 
+store through stream-table join in high-level API or direct access in low-level 
+API. Remote Table is a store-agnostic abstraction that can be customized to 
+access new types of stores by writing pluggable I/O "Read/Write" functions, 
+implementations of 
+[`TableReadFunction`](https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/remote/TableReadFunction.java) and 
+[`TableWriteFunction`](https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/remote/TableWriteFunction.java) 
+interfaces. Remote Table also provides common functionality, eg. rate limiting 
+(built-in) and caching (hybrid).
+
+The async APIs in Remote Table are recommended over the sync versions for higher 
+throughput. They can be used with Samza with low-level API to achieve the maximum 
+throughput. 
+
+Remote Tables are represented by class 
+[`RemoteReadableTable`](https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/remote/RemoteReadableTable.java) and 
+[`RemoteReadWriteTable`](https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/remote/RemoteReadWriteTable.java). 
+All configuration options of a Remote Table can be found in the 
+[`RemoteTableDescriptor`](https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/remote/RemoteTableDescriptor.java) class. 
+
+### Rate Limiting
+
+Remote Table has built-in client-side rate limiting support in both of its sync 
+and async executions. This is useful when a remote data store does not have 
+server-side rate limiting or is not sophisticated enough to handle heavy 
+inbound requests. 
+
+#### Configuration
+
+Rate limiting can be enabled with [`RemoteTableDescriptor`](https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/remote/RemoteTableDescriptor.java) in two ways:
+ 
+1. Default: `withReadRateLimit()` and `withWriteRateLimit()`. The 
+   [default implementation](https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/util/EmbeddedTaggedRateLimiter.java)
+   uses [Guava](https://google.github.io/guava/releases/snapshot-jre/api/docs/com/google/common/util/concurrent/RateLimiter.html)
+   for rate limiting and provides basic throttling on read/write rates.
+2. User-defined instance: `withRateLimiter()`. Tailored for more advanced 
+   usages, eg. custom policies and/or rate limiter libraries
+
+#### Quota
+
+For the default rate limiter, a per-container quota needs to be specified, and 
+is divided evenly among all task instances. Application developers are expected 
+to calculate such quota from a global quota against the number of containers.
+
+### Retry
+
+I/O failures are not uncommon given the inherently unreliable network and complex 
+behaviors of distributed data stores. To be fault-tolerant, Remote Table provides 
+built-in support for retrying failed I/O operations originated from the data store 
+clients.
+
+Retry capability can be added to a [`RemoteTableDescriptor`](https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/remote/RemoteTableDescriptor.java) by providing a 
+[`TableRetryPolicy`] (https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/retry/TableRetryPolicy.java),
+ which consists of three aspects: 
+
+* Backoff/Sleep policy - fixed, random, exponential with jitters
+* Termination policy - by total attempts and/or delay
+* Retriable exception classification - predicate on `Throwable`
+
+By default, retry is disabled as such failed I/O operations will propagate up and 
+the caller is expected to handle the exception. When enabled, retry is on a 
+per-request basis such that each individual request is retried independently. 
+
+Lastly, Remote Table retry provides a set of standard metrics for monitoring. 
+They can be found in 
+[`RetryMetrics`] (https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/retry/RetryMetrics.java).
+
+## Local Table
+
+A table is considered local when its data physically co-exists on the same host 
+machine as its running job, e.g. in memory or on disk. Local tables are particularly 
+useful when data needs to be accessed frequently with low latency, such as a cache. 
+Samza Table API supports in-memory and RocksDB-based local tables, which are based 
+on the current implementation of in-memory and RocksDB stores. Both tables provide 
+feature parity to existing in-memory and RocksDB-based stores. For more detailed 
+information please refer to 
+[`RocksDbTableDescriptor`] (https://github.com/apache/samza/blob/master/samza-kv-rocksdb/src/main/java/org/apache/samza/storage/kv/RocksDbTableDescriptor.java) and 
+[`InMemoryTableDescriptor`] (https://github.com/apache/samza/blob/master/samza-kv-inmemory/src/main/java/org/apache/samza/storage/kv/inmemory/InMemoryTableDescriptor.java). 
+
+## Hybrid Table
+
+Hybrid Table consists of one or more tables, and it orchestrates operations between 
+them to achieve more advanced functionality. Caching support for remote table is 
+currently built on top of hybrid Table because cache can be naturally abstracted 
+as a table, eg. local table is also a durable cache.
+
+### Caching
+
+Despite the convenience of remote table, it still incurs the same latency as accessing 
+the remote store directly. Whenever eventual consistency is acceptable, Samza 
+applications can leverage the caching support in Table API to reduce such latency 
+in addition to using the async methods. 
+
+[`CachingTable`] (https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/caching/CachingTable.java) 
+is the generic table type for combining a cache table (Guava, RocksDb, Couchbase) 
+with a remote table. Both the cache and data tables are pluggable, and `CachingTable`
+handles the interactions between them for caching semantics.
+
+#### Write Policies
+
+Caching Table supports below write policies and you can configure them with 
+[`CachingTableDescriptor`] (https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/caching/CachingTableDescriptor.java). 
+
+* Write-through: records are written to both the data store and cache
+* Write-around: records are written only to data store bypassing the cache
+   * Useful when read-path has no locality with read-path
+
+#### Synchronization
+
+No synchronization is done between data store and cache in `CachingTable` because 
+it is very cumbersome in the async code paths. Given eventual consistency is a 
+presumed trade-off for enabling caching, it should be acceptable for the table 
+and cache to not always be in-sync. Last but not least, unsynchronized operations 
+in `CachingTable` deliver much higher throughput.
+
+#### Configuration
+
+Similar to 
+[`RateLimiter`](https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/util/RateLimiter.java)
+configuration in remote table, caching can be configured in two ways: 
+
+1. Default: `withCacheSize()`, `withReadTtl()`, `withWriteTtl()`
+2. Custom `CacheTable` instance: `withCache()`
+
+The default 
+[`CacheTable`] (https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/caching/guava/GuavaCacheTable.java) 
+is an in-memory cache implemented on top of 
+[Guava Cache] (https://github.com/google/guava/wiki/CachesExplained). 
+
+# Implementing Your Own Tables
+
+## More Concepts
+
+[`TableSpec`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/table/TableSpec.java) 
+- Internal representation of a table, containing all information about a table.
+
+[`TableProvider`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/table/TableProvider.java) 
+- Provides the underlying table implementation that conforms to Table API.
+
+[`TableManager`] (https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/TableManager.java) 
+- Responsible for lifecycle of all table instances within a task; it is 
+created during instantiation of Samza container.
+
+## Lifecycle of a Table
+
+The life of a table goes through a few phases
+
+1. **Declaration** - at first one declares the table by creating a `TableDescriptor`. In both 
+   Samza high level and low level API, the `TableDescriptor` is registered with stream 
+   graph, internally converted to `TableSpec` and in return a reference to a `Table` 
+   object is obtained that can participate in the building of the DAG.
+2. **Instantiation** - during planning stage, configuration is 
+   [generated] (https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/execution/JobNode.java) 
+   from `TableSpec`, 
+   and the actual tables are instantiated during initialization of 
+   [Samza container] (https://github.com/apache/samza/blob/master/samza-core/src/main/scala/org/apache/samza/container/SamzaContainer.scala).
+3. **Usage** - there are a few ways to access a table instance
+   * In Samza high level API, a reference to Table can be obtained from a `TableDescriptor`, 
+     which can be used to participate in the DAG operations such as 
+     [`join()`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/operators/MessageStream.java) and 
+     [`sendTo()`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/operators/MessageStream.java)
+   * In Samza high level API, all table instances can be retrieved from `TaskContext` using 
+     table-id during initialization of a 
+     [`InitableFunction`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/operators/functions/InitableFunction.java).
+   * In Samza low level API, all table instances can be retrieved from `TaskContext` using 
+     table-id during initialization of a 
+   [`InitableTask`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/task/InitableTask.java).
+4. **Cleanup** - 
+   [`close()`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/table/ReadableTable.java) 
+   is invoked on all tables when a job is stopped.
+
+## Developing a Local Table
+
+Developing a local table involves implementing a new table descriptor, provider and provider factory.
+
+1. [`TableDescriptor`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/operators/TableDescriptor.java) - this is the user facing object that contains primarily configuration parameters. 
+   In addition, a few internal methods need to be implemented
+   * `generateTableSpecConfig()` should convert parameters in the table descriptor 
+     to a `Map<String, String>`, so that information about a table can be transferred 
+     to a `TableSpec`.
+   * `getTableSpec()` creates a `TableSpec` object, which is the internal representation 
+     of a table.
+2. [`TableProvider`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/table/TableProvider.java) - provides the implementation for a table. It ensures a table is
+   properly constructed and also manages its lifecycle. Methods to implement are
+   * `generateConfig()` generates all Samza configuration relevant to the table. 
+     Note in the case of RocksDB, store configuration is also generated here.
+
+Note:
+
+* Since the current local table implementation relies on Samza store implementation, 
+  adding a local table requires providing the store implementation first.
+
+## Developing a Remote Table
+
+The generic design of remote table abstracts away mach common functionality. 
+Therefore, adding a new remote table type is much more straightforward than 
+writing a Samza table from scratch. You only need to implement the 
+[`TableReadFunction`](https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/remote/TableReadFunction.java) and
+[`TableWriteFunction`](https://github.com/apache/samza/blob/master/samza-core/src/main/java/org/apache/samza/table/remote/TableWriteFunction.java) 
+(if supported) interfaces, and the new table type is readily usable with the 
+Remote Table framework.
+
+![diagram-medium](/img/{{site.version}}/learn/documentation/api/table-descriptor-class-diagram.svg)
+
+Since the interfaces have sufficient javadocs and are self-explanatory, we present a 
+high-level guideline to call out some less obvious aspects and help ensure consistency 
+among future I/O (Read/Write) function implementations in the following sections. 
+
+### Serializability
+
+Samza Remote Table I/O function interfaces extend `java.io.Serializable`, which imposes 
+a serializability expectation on their implementations, i.e.
+
+1. All fields within I/O function classes must be serializable.
+2. Non-serializable fields must be marked transient. Otherwise, serialization 
+   of I/O function will fail. Typical examples of such fields are store client 
+   objects.
+3. Consequently, non-serializable fields must be initialized within the 
+   implementation of the init() method of the InitableFunction interface extended 
+   by both TableReadFunction and TableWriteFunction interfaces. Otherwise, 
+   non-serializable fields will be null after I/O function is deserialized.
+
+{% highlight java %}
+class ReadFunction implements TableReadFunction {
+  @Override
+  public void init(Config config, TaskContext context) {
+    /* Initialize all transient fields here. */
+  }
+}
+ 
+class WriteFunction implements TableWriteFunction {
+  @Override
+  public void init(Config config, TaskContext context) {
+    /* Initialize all transient fields here. */
+  }
+}
+{% endhighlight %}
+
+### Logging
+
+Our recommendation is to:
+
+1. Avoid doing any informational logging in I/O functions that are typically 
+   invoked extensively in Samza applications, e.g.
+   * `TableReadFunction.get[All]()`
+   * `TableWriteFunction.put[All]()`
+   * `TableWriteFunction.delete[All]()`
+2. Log all initialization-related successes/failures occurring in overrides of 
+`InitableFunction.init()` to improve diagnosability.
+
+### Handling Client Exceptions and Retrying Failed Requests
+
+Implementations of I/O functions for remote stores are likely to utilize a 
+client object for communicating with their corresponding store endpoints. 
+In this setup, it is possible for an I/O function to run into situations 
+where the client it uses throws, e.g. in response to networking or logical 
+errors.
+
+We recommend:
+
+1. Catching all such errors, wrapping and throwing them in a 
+[`SamzaException`] (https://github.com/apache/samza/blob/master/samza-api/src/main/java/org/apache/samza/SamzaException.java).
+2. Attempting no retry in the face of client errors or failed requests. The 
+   intent of the current design of Samza Remote Table API is to handle 
+   retries at a higher and more abstract Remote Table level, which implies 
+   retrying is not a responsibility of I/O functions.
+
+### Caching
+
+Samza Remote Table API can be configured to utilize user-supplied caches. 
+You may refer to the [Caching](#caching) section under Hybrid Table for more details.
+
+### Rate Limiting
+Samza Remote Table API offers generic rate limiting capabilities that can 
+be used with all I/O function implementations. You may refer to the 
+[Rate Limiting](#rate-limiting) section under Remote Table for more details.
+
+### Separate vs Combined Read/Write Implementations
+
+It is up to the developer whether to implement both `TableReadFunction` and 
+`TableWriteFunction` in one class or two separate classes. Defining them in 
+separate classes can be cleaner if their implementations are elaborate and 
+extended, whereas keeping them in a single class may be more practical if 
+they share a considerable amount of code or are relatively short.

http://git-wip-us.apache.org/repos/asf/samza/blob/6c9715fb/docs/learn/documentation/versioned/index.html
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/index.html b/docs/learn/documentation/versioned/index.html
index 193297c..b37b616 100644
--- a/docs/learn/documentation/versioned/index.html
+++ b/docs/learn/documentation/versioned/index.html
@@ -28,6 +28,7 @@ title: Documentation
 <ul class="documentation-list">
   <li><a href="comparisons/introduction.html">Low-level API</a></li>
   <li><a href="comparisons/mupd8.html">Streams DSL</a></li>
+  <li><a href="api/table-api.html">Table API</a></li>
   <li><a href="comparisons/storm.html">Samza SQL</a></li>
   <li><a href="comparisons/spark-streaming.html">Apache BEAM</a></li>
 <!-- TODO comparisons pages


[2/2] samza git commit: SAMZA-1915: Added docs for table API

Posted by we...@apache.org.
SAMZA-1915: Added docs for table API

As per subject

Author: Wei Song <ws...@linkedin.com>

Reviewers: Jagadish Venkatraman <jv...@linkedin.com>

Closes #666 from weisong44/SAMZA-1915 and squashes the following commits:

b7794af5 [Wei Song] Updated table section in CSS
396d5e8a [Wei Song] Merged from master
1e5de45a [Wei Song] Merge remote-tracking branch 'upstream/master'
e0e70acf [Wei Song] Merge branch 'master' into SAMZA-1915
c85604e0 [Wei Song] Merge remote-tracking branch 'upstream/master'
d687f716 [Wei Song] SAMZA-1915: Added docs for table API
242d8442 [Wei Song] Merge remote-tracking branch 'upstream/master'
ec7d8409 [Wei Song] Merge remote-tracking branch 'upstream/master'
e19b4dc9 [Wei Song] Merge remote-tracking branch 'upstream/master'
8ee78441 [Wei Song] Merge remote-tracking branch 'upstream/master'
1c6a2eae [Wei Song] Merge remote-tracking branch 'upstream/master'
a6c94add [Wei Song] Merge remote-tracking branch 'upstream/master'
41299b5b [Wei Song] Merge remote-tracking branch 'upstream/master'
239a0950 [Wei Song] Merge remote-tracking branch 'upstream/master'
eca00204 [Wei Song] Merge remote-tracking branch 'upstream/master'
51562391 [Wei Song] Merge remote-tracking branch 'upstream/master'
de708f5e [Wei Song] Merge remote-tracking branch 'upstream/master'
df2f8d7b [Wei Song] Merge remote-tracking branch 'upstream/master'
f28b491d [Wei Song] Merge remote-tracking branch 'upstream/master'
4782c61d [Wei Song] Merge remote-tracking branch 'upstream/master'
0440f75f [Wei Song] Merge remote-tracking branch 'upstream/master'
aae0f380 [Wei Song] Merge remote-tracking branch 'upstream/master'
a15a7c9a [Wei Song] Merge remote-tracking branch 'upstream/master'
5cbf9af9 [Wei Song] Merge remote-tracking branch 'upstream/master'
3f7ed71f [Wei Song] Added self to committer list


Project: http://git-wip-us.apache.org/repos/asf/samza/repo
Commit: http://git-wip-us.apache.org/repos/asf/samza/commit/6c9715fb
Tree: http://git-wip-us.apache.org/repos/asf/samza/tree/6c9715fb
Diff: http://git-wip-us.apache.org/repos/asf/samza/diff/6c9715fb

Branch: refs/heads/master
Commit: 6c9715fbc85f973907807cccc26c9d7d3ed983df
Parents: 1147167
Author: Wei Song <ws...@linkedin.com>
Authored: Fri Sep 28 22:59:19 2018 -0700
Committer: Wei Song <ws...@linkedin.com>
Committed: Fri Sep 28 22:59:19 2018 -0700

----------------------------------------------------------------------
 docs/_config.yml                                |   2 +-
 docs/css/main.new.css                           |   1 +
 .../learn/documentation/api/table-api-arch.svg  |   1 +
 .../documentation/api/table-class-diagram.svg   | 370 ++++++++++++
 .../api/table-descriptor-class-diagram.svg      | 270 +++++++++
 .../documentation/versioned/api/table-api.md    | 558 +++++++++++++++++++
 docs/learn/documentation/versioned/index.html   |   1 +
 7 files changed, 1202 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/samza/blob/6c9715fb/docs/_config.yml
----------------------------------------------------------------------
diff --git a/docs/_config.yml b/docs/_config.yml
index 15e0c19..0d13138 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -42,4 +42,4 @@ collections:
   releases:
     output: true
   powered-by:
-    output: false
\ No newline at end of file
+    output: false

http://git-wip-us.apache.org/repos/asf/samza/blob/6c9715fb/docs/css/main.new.css
----------------------------------------------------------------------
diff --git a/docs/css/main.new.css b/docs/css/main.new.css
index cd88e37..7608b96 100644
--- a/docs/css/main.new.css
+++ b/docs/css/main.new.css
@@ -828,6 +828,7 @@ a.side-navigation__group-title::after {
 table {
   border-collapse: collapse;
   margin: 1em 0;
+  border:1px solid #000000;
   font-size : 12px;
   font-family : "Myriad Web",Verdana,Helvetica,Arial,sans-serif;
 }

http://git-wip-us.apache.org/repos/asf/samza/blob/6c9715fb/docs/img/versioned/learn/documentation/api/table-api-arch.svg
----------------------------------------------------------------------
diff --git a/docs/img/versioned/learn/documentation/api/table-api-arch.svg b/docs/img/versioned/learn/documentation/api/table-api-arch.svg
new file mode 100644
index 0000000..dd2b017
--- /dev/null
+++ b/docs/img/versioned/learn/documentation/api/table-api-arch.svg
@@ -0,0 +1 @@
+<svg version="1.1" viewBox="0.0 0.0 1024.0 768.0" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="p.0"><path d="m0 0l1024.0 0l0 768.0l-1024.0 0l0 -768.0z" clip-rule="nonzero"/></clipPath><g clip-path="url(#p.0)"><path fill="#000000" fill-opacity="0.0" d="m0 0l1024.0 0l0 768.0l-1024.0 0z" fill-rule="evenodd"/><path fill="#cfe2f3" d="m477.66403 121.56956l383.7795 0l0 510.29922l-383.7795 0z" fill-rule="evenodd"/><path fill="#d9ead3" d="m230.0 121.56956l227.74802 0l0 510.29922l-227.74802 0z" fill-rule="evenodd"/><path fill="#ffffff" d="m572.8924 156.06561l190.99213 0l0 41.007874l-190.99213 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m572.8924 156.06561l190.99213 0l0 41.007874l-190.99213 0z" fill-rule="evenodd"/><path fill="#000000" d="m628.63666 183.48955l0 -11.78125l-4.40625 0l0 -1.578125l10.578125 0
 l0 1.578125l-4.40625 0l0 11.78125l-1.765625 0zm14.099121 -1.1875q-0.921875 0.765625 -1.765625 1.09375q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78125 -0.859375 -1.984375q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59375 0.40625 1.15625l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.1875zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875
  0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.4375 1.453125 0.4375q0.9375 0 1.671875 -0.40625q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm5.7038574 4.859375l-1.515625 0l0 -13.359375l1.640625 0l0 4.765625q1.046875 -1.296875 2.65625 -1.296875q0.890625 0 1.6875 0.359375q0.796875 0.359375 1.3125 1.015625q0.515625 0.640625 0.796875 1.5625q0.296875 0.921875 0.296875 1.96875q0 2.484375 -1.234375 3.84375q-1.21875 1.359375 -2.953125 1.359375q-1.703125 0 -2.6875 -1.4375l0 1.21875zm-0.015625 -4.90625q0 1.734375 0.484375 2.515625q0.765625 1.265625 2.09375 1.265625q1.078125 0 1.859375 -0.9375q0.78125 -0.9375 0.78125 -2.78125q0 -1.890625 -0.75 -2.796875q-0.75 -0.90625 -1.828125 -0.90625q-1.0625 0 -1.859375 0.9375q-0.78125 0.9375 -0.78125 2.703125zm8.844421 4.90625l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.816711 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.
 125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm8.750732 1.46875l1.65625 -0.140625q0.125 1.0 0.546875 1.640625q0.4375 0.640625 1.34375 1.046875q0.921875 0.390625 2.0625 0.390625q1.0 0 1.78125 -0.296875q0.78125 -0.296875 1.15625 -0.8125q0.375 -0.53125 0.375 -1.15625q0 -0.625 -0.375 -1.09375q-0.359375 -0.46875 -1.1875 -0.796875q-0.546875 -0.203125 -2.390625 -0.640625q-1.828125 -0.453125 -2.5625 -0.84375q-0.96875 -0.5 -1.4375 -1.234375q-0.46875 -0.75 -0.46875 -1.671875q0 -1.0 0.578125 -1.875q0.578125 -0.890625 1.671875 -1.34375q1.10
 9375 -0.453125 2.453125 -0.453125q1.484375 0 2.609375 0.484375q1.140625 0.46875 1.75 1.40625q0.609375 0.921875 0.65625 2.09375l-1.6875 0.125q-0.140625 -1.265625 -0.9375 -1.90625q-0.78125 -0.65625 -2.3125 -0.65625q-1.609375 0 -2.34375 0.59375q-0.734375 0.59375 -0.734375 1.421875q0 0.71875 0.53125 1.171875q0.5 0.46875 2.65625 0.96875q2.15625 0.484375 2.953125 0.84375q1.171875 0.53125 1.71875 1.359375q0.5625 0.828125 0.5625 1.90625q0 1.0625 -0.609375 2.015625q-0.609375 0.9375 -1.75 1.46875q-1.140625 0.515625 -2.578125 0.515625q-1.8125 0 -3.046875 -0.53125q-1.21875 -0.53125 -1.921875 -1.59375q-0.6875 -1.0625 -0.71875 -2.40625zm12.8341675 8.0l0 -13.375l1.484375 0l0 1.25q0.53125 -0.734375 1.1875 -1.09375q0.671875 -0.375 1.625 -0.375q1.234375 0 2.171875 0.640625q0.953125 0.625 1.4375 1.796875q0.484375 1.15625 0.484375 2.546875q0 1.484375 -0.53125 2.671875q-0.53125 1.1875 -1.546875 1.828125q-1.015625 0.625 -2.140625 0.625q-0.8125 0 -1.46875 -0.34375q-0.65625 -0.34375 -1.0625 -0.875l0 4.7031
 25l-1.640625 0zm1.484375 -8.484375q0 1.859375 0.75 2.765625q0.765625 0.890625 1.828125 0.890625q1.09375 0 1.875 -0.921875q0.78125 -0.9375 0.78125 -2.875q0 -1.84375 -0.765625 -2.765625q-0.75 -0.921875 -1.8125 -0.921875q-1.046875 0 -1.859375 0.984375q-0.796875 0.96875 -0.796875 2.84375zm15.516357 1.671875l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm15.453857 2.21875l1.609375 0.21875q-0.265625 1.65625 -1.359375 2.609375q-1.078125 0.9375 -2.67
 1875 0.9375q-1.984375 0 -3.1875 -1.296875q-1.203125 -1.296875 -1.203125 -3.71875q0 -1.578125 0.515625 -2.75q0.515625 -1.171875 1.578125 -1.75q1.0625 -0.59375 2.3125 -0.59375q1.578125 0 2.578125 0.796875q1.0 0.796875 1.28125 2.265625l-1.59375 0.234375q-0.234375 -0.96875 -0.8125 -1.453125q-0.578125 -0.5 -1.390625 -0.5q-1.234375 0 -2.015625 0.890625q-0.78125 0.890625 -0.78125 2.8125q0 1.953125 0.75 2.84375q0.75 0.875 1.953125 0.875q0.96875 0 1.609375 -0.59375q0.65625 -0.59375 0.828125 -1.828125z" fill-rule="nonzero"/><path fill="#ffffff" d="m499.66403 421.44357l337.44882 0l0 183.55905l-337.44882 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m499.66403 421.44357l337.44882 0l0 183.55905l-337.44882 0z" fill-rule="evenodd"/><path fill="#000000" d="m615.1637 448.36356l0 -11.78125l-4.40625 0l0 -1.578125l10.578125 0l0 1.578125l-4.40625 0l0 11.78125l-1.765625 0zm14.099121 -1.1875q-0.921875 0.765625 -1.765625 1.09375q-0.82812
 5 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78125 -0.859375 -1.984375q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59375 0.40625 1.15625l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.1875zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.4375 1.453125 0.4375q0.
 9375 0 1.671875 -0.40625q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm5.7038574 4.859375l-1.515625 0l0 -13.359375l1.640625 0l0 4.765625q1.046875 -1.296875 2.65625 -1.296875q0.890625 0 1.6875 0.359375q0.796875 0.359375 1.3125 1.015625q0.515625 0.640625 0.796875 1.5625q0.296875 0.921875 0.296875 1.96875q0 2.484375 -1.234375 3.84375q-1.21875 1.359375 -2.953125 1.359375q-1.703125 0 -2.6875 -1.4375l0 1.21875zm-0.015625 -4.90625q0 1.734375 0.484375 2.515625q0.765625 1.265625 2.09375 1.265625q1.078125 0 1.859375 -0.9375q0.78125 -0.9375 0.78125 -2.78125q0 -1.890625 -0.75 -2.796875q-0.75 -0.90625 -1.828125 -0.90625q-1.0625 0 -1.859375 0.9375q-0.78125 0.9375 -0.78125 2.703125zm8.844482 4.90625l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.81665 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265
 625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.344482 5.765625l0 -13.359375l5.046875 0q1.328125 0 2.03125 0.125q0.96875 0.171875 1.640625 0.640625q0.671875 0.453125 1.078125 1.28125q0.40625 0.828125 0.40625 1.828125q0 1.703125 -1.09375 2.890625q-1.078125 1.171875 -3.921875 1.171875l-3.421875 0l0 5.421875l-1.765625 0zm1.765625 -7.0l3.453125 0q1.71875 0 2.4375 -0.640625q0.71875 -0.640625 0.71875 -1.796875q0 -0.84375 -0.421875 -1.4375q-0.421875 -0.59375 -1.125 -0.78125q-0.4375 -0.125 -1.640625 -0.125l-3.421875 0l0 4.78125zm10.4592285 7.0l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q
 0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm5.6188965 -4.84375q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.0625 -1.640625 1.65625q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.3125 -1.25 -3.765625zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm11.985107 4.84375l-3.6875 -9.671875l1.734375 0l2.078125 5.796875q0.328125 0.9375 0.625 1.9375q0.203125 -0.765625 0.609375 -1.828125l2.140625 -5.90625l1.6875 0l-3.65625 9.671875l-1.53125 0zm6.640625 -11.46875l0 -1.890625l1.640625 0l0 1.
 890625l-1.640625 0zm0 11.46875l0 -9.671875l1.640625 0l0 9.671875l-1.640625 0zm10.410461 0l0 -1.21875q-0.90625 1.4375 -2.703125 1.4375q-1.15625 0 -2.125 -0.640625q-0.96875 -0.640625 -1.5 -1.78125q-0.53125 -1.140625 -0.53125 -2.625q0 -1.453125 0.484375 -2.625q0.484375 -1.1875 1.4375 -1.8125q0.96875 -0.625 2.171875 -0.625q0.875 0 1.546875 0.375q0.6875 0.359375 1.109375 0.953125l0 -4.796875l1.640625 0l0 13.359375l-1.53125 0zm-5.171875 -4.828125q0 1.859375 0.78125 2.78125q0.78125 0.921875 1.84375 0.921875q1.078125 0 1.828125 -0.875q0.75 -0.890625 0.75 -2.6875q0 -1.984375 -0.765625 -2.90625q-0.765625 -0.9375 -1.890625 -0.9375q-1.078125 0 -1.8125 0.890625q-0.734375 0.890625 -0.734375 2.8125zm15.906921 1.71875l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0
 .4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.125732 5.765625l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0z" fill-rule="nonzero"/><path fill="#ffffff" d="m531.19946 473.4147l133.95276 0l0 46.48819l-133.95276 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m531.19946 473.4147l133.95276 0l0 46.48819l-133.95276 0z" fill-rule="evenodd"/><path fill="#000000" d="m577.23517 503.5788l0 -13.359375l1.78125 0
 l0 11.78125l6.5625 0l0 1.578125l-8.34375 0zm9.641357 -4.84375q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.0625 -1.640625 1.65625q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.3125 -1.25 -3.765625zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm15.610107 1.296875l1.609375 0.21875q-0.265625 1.65625 -1.359375 2.609375q-1.078125 0.9375 -2.671875 0.9375q-1.984375 0 -3.1875 -1.296875q-1.203125 -1.296875 -1.203125 -3.71875q0 -1.578125 0.515625 -2.75q0.515625 -1.171875 1.578125 -1.75q1.0625 -0.59375 2.3125 -0.59375q1.578125 0 2.578125 0.796875q1.0 0.796875 1.28125 2.265625l-1.59375 0.234375q-0.234375 -0.96875 -0.8125 -1.453125q-0.578125 -0
 .5 -1.390625 -0.5q-1.234375 0 -2.015625 0.890625q-0.78125 0.890625 -0.78125 2.8125q0 1.953125 0.75 2.84375q0.75 0.875 1.953125 0.875q0.96875 0 1.609375 -0.59375q0.65625 -0.59375 0.828125 -1.828125zm9.328125 2.359375q-0.921875 0.765625 -1.765625 1.09375q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78125 -0.859375 -1.984375q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59375 0.40625 1.156
 25l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.1875zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.4375 1.453125 0.4375q0.9375 0 1.671875 -0.40625q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm4.1569214 4.859375l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0z" fill-rule="nonzero"/><path fill="#ffffff" d="m678.0002 473.4147l133.95276 0l0 46.48819l-133.95276 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m678.0002 473.4147l133.95276 0l0 46.48819l-133.95276 0z" fill-rule="evenodd"/><path fill="#000000" d="m713.7832 503.5788l0 -13.359375l5.921875 0q1.78125 0 2.703125 0.359375q0.9375 0.359375 1.484375 1.28125q0.5625 0.90625 0.5625 2.015625q0 1.40625 -0.921875 2.390625q-0.921875 0.96875 -2.84375 1.234375q0.703125 0.34375 1.078125 0.671875q0.765625 
 0.703125 1.453125 1.765625l2.328125 3.640625l-2.21875 0l-1.765625 -2.78125q-0.78125 -1.203125 -1.28125 -1.828125q-0.5 -0.640625 -0.90625 -0.890625q-0.390625 -0.265625 -0.796875 -0.359375q-0.296875 -0.078125 -0.984375 -0.078125l-2.046875 0l0 5.9375l-1.765625 0zm1.765625 -7.453125l3.796875 0q1.21875 0 1.890625 -0.25q0.6875 -0.265625 1.046875 -0.8125q0.359375 -0.546875 0.359375 -1.1875q0 -0.953125 -0.6875 -1.5625q-0.6875 -0.609375 -2.1875 -0.609375l-4.21875 0l0 4.421875zm18.097961 4.34375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.7812
 5 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.141357 5.765625l0 -9.671875l1.46875 0l0 1.359375q0.453125 -0.71875 1.203125 -1.140625q0.765625 -0.4375 1.71875 -0.4375q1.078125 0 1.765625 0.453125q0.6875 0.4375 0.96875 1.234375q1.15625 -1.6875 2.984375 -1.6875q1.453125 0 2.21875 0.796875q0.78125 0.796875 0.78125 2.453125l0 6.640625l-1.640625 0l0 -6.09375q0 -0.984375 -0.15625 -1.40625q-0.15625 -0.4375 -0.578125 -0.703125q-0.421875 -0.265625 -0.984375 -0.265625q-1.015625 0 -1.6875 0.6875q-0.671875 0.671875 -0.671875 2.15625l0 5.625l-1.640625 0l0 -6.28125q0 -1.09375 -0.40625 -1.640625q-0.40625 -0.546875 -1.3125 -0.546875q-0.6875 0 -1.28125 0.359375q-0.59375 0.359375 -0.859375 1.0625q-0.25 0.703125 -0.25 2.03125l0 5.015625l-1.640625 0zm14.9313965 -4.84375q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.0625 -1.640625 1.65625q-1.0625 0.5
 9375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.3125 -1.25 -3.765625zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm12.875732 3.375l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm8.230164 -1.640625l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625
  -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625z" fill-rule="nonzero"/><path fill="#ffffff" d="m252.87665 254.13387l182.74014 0l0 37.354324l-182.74014 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m252.87665 254.13387l182.74014 0l0 37.354324l-182.74014 0z" fill-rule="evenodd"/><path fill="#000000" d="m274.5784 275.43414l1.65625 -0.140625q0.125 1.0 0.546875 1.640625q0.4375 0.640625 1.34375 1.046875q0.921875 0.390625 2.0625 0.390625q1.0 0 1.78125 -0.296875q0.78125 -0.296875 1.15625 -0.8125q0.375 -0.53125 0.375 -1.15625q0 -0.625 -0.375 -1.09375q-0.359375 -0.46875 -1.1875 -0.79
 6875q-0.546875 -0.203125 -2.390625 -0.640625q-1.828125 -0.453125 -2.5625 -0.84375q-0.96875 -0.5 -1.4375 -1.234375q-0.46875 -0.75 -0.46875 -1.671875q0 -1.0 0.578125 -1.875q0.578125 -0.890625 1.671875 -1.34375q1.109375 -0.453125 2.453125 -0.453125q1.484375 0 2.609375 0.484375q1.140625 0.46875 1.75 1.40625q0.609375 0.921875 0.65625 2.09375l-1.6875 0.125q-0.140625 -1.265625 -0.9375 -1.90625q-0.78125 -0.65625 -2.3125 -0.65625q-1.609375 0 -2.34375 0.59375q-0.734375 0.59375 -0.734375 1.421875q0 0.71875 0.53125 1.171875q0.5 0.46875 2.65625 0.96875q2.15625 0.484375 2.953125 0.84375q1.171875 0.53125 1.71875 1.359375q0.5625 0.828125 0.5625 1.90625q0 1.0625 -0.609375 2.015625q-0.609375 0.9375 -1.75 1.46875q-1.140625 0.515625 -2.578125 0.515625q-1.8125 0 -3.046875 -0.53125q-1.21875 -0.53125 -1.921875 -1.59375q-0.6875 -1.0625 -0.71875 -2.40625zm16.412323 2.828125l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.
 46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm1.5895691 1.46875l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm12.853302 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.
 546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm15.453827 4.578125q-0.921875 0.765625 -1.765625 1.09375q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78125 -0.859375 -1.984375q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375
  0.59375 0.40625 1.15625l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.1875zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.4375 1.453125 0.4375q0.9375 0 1.671875 -0.40625q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm4.2038574 4.859375l0 -9.671875l1.46875 0l0 1.359375q0.453125 -0.71875 1.203125 -1.140625q0.765625 -0.4375 1.71875 -0.4375q1.078125 0 1.765625 0.453125q0.6875 0.4375 0.96875 1.234375q1.15625 -1.6875 2.984375 -1.6875q1.453125 0 2.21875 0.796875q0.78125 0.796875 0.78125 2.453125l0 6.640625l-1.640625 0l0 -6.09375q0 -0.984375 -0.15625 -1.40625q-0.15625 -0.4375 -0.578125 -0.703125q-0.421875 -0.265625 -0.984375 -0.265625q-1.015625 0 -1.6875 0.6875q-0.671875 0.671875 -0.671875 2.15625l0 5.625l-1.640625 0l0 -6.28125q0 -1.09375 -0.40625 -1.640625q-0.40625 -0.546875 -1.3125 -0.546875q-0.6875 0 -1.28125 0.359375
 q-0.59375 0.359375 -0.859375 1.0625q-0.25 0.703125 -0.25 2.03125l0 5.015625l-1.640625 0zm14.900177 -4.015625l0 -1.640625l5.03125 0l0 1.640625l-5.03125 0zm10.431427 2.546875l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm7.9176636 0.28125q-0.921875 0.765625 -1.765625 1.09375q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78125 -0.859375 -1.984375q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.5
 46875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59375 0.40625 1.15625l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.1875zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.4375 1.453125 0.4375q0.9375 0 1.671875 -0.40625q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm5.7038574 4.859375l-1.515625 0l0 -13.359375l1.640625 0l0 4.765625q1.046875 -1.296875 2.65625 -1.296875q0.890625 0 1.6875 0.359375q0.796875 0.359375 1.3125 1.015625q0.515625 0.640625 0.796875 1.5625q0.296875 0.921875 0.296875 1.96875q0 2.484375 
 -1.234375 3.84375q-1.21875 1.359375 -2.953125 1.359375q-1.703125 0 -2.6875 -1.4375l0 1.21875zm-0.015625 -4.90625q0 1.734375 0.484375 2.515625q0.765625 1.265625 2.09375 1.265625q1.078125 0 1.859375 -0.9375q0.78125 -0.9375 0.78125 -2.78125q0 -1.890625 -0.75 -2.796875q-0.75 -0.90625 -1.828125 -0.90625q-1.0625 0 -1.859375 0.9375q-0.78125 0.9375 -0.78125 2.703125zm8.844452 4.90625l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.816711 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.
 90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm14.309021 -5.6875l0 -1.90625l1.640625 0l0 1.90625l-1.640625 0zm-2.078125 15.203125l0.3125 -1.390625q0.5 0.125 0.78125 0.125q0.5 0 0.734375 -0.328125q0.25 -0.328125 0.25 -1.671875l0 -10.15625l1.640625 0l0 10.203125q0 1.78125 -0.46875 2.484375q-0.59375 0.90625 -1.96875 0.90625q-0.65625 0 -1.28125 -0.171875zm5.629181 -8.59375q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.0625 -1.640625 1.65625q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.3125 -1.25 -3.765625zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.297607 -6.625l0 -1.890625l1.640625 0l0 1.890625l-1.640625 0zm0 11.46875l0 -9.6718
 75l1.640625 0l0 9.671875l-1.640625 0zm4.144806 0l0 -9.671875l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953125l-1.640625 0l0 -5.890625q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.28125l-1.640625 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m265.78873 58.44357l140.0 0l0 41.007877l-140.0 0z" fill-rule="evenodd"/><path fill="#000000" d="m288.22232 70.3l2.28125 0l0 9.9375q0 2.578125 -0.59375 4.109375q-0.578125 1.515625 -2.109375 2.484375q-1.53125 0.953125 -4.015625 0.953125q-2.421875 0 -3.953125 -0.828125q-1.53125 -0.84375 -2.1875 -2.421875q-0.65625 -1.578125 -0.65625 -4.296875l0 -9.9375l2.265625 0l0 9.921875q0 2.234375 0.421875 3.296875q0.421875 1.0625 1.421875 1.640625q1.015625 0.5625 2.484375 0.5625q2.515625 0 3.5781
 25 -1.125q1.0625 -1.140625 1.0625 -4.375l0 -9.921875zm4.9414062 13.46875l2.09375 -0.328125q0.171875 1.25 0.96875 1.921875q0.8125 0.671875 2.25 0.671875q1.453125 0 2.15625 -0.59375q0.703125 -0.59375 0.703125 -1.390625q0 -0.71875 -0.625 -1.125q-0.421875 -0.28125 -2.15625 -0.71875q-2.3125 -0.578125 -3.21875 -1.0q-0.890625 -0.4375 -1.359375 -1.1875q-0.453125 -0.765625 -0.453125 -1.671875q0 -0.828125 0.375 -1.53125q0.390625 -0.71875 1.046875 -1.1875q0.484375 -0.359375 1.328125 -0.609375q0.859375 -0.265625 1.828125 -0.265625q1.46875 0 2.578125 0.421875q1.109375 0.421875 1.625 1.15625q0.53125 0.71875 0.734375 1.921875l-2.0625 0.28125q-0.140625 -0.96875 -0.8125 -1.5q-0.671875 -0.546875 -1.90625 -0.546875q-1.453125 0 -2.078125 0.484375q-0.625 0.484375 -0.625 1.125q0 0.40625 0.265625 0.734375q0.25 0.34375 0.8125 0.5625q0.3125 0.125 1.859375 0.546875q2.234375 0.59375 3.109375 0.984375q0.890625 0.375 1.390625 1.109375q0.515625 0.71875 0.515625 1.796875q0 1.046875 -0.625 1.984375q-0.609375 0.937
 5 -1.765625 1.453125q-1.15625 0.5 -2.625 0.5q-2.421875 0 -3.703125 -1.0q-1.265625 -1.015625 -1.625 -3.0zm21.375 -0.296875l2.171875 0.28125q-0.515625 1.90625 -1.90625 2.96875q-1.390625 1.046875 -3.5625 1.046875q-2.734375 0 -4.34375 -1.671875q-1.59375 -1.6875 -1.59375 -4.734375q0 -3.140625 1.609375 -4.875q1.625 -1.734375 4.203125 -1.734375q2.5 0 4.078125 1.703125q1.59375 1.703125 1.59375 4.78125q0 0.1875 -0.015625 0.5625l-9.28125 0q0.109375 2.046875 1.15625 3.140625q1.046875 1.09375 2.609375 1.09375q1.15625 0 1.96875 -0.609375q0.828125 -0.609375 1.3125 -1.953125zm-6.9375 -3.40625l6.953125 0q-0.140625 -1.5625 -0.796875 -2.359375q-1.0 -1.21875 -2.609375 -1.21875q-1.453125 0 -2.453125 0.984375q-0.984375 0.96875 -1.09375 2.59375zm11.738281 7.421875l0 -12.453125l1.890625 0l0 1.890625q0.734375 -1.328125 1.34375 -1.75q0.625 -0.421875 1.359375 -0.421875q1.0625 0 2.171875 0.6875l-0.734375 1.953125q-0.765625 -0.453125 -1.546875 -0.453125q-0.6875 0 -1.25 0.421875q-0.546875 0.40625 -0.78125 1.140
 625q-0.34375 1.125 -0.34375 2.46875l0 6.515625l-2.109375 0zm15.191406 0l0 -10.8125l-1.875 0l0 -1.640625l1.875 0l0 -1.3125q0 -1.265625 0.21875 -1.875q0.296875 -0.8125 1.0625 -1.3125q0.78125 -0.515625 2.15625 -0.515625q0.890625 0 1.96875 0.203125l-0.3125 1.84375q-0.65625 -0.125 -1.25 -0.125q-0.953125 0 -1.359375 0.421875q-0.390625 0.40625 -0.390625 1.53125l0 1.140625l2.421875 0l0 1.640625l-2.421875 0l0 10.8125l-2.09375 0zm14.277344 -1.53125q-1.171875 0.984375 -2.265625 1.40625q-1.078125 0.40625 -2.3125 0.40625q-2.046875 0 -3.15625 -1.0q-1.09375 -1.0 -1.09375 -2.5625q0 -0.921875 0.40625 -1.671875q0.421875 -0.75 1.09375 -1.203125q0.671875 -0.46875 1.515625 -0.703125q0.625 -0.15625 1.875 -0.3125q2.5625 -0.3125 3.765625 -0.734375q0.015625 -0.421875 0.015625 -0.546875q0 -1.28125 -0.609375 -1.8125q-0.796875 -0.71875 -2.390625 -0.71875q-1.5 0 -2.203125 0.53125q-0.703125 0.515625 -1.046875 1.84375l-2.0625 -0.28125q0.28125 -1.328125 0.921875 -2.140625q0.640625 -0.8125 1.859375 -1.25q1.21875 -0
 .453125 2.828125 -0.453125q1.59375 0 2.59375 0.375q1.0 0.375 1.46875 0.953125q0.46875 0.5625 0.65625 1.4375q0.09375 0.53125 0.09375 1.9375l0 2.8125q0 2.9375 0.140625 3.71875q0.140625 0.78125 0.53125 1.5l-2.203125 0q-0.328125 -0.65625 -0.421875 -1.53125zm-0.171875 -4.71875q-1.15625 0.46875 -3.453125 0.796875q-1.296875 0.1875 -1.84375 0.421875q-0.53125 0.234375 -0.828125 0.6875q-0.28125 0.453125 -0.28125 1.0q0 0.84375 0.625 1.40625q0.640625 0.5625 1.875 0.5625q1.21875 0 2.171875 -0.53125q0.953125 -0.53125 1.390625 -1.453125q0.34375 -0.71875 0.34375 -2.109375l0 -0.78125zm13.519531 1.6875l2.078125 0.265625q-0.34375 2.15625 -1.75 3.375q-1.390625 1.203125 -3.4375 1.203125q-2.546875 0 -4.109375 -1.671875q-1.546875 -1.671875 -1.546875 -4.78125q0 -2.015625 0.671875 -3.53125q0.671875 -1.515625 2.03125 -2.265625q1.359375 -0.765625 2.96875 -0.765625q2.03125 0 3.3125 1.03125q1.296875 1.03125 1.65625 2.90625l-2.046875 0.328125q-0.296875 -1.265625 -1.046875 -1.890625q-0.734375 -0.640625 -1.796875 
 -0.640625q-1.59375 0 -2.59375 1.15625q-0.984375 1.140625 -0.984375 3.609375q0 2.5 0.953125 3.640625q0.96875 1.140625 2.515625 1.140625q1.234375 0 2.0625 -0.765625q0.84375 -0.765625 1.0625 -2.34375zm3.890625 -10.1875l0 -2.4375l2.109375 0l0 2.4375l-2.109375 0zm0 14.75l0 -12.453125l2.109375 0l0 12.453125l-2.109375 0zm5.3164062 0l0 -12.453125l1.90625 0l0 1.78125q1.375 -2.0625 3.953125 -2.0625q1.125 0 2.0625 0.40625q0.953125 0.40625 1.421875 1.0625q0.46875 0.65625 0.65625 1.5625q0.125 0.578125 0.125 2.046875l0 7.65625l-2.109375 0l0 -7.578125q0 -1.28125 -0.25 -1.921875q-0.25 -0.640625 -0.875 -1.015625q-0.625 -0.390625 -1.46875 -0.390625q-1.34375 0 -2.328125 0.859375q-0.984375 0.859375 -0.984375 3.25l0 6.796875l-2.109375 0zm12.972656 1.03125l2.046875 0.3125q0.125 0.9375 0.71875 1.375q0.78125 0.5937576 2.140625 0.5937576q1.46875 0 2.265625 -0.5937576q0.796875 -0.578125 1.078125 -1.640625q0.15625 -0.640625 0.140625 -2.703125q-1.375 1.625 -3.4375 1.625q-2.5625 0 -3.96875 -1.84375q-1.40625 -1.
 859375 -1.40625 -4.453125q0 -1.78125 0.640625 -3.28125q0.640625 -1.515625 1.859375 -2.328125q1.234375 -0.828125 2.890625 -0.828125q2.203125 0 3.625 1.78125l0 -1.5l1.953125 0l0 10.765625q0 2.90625 -0.59375 4.109375q-0.59375 1.2187576 -1.875 1.9218826q-1.28125 0.703125 -3.15625 0.703125q-2.234375 0 -3.609375 -1.0q-1.359375 -1.0 -1.3125 -3.0156326zm1.734375 -7.484375q0 2.453125 0.96875 3.578125q0.984375 1.125 2.453125 1.125q1.453125 0 2.4375 -1.109375q0.984375 -1.125 0.984375 -3.515625q0 -2.28125 -1.015625 -3.4375q-1.015625 -1.171875 -2.453125 -1.171875q-1.40625 0 -2.390625 1.140625q-0.984375 1.140625 -0.984375 3.390625z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m636.7808 58.44357l140.0 0l0 41.007877l-140.0 0z" fill-rule="evenodd"/><path fill="#000000" d="m667.85114 81.97188l2.140625 -0.1875q0.15625 1.28125 0.703125 2.109375q0.5625 0.828125 1.734375 1.34375q1.171875 0.5 2.640625 0.5q1.296875 0 2.296875 -0.375q1.0 -0.390625 1.484375 -1.0625q0.484375 -0.6875 0.4843
 75 -1.484375q0 -0.796875 -0.46875 -1.40625q-0.46875 -0.609375 -1.546875 -1.015625q-0.6875 -0.265625 -3.0625 -0.828125q-2.359375 -0.578125 -3.3125 -1.078125q-1.234375 -0.640625 -1.84375 -1.59375q-0.59375 -0.96875 -0.59375 -2.140625q0 -1.3125 0.734375 -2.4375q0.75 -1.125 2.15625 -1.703125q1.421875 -0.59375 3.15625 -0.59375q1.90625 0 3.359375 0.609375q1.46875 0.609375 2.25 1.8125q0.796875 1.1875 0.84375 2.703125l-2.171875 0.171875q-0.171875 -1.640625 -1.1875 -2.46875q-1.015625 -0.828125 -3.0 -0.828125q-2.0625 0 -3.015625 0.765625q-0.9375 0.75 -0.9375 1.8125q0 0.921875 0.671875 1.515625q0.65625 0.609375 3.421875 1.234375q2.78125 0.625 3.8125 1.09375q1.5 0.6875 2.203125 1.75q0.71875 1.0625 0.71875 2.4375q0 1.375 -0.78125 2.59375q-0.78125 1.203125 -2.25 1.890625q-1.46875 0.671875 -3.3125 0.671875q-2.328125 0 -3.90625 -0.671875q-1.578125 -0.6875 -2.484375 -2.046875q-0.890625 -1.375 -0.9375 -3.09375zm16.414062 10.312508l-0.234375 -1.9843826q0.703125 0.18750763 1.21875 0.18750763q0.703125 0 
 1.125 -0.23438263q0.421875 -0.234375 0.6875 -0.65625q0.203125 -0.3125 0.640625 -1.5625q0.0625 -0.1875 0.1875 -0.515625l-4.71875 -12.484375l2.265625 0l2.59375 7.21875q0.5 1.359375 0.90625 2.875q0.359375 -1.453125 0.859375 -2.828125l2.671875 -7.265625l2.109375 0l-4.734375 12.671875q-0.765625 2.046875 -1.1875 2.8125076q-0.5625 1.046875 -1.296875 1.53125q-0.71875 0.484375 -1.734375 0.484375q-0.609375 0 -1.359375 -0.25zm11.25 -8.515633l2.09375 -0.328125q0.171875 1.25 0.96875 1.921875q0.8125 0.671875 2.25 0.671875q1.453125 0 2.15625 -0.59375q0.703125 -0.59375 0.703125 -1.390625q0 -0.71875 -0.625 -1.125q-0.421875 -0.28125 -2.15625 -0.71875q-2.3125 -0.578125 -3.21875 -1.0q-0.890625 -0.4375 -1.359375 -1.1875q-0.453125 -0.765625 -0.453125 -1.671875q0 -0.828125 0.375 -1.53125q0.390625 -0.71875 1.046875 -1.1875q0.484375 -0.359375 1.328125 -0.609375q0.859375 -0.265625 1.828125 -0.265625q1.46875 0 2.578125 0.421875q1.109375 0.421875 1.625 1.15625q0.53125 0.71875 0.734375 1.921875l-2.0625 0.28125q
 -0.140625 -0.96875 -0.8125 -1.5q-0.671875 -0.546875 -1.90625 -0.546875q-1.453125 0 -2.078125 0.484375q-0.625 0.484375 -0.625 1.125q0 0.40625 0.265625 0.734375q0.25 0.34375 0.8125 0.5625q0.3125 0.125 1.859375 0.546875q2.234375 0.59375 3.109375 0.984375q0.890625 0.375 1.390625 1.109375q0.515625 0.71875 0.515625 1.796875q0 1.046875 -0.625 1.984375q-0.609375 0.9375 -1.765625 1.453125q-1.15625 0.5 -2.625 0.5q-2.421875 0 -3.703125 -1.0q-1.265625 -1.015625 -1.625 -3.0zm17.453125 1.828125l0.3125 1.859375q-0.890625 0.203125 -1.59375 0.203125q-1.15625 0 -1.796875 -0.359375q-0.625 -0.375 -0.890625 -0.96875q-0.25 -0.59375 -0.25 -2.484375l0 -7.171875l-1.546875 0l0 -1.640625l1.546875 0l0 -3.078125l2.09375 -1.265625l0 4.34375l2.125 0l0 1.640625l-2.125 0l0 7.28125q0 0.90625 0.109375 1.171875q0.125 0.25 0.375 0.40625q0.25 0.140625 0.71875 0.140625q0.34375 0 0.921875 -0.078125zm10.589844 -2.125l2.171875 0.28125q-0.515625 1.90625 -1.90625 2.96875q-1.390625 1.046875 -3.5625 1.046875q-2.734375 0 -4.3437
 5 -1.671875q-1.59375 -1.6875 -1.59375 -4.734375q0 -3.140625 1.609375 -4.875q1.625 -1.734375 4.203125 -1.734375q2.5 0 4.078125 1.703125q1.59375 1.703125 1.59375 4.78125q0 0.1875 -0.015625 0.5625l-9.28125 0q0.109375 2.046875 1.15625 3.140625q1.046875 1.09375 2.609375 1.09375q1.15625 0 1.96875 -0.609375q0.828125 -0.609375 1.3125 -1.953125zm-6.9375 -3.40625l6.953125 0q-0.140625 -1.5625 -0.796875 -2.359375q-1.0 -1.21875 -2.609375 -1.21875q-1.453125 0 -2.453125 0.984375q-0.984375 0.96875 -1.09375 2.59375zm11.753906 7.421875l0 -12.453125l1.890625 0l0 1.75q0.59375 -0.90625 1.5625 -1.46875q0.96875 -0.5625 2.21875 -0.5625q1.375 0 2.25 0.578125q0.890625 0.578125 1.265625 1.609375q1.46875 -2.1875 3.84375 -2.1875q1.84375 0 2.84375 1.03125q1.0 1.03125 1.0 3.15625l0 8.546875l-2.109375 0l0 -7.84375q0 -1.265625 -0.203125 -1.8125q-0.203125 -0.5625 -0.75 -0.90625q-0.53125 -0.34375 -1.25 -0.34375q-1.3125 0 -2.1875 0.875q-0.859375 0.875 -0.859375 2.796875l0 7.234375l-2.109375 0l0 -8.09375q0 -1.40625 -0.
 515625 -2.109375q-0.515625 -0.703125 -1.6875 -0.703125q-0.890625 0 -1.65625 0.46875q-0.75 0.46875 -1.09375 1.375q-0.34375 0.90625 -0.34375 2.609375l0 6.453125l-2.109375 0z" fill-rule="nonzero"/><path fill="#ffffff" d="m252.8924 157.8924l182.74014 0l0 37.354324l-182.74014 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m252.8924 157.8924l182.74014 0l0 37.354324l-182.74014 0z" fill-rule="evenodd"/><path fill="#000000" d="m325.77225 183.48955l0 -11.78125l-4.40625 0l0 -1.578125l10.578125 0l0 1.578125l-4.40625 0l0 11.78125l-1.765625 0zm14.099091 -1.1875q-0.921875 0.765625 -1.765625 1.09375q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78125 -0.859375 -1.984375q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625
  -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59375 0.40625 1.15625l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.1875zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.4375 1.453125 0.4375q0.9375 0 1.671875 -0.40625q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm5.7038574 4.859375l-1.515625 0l0 -13.359375l1.640625 0l0 4.765625q1.046875 -1.296875 2.65625 -1.296875q0.890625 0 1.6875 0.359375q0.796875 0.359375 1.3125 1.015625q0.515625 0.640625 0.796875 1.5625q0.296875 0.921875 0.2968
 75 1.96875q0 2.484375 -1.234375 3.84375q-1.21875 1.359375 -2.953125 1.359375q-1.703125 0 -2.6875 -1.4375l0 1.21875zm-0.015625 -4.90625q0 1.734375 0.484375 2.515625q0.765625 1.265625 2.09375 1.265625q1.078125 0 1.859375 -0.9375q0.78125 -0.9375 0.78125 -2.78125q0 -1.890625 -0.75 -2.796875q-0.75 -0.90625 -1.828125 -0.90625q-1.0625 0 -1.859375 0.9375q-0.78125 0.9375 -0.78125 2.703125zm8.844452 4.90625l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.816711 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 
 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625z" fill-rule="nonzero"/><path fill="#ffffff" d="m252.8924 477.23096l182.74014 0l0 53.448853l-182.74014 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m252.8924 477.23096l182.74014 0l0 53.448853l-182.74014 0z" fill-rule="evenodd"/><path fill="#000000" d="m301.06116 497.516l1.765625 0l0 7.71875q0 2.015625 -0.453125 3.203125q-0.453125 1.1875 -1.640625 1.9375q-1.1875 0.734375 -3.125 0.734375q-1.875 0 -3.078125 -0.640625q-1.1875 -0.65625 -1.703125 -1.875q-0.5 -1.234375 -0.5 -3.359375l0 -7.71875l1.765625 0l0 7.71875q0 1.734375 0.3125 2.5625q0.328125 0.8125 1.109375 1.265625q0.796875 0.453125 1.9375 0.453125q1.953125 0 2.78125 -0.890625q0.828125 -0.890625 0.828125 -3.390625l0 -7.71875zm3.8479614 10.46875l1.625 -0.25q0.125 0.96875 0.75 1.5q0.625 0.515625 1.75 0.515625q1.125 0 1.671875 -0.453125q0.546875 -0.46875 0.546875 -1.09375q0 -0.546875 -0.484375 -0.
 875q-0.328125 -0.21875 -1.671875 -0.546875q-1.8125 -0.46875 -2.515625 -0.796875q-0.6875 -0.328125 -1.046875 -0.90625q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.640625 0.296875 -1.1875q0.296875 -0.5625 0.8125 -0.921875q0.375 -0.28125 1.03125 -0.46875q0.671875 -0.203125 1.421875 -0.203125q1.140625 0 2.0 0.328125q0.859375 0.328125 1.265625 0.890625q0.421875 0.5625 0.578125 1.5l-1.609375 0.21875q-0.109375 -0.75 -0.640625 -1.171875q-0.515625 -0.421875 -1.46875 -0.421875q-1.140625 0 -1.625 0.375q-0.46875 0.375 -0.46875 0.875q0 0.3125 0.1875 0.578125q0.203125 0.265625 0.640625 0.4375q0.234375 0.09375 1.4375 0.421875q1.75 0.453125 2.4375 0.75q0.6875 0.296875 1.078125 0.859375q0.390625 0.5625 0.390625 1.40625q0 0.828125 -0.484375 1.546875q-0.46875 0.71875 -1.375 1.125q-0.90625 0.390625 -2.046875 0.390625q-1.875 0 -2.875 -0.78125q-0.984375 -0.78125 -1.25 -2.328125zm16.609375 -0.21875l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q
 -1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.125702 5.765625l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm5.587677 -4.015625l0 -1.640625l5.03125 0l0 1.640625l-5.03125 0zm13.118927 4.015625l0 -1.21875q-0.90625 1.4375 -2.703125 1.4375q-1.15625 0 -2.125 -0.640625q-0.96875 -0.640625 -1.5 -1.78125
 q-0.53125 -1.140625 -0.53125 -2.625q0 -1.453125 0.484375 -2.625q0.484375 -1.1875 1.4375 -1.8125q0.96875 -0.625 2.171875 -0.625q0.875 0 1.546875 0.375q0.6875 0.359375 1.109375 0.953125l0 -4.796875l1.640625 0l0 13.359375l-1.53125 0zm-5.171875 -4.828125q0 1.859375 0.78125 2.78125q0.78125 0.921875 1.84375 0.921875q1.078125 0 1.828125 -0.875q0.75 -0.890625 0.75 -2.6875q0 -1.984375 -0.765625 -2.90625q-0.765625 -0.9375 -1.890625 -0.9375q-1.078125 0 -1.8125 0.890625q-0.734375 0.890625 -0.734375 2.8125zm15.906982 1.71875l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.218
 75 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.531952 5.765625l0 -8.40625l-1.453125 0l0 -1.265625l1.453125 0l0 -1.03125q0 -0.96875 0.171875 -1.453125q0.234375 -0.640625 0.828125 -1.03125q0.59375 -0.390625 1.671875 -0.390625q0.6875 0 1.53125 0.15625l-0.25 1.4375q-0.5 -0.09375 -0.953125 -0.09375q-0.75 0 -1.0625 0.328125q-0.3125 0.3125 -0.3125 1.1875l0 0.890625l1.890625 0l0 1.265625l-1.890625 0l0 8.40625l-1.625 0zm4.792694 -11.46875l0 -1.890625l1.640625 0l0 1.890625l-1.640625 0zm0 11.46875l0 -9.671875l1.640625 0l0 9.671875l-1.640625 0zm4.144806 0l0 -9.671875l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953125l-1.640625 0l0 -5.890625q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.51562
 5l0 5.28125l-1.640625 0zm17.000732 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm15.406952 5.765625l0 -1.21875q-0.90625 1.4375 -2.703125 1.4375q-1.15625 0 -2.125 -0.640625q-0.96875 -0.640625 -1.5 -1.78125q-0.53125 -1.140625 -0.53125 -2.625q0 -1.453125 0.484375 -2.625q0.484375 -1.1875 1.4375 -1.8125q0.96875 -0.625 2.171875 -0.625q0.875 0 1.546875 0.375q0.6875 0.359375 1.109375 0.953125l0 -4.796875l1.640625 0l0 13.359375l-1.53125 0zm
 -5.171875 -4.828125q0 1.859375 0.78125 2.78125q0.78125 0.921875 1.84375 0.921875q1.078125 0 1.828125 -0.875q0.75 -0.890625 0.75 -2.6875q0 -1.984375 -0.765625 -2.90625q-0.765625 -0.9375 -1.890625 -0.9375q-1.078125 0 -1.8125 0.890625q-0.734375 0.890625 -0.734375 2.8125z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m131.0 398.89764l749.6378 0" fill-rule="evenodd"/><path stroke="#000000" stroke-width="3.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="12.0,9.0" d="m131.0 398.89764l749.6378 0" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m108.45538 196.45932l140.0 0l0 41.007874l-140.0 0z" fill-rule="evenodd"/><path fill="#000000" d="m154.65656 225.50325l0 -15.15625l-5.65625 0l0 -2.03125l13.625 0l0 2.03125l-5.6875 0l0 15.15625l-2.28125 0zm18.144531 -1.53125q-1.171875 0.984375 -2.265625 1.40625q-1.078125 0.40625 -2.3125 0.40625q-2.046875 0 -3.15625 -1.0q-1.09375 -1.0 -1.09375 -2.5625q0 -0.921875 0.40625 -1.671875q0.421875 -0.75 1.093
 75 -1.203125q0.671875 -0.46875 1.515625 -0.703125q0.625 -0.15625 1.875 -0.3125q2.5625 -0.3125 3.765625 -0.734375q0.015625 -0.421875 0.015625 -0.546875q0 -1.28125 -0.609375 -1.8125q-0.796875 -0.71875 -2.390625 -0.71875q-1.5 0 -2.203125 0.53125q-0.703125 0.515625 -1.046875 1.84375l-2.0625 -0.28125q0.28125 -1.328125 0.921875 -2.140625q0.640625 -0.8125 1.859375 -1.25q1.21875 -0.453125 2.828125 -0.453125q1.59375 0 2.59375 0.375q1.0 0.375 1.46875 0.953125q0.46875 0.5625 0.65625 1.4375q0.09375 0.53125 0.09375 1.9375l0 2.8125q0 2.9375 0.140625 3.71875q0.140625 0.78125 0.53125 1.5l-2.203125 0q-0.328125 -0.65625 -0.421875 -1.53125zm-0.171875 -4.71875q-1.15625 0.46875 -3.453125 0.796875q-1.296875 0.1875 -1.84375 0.421875q-0.53125 0.234375 -0.828125 0.6875q-0.28125 0.453125 -0.28125 1.0q0 0.84375 0.625 1.40625q0.640625 0.5625 1.875 0.5625q1.21875 0 2.171875 -0.53125q0.953125 -0.53125 1.390625 -1.453125q0.34375 -0.71875 0.34375 -2.109375l0 -0.78125zm7.3476562 6.25l-1.953125 0l0 -17.1875l2.109375
  0l0 6.140625q1.328125 -1.6875 3.40625 -1.6875q1.140625 0 2.171875 0.46875q1.03125 0.46875 1.6875 1.3125q0.65625 0.828125 1.03125 2.015625q0.375 1.171875 0.375 2.53125q0 3.1875 -1.578125 4.9375q-1.578125 1.75 -3.796875 1.75q-2.203125 0 -3.453125 -1.84375l0 1.5625zm-0.03125 -6.3125q0 2.234375 0.609375 3.234375q1.0 1.625 2.703125 1.625q1.375 0 2.375 -1.203125q1.015625 -1.203125 1.015625 -3.578125q0 -2.4375 -0.96875 -3.59375q-0.953125 -1.171875 -2.328125 -1.171875q-1.390625 0 -2.40625 1.203125q-1.0 1.203125 -1.0 3.484375zm11.378906 6.3125l0 -17.1875l2.109375 0l0 17.1875l-2.109375 0zm13.910156 -4.015625l2.171875 0.28125q-0.515625 1.90625 -1.90625 2.96875q-1.390625 1.046875 -3.5625 1.046875q-2.734375 0 -4.34375 -1.671875q-1.59375 -1.6875 -1.59375 -4.734375q0 -3.140625 1.609375 -4.875q1.625 -1.734375 4.203125 -1.734375q2.5 0 4.078125 1.703125q1.59375 1.703125 1.59375 4.78125q0 0.1875 -0.015625 0.5625l-9.28125 0q0.109375 2.046875 1.15625 3.140625q1.046875 1.09375 2.609375 1.09375q1.15625 0
  1.96875 -0.609375q0.828125 -0.609375 1.3125 -1.953125zm-6.9375 -3.40625l6.953125 0q-0.140625 -1.5625 -0.796875 -2.359375q-1.0 -1.21875 -2.609375 -1.21875q-1.453125 0 -2.453125 0.984375q-0.984375 0.96875 -1.09375 2.59375z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m108.45538 483.45145l140.0 0l0 41.007843l-140.0 0z" fill-rule="evenodd"/><path fill="#000000" d="m158.01984 512.49536l0 -17.18747l2.28125 0l0 17.18747l-2.28125 0zm6.0117188 0l0 -12.4530945l1.890625 0l0 1.75q0.59375 -0.90625 1.5625 -1.46875q0.96875 -0.5625 2.21875 -0.5625q1.375 0 2.25 0.578125q0.890625 0.578125 1.265625 1.609375q1.46875 -2.1875 3.84375 -2.1875q1.84375 0 2.84375 1.03125q1.0 1.03125 1.0 3.15625l0 8.5468445l-2.109375 0l0 -7.8437195q0 -1.265625 -0.203125 -1.8125q-0.203125 -0.5625 -0.75 -0.90625q-0.53125 -0.34375 -1.25 -0.34375q-1.3125 0 -2.1875 0.875q-0.859375 0.875 -0.859375 2.796875l0 7.2343445l-2.109375 0l0 -8.0937195q0 -1.40625 -0.515625 -2.109375q-0.515625 -0.703125 -1.6875 -0.703125q
 -0.890625 0 -1.65625 0.46875q-0.75 0.46875 -1.09375 1.375q-0.34375 0.90625 -0.34375 2.609375l0 6.4530945l-2.109375 0zm19.992188 4.765625l0 -17.21872l1.921875 0l0 1.625q0.6875 -0.953125 1.53125 -1.421875q0.859375 -0.484375 2.078125 -0.484375q1.59375 0 2.8125 0.828125q1.21875 0.8125 1.84375 2.3125q0.625 1.5 0.625 3.28125q0 1.90625 -0.6875 3.4375q-0.6875 1.53125 -2.0 2.34375q-1.296875 0.8124695 -2.734375 0.8124695q-1.0625 0 -1.90625 -0.4375q-0.828125 -0.45309448 -1.375 -1.1405945l0 6.0624695l-2.109375 0zm1.921875 -10.9218445q0 2.40625 0.96875 3.5625q0.96875 1.140625 2.359375 1.140625q1.40625 0 2.40625 -1.1875q1.0 -1.1875 1.0 -3.6875q0 -2.375 -0.984375 -3.5625q-0.96875 -1.1875 -2.328125 -1.1875q-1.359375 0 -2.390625 1.265625q-1.03125 1.25 -1.03125 3.65625zm11.378906 6.1562195l0 -17.18747l2.109375 0l0 17.18747l-2.109375 0z" fill-rule="nonzero"/><path fill="#ffffff" d="m252.8924 300.90814l182.74014 0l0 53.448822l-182.74014 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0"
  stroke-linejoin="round" stroke-linecap="butt" d="m252.8924 300.90814l182.74014 0l0 53.448822l-182.74014 0z" fill-rule="evenodd"/><path fill="#000000" d="m280.8205 319.25568l1.65625 -0.140625q0.125 1.0 0.546875 1.640625q0.4375 0.640625 1.34375 1.046875q0.921875 0.390625 2.0625 0.390625q1.0 0 1.78125 -0.296875q0.78125 -0.296875 1.15625 -0.8125q0.375 -0.53125 0.375 -1.15625q0 -0.625 -0.375 -1.09375q-0.359375 -0.46875 -1.1875 -0.796875q-0.546875 -0.203125 -2.390625 -0.640625q-1.828125 -0.453125 -2.5625 -0.84375q-0.96875 -0.5 -1.4375 -1.234375q-0.46875 -0.75 -0.46875 -1.671875q0 -1.0 0.578125 -1.875q0.578125 -0.890625 1.671875 -1.34375q1.109375 -0.453125 2.453125 -0.453125q1.484375 0 2.609375 0.484375q1.140625 0.46875 1.75 1.40625q0.609375 0.921875 0.65625 2.09375l-1.6875 0.125q-0.140625 -1.265625 -0.9375 -1.90625q-0.78125 -0.65625 -2.3125 -0.65625q-1.609375 0 -2.34375 0.59375q-0.734375 0.59375 -0.734375 1.421875q0 0.71875 0.53125 1.171875q0.5 0.46875 2.65625 0.96875q2.15625 0.484375 2.
 953125 0.84375q1.171875 0.53125 1.71875 1.359375q0.5625 0.828125 0.5625 1.90625q0 1.0625 -0.609375 2.015625q-0.609375 0.9375 -1.75 1.46875q-1.140625 0.515625 -2.578125 0.515625q-1.8125 0 -3.046875 -0.53125q-1.21875 -0.53125 -1.921875 -1.59375q-0.6875 -1.0625 -0.71875 -2.40625zm16.412323 2.828125l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm1.5895691 1.46875l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.2
 8125 1.921875l0 5.0625l-1.625 0zm12.853302 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm15.453827 4.578125q-0.921875 0.765625 -1.765625 1.09375q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78125 -0.859375 -1.984375q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.01
 5625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59375 0.40625 1.15625l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.1875zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.4375 1.453125 0.4375q0.9375 0 1.671875 -0.40625q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm4.2038574 4.859375l0 -9.671875l1.46875 0l0 1.359375q0.453125 -0.71875 1.203125 -1.140625q0.765625 -0.4375 1.71875 -0.4375q1.078125 0 1.765625 0.453125q0.6875 0.4375 0.96875 1.
 234375q1.15625 -1.6875 2.984375 -1.6875q1.453125 0 2.21875 0.796875q0.78125 0.796875 0.78125 2.453125l0 6.640625l-1.640625 0l0 -6.09375q0 -0.984375 -0.15625 -1.40625q-0.15625 -0.4375 -0.578125 -0.703125q-0.421875 -0.265625 -0.984375 -0.265625q-1.015625 0 -1.6875 0.6875q-0.671875 0.671875 -0.671875 2.15625l0 5.625l-1.640625 0l0 -6.28125q0 -1.09375 -0.40625 -1.640625q-0.40625 -0.546875 -1.3125 -0.546875q-0.6875 0 -1.28125 0.359375q-0.59375 0.359375 -0.859375 1.0625q-0.25 0.703125 -0.25 2.03125l0 5.015625l-1.640625 0zm14.900177 -4.015625l0 -1.640625l5.03125 0l0 1.640625l-5.03125 0zm10.431427 2.546875l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0
  0.71875 -0.0625zm0.9957886 -3.375q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.0625 -1.640625 1.65625q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.3125 -1.25 -3.765625zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm8.656982 0.828125l0 -1.640625l5.03125 0l0 1.640625l-5.03125 0zm10.431427 2.546875l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.3
 28125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm7.9176636 0.28125q-0.921875 0.765625 -1.765625 1.09375q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78125 -0.859375 -1.984375q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59375 0.40625 1.15625l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.1875zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.
 4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.4375 1.453125 0.4375q0.9375 0 1.671875 -0.40625q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm5.7038574 4.859375l-1.515625 0l0 -13.359375l1.640625 0l0 4.765625q1.046875 -1.296875 2.65625 -1.296875q0.890625 0 1.6875 0.359375q0.796875 0.359375 1.3125 1.015625q0.515625 0.640625 0.796875 1.5625q0.296875 0.921875 0.296875 1.96875q0 2.484375 -1.234375 3.84375q-1.21875 1.359375 -2.953125 1.359375q-1.703125 0 -2.6875 -1.4375l0 1.21875zm-0.015625 -4.90625q0 1.734375 0.484375 2.515625q0.765625 1.265625 2.09375 1.265625q1.078125 0 1.859375 -0.9375q0.78125 -0.9375 0.78125 -2.78125q0 -1.890625 -0.75 -2.796875q-0.75 -0.90625 -1.828125 -0.90625q-1.0625 0 -1.859375 0.9375q-0.78125 0.9375 -0.78125 2.703125zm8.844452 4.90625l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.816711 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.81
 25 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625z" fill-rule="nonzero"/><path fill="#000000" d="m302.93082 344.0838l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.718
 75 -0.0625zm8.230164 -1.640625l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.125732 5.765625l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm6.228302 0l0 -9.671875l1.46875 0l0 1.359375q0
 .453125 -0.71875 1.203125 -1.140625q0.765625 -0.4375 1.71875 -0.4375q1.078125 0 1.765625 0.453125q0.6875 0.4375 0.96875 1.234375q1.15625 -1.6875 2.984375 -1.6875q1.453125 0 2.21875 0.796875q0.78125 0.796875 0.78125 2.453125l0 6.640625l-1.640625 0l0 -6.09375q0 -0.984375 -0.15625 -1.40625q-0.15625 -0.4375 -0.578125 -0.703125q-0.421875 -0.265625 -0.984375 -0.265625q-1.015625 0 -1.6875 0.6875q-0.671875 0.671875 -0.671875 2.15625l0 5.625l-1.640625 0l0 -6.28125q0 -1.09375 -0.40625 -1.640625q-0.40625 -0.546875 -1.3125 -0.546875q-0.6875 0 -1.28125 0.359375q-0.59375 0.359375 -0.859375 1.0625q-0.25 0.703125 -0.25 2.03125l0 5.015625l-1.640625 0zm15.540802 -11.46875l0 -1.890625l1.640625 0l0 1.890625l-1.640625 0zm0 11.46875l0 -9.671875l1.640625 0l0 9.671875l-1.640625 0zm4.144806 0l0 -9.671875l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953125l-1.640625 0l0 -5.890625q0
  -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.28125l-1.640625 0zm16.688232 -1.1875q-0.921875 0.765625 -1.765625 1.09375q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78125 -0.859375 -1.984375q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59375 0.40625 1.15625l-1.703125 0q-0.
 265625 -0.515625 -0.328125 -1.1875zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.4375 1.453125 0.4375q0.9375 0 1.671875 -0.40625q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm7.781952 3.390625l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm1.6051941 -10.0l0 -1.890625l1.640625 0l0 1.890625l-1.640625 0zm0 11.46875l0 -9.671875l1.640625 0l0 9.671875l-1.640625 0zm3.535431 -4.84375q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3
 125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.0625 -1.640625 1.65625q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.3125 -1.25 -3.765625zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.297607 4.84375l0 -9.671875l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953125l-1.640625 0l0 -5.890625q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.28125l-1.640625 0z" fill-rule="nonzero"/><path fill="#ffffff" d="m531.19946 533.5696l280.75592 0l0 46.48816l-280.75592 0z" fill-rule="evenodd
 "/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m531.19946 533.5696l280.75592 0l0 46.48816l-280.75592 0z" fill-rule="evenodd"/><path fill="#000000" d="m646.12244 563.73364l0 -13.359375l1.765625 0l0 5.484375l6.9375 0l0 -5.484375l1.765625 0l0 13.359375l-1.765625 0l0 -6.296875l-6.9375 0l0 6.296875l-1.765625 0zm13.129211 3.71875l-0.1875 -1.53125q0.546875 0.140625 0.9375 0.140625q0.546875 0 0.875 -0.1875q0.328125 -0.171875 0.546875 -0.5q0.15625 -0.25 0.5 -1.21875q0.046875 -0.140625 0.140625 -0.40625l-3.671875 -9.6875l1.765625 0l2.015625 5.59375q0.390625 1.078125 0.703125 2.25q0.28125 -1.125 0.671875 -2.203125l2.078125 -5.640625l1.640625 0l-3.6875 9.828125q-0.59375 1.609375 -0.921875 2.203125q-0.4375 0.8125 -1.0 1.1875q-0.5625 0.375 -1.34375 0.375q-0.484375 0 -1.0625 -0.203125zm10.90625 -3.71875l-1.515625 0l0 -13.359375l1.640625 0l0 4.765625q1.046875 -1.296875 2.65625 -1.296875q0.890625 0 1.6875 0.359375q0.796875 0.359375 1.3125 1.015625q0.515
 625 0.640625 0.796875 1.5625q0.296875 0.921875 0.296875 1.96875q0 2.484375 -1.234375 3.84375q-1.21875 1.359375 -2.953125 1.359375q-1.703125 0 -2.6875 -1.4375l0 1.21875zm-0.015625 -4.90625q0 1.734375 0.484375 2.515625q0.765625 1.265625 2.09375 1.265625q1.078125 0 1.859375 -0.9375q0.78125 -0.9375 0.78125 -2.78125q0 -1.890625 -0.75 -2.796875q-0.75 -0.90625 -1.828125 -0.90625q-1.0625 0 -1.859375 0.9375q-0.78125 0.9375 -0.78125 2.703125zm8.875671 4.90625l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm6.2283325 -11.46875l0 -1.890625l1.640625 0l0 1.890625l-1.640625 0zm0 11.46875l0 -9.671875l1.640625 0l0 9.671875l-1.640625 0zm10.410461 0l0 -1.21875q-0.90625 1.4375 -2.703125 1.4375q-1.15625 0 -2.125 -0.640625q-0.96875 -0.640625 -1.5 -1.78
 125q-0.53125 -1.140625 -0.53125 -2.625q0 -1.453125 0.484375 -2.625q0.484375 -1.1875 1.4375 -1.8125q0.96875 -0.625 2.171875 -0.625q0.875 0 1.546875 0.375q0.6875 0.359375 1.109375 0.953125l0 -4.796875l1.640625 0l0 13.359375l-1.53125 0zm-5.171875 -4.828125q0 1.859375 0.78125 2.78125q0.78125 0.921875 1.84375 0.921875q1.078125 0 1.828125 -0.875q0.75 -0.890625 0.75 -2.6875q0 -1.984375 -0.765625 -2.90625q-0.765625 -0.9375 -1.890625 -0.9375q-1.078125 0 -1.8125 0.890625q-0.734375 0.890625 -0.734375 2.8125z" fill-rule="nonzero"/><path fill="#ffffff" d="m252.8924 206.01312l182.74014 0l0 37.354324l-182.74014 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m252.8924 206.01312l182.74014 0l0 37.354324l-182.74014 0z" fill-rule="evenodd"/><path fill="#000000" d="m283.26733 231.61029l0 -11.78125l-4.40625 0l0 -1.578125l10.578125 0l0 1.578125l-4.40625 0l0 11.78125l-1.765625 0zm14.099091 -1.1875q-0.921875 0.765625 -1.765625 1.09375q-0.8
 28125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78125 -0.859375 -1.984375q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59375 0.40625 1.15625l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.1875zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.4375 1.453125 0.437
 5q0.9375 0 1.671875 -0.40625q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm5.7038574 4.859375l-1.515625 0l0 -13.359375l1.640625 0l0 4.765625q1.046875 -1.296875 2.65625 -1.296875q0.890625 0 1.6875 0.359375q0.796875 0.359375 1.3125 1.015625q0.515625 0.640625 0.796875 1.5625q0.296875 0.921875 0.296875 1.96875q0 2.484375 -1.234375 3.84375q-1.21875 1.359375 -2.953125 1.359375q-1.703125 0 -2.6875 -1.4375l0 1.21875zm-0.015625 -4.90625q0 1.734375 0.484375 2.515625q0.765625 1.265625 2.09375 1.265625q1.078125 0 1.859375 -0.9375q0.78125 -0.9375 0.78125 -2.78125q0 -1.890625 -0.75 -2.796875q-0.75 -0.90625 -1.828125 -0.90625q-1.0625 0 -1.859375 0.9375q-0.78125 0.9375 -0.78125 2.703125zm8.844452 4.90625l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.816711 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 
 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.344452 5.765625l0 -13.359375l4.609375 0q1.546875 0 2.375 0.203125q1.140625 0.25 1.953125 0.953125q1.0625 0.890625 1.578125 2.28125q0.53125 1.390625 0.53125 3.171875q0 1.515625 -0.359375 2.703125q-0.359375 1.171875 -0.921875 1.9375q-0.546875 0.765625 -1.203125 1.21875q-0.65625 0.4375 -1.59375 0.671875q-0.9375 0.21875 -2.140625 0.21875l-4.828125 0zm1.765625 -1.578125l2.859375 0q1.3125 0 2.0625 -0.234375q0.75 -0.25 1.203125 -0.703125q0.625 -0.625 0.96875 -1.6875q0.359375 -1.0625 0.359375 -2.578125q0 -2.09375 -0.6875 -3.21875q-0.6875 -1.125 -1.671875 -1.5q-0.703125 -0.28125 -2.28125 -0.28
 125l-2.8125 0l0 10.203125zm18.129211 -1.53125l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm8.485077 2.875l1.625 -0.25q0.125 0.96875 0.75 1.5q0.625 0.515625 1.75 0.515625q1.125 0 1.671875 -0.453125q0.546875 -0.46875 0.546875 -1.09375q0 -0.546875 -0.484375 -0.875q-0.328125 -0.21875 -1.671875 -0.546875q-1.8125 -0.46875 -2.515625 -0.796875q-0.6875 -0.328125 -1.046875 -0.90625q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.640625 0.296875 -1.1875q0.2
 96875 -0.5625 0.8125 -0.921875q0.375 -0.28125 1.03125 -0.46875q0.671875 -0.203125 1.421875 -0.203125q1.140625 0 2.0 0.328125q0.859375 0.328125 1.265625 0.890625q0.421875 0.5625 0.578125 1.5l-1.609375 0.21875q-0.109375 -0.75 -0.640625 -1.171875q-0.515625 -0.421875 -1.46875 -0.421875q-1.140625 0 -1.625 0.375q-0.46875 0.375 -0.46875 0.875q0 0.3125 0.1875 0.578125q0.203125 0.265625 0.640625 0.4375q0.234375 0.09375 1.4375 0.421875q1.75 0.453125 2.4375 0.75q0.6875 0.296875 1.078125 0.859375q0.390625 0.5625 0.390625 1.40625q0 0.828125 -0.484375 1.546875q-0.46875 0.71875 -1.375 1.125q-0.90625 0.390625 -2.046875 0.390625q-1.875 0 -2.875 -0.78125q-0.984375 -0.78125 -1.25 -2.328125zm16.296875 -0.65625l1.609375 0.21875q-0.265625 1.65625 -1.359375 2.609375q-1.078125 0.9375 -2.671875 0.9375q-1.984375 0 -3.1875 -1.296875q-1.203125 -1.296875 -1.203125 -3.71875q0 -1.578125 0.515625 -2.75q0.515625 -1.171875 1.578125 -1.75q1.0625 -0.59375 2.3125 -0.59375q1.578125 0 2.578125 0.796875q1.0 0.796875 1.281
 25 2.265625l-1.59375 0.234375q-0.234375 -0.96875 -0.8125 -1.453125q-0.578125 -0.5 -1.390625 -0.5q-1.234375 0 -2.015625 0.890625q-0.78125 0.890625 -0.78125 2.8125q0 1.953125 0.75 2.84375q0.75 0.875 1.953125 0.875q0.96875 0 1.609375 -0.59375q0.65625 -0.59375 0.828125 -1.828125zm3.0 3.546875l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm6.228302 -11.46875l0 -1.890625l1.640625 0l0 1.890625l-1.640625 0zm0 11.46875l0 -9.671875l1.640625 0l0 9.671875l-1.640625 0zm4.1448364 3.703125l0 -13.375l1.484375 0l0 1.25q0.53125 -0.734375 1.1875 -1.09375q0.671875 -0.375 1.625 -0.375q1.234375 0 2.171875 0.640625q0.953125 0.625 1.4375 1.796875q0.484375 1.15625 0.484375 2.546875q0 1.484375 -0.53125 2.671875q-0.53125 1.1875 -1.546875 1.828125q-1.015625
  0.625 -2.140625 0.625q-0.8125 0 -1.46875 -0.34375q-0.65625 -0.34375 -1.0625 -0.875l0 4.703125l-1.640625 0zm1.484375 -8.484375q0 1.859375 0.75 2.765625q0.765625 0.890625 1.828125 0.890625q1.09375 0 1.875 -0.921875q0.78125 -0.9375 0.78125 -2.875q0 -1.84375 -0.765625 -2.765625q-0.75 -0.921875 -1.8125 -0.921875q-1.046875 0 -1.859375 0.984375q-0.796875 0.96875 -0.796875 2.84375zm12.469452 3.3125l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm0.9958191 -3.375q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.0625 -1.640625 1.65
 625q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.3125 -1.25 -3.765625zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.281952 4.84375l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0z" fill-rule="nonzero"/></g></svg>
\ No newline at end of file