<?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="600" height="650" id="svg2" version="1.1" inkscape:version="0.48.0 r9654" sodipodi:docname="XKBlib-21.svg" inkscape:export-filename="/home/fcarrijo/Desktop/XKBlib-21.png" inkscape:export-xdpi="156.71965" inkscape:export-ydpi="156.71965"> <defs id="defs4"> <marker inkscape:stockid="DotM" orient="auto" refY="0" refX="0" id="DotM" style="overflow:visible"> <path id="path4666" d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none" transform="matrix(0.4,0,0,0.4,2.96,0.4)" inkscape:connector-curvature="0" /> </marker> <marker inkscape:stockid="Arrow2Lstart" orient="auto" refY="0" refX="0" id="Arrow2Lstart" style="overflow:visible"> <path id="path4619" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(1.1,0,0,1.1,1.1,0)" inkscape:connector-curvature="0" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend" style="overflow:visible"> <path id="path4622" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" inkscape:connector-curvature="0" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-9" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-4" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-0" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-6" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-95" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-61" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-4" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-3" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-2" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-7" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-3" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-9" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-44" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-49" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-38" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-32" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-5" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-43" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lstart" orient="auto" refY="0" refX="0" id="Arrow2Lstart-4" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4619-9" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(1.1,0,0,1.1,1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-55" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-73" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lstart" orient="auto" refY="0" refX="0" id="Arrow2Lstart-0" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4619-7" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(1.1,0,0,1.1,1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-27" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-2" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-05" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-0" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-1" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-79" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-1-6" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-79-2" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-1-6-2" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-79-2-5" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-1-6-9" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-79-2-1" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-1-6-8" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-79-2-7" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" refY="0" refX="0" id="Arrow2Lend-1-6-5" style="overflow:visible"> <path inkscape:connector-curvature="0" id="path4622-79-2-2" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> </marker> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.58961827" inkscape:cx="294.74298" inkscape:cy="309.49556" inkscape:document-units="px" inkscape:current-layer="layer2" showgrid="false" inkscape:window-width="1016" inkscape:window-height="718" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" /> <metadata id="metadata7"> <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:groupmode="layer" id="layer2" inkscape:label="Vetorial" style="display:inline"> <g id="g4480" transform="translate(-2.1200027,0)"> <rect y="13.571282" x="220.05763" height="79.712593" width="146.70508" id="rect3623-8" style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> <text sodipodi:linespacing="125%" id="text3070" y="26.553555" x="293.30469" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan y="26.553555" x="293.30469" id="tspan3072" sodipodi:role="line">Augment names to</tspan><tspan id="tspan3074" y="41.553555" x="293.30469" sodipodi:role="line">supply component</tspan><tspan id="tspan3076" y="56.553555" x="293.30469" sodipodi:role="line">names required by</tspan><tspan id="tspan3078" y="71.553558" x="293.30469" sodipodi:role="line">want and need but not</tspan><tspan id="tspan3080" y="86.553558" x="293.30469" sodipodi:role="line">supplied in request</tspan></text> </g> <g id="g4491" transform="translate(7.6293945e-6,0)"> <rect y="187.83658" x="216.24161" height="71.232536" width="150.09711" id="rect4489" style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> <text sodipodi:linespacing="125%" id="text3070-4" y="204.07883" x="291.04114" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan y="204.07883" x="291.04114" id="tspan3072-6" sodipodi:role="line">Augment names to</tspan><tspan id="tspan3080-1" y="219.07883" x="291.04114" sodipodi:role="line">supply required com-</tspan><tspan id="tspan3128" y="234.07883" x="291.04114" sodipodi:role="line">ponent names not sup-</tspan><tspan id="tspan3126" y="249.07883" x="291.04114" sodipodi:role="line">plied in request</tspan></text> </g> <g id="g4501"> <rect y="197.16464" x="463.01144" height="58.512432" width="79.712593" id="rect4499" style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> <text sodipodi:linespacing="125%" id="text3070-4-7" y="215.89449" x="502.67731" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3126-2" y="215.89449" x="502.67731" sodipodi:role="line">Keyboard</tspan><tspan id="tspan3171" y="230.89449" x="502.67731" sodipodi:role="line">Component</tspan><tspan id="tspan3173" y="245.89449" x="502.67731" sodipodi:role="line">Database</tspan></text> </g> <text xml:space="preserve" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="351.73218" y="128.97385" id="text3070-4-7-8" sodipodi:linespacing="125%"><tspan sodipodi:role="line" x="351.73218" y="128.97385" id="tspan3173-4">False</tspan></text> <text xml:space="preserve" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="310.94876" y="172.80606" id="text3070-4-7-8-7" sodipodi:linespacing="125%"><tspan sodipodi:role="line" x="310.94876" y="172.80606" id="tspan3173-4-8">True</tspan></text> <text xml:space="preserve" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="311.55521" y="440.59149" id="text3070-4-7-8-7-6" sodipodi:linespacing="125%"><tspan sodipodi:role="line" x="311.55521" y="440.59149" id="tspan3173-4-8-3">True</tspan></text> <text xml:space="preserve" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="231.23619" y="392.4397" id="text3070-4-7-8-77" sodipodi:linespacing="125%"><tspan sodipodi:role="line" x="231.23619" y="392.4397" id="tspan3173-4-2">False</tspan></text> <g id="g4519" transform="translate(0.84801102,0)"> <rect y="290.44534" x="229.80971" height="67.8405" width="121.2649" id="rect4517" style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> <text sodipodi:linespacing="125%" id="text3070-4-7-8-7-6-3" y="306.33923" x="290.62381" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3173-4-8-3-7" y="306.33923" x="290.62381" sodipodi:role="line">Build keyboard</tspan><tspan id="tspan3303" y="321.33923" x="290.62381" sodipodi:role="line">description from</tspan><tspan id="tspan3305" y="336.33923" x="290.62381" sodipodi:role="line">expressions in</tspan><tspan id="tspan3307" y="351.33923" x="290.62381" sodipodi:role="line">names</tspan></text> </g> <g id="g4510"> <rect y="294.68536" x="454.53137" height="56.816422" width="97.520721" id="rect4508" style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> <text sodipodi:linespacing="125%" id="text3070-4-7-8-7-6-3-2" y="311.40411" x="503.2478" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3307-6" y="311.40411" x="503.2478" sodipodi:role="line">New Keyboard</tspan><tspan id="tspan3348" y="326.40411" x="503.2478" sodipodi:role="line">Description</tspan><tspan id="tspan3350" y="341.40411" x="503.2478" sodipodi:role="line">(Temporary)</tspan></text> </g> <g id="g4586" transform="translate(-1.1798446,0)"> <rect transform="matrix(0.86355474,-0.5042551,0.86355474,0.5042551,0,0)" y="286.01212" x="12.546584" height="40.122799" width="40.122799" id="rect4566" style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.07155609;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> <text sodipodi:linespacing="125%" id="text3070-4-7-8-8" y="142.37003" x="292.44949" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3173-4-1" y="142.37003" x="292.44949" sodipodi:role="line">load</tspan></text> </g> <g id="g4591" transform="translate(-1.2719908,0)"> <rect transform="matrix(0.86355474,-0.5042551,0.86355474,0.5042551,0,0)" y="551.6828" x="-253.0174" height="40.122799" width="40.122799" id="rect4566-1" style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.07155609;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> <text sodipodi:linespacing="125%" id="text3070-4-7-8-8-3" y="410.2478" x="292.54166" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3173-4-1-6" y="410.2478" x="292.54166" sodipodi:role="line">load</tspan></text> </g> <g id="g4529"> <rect y="456.65457" x="437.57126" height="42.400314" width="136.52901" id="rect4527" style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> <text sodipodi:linespacing="125%" id="text3070-4-7-8-8-3-4" y="473.49829" x="505.76251" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3173-4-1-6-0" y="473.49829" x="505.76251" sodipodi:role="line">Keyboard Description</tspan><tspan id="tspan3415" y="488.49829" x="505.76251" sodipodi:role="line">for device_spec</tspan></text> </g> <g id="g4537"> <rect y="555.02332" x="468.09946" height="71.232529" width="79.712593" id="rect4535" style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> <text sodipodi:linespacing="125%" id="text3070-4-7-8-8-3-4-3" y="572.61322" x="507.87958" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3173-4-1-6-0-5" y="572.61322" x="507.87958" sodipodi:role="line">Keyboard</tspan><tspan id="tspan3441" y="587.61322" x="507.87958" sodipodi:role="line">Description</tspan><tspan id="tspan3415-8" y="602.61322" x="507.87958" sodipodi:role="line">returned to</tspan><tspan id="tspan3443" y="617.61322" x="507.87958" sodipodi:role="line">Client</tspan></text> </g> <g id="g4547" transform="translate(0,6)"> <rect y="546.54321" x="217.08961" height="80.5606" width="148.40111" id="rect4545" style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> <text sodipodi:linespacing="125%" id="text3070-4-7-8-8-3-4-3-5" y="561.29712" x="291.27551" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3443-8" y="561.29712" x="291.27551" sodipodi:role="line">Build keyboard</tspan><tspan id="tspan3484" y="576.29712" x="291.27551" sodipodi:role="line">description for client</tspan><tspan id="tspan3486" y="591.29712" x="291.27551" sodipodi:role="line">by extracting struc-</tspan><tspan id="tspan3488" y="606.29712" x="291.27551" sodipodi:role="line">tures specified in want</tspan><tspan id="tspan3490" y="621.29712" x="291.27551" sodipodi:role="line">and need</tspan></text> </g> <g id="g4558" transform="translate(0.84801483,0)"> <rect y="453.26254" x="215.3936" height="69.536514" width="150.09711" id="rect4556" style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> <text sodipodi:linespacing="125%" id="text3070-4-7-8-8-3-4-3-5-0" y="468.84134" x="290.28979" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3490-1" y="468.84134" x="290.28979" sodipodi:role="line">Replace device_spec</tspan><tspan id="tspan3539" y="483.84134" x="290.28979" sodipodi:role="line">active keyboard</tspan><tspan id="tspan3541" y="498.84134" x="290.28979" sodipodi:role="line">description with newly</tspan><tspan id="tspan3543" y="513.84131" x="290.28979" sodipodi:role="line">built description</tspan></text> </g> <g id="g5219"> <rect y="173.42047" x="22.048164" height="97.520721" width="97.520721" id="rect3623" style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> <text sodipodi:linespacing="125%" id="text3070-4-7-8-2" y="188.07018" x="70.925713" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3173-4-0" y="188.07018" x="70.925713" sodipodi:role="line">Initial Request:</tspan></text> <text sodipodi:linespacing="125%" id="text3070-4-7-8-2-0" y="203.38049" x="70.8554" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3173-4-0-6" y="203.38049" x="70.8554" sodipodi:role="line">device_spec</tspan></text> <text sodipodi:linespacing="125%" id="text3070-4-7-8-2-3" y="218.98961" x="70.559502" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3173-4-0-9" y="218.98961" x="70.559502" sodipodi:role="line">names</tspan></text> <text sodipodi:linespacing="125%" id="text3070-4-7-8-2-08" y="235.3194" x="70.703056" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3173-4-0-3" y="235.3194" x="70.703056" sodipodi:role="line">want</tspan></text> <text sodipodi:linespacing="125%" id="text3070-4-7-8-2-8" y="251.14238" x="70.808525" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3173-4-0-7" y="251.14238" x="70.808525" sodipodi:role="line">need</tspan></text> <text sodipodi:linespacing="125%" id="text3070-4-7-8-2-31" y="266.61966" x="70.788017" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" xml:space="preserve"><tspan id="tspan3173-4-0-0" y="266.61966" x="70.788017" sodipodi:role="line">load</tspan></text> <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="rect3623-0" d="m 22.048165,192.49828 97.520725,0" style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" /> <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="rect3623-0-5" d="m 22.048163,207.97556 97.520727,0" style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" /> <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="rect3623-0-5-0" d="m 22.048163,223.45283 97.520727,0" style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" /> <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="rect3623-0-5-3" d="m 22.048165,238.9301 97.520725,0" style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" /> <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="rect3623-0-5-1" d="m 22.048164,254.4074 97.520726,0" style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" /> </g> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" d="m 291.26298,93.8148 0,23.09757" id="path4596" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" d="m 291.25314,158.03258 0,27.7286" id="path4596-2" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" d="m 290.00054,259.8264 0,28.82818" id="path4596-5" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" d="m 291.69655,357.34714 0,27.33761" id="path4596-1" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" d="m 291.27254,426.03561 0,26.3722" id="path4596-7" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" d="m 366.67199,321.83919 79.19142,0" id="path4596-1-3" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" d="m 372.96935,478.72034 56.53217,0" id="path4596-1-3-2" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" d="m 373.27487,571.15303 84.94818,0" id="path4596-1-3-2-9" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" d="m 291.69655,523.61506 0,26.3722" id="path4596-7-9" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Lstart);marker-end:url(#Arrow2Lend)" d="m 121.18964,215.11041 90.94563,0" id="path4596-1-3-9" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Lstart);marker-end:url(#Arrow2Lend)" d="M 120.73642,210.73275 214.22607,97.947914" id="path4596-1-3-9-9" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" d="m 119.41547,218.80642 106.32762,70.80852" id="path4596-1-3-4" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> <path style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker-end:url(#Arrow2Lend-1)" d="m 255.4428,405.01124 -70.75645,0 0,126.89959 104.75645,0" id="rect5774" inkscape:connector-curvature="0" sodipodi:nodetypes="cccc" /> <path style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker-end:url(#Arrow2Lend-1)" d="m 327.42324,137.27454 70.75645,0 0,130.89959 -104.75645,0" id="rect5774-1" inkscape:connector-curvature="0" sodipodi:nodetypes="cccc" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend-1-6)" d="M 459.69356,256.35107 356.79809,290.5477" id="path6017" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend-1-6)" d="m 449.84239,354.00854 -76.838,95.35899" id="path6017-3" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend-1-6)" d="M 456.8343,359.38127 370.07592,546.46615" id="path6017-3-8" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend-1-6);display:inline" d="M 100.49427,230.62118 214.64454,548.15782" id="path6017-3-0" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> <path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend-1-6);display:inline" d="M 95.536492,246.63398 209.68676,569.25866" id="path6017-3-0-7" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> </g> </svg>