From: <jbo...@li...> - 2006-05-08 22:59:08
|
Author: mar...@jb... Date: 2006-05-08 18:59:03 -0400 (Mon, 08 May 2006) New Revision: 4142 Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Performance_Tuning/beta_node.svg Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Performance_Tuning/Section-Performance.xml Log: -Added an svg image for beta node Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Performance_Tuning/Section-Performance.xml =================================================================== --- labs/jbossrules/trunk/documentation/manual/en/Chapter-Performance_Tuning/Section-Performance.xml 2006-05-08 19:57:07 UTC (rev 4141) +++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Performance_Tuning/Section-Performance.xml 2006-05-08 22:59:03 UTC (rev 4142) @@ -33,13 +33,24 @@ tries to match every tuple in the left memory according to the constraints defined for the given BetaNode. Those elements that match are propagated down through the network. The symmetrical behavior happens for when a - tuple arrives at the left input of the node. See diagram bellow: - <mediaobject> + tuple arrives at the left input of the node. See diagram bellow: </para> + + <figure> + <title>Beta Node</title> + + <mediaobject> <imageobject> - <imagedata fileref="beta_node.png" /> + <imagedata align="center" contentwidth="300" fileref="beta_node.svg" + format="SVG" scalefit="1" /> </imageobject> - </mediaobject></para> + <imageobject> + <imagedata align="center" fileref="beta_node.png" format="PNG" + scalefit="1" /> + </imageobject> + </mediaobject> + </figure> + <para>When the number of elements in each of the Beta Node Memories starts to grow, the matching process starts to slow down, as each new element that arrives needs to try to match all the elements in the opposite memory @@ -130,19 +141,21 @@ would be to disable left indexing, leaving only right indexing enabled.</para> - <section> - <title>Re-arranging constraints</title> - <para>Another tip to tune performance when using indexing is always to - write your rules in a way that the most restrictive constraints are - declared before the less restrictive ones in your rule. For example, if - you have a rule with a column like this: <programlisting>Employee (department == $aDepartment, name == $aName) + <section> + <title>Re-arranging constraints</title> + + <para>Another tip to tune performance when using indexing is always to + write your rules in a way that the most restrictive constraints are + declared before the less restrictive ones in your rule. For example, if + you have a rule with a column like this: <programlisting>Employee (department == $aDepartment, name == $aName) </programlisting> Rewriting it as shown bellow will probably give you a better - performance, as “name” is probably a more restrictive constraint than - “department”: <programlisting>Employee (name == $aName, department == $aDepartment) + performance, as “name” is probably a more restrictive constraint than + “department”: <programlisting>Employee (name == $aName, department == $aDepartment) </programlisting> (Unless you work in an organisation where there are more - departments then employees, which could well be the case in a Government - organisation ;)</para> - </section> + departments then employees, which could well be the case in a Government + organisation ;)</para> + </section> + <para>Some other improvements are being developed for Drools in this area and will be documented as they become available in future versions.</para> </section> Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Performance_Tuning/beta_node.svg =================================================================== --- labs/jbossrules/trunk/documentation/manual/en/Chapter-Performance_Tuning/beta_node.svg 2006-05-08 19:57:07 UTC (rev 4141) +++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Performance_Tuning/beta_node.svg 2006-05-08 22:59:03 UTC (rev 4142) @@ -0,0 +1,307 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 beta_node.svg Page-1 --> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="7.67748in" + height="7.6578in" viewBox="0 0 552.779 551.361" xml:space="preserve" color-interpolation-filters="sRGB" class="st14"> + <title>BetaNode</title> + <v:documentProperties v:langID="1046" v:metric="true" v:viewMarkup="false"/> + + <style type="text/css"> + <![CDATA[ + .st1 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st2 {fill:url(#grad25-13);stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.72} + .st3 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st4 {fill:#000000;font-family:Arial;font-size:1.00001em} + .st5 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.72} + .st6 {fill:#000000;font-family:Arial;font-size:0.666664em} + .st7 {font-size:1em} + .st8 {fill:#000000;font-family:Arial;font-size:2.50001em;font-weight:bold} + .st9 {fill:url(#grad28-54);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.72} + .st10 {stroke:#000000;stroke-dasharray:0.72,0.72;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st11 {fill:#c0c0c0;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st12 {fill:#000000;font-family:Arial;font-size:1.00001em;font-weight:bold} + .st13 {fill:#ffffff} + .st14 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + ]]> + </style> + + <defs id="Patterns_And_Gradients"> + <linearGradient id="grad25-13" v:fillPattern="25" v:foreground="#c0c0c0" v:background="#ffffff" x1="0" y1="0" x2="1" y2="0"> + <stop offset="0" style="stop-color:#c0c0c0;stop-opacity:1"/> + <stop offset="1" style="stop-color:#ffffff;stop-opacity:1"/> + </linearGradient> + <linearGradient id="grad28-54" v:fillPattern="28" v:foreground="#e6e6e6" v:background="#9a9a9a" x1="0" y1="0" x2="0" y2="1"> + <stop offset="0" style="stop-color:#e6e6e6;stop-opacity:1"/> + <stop offset="1" style="stop-color:#9a9a9a;stop-opacity:1"/> + </linearGradient> + </defs> + <g v:mID="0" v:index="1" v:groupContext="foregroundPage"> + <title>Page-1</title> + <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" + v:shadowOffsetY="-8.50394"/> + <v:layer v:name="Conector" v:index="0"/> + <g id="shape1-1" v:mID="1" v:groupContext="shape" transform="translate(424.5,679.64) rotate(180)"> + <title>Triangle</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <path d="M320.66 551.36 L148.82 253.72 L-23.02 551.36 L320.66 551.36 Z" class="st1"/> + </g> + <g id="shape2-3" v:mID="2" v:groupContext="shape" transform="translate(477.899,-247.561) rotate(45) scale(-1,1)"> + <title>45 degree single</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <path d="M0 531.52 L19.84 511.68 L19.84 524.77 L100.22 524.77 L100.22 538.27 L19.84 538.27 L19.84 551.36 L0 531.52 Z" + class="st1"/> + </g> + <g id="shape3-5" v:mID="3" v:groupContext="shape" transform="translate(73.4622,-247.561) rotate(-45)"> + <title>45 degree single.3</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <path d="M0 531.52 L19.84 511.68 L19.84 524.77 L100.22 524.77 L100.22 538.27 L19.84 538.27 L19.84 551.36 L0 531.52 Z" + class="st1"/> + </g> + <g id="shape4-7" v:mID="4" v:groupContext="shape" transform="translate(808.51,486.155) rotate(88.8542) scale(-1,1)"> + <title>45 degree single.4</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <path d="M0 531.52 L19.84 511.68 L19.84 524.77 L70.88 524.77 L70.88 538.27 L19.84 538.27 L19.84 551.36 L0 531.52 Z" + class="st1"/> + </g> + <g id="group12-9" transform="translate(4.97197,-499.618)" v:mID="12" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="Margin" v:val="VT0(0.11811023622047):24"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <title>Note box deco</title> + <g id="shape13-10" v:mID="13" v:groupContext="shape"> + <title>Sheet.13</title> + <v:userDefs> + <v:ud v:nameU="Margin" v:val="VT0(0.11811023622047):24"/> + </v:userDefs> + <path d="M0 551.36 L102.05 551.36 L102.05 500.34 L0 500.34 L0 551.36 Z M-4.25 508.84 L-4.25 517.35 L4.25 517.35 L4.25 + 508.84 L-4.25 508.84 Z M-4.25 521.6 L-4.25 530.1 L4.25 530.1 L4.25 521.6 L-4.25 521.6 Z M-4.25 534.35 + L-4.25 542.86 L4.25 542.86 L4.25 534.35 L-4.25 534.35 Z" class="st2"/> + </g> + <g id="shape14-14" v:mID="14" v:groupContext="shape" transform="translate(14.9737,-30.3679)"> + <title>Sheet.14</title> + <desc>Left Input</desc> + <v:textBlock v:margins="rect(2,0,0,0)" v:tabSpace="42.5197" v:verticalAlign="2"/> + <v:textRect cx="51.5058" cy="543.159" width="54.13" height="16.4037"/> + <path d="M0 551.36 L78.57 551.36" class="st3"/> + <text x="28.55" y="547.76" class="st4" v:langID="1046"><v:paragraph v:horizAlign="2"/><v:tabList/>Left Input</text> </g> + <g id="shape15-18" v:mID="15" v:groupContext="shape" transform="translate(14.9737,-9.16442)"> + <title>Sheet.15</title> + <desc>Tuples arrive through the Left Input</desc> + <v:textBlock v:margins="rect(2,0,0,0)" v:tabSpace="42.5197" v:verticalAlign="0"/> + <v:textRect cx="39.2848" cy="540.759" width="78.57" height="21.2035"/> + <rect x="0" y="530.158" width="78.5696" height="21.2035" class="st5"/> + <text x="0" y="539.36" class="st6" v:langID="1046"><v:paragraph/><v:tabList/>Tuples arrive through<v:newlineChar/><tspan + x="0" dy="1.2em" class="st7"> the Left Input</tspan></text> </g> + </g> + <g id="group16-22" transform="translate(450.011,-499.618)" v:mID="16" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="Margin" v:val="VT0(0.11811023622047):24"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <title>Note box deco.16</title> + <g id="shape17-23" v:mID="17" v:groupContext="shape"> + <title>Sheet.17</title> + <v:userDefs> + <v:ud v:nameU="Margin" v:val="VT0(0.11811023622047):24"/> + </v:userDefs> + <path d="M0 551.36 L102.05 551.36 L102.05 500.34 L0 500.34 L0 551.36 Z M-4.25 508.84 L-4.25 517.35 L4.25 517.35 L4.25 + 508.84 L-4.25 508.84 Z M-4.25 521.6 L-4.25 530.1 L4.25 530.1 L4.25 521.6 L-4.25 521.6 Z M-4.25 534.35 + L-4.25 542.86 L4.25 542.86 L4.25 534.35 L-4.25 534.35 Z" class="st2"/> + </g> + <g id="shape18-26" v:mID="18" v:groupContext="shape" transform="translate(11.8643,-30.3679)"> + <title>Sheet.18</title> + <desc>Right Input</desc> + <v:textBlock v:margins="rect(2,0,0,0)" v:tabSpace="42.5197" v:verticalAlign="2"/> + <v:textRect cx="50.6162" cy="543.159" width="62.13" height="16.4037"/> + <path d="M0 551.36 L81.68 551.36" class="st3"/> + <text x="23.67" y="547.76" class="st4" v:langID="1046"><v:paragraph v:horizAlign="2"/><v:tabList/>Right Input</text> </g> + <g id="shape19-30" v:mID="19" v:groupContext="shape" transform="translate(11.8643,-9.16442)"> + <title>Sheet.19</title> + <desc>Objects arrive through the Right Input</desc> + <v:textBlock v:margins="rect(2,0,0,0)" v:tabSpace="42.5197" v:verticalAlign="0"/> + <v:textRect cx="40.8395" cy="540.759" width="81.68" height="21.2035"/> + <rect x="0" y="530.158" width="81.679" height="21.2035" class="st5"/> + <text x="-0" y="539.36" class="st6" v:langID="1046"><v:paragraph/><v:tabList/>Objects arrive through<v:newlineChar/><tspan + x="-0" dy="1.2em" class="st7">the Right Input</tspan></text> </g> + </g> + <g id="group20-34" transform="translate(226.074,-0.72)" v:mID="20" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="Margin" v:val="VT0(0.11811023622047):24"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <title>Note box deco.20</title> + <g id="shape21-35" v:mID="21" v:groupContext="shape"> + <title>Sheet.21</title> + <v:userDefs> + <v:ud v:nameU="Margin" v:val="VT0(0.11811023622047):24"/> + </v:userDefs> + <path d="M0 551.36 L102.05 551.36 L102.05 500.34 L0 500.34 L0 551.36 Z M-4.25 508.84 L-4.25 517.35 L4.25 517.35 L4.25 + 508.84 L-4.25 508.84 Z M-4.25 521.6 L-4.25 530.1 L4.25 530.1 L4.25 521.6 L-4.25 521.6 Z M-4.25 534.35 + L-4.25 542.86 L4.25 542.86 L4.25 534.35 L-4.25 534.35 Z" class="st2"/> + </g> + <g id="shape22-38" v:mID="22" v:groupContext="shape" transform="translate(19.8646,-30.3679)"> + <title>Sheet.22</title> + <desc>Output</desc> + <v:textBlock v:margins="rect(2,0,0,0)" v:tabSpace="42.5197" v:verticalAlign="2"/> + <v:textRect cx="53.623" cy="543.159" width="40.12" height="16.4037"/> + <path d="M0 551.36 L73.68 551.36" class="st3"/> + <text x="37.64" y="547.76" class="st4" v:langID="1046"><v:paragraph v:horizAlign="2"/><v:tabList/>Output</text> </g> + <g id="shape23-42" v:mID="23" v:groupContext="shape" transform="translate(19.8646,-9.16442)"> + <title>Sheet.23</title> + <desc>Matched Tuples are propagated</desc> + <v:textBlock v:margins="rect(2,0,0,0)" v:tabSpace="42.5197" v:verticalAlign="0"/> + <v:textRect cx="36.8394" cy="540.759" width="73.68" height="21.2035"/> + <rect x="0" y="530.158" width="73.6787" height="21.2035" class="st5"/> + <text x="0" y="539.36" class="st6" v:langID="1046"><v:paragraph/><v:tabList/>Matched Tuples are<v:newlineChar/><tspan + x="0" dy="1.2em" class="st7">propagated</tspan></text> </g> + </g> + <g id="group5-46" transform="translate(104.185,-425.917)" v:mID="5" v:groupContext="group"> + <v:custProps> + <v:cp v:nameU="Theme" v:lbl="Tema" v:prompt="O tema somente desta forma." v:type="1" + v:format="Clássico;Contemporâneo;Elegante;Bloco de notas;Retro" v:langID="1046" v:val="VT4(Clássico)"/> + </v:custProps> + <v:userDefs> + <v:ud v:nameU="Theme" v:val="VT0(0):26"/> + <v:ud v:nameU="Margin" v:val="VT0(0.059055118110236):24"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <title>Title block classic</title> + <g id="shape6-47" v:mID="6" v:groupContext="shape" transform="translate(92.772,-7.50996)"> + <title>Sheet.6</title> + <desc>Beta Node</desc> + <v:textBlock v:margins="rect(0,0,0,0)"/> + <v:textRect cx="78.7241" cy="533.359" width="157.45" height="36.0037"/> + <rect x="0" y="515.358" width="157.448" height="36.0037" class="st5"/> + <text x="4.55" y="542.36" class="st8" v:langID="1046"><v:paragraph v:horizAlign="1"/><v:tabList/>Beta Node</text> </g> + </g> + <g id="group24-50" transform="translate(152.374,-346.547)" v:mID="24" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="Margin" v:val="VT0(0.11811023622047):24"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <title>Note box classic</title> + <g id="shape25-51" v:mID="25" v:groupContext="shape"> + <title>Sheet.25</title> + <rect x="0" y="483.33" width="102.047" height="68.0315" class="st9"/> + </g> + <g id="shape26-55" v:mID="26" v:groupContext="shape" transform="translate(8.50394,-59.5276)"> + <title>Sheet.26</title> + <path d="M0 551.36 L17.01 551.36" class="st3"/> + </g> + <g id="shape27-58" v:mID="27" v:groupContext="shape" transform="translate(8.50394,-8.50394)"> + <title>Sheet.27</title> + <path d="M0 551.36 L51.02 551.36" class="st3"/> + </g> + <g id="shape28-61" v:mID="28" v:groupContext="shape" transform="translate(59.5276,-8.50394)"> + <title>Sheet.28</title> + <path d="M0 551.36 L34.02 551.36" class="st10"/> + </g> + <g id="shape29-64" v:mID="29" v:groupContext="shape" transform="translate(8.50394,-8.50394)"> + <title>Sheet.29</title> + <desc>LEFT Memory: Stores all tuples asserted</desc> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197" v:verticalAlign="0"/> + <v:textRect cx="35.058" cy="518.739" width="70.12" height="36.8035"/> + <path d="M0 551.36 L0 500.34" class="st10"/> + <text x="4" y="511.54" class="st6" v:langID="1046"><v:paragraph/><v:tabList/>LEFT Memory:<v:newlineChar/><tspan + x="4" dy="1.2em" class="st7">Stores all tuples <v:newlineChar/></tspan><tspan x="4" dy="1.2em" + class="st7">asserted</tspan></text> </g> + </g> + <g id="group30-70" transform="translate(311.114,-346.547)" v:mID="30" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="Margin" v:val="VT0(0.11811023622047):24"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <title>Note box classic.30</title> + <g id="shape31-71" v:mID="31" v:groupContext="shape"> + <title>Sheet.31</title> + <rect x="0" y="483.33" width="85.0394" height="68.0315" class="st9"/> + </g> + <g id="shape32-74" v:mID="32" v:groupContext="shape" transform="translate(8.50394,-59.5276)"> + <title>Sheet.32</title> + <path d="M0 551.36 L17.01 551.36" class="st3"/> + </g> + <g id="shape33-77" v:mID="33" v:groupContext="shape" transform="translate(8.50394,-8.50394)"> + <title>Sheet.33</title> + <path d="M0 551.36 L34.02 551.36" class="st3"/> + </g> + <g id="shape34-80" v:mID="34" v:groupContext="shape" transform="translate(42.5197,-8.50394)"> + <title>Sheet.34</title> + <path d="M0 551.36 L34.02 551.36" class="st10"/> + </g> + <g id="shape35-83" v:mID="35" v:groupContext="shape" transform="translate(8.50394,-8.50394)"> + <title>Sheet.35</title> + <desc>RIGHT Memory: Stores all objects asserted</desc> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197" v:verticalAlign="0"/> + <v:textRect cx="37.058" cy="518.739" width="74.12" height="36.8035"/> + <path d="M0 551.36 L0 500.34" class="st10"/> + <text x="4" y="511.54" class="st6" v:langID="1046"><v:paragraph/><v:tabList/>RIGHT Memory:<v:newlineChar/><tspan + x="4" dy="1.2em" class="st7">Stores all objects <v:newlineChar/></tspan><tspan x="4" dy="1.2em" + class="st7">asserted</tspan></text> </g> + </g> + <g id="shape36-89" v:mID="36" v:groupContext="shape" transform="translate(231.566,790.191) scale(1,-1)"> + <title>Pentagon</title> + <desc>Constraints</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="46.8602" cy="511.676" width="93.73" height="79.3701"/> + <path d="M46.86 471.99 L-2.41 502.31 L16.41 551.36 L77.31 551.36 L96.13 502.31 L46.86 471.99 Z" class="st11"/> + <text x="13.51" y="-508.08" transform="scale(1,-1)" class="st12" v:langID="1046"><v:paragraph v:horizAlign="1"/><v:tabList/>Constraints</text> </g> + <g id="shape37-92" v:mID="37" v:groupContext="shape" v:layerMember="0" transform="translate(197.728,-346.547)"> + <title>Elbow 2</title> + <v:userDefs> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(0,0,0,0)" v:tabSpace="42.5197"/> + <path d="M5.1 551.36 L5.1 602.81 L33.1 602.81 L33.1 599.41 L41.6 607.92 L33.1 616.42 L33.1 613.02 L-5.1 613.02 L-5.1 + 551.36 L5.1 551.36 Z" class="st13"/> + <path d="M5.1 551.36 L5.1 602.81 L33.1 602.81 L33.1 599.41 L41.6 607.92 L33.1 616.42 L33.1 613.02 L-5.1 613.02 L-5.1 + 551.36" class="st3"/> + </g> + <g id="shape38-95" v:mID="38" v:groupContext="shape" v:layerMember="0" transform="translate(359.057,-346.725)"> + <title>Elbow 2.38</title> + <v:userDefs> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(0,0,0,0)" v:tabSpace="42.5197"/> + <path d="M-5.1 551.36 L-5.1 602.81 L-33.1 602.81 L-33.1 599.41 L-41.6 607.92 L-33.1 616.42 L-33.1 613.02 L5.1 613.02 + L5.1 551.36 L-5.1 551.36 Z" class="st13"/> + <path d="M-5.1 551.36 L-5.1 602.81 L-33.1 602.81 L-33.1 599.41 L-41.6 607.92 L-33.1 616.42 L-33.1 613.02 L5.1 613.02 + L5.1 551.36" class="st3"/> + </g> + <g id="shape39-98" v:mID="39" v:groupContext="shape" transform="translate(-260.733,394.847) rotate(-89.1048)"> + <title>45 degree single.39</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(10):26"/> + </v:userDefs> + <path d="M0 537.19 L14.17 523.01 L14.17 532.37 L85.05 532.37 L85.05 542.01 L14.17 542.01 L14.17 551.36 L0 537.19 Z" + class="st1"/> + </g> + </g> +</svg> |