Mercurial > cgi-bin > hgwebdir.cgi > VMS > 0__Writings > kshalle
changeset 91:d8024c56ef61
maintenance.. changed "Universal" to "Split-core_msg_passing_based"
added POP_ref_manual.tex
modified FASPP__HW_support.odp
modified euro_fellowship_CV_w_pubs.tex
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/0__Papers/03__Conference_calls/[Hipeac-publicity] ARCS2013 CfP.txt Mon Oct 08 23:03:26 2012 -0700 1.3 @@ -0,0 +1,71 @@ 1.4 +**************************************************************************** 1.5 + 1.6 +Apologies if you receive multiple copies of this email. 1.7 + 1.8 +**************************************************************************** 1.9 + 1.10 +ARCS 2013 - CALL FOR PAPERS 1.11 + 1.12 +26TH INTERNATIONAL CONFERENCE ON ARCHITECTURE OF COMPUTING SYSTEMS THIS YEAR FOCUS: ARCHITECTURAL ASPECTS FOR APPLICATION ACCELERATION 1.13 + 1.14 +Prague, Czech Republic, February 19th - 22nd, 2013 http://arcs2013.fit.cvut.cz 1.15 + 1.16 +Submission Deadline: EXTENDED to October 1, 2012 1.17 + 1.18 +**************************************************************************** 1.19 + 1.20 +The ARCS series of conferences has over 30 years of tradition reporting top notch results in computer architecture and operating systems research. This year's focus will be on architectural aspects for application acceleration. Like the previous conferences in this series, it continues to be an important forum for computer architecture research. In 2013 ARCS will be hosted by the Czech Technical University in Prague. 1.21 + 1.22 +The proceedings of ARCS 2013 will be published in the Springer Lecture Notes on Computer Science (LNCS) series (pending). After the conference, authors of selected papers will be invited to submit an extended version of their contribution for publication in a special issue of the Journal of Systems Architecture. Also, the best paper and best presentation award will be presented at the conference. Paper submission Authors are invited to submit original, unpublished research papers on one of the following topics: 1.23 + 1.24 +‐ Computer architecture topics such as multi-cores, memory systems, and parallel computing. 1.25 +‐ Adaptive system architectures such as reconfigurable systems in hardware and software. 1.26 +‐ Customization and application specific accelerators in heterogeneous architectures 1.27 +‐ Organic and Autonomic Computing including both theoretical and practical results on self-organization, self-configuration, self-optimization, self-healing, and self-protection techniques. 1.28 +‐ Operating Systems including but not limited to scheduling, memory management, power management, and RTOS. 1.29 +‐ Energy-awareness, green computing. 1.30 +‐ System aspects of ubiquitous and pervasive computing such as sensor nodes, novel input/output devices, novel computing platforms, architecture modeling, and middleware. 1.31 +‐ Embedded systems including but not limited to architecture, communication, design methodologies, and applications. 1.32 +‐ Network Centric and Grid Computing 1.33 + 1.34 +Submissions should be done through the link provided at the conference website http://arcs2013.fit.cvut.cz/. Papers should be submitted in pdf or postscript format. They should be formatted according to Springer LNCS style (see: http://www.springer.de/comp/lncs/authors.html ) and not exceed 12 pages. 1.35 + 1.36 +Workshop and Tutorial Proposals: 1.37 +Proposals for workshops and tutorials within the technical scope of the conference are solicited. Submissions should be done through email directly to the workshops and tutorials chair Mladen Berekovic (berekovic@c3e.cs.tu-bs.de). 1.38 + 1.39 +Important Dates 1.40 +Paper submission deadline: EXTENDED to October 1, 2012 Workshop and tutorial proposals: October 15, 2012 Notification of acceptance: November 19, 2012 Camera ready papers: December 16, 2012 1.41 + 1.42 + 1.43 +Organizing Committee 1.44 + 1.45 +General Chairs 1.46 +Hana Kubátová, CTU in Prague, CZ 1.47 +Christian Hochberger, TU Dresden, D 1.48 + 1.49 +PC Chairs 1.50 +Martin Daněk, UTIA AV CR, CZ 1.51 +Bernhard Sick, University of Kassel, D 1.52 + 1.53 +Workshop and Tutorial Chair 1.54 +Mladen Berekovic, TU Braunschweig, D 1.55 + 1.56 +Publicity Chairs 1.57 +Josef Hlaváč, CTU in Prague, CZ 1.58 +Dietmar Fey, University of Erlangen-Nurnberg, D 1.59 + 1.60 +Web Chair 1.61 +Petr Fier, CTU in Prague, CZ 1.62 + 1.63 +Industry Liaison 1.64 +Robert Lórencz, CTU in Prague, CZ 1.65 + 1.66 +Local Organization 1.67 +Rudolf Kinc, AMCA, CZ 1.68 +Eva Uhrová (finance), AMCA, CZ 1.69 + 1.70 +**************************************************************************** 1.71 + 1.72 +_______________________________________________ Hipeac-publicity mailing list 1.73 +Hipeac-publicity@hipeac.net 1.74 +http://www.hipeac.net/mailman/listinfo/hipeac-publicity
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/0__Papers/Holistic_Model/Perf_Tune/Notes_on_paper.txt Mon Oct 08 23:03:26 2012 -0700 2.3 @@ -0,0 +1,12 @@ 2.4 + 2.5 +Rearrangement of Perf-tuning paper: 2.6 + 2.7 +-] Add "The Problem" section. Move most of related work to just before conclusion -- have all concepts of paper available for related work at that point. And, shorten it -- don't need so much detail -- lump several together.. 2.8 + 2.9 +-] In "the problem" say as "hardware connected up to app code", then that scheduler determines where work done, which in turn determines communications happen on a multi-core, which in turn determines performance of application-code. The availability of work and pattern of sending it determines idleness. 2.10 + 2.11 +So, performance tuning is about seeing a) cache effect on app-code b) idleness of cores and c) overhead. Then connecting those back to specific lines or patterns in application-code, which is what have available to change. 2.12 + 2.13 + 2.14 + 2.15 +
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/0__Papers/Ideas/VoteBucks/latex/vote_bucks.tex Mon Oct 08 23:03:26 2012 -0700 3.3 @@ -0,0 +1,37 @@ 3.4 + 3.5 +The question is whether local quick fixes or longer term more fundamental ideas. Fundamental won't be immediately apparent to be good ideas. Rather they will appear out of place, because something with such impact to fix fix a situation that persists will have to be .. the fact of the situation persisting means that simple, small changes are unlikely to exist -- a larger disruption is needed, which by its nature means quite different than the current practices. 3.6 + 3.7 +The current idea 3.8 +This proposal is for a fundamental change in the daily practice of democracy. It ties representatives to the will of the people, preventing them from choosing paths that benefits themselves, at the expense of those they represent. 3.9 + 3.10 +The current practice is seen by many to be flawed by the ability of lobyists and other forms of paid political influence to sway representatives into choosing paths that please the lobyists, but are not in the best interest of the population represented. 3.11 + 3.12 +Such influence can only be effective when the people represented have only weak influence on the representative's daily behaviors. Any mechanism that strengthens the influence of the people represented on the daily behaviors of the representative thus move the daily practice of democracy closer to the ideal, in which the actions of government reflect the best interest of those governed, and follow the will of the governed. 3.13 + 3.14 +The Big Idea proposed here uses technology to fix shortcomings in the current practice of democracy, to move the outcomes of an actual democratic government closer to the outcomes that would be produced by an ideal democratic government that follows the best interest and will of the people governed. 3.15 + 3.16 +It does so by focusing on the influence that the people governed have on the daily choices made by their representatives. Currently, the influence only occurs during election cycles, and so is rather weak during the majority of the days that decisions are made. 3.17 + 3.18 +The current fix for this is the existence of lobyists, who have daily access to representatives and engage in practices meant to sway the representative in the direction the lobyist desires. In the ideal case, each segment of the governed population would have a lobyist, who has access and persuasion abilities of a level proportional to the size of the segment of population. 3.19 + 3.20 +In practice, however, very few of the population have a lobyist working to advance their desires. Instead, a tiny percentage of individuals control disproportionately large sums of money which is used to hire the services of the best lobyists. This gives a disproportionately large influence over the daily choices of representatives to those small segments of population that control concentrated wealth. 3.21 + 3.22 +\section{Proposed Change} 3.23 +This proposal would reduce such a disparity in influence by introducing a continuous form of voting that ties a representative's time in office to collective feedback from the population represented. If the population remains dissatisfied for too long, the representative is removed from office, triggering an election to replace them. 3.24 + 3.25 +Such continuous feedback will give the representative a clear, daily, indication of the will of the population they represent. The more detailed the feedback, the better will the representative be able to match their choices the the population's desires. In addition, the ability for the population to pre-register their preference for future decisions will give the representative a clear indication of the path the population wishes them to take, along with clear consequences for ignoring the population's desires. 3.26 + 3.27 +This type of system will inevitably have its own set of shortcomings, and will also fail to match the practice of democracy to the ideal. However, the presence of stronger feedback from the represented to their representative promises to advance the practice of democracy closer to the ideal than the current system of weak feedback. 3.28 + 3.29 +\subsection{Proposed Implementation} 3.30 +The logistics of such feedback preclude paper-based implementation, instead requiring an electronic mechanism for collecting the desires of the population and presenting them to their representative. Such a mechanism must be careful to prevent tampering by those who wish to gain an outsized advantage for themselves. It must also be designed to include those in the population who have difficulty with electronic mediums. 3.31 + 3.32 +The result won't match the ideal, but as long as it makes a significant improvement over the current system, it is a net win and preferrable. 3.33 + 3.34 +To prevent tampering, the design must be done by highly qualified individuals, and subjected to on-going testing for vulnerabilities. 3.35 + 3.36 +An organization will be required to operate the system. The system must be protected from the biases of the people operating it. The rules by which the organization runs should be designed to insulate the system from the biases of the people operating it. The organization must also have rules for choosing the people who join it, which should be designed to prevent the organization from developing its own systematic bias. 3.37 + 3.38 + 3.39 + 3.40 +
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/0__Papers/Languages/POP/Intro.txt Mon Oct 08 23:03:26 2012 -0700 4.3 @@ -0,0 +1,27 @@ 4.4 + 4.5 +Pattern-Oriented-Programming, or POP, is an infrastructure whithin which languages are created. It provides a set of primitive operations and an OS-like environment in which the languages are first created and then used to write programs and execute them. Any existing language's computation model may be reproduced, however POP opens up possibilities for new models that have superior properties over existing ones. It also enables seamless interaction between languages, so a program can be constructed of modules written in different domain-specific languages that are then linked together. 4.6 + 4.7 +POP has benefits for both language creation and program creation. One benefit is extensible syntax that can be made active so that the syntax itself performs transformations during construction or compilation of the code. This enables complex syntax such as the Tensor Notation, which is used in Physics. In the notation the particular placement of symbols and pattern-matching among them determines the operation to be carried out. With a normal parsed language, such parse-time behavior that determines the semantics is quite challenging, but POP provides facilities that simplify the task, making parse-time behavior a normal aspect of languages. 4.8 + 4.9 +This is possible because program creation within the POP infrastructure directly modifies the syntax tree, skipping the parsing step altogether. As a result, programs are correct by construction, essentially eliminating compilation errors by providing the programmer with only valid possibilities at any point during program definition. 4.10 + 4.11 +This has the additional benefit of facilitating learning a new language by using it. While writing code, the programmer may move the insertion point around and see the possibilities at each location, as well as read descriptions of each. They may even perform a full-text search through the descriptions of possibilities in order to find operations that perform desired behavior. 4.12 + 4.13 +POP's normal programming environment is therefore graphical, with a representation of the code that is in progress and a graphical insertion point that represents the current position in the syntax tree. The syntactic element to insert there is chosen via a cascading menu system, or by typing the sequence of letters that selects the desired syntactic entity, or via text-based search through descriptions. 4.14 + 4.15 +Because the environment is graphical, syntax normally has a graphical representation, although text-based is still possible. The visual representation of the syntax tree eliminates artifacts that exist in text-based syntaxes, such as the nesting of parentheses used to control the order of evaluation. 4.16 + 4.17 +Advanced visual syntaxes are not only possible but POP facilitates them with features in its environment. This makes it practical to create, for example, a syntax that directly displays mathematical symbols as they would appear when written by hand or in a mathematics text book or paper. Math syntaxes already exist, but not ones easily extensible with new visual symbols that have meaning attached to placement and can perform parse-time behaviors. The POP system is advanced enough to create drawing-based syntaxes that convey meaning through the particular lines drawn, their connection points, and even orientation or physical placement relative to other components. 4.18 + 4.19 +The syntax tree orientation of POP enables programs to construct syntax trees of their own, during the run, and invoke a POP facility that compiles the tree. The program may then direct POP to create a new process out of the compiled image and connect that process to the rest of the program. In fact, the POP environment treats a process as a permanent entity that remains live until a POP directive is used to end it. 4.20 + 4.21 +As such, a POP program, once run, normally remains live continuously. The various processes that make up the running program remain dormant until input arrives. Input to a process then triggers activity within it. POP has a facility to save an image of a collection of processes and reproduce it at a future date, or even to transfer the image to a different POP system and re-animate a clone there. 4.22 + 4.23 +The syntax tree orientation also enables advanced approaches to performant portability of code. The POP primitives have syntax tree transformation properties attached to them, such as commutativity, associativity, distributivity, and so on. Each property has associated rules for transforms that may be safely made to the syntax tree. Any POP based language may likewise attach these properties to its syntactic elements, which enables the associated transforms of the syntax tree. In addition, the language may define new properties, along with associated syntax tree transformations. This makes a large space of allowed transformations available to tools, which search through the space to find forms of the syntax tree that will execute well on target hardware. 4.24 + 4.25 +The POP primitives are naturally parallel in nature. They expose communication, including that implied by side effects when locations are used to store data supplied by one primitive instance, and later forward it to a different primitive instance. However, POP encourages the equivalent behavior to be expressed through the use of explicit environments, which can be created, named, and passed around. Using them naturally makes side effect communication explicit and also clean, so that tools can directly infer the communicating entities and the causal relationship implied by the side effect communication. 4.26 + 4.27 +As a result, even communication among iterations of loops are exposed, which lets the tools know the causal relationships among the iterations. The causal relationships are what the scheduler must enforce when choosing units of work to schedule onto physical processors. The scheduling is the heart of parallel processing, which determines what physical communications are performed and the consequent performance delivered. 4.28 + 4.29 + 4.30 +
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/0__Papers/Languages/POP/POP_Intro_paper/latex/POP_ref_manual.tex Mon Oct 08 23:03:26 2012 -0700 5.3 @@ -0,0 +1,583 @@ 5.4 +%&latex 5.5 +\documentclass{scrbook} 5.6 + 5.7 +%+MakeIndex 5.8 +\usepackage{makeidx} 5.9 +\makeindex 5.10 +%-MakeIndex 5.11 + 5.12 +\begin{document} 5.13 + 5.14 +%+Title 5.15 +\title{\Huge\bf The POP Infrastructure\\ Reference Manual} 5.16 +\author{Sean Halle} 5.17 +\date{\today} 5.18 +\maketitle 5.19 +%-Title 5.20 + 5.21 +%+Contents 5.22 +\tableofcontents 5.23 +%+Contents 5.24 + 5.25 +%+Make Parts 5.26 +%\part{First Part} 5.27 +%-Make Parts 5.28 + 5.29 +\chapter{Introduction and Overview} 5.30 + 5.31 + 5.32 +Pattern-Oriented-Programming, or POP, is an infrastructure within which languages are created. It provides a set of primitive operations and an OS-like environment in which the languages are created and then used to write programs and execute them. Any existing language's computation model may be reproduced, however POP opens up possibilities for new models that have superior properties over existing ones. It also enables seamless interaction between languages, so a program can intermix constructs from different languages within the same module, and the constructs naturally inter-operate. 5.33 + 5.34 +POP has benefits for both language creation and program creation. One benefit is extensible syntax that can be made active so that the syntax itself performs transformations during construction or compilation of the code. This enables complex syntax such as the Tensor Notation, which is used in physics. In the notation, the particular placement of symbols and pattern-matching among them determines the operation to be carried out. With a normal parsed language, such parse-time behavior that determines the semantics is quite challenging, but POP provides facilities that simplify the task, making parse-time behavior a normal aspect of languages. 5.35 + 5.36 +This is possible because program creation within the POP infrastructure directly modifies the syntax tree, skipping the parsing step altogether. As a result, programs are correct by construction, essentially eliminating compilation errors by providing the programmer with only valid possibilities at any point during program definition. 5.37 + 5.38 +This has the additional benefit of facilitating learning a new language by using it. While writing code, the programmer may move the insertion point around and see the possibilities at each location, as well as read descriptions of each. They may even perform a full-text search through the descriptions of possibilities in order to find operations that perform desired behavior. 5.39 + 5.40 +POP's normal programming environment is therefore graphical, with a representation of the code that is in progress and a graphical insertion point that represents the current position in the syntax tree. The syntactic element to insert there is chosen via a cascading menu system, or by typing the sequence of letters that selects the desired syntactic entity, or via text-based search through descriptions. 5.41 + 5.42 +Because the environment is graphical, syntax normally has a graphical representation, although text-based is still possible. The visual representation of the syntax tree eliminates artifacts that exist in text-based syntaxes, such as the nesting of parentheses used to control the order of evaluation. It also eliminates ambiguity for the reader by allowing them to graphically view properties attached to the syntactic elements, such as those affecting the order of evaluation. 5.43 + 5.44 +Advanced visual syntaxes are not only possible but POP facilitates them with features in its environment. This makes it practical to create, for example, a syntax that directly displays mathematical symbols as they would appear when written by hand or in a mathematics text book or paper. Math syntaxes already exist, but not ones easily extensible with new visual symbols that have meaning attached to placement and can perform parse-time behaviors. The POP system is advanced enough to create drawing-based syntaxes that convey meaning through the particular lines drawn, their connections, and even orientation or physical placement relative to other components. 5.45 + 5.46 +The syntax tree orientation of POP enables programs to generate syntax trees of their own, during the run, and then invoke a POP facility that compiles the tree. The program may then direct POP to create a new process out of the compiled image and connect that process to the rest of the program. In fact, the POP environment treats a process as a permanent entity that remains live until a POP directive is used to end it. 5.47 + 5.48 +As such, a POP program, once run, normally remains live continuously. The various processes that make up the running program remain dormant until input arrives. Input to a process then triggers activity within it. POP has a facility to save an image of a collection of processes and reproduce it at a future date, or even to transfer the image to a different POP system and re-animate a clone there. 5.49 + 5.50 +The syntax tree orientation also enables advanced approaches to performant portability of code. The POP primitives have syntax tree transformation properties attached to them, such as commutativity, associativity, distributivity, and so on. Each property has associated rules for transforms that may be safely made to the syntax tree. Any POP language may likewise attach these properties to its own syntactic elements, which enables the associated transforms of the syntax tree. In addition, the language may define its own new properties, and associate them with custom syntax tree transformations. This makes a large space of allowed transformations available to tools, which search through the space to find forms of the syntax tree that will execute well on target hardware. 5.51 + 5.52 +The POP primitives are naturally parallel in nature. They expose communication, including that implied by side effects that occur when locations are used to store data supplied by one primitive instance, and later forward it to a different primitive instance. However, POP encourages the equivalent behavior to be expressed through the use of explicit contexts, which are explicitly created, and can then be given a name and passed around. Using them naturally makes side effect communication explicit and also clean, so that tools can directly infer the communicating entities and the causal relationship implied by the side effect communication. 5.53 + 5.54 +As a result, even communication among iterations of loops is exposed, which lets the tools know the causal relationships among the iterations. These causal relationships are what the scheduler must enforce when choosing units of work to schedule onto physical processors. The scheduling is the heart of parallel performance. It determines what physical communications are performed and the consequent performance delivered. 5.55 + 5.56 + 5.57 + 5.58 + 5.59 + 5.60 + 5.61 + 5.62 +\chapter{Commands and Usage} 5.63 + 5.64 + 5.65 + 5.66 +\section{POP environment} 5.67 + 5.68 +The POP OS-like environment provides services such as data storage and retrieval, communication among OS entities, and creation and deletion of OS entities. 5.69 + There is only one type of OS entity, which is the (virtual) processor. Hence a data file is seen as a processor, as is a running piece of code. Even OS services are invoked by communicating to permanent OS supplied processors. 5.70 + 5.71 + 5.72 + 5.73 +\subsection{Processors in the POP Environment} 5.74 +\label{subsec:ProcInPOP} 5.75 +A processor has a name. The name is used to communicate with the processor. Along with the name, a processor also has meta-data attached to it. This is information about the processor, and is used when other processors try to find the processor's name. 5.76 + 5.77 +A processor behaves according to a specification. The OS provides as a service a permanent processor that will create a new processor from a specification. It is called the creator. When one processor wants a new processor created, it sends the specification to the creator and receives back the name of the newly created 5.78 +processor. 5.79 + 5.80 +\subsection{Finding a Processor} 5.81 + 5.82 +When one processor wants to find the name of another processor, it asks the discovery processor, which is a permanent processor supplied as a service by the OS. The discovery processor takes goal meta-data as input and searches through the meta-data of all processors currently live within the OS. It returns a list of the meta-data from all processors that matched the goal meta-data. If this list contains too many results, the requesting processor can look through the list, to either choose one or else decide additional terms to add to the goal meta-data it supplied. 5.83 + 5.84 +A particular returned list can be saved by turning it into a new discovery processor, and then using it to perform subsequent searches. The new discovery processor automatically keeps itself up to date. Searches within this smaller list make the search faster and more convenient to specify. 5.85 + 5.86 +In other OSes, the equivalent of the meta-data is the directory structure, and the equivalent of one directory is a search result that has been saved into its own processor. In other OSes, an equivalent search is performed by listing the contents of a directory then changing to a different directory and repeating. 5.87 + 5.88 +The POP meta-data has more flexibility because it does not tie data into any particular tree structure. At the same time, it is flexible enough to allow a number of results to be saved into discovery processors such that they recreate the equivalent of directories, and allow the same kind of movement among and viewing of directories. 5.89 + 5.90 + 5.91 +\subsection{Data Files as Processors} 5.92 +What is a file in other OSes is a processor in POP. Data is inserted and retrieved by sending commands to the processor and receiving replies. Such a data-holding processor is created from a specification, which states the commands it is capable of receiving and sending. The specification also states the structure of the data held within the processor. All data sent to it and retrieved from it is sent in that structured form. 5.93 + 5.94 + 5.95 + 5.96 + 5.97 +\subsection{Source Code as Data Held Within a Processor} 5.98 +In POP, raw source code is a syntax graph that is held inside a processor. The name of the kind of processor that holds a source code syntax graph is \textit{srcHolder}. The code is stored in a structured form, as a syntax graph, and a srcHolder has commands defined that understand this structure and can be useful in manipulating it. 5.99 + 5.100 +For example, a srcHolder interacts with another processor by establishing a connection. For each connection, the srcHolder internally creates a piece of state that acts as a pointer into the syntax graph. It is called the edit-point. Commands can be sent to move the edit point, to insert new syntactic entities at the edit point, and to retrieve sub-trees rooted at the edit-point. 5.101 + 5.102 +For extensive manipulations, a processor can ask a srcHolder to return the entire syntax graph. That can then be directly manipulated and sent back to the srcHolder. In this case, the srcHolder acts as a means for controlling access to the various versions of the syntax graph. It can even perform merges. 5.103 + 5.104 + 5.105 +\subsection{Compiling Source Code into a Specification} 5.106 + 5.107 + The data in a srcHolder can be compiled, and the result is a different form of the source data called a \textit{processor specification (procSpec).} A procSpec is held in a different kind of processor called a \textit{specHolder.} The specification is then used to create a processor, which behaves according to the source code's semantics. 5.108 + 5.109 +Compiling the source code is initiated by sending the name of the srcHolder to the permanent OS supplied compiler processor (or to an alternative compiler processor). The compiler processor sends back the name of the specHolder it created, which holds the compiled result. 5.110 + 5.111 +Recall from section \ref{subsec:ProcInPOP} that the OS supplies a processor as a service that creates new processors from specifications. This creator accepts the name of a specHolder. 5.112 + 5.113 +\subsection{Hierarchy} 5.114 + 5.115 + 5.116 + 5.117 +A processor can contain other processors. When requesting creation, a processor can ask the creator to place the new processor inside itself. Alternatively, given a name, a processor can ask to have placed inside itself the named processor. 5.118 +In fact, the OS itself is a processor that contains all the other processors. 5.119 + 5.120 +Hence, a hierarchy exists of processors contained inside other processors. The internal processors can only interact with the container and siblings. However, the OS can be asked to create a tunnel that makes a single processor appear to exist in multiple places, which can be useful for creating connections to processors in other POP instances, or to non-POP machines. 5.121 + 5.122 +\subsection{Persistence of Processors} 5.123 + 5.124 +Once the creator creates a processor, it persists until explicitly destroyed. The OS processor itself persists. If the machine animating the OS processor powers off, the relevant state of the OS processor is maintained, along with the existence and structure of the processors inside it. Each of those processors can also state persistent portions of their internal state that remains. This is the mechanism by which data holding processors persist their internal data. 5.125 + 5.126 +\subsection{A Running Program as a Collection of Processors} 5.127 + 5.128 +A running program 5.129 +is one or more processors that reside inside the OS processor. 5.130 +POP has a facility to save an image of a collection of processors and reproduce it at a future date, or even to transfer the image to a different POP system and re-animate a clone there. Cloning may be the preferred distribution method for many programs. 5.131 + 5.132 + Cloning across different hardware is simplified by the fact that state inside a processor is structured, allowing translation to other endianness or word size. It is also helped by the original source code being available for re-compile onto the other hardware. 5.133 + 5.134 +As such, a POP program, once run, normally remains live continuously. The various processes that make up the running program remain dormant until input arrives. Input to a process then triggers activity within it. 5.135 + 5.136 +\subsection{Adaptable Programs} 5.137 + 5.138 + 5.139 + 5.140 +Once running, a program may direct the OS to create a new processor out of a compiled image and connect that processor to the rest of the program. Hence, a running program can self-generate source code, compile it, and turn it into a processor that it connects to itself. This allows a program to adapt itself after the run begins. In fact, it can even cause updates in the srcHolders that the running program was originally generated from. 5.141 + 5.142 + 5.143 + 5.144 +\section{Languages within POP} 5.145 +Languages are first created and then used to write programs and execute them. A language consists of syntax and rewriting rules. 5.146 + 5.147 +The syntax consists of a definition of the syntax graph elements, a visualizer for them, and a modifier. In addition, menu entries are provided along with descriptions of each of the syntactic elements. Finally, a definition of a srcHolder is provided, instances of which store syntax graphs made up of the new syntactic elements. 5.148 + 5.149 +The rewriting rules have two parts, a "from" and an "into". Where the "from" is one syntactic entity in the language, and the "into" is A rule also has directives that state how the elements of the "from" are transferred to more primitive "into" syntactic entities. 5.150 +\subsection{POP Primitives} 5.151 + 5.152 + 5.153 + 5.154 + 5.155 + 5.156 + 5.157 + 5.158 + 5.159 +\section{Constructing a Syntax Tree} 5.160 +This is possible because program creation within the POP infrastructure directly modifies the syntax tree, skipping the parsing step altogether. As a result, programs are correct by construction, essentially eliminating compilation errors by providing the programmer with only valid possibilities at any point during program definition. 5.161 + 5.162 + 5.163 +POP's normal programming environment is therefore graphical, with a representation of the code that is in progress and a graphical insertion point that represents the current position in the syntax tree. The syntactic element to insert there is chosen via a cascading menu system, or by typing the sequence of letters that selects the desired syntactic entity, or via text-based search through descriptions. 5.164 + 5.165 +Because the environment is graphical, syntax normally has a graphical representation, although text-based is still possible. The visual representation of the syntax tree eliminates artifacts that exist in text-based syntaxes, such as the nesting of parentheses used to control the order of evaluation. It also eliminates ambiguity for the reader by allowing them to graphically view properties attached to the syntactic elements, such as those affecting the order of evaluation. 5.166 + 5.167 + 5.168 +\section{Explicit Contexts} 5.169 +The POP primitives expose communication, including that implied by side effects that occur when locations are used to store data supplied by one primitive instance, and later forward it to a different primitive instance. 5.170 + 5.171 +POP encourages side-effect behavior to be expressed through the use of explicit contexts, which are explicitly created, and can then be named and passed around. Using them naturally makes side effect communication explicit and also clean, so that tools can directly infer the communicating entities and the causal relationship implied by the side effect communication. 5.172 + 5.173 +As an example, the code in Fig X exposes communication among iterations of loops. This lets specialization tools know the causal relationships among the iterations. These causal relationships are what the scheduler must enforce when choosing units of work to schedule onto physical processors. The scheduling is the heart of parallel processing, which determines what physical communications are performed and the consequent performance delivered. 5.174 + 5.175 + 5.176 +\section{Programming Environment} 5.177 + 5.178 +Here we give more detail on the programming environment features available to the programmer. 5.179 + 5.180 +This has the additional benefit of facilitating learning a new language by using it. While writing code, the programmer may move the insertion point around and see the possibilities at each location, as well as read descriptions of each. They may even perform a full-text search through the descriptions of possibilities in order to find operations that perform desired behavior. 5.181 + 5.182 + 5.183 +\section{Source Manipulation} 5.184 +The syntax tree orientation of POP enables programs to generate syntax trees of their own, during the run, and then invoke a POP facility that compiles the tree. The program may then direct POP to create a new process out of the compiled image and connect that process to the rest of the program. In fact, the POP environment treats a process as a permanent entity that remains live until a POP directive is used to end it. 5.185 + 5.186 + 5.187 +\section{Extending Syntax} 5.188 + 5.189 + One benefit is extensible syntax that can be made active so that the syntax itself performs transformations during construction or compilation of the code. This enables complex syntax such as the Tensor Notation, which is used in physics. In the notation, the particular placement of symbols and pattern-matching among them determines operation to be carried out. With a normal parsed language, such parse-time behavior that determines the semantics is quite challenging, but 5.190 + 5.191 +POP provides facilities that simplify the task, making parse-time behavior a normal aspect of languages. 5.192 + 5.193 + 5.194 +Advanced visual syntaxes are not only possible but POP facilitates them with features in its environment. This makes it practical to create, for example, a syntax that directly displays mathematical symbols as they would appear when written by hand or in a mathematics text book or paper. Math syntaxes already exist, but not ones easily extensible with new visual symbols that have meaning attached to placement and can perform parse-time behaviors. The POP system is advanced enough to create drawing-based syntaxes that convey meaning through the particular lines drawn, their connections, and even orientation or physical placement relative to other components. 5.195 + 5.196 + 5.197 +\section{Syntax Element Properties and Their Associated Transforms} 5.198 + 5.199 +The syntax tree orientation also enables advanced approaches to performant portability of code. 5.200 + 5.201 +The POP primitives have syntax tree transformation properties attached to them, such as commutativity, associativity, distributivity, and so on. Each property has associated rules for transforms that may be safely made to the syntax tree. Any POP language may likewise attach these properties to its own syntactic elements, which enables the associated transforms of the syntax tree. In addition, the language may define its own new properties, and associate them with custom syntax tree transformations. This makes a large space of allowed transformations available to tools, which search through the space to find forms of the syntax tree that will execute well on target hardware. 5.202 + 5.203 + 5.204 + 5.205 + 5.206 + 5.207 +%+MakeIndex 5.208 +\printindex 5.209 +%-MakeIndex 5.210 + 5.211 +\end{document} 5.212 + 5.213 +An Extensible Term-rewriting Based Parallel Language 5.214 +by Sean Halle 5.215 +Email: seanhalle@yahoo.com 5.216 +Web: codetime.sourceforge.net 5.217 +Nov 2, 2007 5.218 +Abstract 5.219 +Programmer efficiency, computational efficiency, and automatic portability with high performance are 5.220 +major goals for parallel software. It would be nice to have a language that advanced these goals. In 5.221 +one approach, such a language would have graphical syntax and allow custom graphical notation to be 5.222 +added by the application programmer. It would also have an automated mechanism that specialized 5.223 +a single source to multiple hardware platforms, enabling high performance on a variety of parallel 5.224 +hardware. It would also have the feel of a flexible interpreted language but the efficiency of a com- 5.225 +piled one. 5.226 +Toward this end we propose a language with several features: its source form is a syntax graph; the 5.227 +visual representation is generated, which allows arbitrary graphics as syntax; it is based on a re- 5.228 +writing system, which enables easy syntax extensions; and its syntax graph is property-based, which 5.229 +enables symbolic manipulation of primitive as well as extended syntax. The proposed language lies 5.230 +on top of the CTOS OS abstraction layer, which brings portability and automatic specialization. 5.231 +It has three separate mechanisms for extending the language with custom notation. The first is a 5.232 +fairly straight forward adaptation of term-rewriting. The second uses active entities (processors) in 5.233 +the development environment to on-the-fly generate the term-rewriting rule. The third introduces an 5.234 +explicit symbol for the creation of a processor from source code, and defines a standard processor type 5.235 +called a sourceManipulator. SourceManipulators take in a syntax graph and produce a manipulated 5.236 +syntax graph as output, which can then be on-the-fly compiled, run, and wired-in, by sending the new 5.237 +graph through a creator to create a processor from it. This feature gives the feel of an interpreted 5.238 +language. 5.239 +We describe the syntax, features, and possible implementation of the proposed language, which is 5.240 +called EQNLang. 5.241 +1 Introduction 5.242 +Programmer productivity, reuse, self-documentation, ease of maintenance, and parallelism support are 5.243 +important topics in parallel languages at the moment. We propose a language, called EQNLang that may 5.244 +advance these goals. 5.245 + 5.246 +2 Background: The Environment Surrounding EQNLang 5.247 +All languages assume some form of environment that provides services such as long-term storage, commu- 5.248 +nication primitives, and the means to run a program. The environment that EQNLang assumes is a 5.249 +fairly new one that has been designed for portability across parallel hardware configurations called CTOS, 5.250 +short for CodeTime OS. 5.251 + 5.252 +--------------------- 5.253 + 5.254 +==================== 5.255 +1 5.256 +-------------------- 5.257 +In the CTOS abstraction, a processor is composed of a bit of embedded code, an embedded processor 5.258 +that derives the behavior of that code, and a name-space. The embedded processor uses the embedded 5.259 +code as directions on how to behave. The name-space is filled with other processors that can be called 5.260 +upon to help out. Such a processor is created by pairing together the embedded code with the embedded 5.261 +processor, then filling the name-space with helper processors. 5.262 +==================== 5.263 + 5.264 +------------------- 5.265 +There is a boundary, the OS instance boundary, that all data must cross in order to interact with running programs or to become resident. This makes automatic translation of data a natural occurence. It happens every time data crosses the OS instance boundary. 5.266 + 5.267 + The collection of processors provide many of the behaviors one normally associates with a language, and it 5.268 +enables interpreted-like behavior in a compiled language. 5.269 + 5.270 +------------------- 5.271 +The features of CTOS that relate to programs are: srcHolders, Visualizers, Modifiers, Displays, programSpaces, and workSpaces. 5.272 + 5.273 +srcHolders are the processors that hold source. They are specialized for source in that they come with built-in editing and visualizing sub-processors. In fact, the only way to edit code is to use the editing processor that comes with the srcHolder holding that code. Thats what the Visualizer, Modifier, and Display do; they provide the editing functions. 5.274 + 5.275 +In fact, the Visualizer and Modifier are part of every Holder. No matter what kind of data is held, it comes packaged with a Visualizer that translates the data into a list of graphical elements, and Modifier that modifies the data according to user gestures. 5.276 + 5.277 +Theyre used like this: the Visualizer generates a display-list, which is sent to a Display that paints the graphical elements in the list. The user views the Display and makes gestures, like key strokes and mouse movements. The Display packages the user gestures and sends them to the Modifier, which translates the gestures to modification commands and modifies the data in the Holder. The Visualizer then generates a display-list of the modified data and the cycle repeats. This cycle is used for all types of data, including 5.278 +source code. 5.279 + 5.280 +However, source code is more than simple data. It needs support services, which are provided by programSpace processors. Such services include looking up the code referenced by a name (ie, look up function definition); hooking together processors that communicate; even language-specific custom services. 5.281 + 5.282 +EQNLang, for example, makes use of custom services to generate on-the-fly re-write rules. Hence, srcHolders are placed together inside programSpaces, to make a program. Other things that can be placed into a programSpace are other programSpaces, workSpaces, support-service processors, and processors created from code that is part of the program. 5.283 + 5.284 +The last kind of processor important for EQNLang is the workSpace processor. A workSpace is intended to contain other processors. So, for example, a programSpace is a specialized form of workSpace, as is the OS processor. 5.285 + 5.286 +In general, workSpaces hold automatically created processors, programSpaces and hierarchically other workSpace processors. For user interaction, CTOS defines the Display processors, which are external processors reside outside any CTOS instances. Displays run natively on hardware that has a physical display. Each kind of Holder processor and Space processor can be asked to connect to a Display, which then receives a visual representation from the Holder or Space processors Visualizer. The Display paints it, for a person to look at, and accepts gestures from the person, which it packages and sends to the Holders or Spaces Modifier. 5.287 + 5.288 +A typical visual representation is seen in Figure 1 which shows a CTOS processor instance, a few processors that exist outside the CTOS instance such as web servers on the net, and the inside of the CTOS instance. The shown CTOS instance contains the special OS-service processors, a workSpace, programSpace, srcHolders and generated processors. More explanation of this figure is in section X 5.289 +================= 5.290 + 5.291 + 5.292 +3 5.293 +The proposed language, EQNLang, is a bit different from traditional languages because of the OS environment it resides in. The first thing well talk about is the differences between EQNLang and traditional languages, then well discuss EQNLangs features in more detail, and finally well talk about strategies for implementing those features. 5.294 + 5.295 +3.1 How EQNLang differs from taditional languages 5.296 +Traditional languages have a text-based source form. The text is edited with a stand-alone editing tool, then fed into another tool that either interprets the text or compiles it. The text form limits the features the language can have, and the tool flow also limits the features the language can have, as discussed further below. 5.297 + 5.298 +Next, for traditional languages, the source text is arranged in a number of files that are connected together in some form of name-space. The name-space is used to look up definitions. For example, variable names and function names are defined in various files, then referred to in other files. The name-space is used to retrieve the definitions attached to such names. 5.299 + 5.300 +If the language is interpreted then definitions are added to the name-space incrementally. A definition can be added, then invoked, then more definitions added, then those invoked, and so on. This interactive process takes place within a tool that is considered part of the language itself. During development, the definitions are live and grow, like a living system of entities waiting to be invoked. 5.301 + 5.302 +We adopt this feel for our proposed language, and actually go beyond it; not only are the definitions live, but they can be individually turned into active processors that are connected to the environment as well as each other. 5.303 + 5.304 +Compiled languages, on the other hand, form the name-space once, during compilation. The name-space of definitions is static, no new names may be added after compilation is complete. This difference in the name-space of definitions is one of the main ones between interpreted and compiled languages. It is what causes the main experiential difference for the programmer. The static nature of compiled languages makes the programmer perform longer iterations between definition and testing the definition. Meanwhile the dynamic nature of interpreted languages allows more flexible code which often saves steps, thereby further increasing programmer productivity, which is why we adopted it for POP. 5.305 + 5.306 +The next characteristic of traditional languages is the way in which the text-based source is translated into machine-understandable code. Whether interpreted or compiled, the text source is fed to a lexical analyzer, then grammar checked and type checked, then translated to a machine executable language. 5.307 + 5.308 +Each step is done by a single tool, with the tools linked in a chain. Interpreted languages perform all this on-the-fly. This is where much of the power of interpreted languages comes from; when put together with the dynamic definition name-space, the on-the-fly translation allows code to generate new code, then execute that new code, all in the same program. Because this on-the-fly modification-then-execution of code is one of the most powerful features of interpreted languages, we adopt it in POP. 5.309 + 5.310 +In contrast, compiled languages perform all analysis and translation before execution of any of the definitions. The benefit is the additional time allowed for complex transformation of the code, which makes it run faster. Because execution speed is also important to industry, we adopt compilation for POP 5.311 +as well. 5.312 + 5.313 +Finally, the syntax of traditional languages is determined by the lexical analyzer, grammar checker, type checker, and translator. These functions are provided in a stand alone tool that is considered to be part of the language. The tool must be modified to change the syntax, making it difficult to extend the languages syntax. It is too complex for application programmers to attempt this on a regular basis. 5.314 + 5.315 +POP differs in this aspect, having an easily extended syntax. It achieves this by distributing the lexical, grammatic, type, and translation functions among standard elements of the OS. In fact, in order for POP to combine the features of both interpreted and compiled languages, as well as have easily modifiable syntax, it has to do many things differently than traditional languages. It relies upon CTOS for this. 5.316 + 5.317 +First, EQNLang doesnt use text as a source form. Instead, its source is a syntax tree. 5.318 + 5.319 +---------------- 5.320 +CTOS defines a standard data structure that is used to represent the syntax of all languages that may be created for CTOS. All source code is stored as a syntax graph composed of the standard data structures, including POP source. 5.321 + 5.322 +The lexical, grammatic, type, and translation functions are distributed among various CTOS processors: the definition name-space is created and animated by programSpace processors; lexical analysis is performed by a combination of the Modifier and Display; grammar is embedded within the Visualizer and Display; and translation to machine code is performed by the CTOS creator processor. 5.323 + 5.324 +Notice that none of these functions belongs to the language, none are inside the language, nor are they in stand-alone tools. Instead, these functions are all standard parts of the OS. There are no stand-alone tools whose function exists only in the language. Instead, creating a language within POP involves writing a number of plug-ins to POP. 5.325 + 5.326 +This is how POP achieves easily extended syntax; it is the combination of source being in syntax graph form and the distribution of lexical, grammatic, type, and translation among CTOS processors that makes extending syntax easy. The details of extending the syntax are covered in more depth in a later section. 5.327 + 5.328 +The last difference between POP and traditional languages is the mixture of both interpreted behavior and compiled behavior that POP has. This, too, is enabled by distributing language functions among standard OS processors. In this case, POPs features are enabled by the fact that its OS makes name-space an explicit thing that can be manipulated, and the fact that the OS has an 5.329 +explicit creator processor that can be interacted with. 5.330 +================= 5.331 + 5.332 + 5.333 +3.2 POPs features 5.334 +POP has a feel and mindset inspired by operational semantics as described in Glynn Winskels book [] 5.335 + 5.336 +3.2.1 Extensible Syntax 5.337 +POP has a few categories of syntax: 5.338 + Invocations 5.339 + OS invocations 5.340 + Definitions 5.341 +The kinds of definitions: 5.342 + Data-structure definitions 5.343 + Pattern definitions 5.344 + From-Into definitions 5.345 + Extension definitions 5.346 +The extension definitions include: 5.347 + Syntax graph types 5.348 + GUI gesture semantics 5.349 + Re-write rule generators 5.350 + 5.351 +------------------ 5.352 +A syntax-graph-type definition encodes an extensions grammar, while GUI-gesture-semantics encode the means of constructing one of the new syntax graph elements. Meanwhile, re-write rule generators are, in effect, parameterized re-write rules. They are only used for extensions in which the notation has complex rules, such as Tensor notation. Such a generator takes in a syntax graph constructed by the user and generates a new syntax graph that encodes a re-write rule. The generator, in effect, encodes a parameterized re-write rule while the input syntax graph supplies the parameters. 5.353 +================= 5.354 + 5.355 +----------------- 5.356 +The statements category of syntax is the most commonly seen in EQNLang programs. It includes invocations of patterns, as well as all the visual cues used to indicate program behavior. 5.357 + 5.358 +As far as the visual aspects of language extensions, there are many different types of new syntax: 5.359 + Simple re-writable custom syntax 5.360 + Generated re-write rule custom syntax 5.361 + Compound structure custom syntax 5.362 + source modifying syntax for the end-user programmer to use (which has three flavors) 5.363 + source modifying syntax for specifying how to re-construct a live system 5.364 + source modifying syntax used when by-hand constructing a live system under the hood 5.365 + 5.366 +All of these types of new notation must be visualized for the programmer, and they must have a source form for the translator and OS. 5.367 + 5.368 +It can be tricky designing a syntax system capable of doing all this. Four things must be extendable: 5.369 +the syntax-graph structure itself, 5.370 +the visualization that represents the new syntax-graph structures, 5.371 +the grammar that says what is a well-formed statement, and 5.372 +the type system. 5.373 + 5.374 +Lets look more closely at how these four things that must be extendable relate to each other. Extending a language means adding new keywords to it, which is equivalent to adding new syntax. This new syntax must be viewable by the programmer. Because POPs source form is a syntax-graph, the new syntax must come with a way for the programmer to see it mixed in with other syntax. Not only that but the new syntax is used in combination with other syntax; some combinations have a meaning while others dont. So the grammar of POP must be extended in unison with the new syntax to state what ways are valid for combing the new syntax with other syntax. 5.375 + 5.376 +-----------------******************************************* 5.377 +Finally, the new notation may define a new type, or it may be a command that has requirements on what types it accepts, so the type system must be extended to check that communications between commands respect the newly defined command interfaces, while possibly communicating newly defined types. 5.378 +================= 5.379 + 5.380 +----------------- 5.381 +The difficulty of extending the syntax-graph is handled by recognizing that most features of a syntax data structure are in fact properties. When one thinks about the fields of a data structure, the field name is a property name, and the field contents are values the property can take. Similarly, the name of the data structure itself can be seen as a property-value. In this case, the collection of all possible names of syntax data structures is given a name, which is the property name. Hence, the collections name is the property name while the name of one data-structure is the property value. 5.382 + 5.383 +Using this scheme, the OS defines a universal syntax-graph that will encode the syntax of every language possible within the OS. It has only three kinds of syntax graph node: syntacticElement, syntacticLink, and syntacticProperty. Both syntacticElements and syntacticLinks have a linked list of syntacticProperty nodes attached. 5.384 + 5.385 +All of the structure unique to a language is encoded in the properties and the srcHolders. There is a kind of srcHolder unique to each language, which is coded to understand the properties of that language. This means that grammar, the type system, and visualization reside inside the srcHolder. 5.386 + 5.387 +To extend a language, then, is to modify the srcHolder for that language (the goal is to keep the translator unmodified). So the srcHolder is where grammar extensions, type system extensions, and visualization extensions will be defined: in the visualizer and modifier processors that reside inside the srcHolder. 5.388 + 5.389 +The visualization extension is handled by the combination of the modifier, the visualizer, and the Display. Because there is no text form of languages in the OS, to look at code, a visualizer generates a representation, which is in turn painted by a Display. 5.390 + 5.391 +Visual representations are implemented by using vector graphics. The primitives of the language have pre-defined vector graphics to represent them, and custom syntax simply adds a new vector graphic drawn by the programmer (plus some drawing rules). Thus, arbitrary drawings created in packages like Inkscape and Illustrator are used as custom notation. 5.392 + 5.393 +There are some constants in visualizing a syntax-graph. That is, some visual cues remain the same for all custom notation: a command is indicated by some vector graphic; inputs are indicated by position relative to the command graphic; and output either semantically replaces the command plus inputs, or an arrow points from an output-position to an input-position. 5.394 + 5.395 +Grammar extenstions are implemented inside the visualizer and modifier. 5.396 + 5.397 +For source-modifying commands there are three kinds of visualization, depending on what one is looking at: viewing an end-user worksheet, viewing the system behind a worksheet, or viewing the specification to construct that system. 5.398 + 5.399 +An end-user worksheet is a graphical view of a system of processors. The worksheet displays the contents of multiple Holders on the same worksheet, giving the feeling that they are all part of the same document. The worksheet also represents processors symbolically, indicating how data flows among the processors. Hence, one views source code mixed with processor symbols. 5.400 +The exact visualization is implementation dependent. For example, inputs to the system might be seen as variables, while srcHolder processors are seen as dashed boxes surrounding the source inside. 5.401 + 5.402 +One interesting way of specifying communication to a processor might be the following. A processor is represented by the source used to create it. Free variables appear in that source. The same variable names are placed on the worksheet outside the processor. When the external variable is set to a new value, that value is communicated into the processor as an input. This allows a user to use relatively standard mathematical notation to indicate communication among processors. 5.403 + 5.404 +Other processors might be displayed as some kind of symbol. An input would be indicated by a particular position relative to the symbol, as in A + B the A and B are taken to be inputs because of their position relative to the plus symbol. Or, an arrow might be used to indicate a data connection. Regardless, the user-programmer only sees the worksheets. 5.405 + 5.406 +The extensions to POP may cause new menu entries and other GUI gestures to become available to the user-programmer. These GUI extentions are used to modify source, and to modify the system. 5.407 + 5.408 +A possibility of interest to those in the Physics community is for a symbol the programmer places on the worksheet to take a specified area as input and produce output source. The symbol is live so every time the input source becomes modified, the output source updates. Such output source may be specified as input to a translate-and-create symbol. So, the worksheet may have an equation entered by hand, which is inside the input box to a custom transform symbol, whose output goes into a translate-and-create symbol whose output in turn takes live variables on the worksheet as input. The live variables may be assigned to a file processor symbol or be assigned by hand. Either way, each time the variables value changes, new output is produced by the processor created from the automatically modified equation. 5.409 + 5.410 +This is useful when one wishes to define a custom transform that takes equations as input, and then test that equations run through the transform produce expected numerical results. 5.411 + 5.412 +In more detail, a programmer can use a transform that they create themselves that takes another equation as input, to produce a modification of that second equation, as is common in theoretical physics work. The result of transforming the original equation becomes a translated and running processor seen symbolically on the same worksheet. It efficiently computes data that may be graphed on the worksheet, allowing visual inspection. In this way, the physicist can tell quickly whether the original equation they tried gives expected results (currently, much of this process is done by hand using a math tool for some parts, pen and paper for others, and traditional programming languages for others). 5.413 + 5.414 +Worksheet descriptions are a way to re-create a live worksheet. They are normally generated automatically and never seen by humans. 5.415 + 5.416 +Systems are what are behind live worksheets. Some things are more easily specified by viewing the system directly and building it via GUI gestures. When viewing a system, processors appear as boxes. 5.417 + 5.418 +\subsection{Translatable Custom Notation} 5.419 +Translatable custom notation is translated by term re-writing. To define a custom translatable command, a re-writing rule is stated. During compilation, this re-writing rule is applied. After re-writing, the result is a combination of POP primitives plus other custom translatable notation. As long as no cycles exist in the re-writing system, the resulting custom translatable notation brings the syntax one step closer to primitives-only. The translator repeats the term re-writing process until only POP primitives remain. 5.420 + 5.421 +The translatable type of custom notation is defined using four separate kinds of code: 5.422 + 5.423 +1. specification of editor commands and what action the editor performs on the syntax tree for each 5.424 + 5.425 +2. specification of the visual form of the notation, and how it corresponds to syntax tree elements 5.426 + 5.427 +3. specification of how the GUI turns gestures into editor commands 5.428 + 5.429 +4. re-write rules for the custom syntax-graph elements 5.430 + 5.431 +Spec 2 is used by the visualizer. The visualizer uses this spec to turn syntax-tree elements into standard visual elements. Making the visualizer do this is straight forward because the syntax-graph form, the standard visual elements, and the visualizer have been designed together to facilitate it. 5.432 + 5.433 +Given this, it can be seen that the first three kinds of spec form a cycle: editor-command -> syntax-tree mod -> visual-elements -> GUI display -> user gestures -> editor-command. 5.434 + 5.435 +The first kind of spec covers editor-command -> syntax-tree modification. The second kind covers (modified) sytax-tree ->visual-elements. The second kind also covers GUI display of the visual elements. This is because the second spec includes vector graphics that are given to the srcWindow, and the visualizer specifies the name of the vector graphic in a visual element. 5.436 + 5.437 +The user themself performs GUI display -> user gestures. 5.438 + 5.439 +The third kind of spec then covers user gestures -> editor-command, completing the cycle. 5.440 + 5.441 +For the fourth kind of code, two cases exist: when the term-rewriting rule can be directly specified, and when the term re-writing rule must be generated. Some notation is so complex it requires a processor to generate the re-writing rule from the syntax graph (of custom notation) the user enters. 5.442 + 5.443 +3.3.1 Direct translatable custom notation 5.444 +For the majority of translatable custom notation the re-writing rule can be directly stated when the custom notation is defined. Figure 2 shows an example of defining the summation symbol. Figure 3 shows an example of using the summation symbol thus defined, and Figure 5 shows the result of applying 5.445 +the rewrite rule in Figure 2 to the use in Figure 3. 5.446 + 5.447 +Figure 2. Defining custom notation for the summation symbol 5.448 +Figure 3. Example of using custom notation 5.449 +Figure 4. The resulting From box 5.450 +Figure 5. The result of applying the re-write rule defined in Figure 2 as used in Figure 3 5.451 + 5.452 +In Figure 2, there appear a from dashed box and an into dashed box. The from-box holds the P vector graphic of the command, surrounded by empty boxes that represent the positions that inputs are placed. The blue line indicates that matches are searched for. When the command is used, as in Figure 3, something will be placed inside the box at the tail of the blue arrow, in this case x. Something will also be placed inside the box that the head of the arrow is inside of, in this case x x. When this re-writing rule is applied, a search will be performed to find all occurances of whats at the tail, inside the box the arrow-head is inside of, in this case, two separate matches are found. 5.453 + 5.454 +In the into-box, at the center is an ellipsis. This is a primitive of POP. The start box, the two repeat boxes and the end box are all part of the ellipsis notation. Ellipsis is the equivalent of a while-loop. It repeats the repeat-box until the evaluation in the end-box is true. 5.455 + 5.456 +The arrows that go from the from-box to the into-box represent syntax that is copied. The arrow starting at the large empty box points to an identical large empty box, indicating that the syntax is taken from that position in the from-box and placed into the into-box. Figure 4 shows what the from-box looks like for the usage seen in Figure 3. Figure 5 shows the result of performing the re-write. It can be seen that what instantiated, from the use, into the big empty box has been copied directly into the final ellipsis. Only the color has changed. 5.457 + 5.458 +The blue in the from-into indicated that a repeat was done during copy for every match found. So the blue only had meaning inside the re-write operation. Once the copy of syntax from the from-box to the into-box completes, the blue color is out of scope. 5.459 + 5.460 +It can also be seen in Figure 5 that the 1 and the 5 have been copied down, according to the arrows between the from-box and the into-box. 5.461 + 5.462 +The dashed boxes are part of the ellipsis notation. One may use them to write a kind of shadow-code that calculates something for each position of the ellipsis. The dashing indicates that, semantically, all of the dashed-box operations are performed before any of the solid-box operations. In this example, all five repetitions will be generated before any actual calculation begins. In each repetition, the results of the dashed-box calculation will be substituted down into the solid boxes. 5.463 + 5.464 +However, these five repetitions will never actually be created anywhere. The translator simply knows that the semantics of ellipsis mean that they could be generated. An advantage of these semantics is that dependencies are explicitly stated. Also, only a single primitive is needed: FOR loops, DoAll loops, While loops, do-while loops, and so forth all can be defined as re-write rules that map onto ellipsis. 5.465 + 5.466 +3.3.2 Generated Re-Write Rule Type of Translatable Custom Notation 5.467 +Sometimes the notation includes complex rules for determining the action to take. For example, in Tensor notation, abstract indexes are used as a sort of semaphore. One places a sequence of characters after the TensRep name, each in either super-script position or sub-script position. The particular character used has no significance, only the position in the sequence and raised or lowered matters, and which other postions have the same character. 5.468 +The operation one performs on the TensRep changes depending on which positions match. The operation to perform determines the re-writing rule. To determine the re-write rule, one must first parse the index postions and match indexes of the same character. Then one can generate a rule based on where the matching indexes occur (and which index was raised and which lowered). 5.469 + 5.470 +For this kind of custom notation, processors must perform work during editing of the code. The environment has provided a generic facility for this. At the time that a srcHolder is added to a programSpace, part of the add-process is a conversation between the programSpace and the srcHolder. 5.471 + 5.472 +During this, the srcHolder can point the programSpace to a language-specific architecture description. The programSpace will generate inside itself whatever system the ADL (architecture description language) specifies. 5.473 + 5.474 +EQNLang uses this facility to instantiate a re-write-rule factory-factory. This factory-factory has two responsibilities: to create factories for specific custom notation, and to dispatch requests to the appropriate created factory. 5.475 + 5.476 +SrcHolders in which generated-rewrite-rule custom notation is entered collect the notations syntax sub-graph from the user, via the GUI. When the sub-graph is complete, the srcHolder sends the subgraph to the re-write-rule factory-factory, asking to receive back the name of the generated re-write rule. 5.477 + 5.478 +When the re-write-rule factory-factory receives a syntax sub-graph, it looks in the root node at the name of the custom-command. It then looks to see if it has created a factory for this kind of custom notation yet. If not, it searches for and finds the application code that implements a re-write rule factory for that kind of custom command. It uses the environments name-discovery service to find the srcHolder holding the re-write-rule factorys code, and uses the creator to create a processor from it. 5.479 + 5.480 +Next, the re-write-rule factory-factory sends the syntax sub-graph to the factory for that kind of notation. That factory processes the syntax sub-graph, producing the syntax for the re-write rule, and giving the rule a name. It hands the re-write rule to the programSpace, asking it to put the syntax into a new srcHolder. The factory also hands the rule-name to the factory-factory, which hands the name to the original requesting srcHolder. The editor in that srcHolder puts the name into its syntax-graph. 5.481 + 5.482 +Now, the syntax-graph the editor has looks exactly like the syntax-graph for custom notation with re-write rules entered by hand. The only difference is instead of the srcHolder holding the re-write rule being filled by hand by a programmer, the srcHolder was instead filled by a factory. 5.483 + 5.484 +When an application programmer writes a re-write-rule factory, they have the full EQNLang available. The factory is a processor, like any other. It simply takes syntax sub-graphs as input and produces syntax for re-write-rules as output. 5.485 + 5.486 +3.4 Source Manipulating Custom Notation 5.487 +POP facilitates math, such as the kind encountered in theoretical physics work. When writing a proof, for example, from one line to the next some transform has been applied. POP supports this kind of work by allowing a symbol to be placed on a (live) worksheet that takes the line above as input, applies the transform indicated by the symbol, and automatically produces the line below. The user may then place another symbol indicating another transform, and so on. If no symbol exists for the transform the user desires, they create a new symbol and define the transform that goes with it. 5.488 + 5.489 +Custom source-manipulating notation is used in three places: live worksheets, worksheet descriptions, and systems. 5.490 + 5.491 +3.4.1 Live worksheets 5.492 +On live worksheets, the programmer is interacting with a view of equations, and/or code. They enter equations, manipulate them, then perhaps run some numbers through the final equation to verify that it gives accurate predictions. 5.493 + 5.494 +In this process, the programmer might perform some GUI gesture to cut selected equations and replace them with a transformed version. This is referred to as an edit-time use of the transform. The other way a programmer might use a source-modifying transform is to place a symbol on the worksheet that represents the transform. A selection of equations on the worksheet is connected as input to the symbol, and the output appears below the symbol on the worksheet. Any time the input changes, the transform is re-run and produces new equations that appear on the worksheet. 5.495 + 5.496 +For example, one may wish to apply the Fourier transform symbolically. The input equation is substituted into the definition of the Fourier transform. This yields an equation as the result. To do this on a live worksheet, one selects the input equation, places the Fourier transform symbol, and the resulting equation pops out below it. 5.497 + 5.498 +One may now wish to use the resulting equation the same way one uses normal source. The only complication is how to handle connections. In the first version of EQNLang, this is done by using variable names. Variable names are treated as wires. Variables that appear on the worksheet earlier than an equation containing the same names, are treated as inputs to the equation. 5.499 + 5.500 +Thus, if the result of source manipulation contains variable names in input positions, and those same variable names appear earlier in the worksheet, then the earlier assignments act as inputs to the manipulation results. The variable names in input positions will receive whatever was the most recent assignment to that variable name. 5.501 + 5.502 +On a live worksheet, earlier and later are determined by scan-order. Starting in the upper left corner, a raster-scan is made that travels along a line from left to right, then goes to the left hand edge of the next line and repeats. Things that are encountered earlier in this scan are earlier in the worksheet. Those that happen later are later in the worksheet. 5.503 + 5.504 +So, variables that are assigned-to inside source-manipulation results cause the assigned value to be available to any uses that appear later in the worksheet. And vice versa. 5.505 + 5.506 +For example, one may place a data-stream-source symbol on the worksheet. It can then be assigned to a variable. If one defines input to a manipulation to have that variable, then the result of manipulation will also have the variable. The variables value will thus transmit from the data-stream-source into the manipulation result. Now, to see the numeric result, the manipulation result assigns to a variable. The same variable name is connected to a graph symbol. Data thus flows from the data-stream-source, into variable A, from A into the manipulated equation, which assigns to variable B. The numeric results flow through B into the graph and appear as a plot for the user to inspect. 5.507 + 5.508 +3.4.2 Worksheet Descriptions 5.509 +Worksheet descriptions are normally generated from live worksheets: one creates the live worksheet by hand then causes its description to be generated. The description can be used to recreate the live worksheet, later or in a different OSInstance. 5.510 + 5.511 +Whether generated or entered by hand, a worksheet description is a form of architecture description language for a worksheet plus the system behind the worksheet. The system behind the worksheet is specified with the normal ADL (architecture description language). The worksheet itself is simply another entry in the ADL to create the worksheet processor, plus an entry to cause a srcHolder holding the syntax-graph that was on the live worksheet to be sent to the newly created worksheet to repopulate it. 5.512 + 5.513 +3.4.3 Used in a system 5.514 +A srcManipulator can be placed within a system of processors in four ways: 5.515 + 5.516 +1. by directly creating and connecting it in a live system using the GUI 5.517 + 5.518 +2. by using the GUI to instantiate a creator then connect the programSpace holding the srcManipu- 5.519 +lator code to the creator and manually connect the input and output of the creator-generated src- 5.520 +Manipulator to other processors 5.521 + 5.522 +3. by using architecture description primitives to state the creation of a srcManipulator and the con- 5.523 +nections to the resulting processor 5.524 + 5.525 +4. by using architecture description primitives to state the placement of a creator, the placement of a programSpace holding the srcManipulator code, the connection of the programSpace to feed the creator, and the placement and connections of the creator-generated srcManipulator processor. 5.526 + 5.527 + 5.528 +In the first two cases, one is working on a live system by means of a GUI or other command interface. In the last two cases, one is working with an architecture description language that states how to build a live system. 5.529 + 5.530 +3.4.4 SrcManipulators in Live Systems 5.531 +Such a system lives inside a workSpace, which performs checks on processor interfaces against the attempted connections of those processors, as well as other system tasks. 5.532 + 5.533 +In case 1, one uses GUI gestures to create a srcManipulator. In this case, the programSpace holding the source code of the srcManipulator does not appear in the workSpace. It is only specified by GUI gestures during creation of the srcManipulator. The resulting srcManipulator appears in the workSpace as a processor-box. One uses further GUI gestures to connect that box to other processors in the system. 5.534 + 5.535 +The source code of the srcManipulator contains an interface that determines what connections are allowed. One may send one or more syntax-trees and/or commands and parameters to the srcManipulator, via connections made to it. 5.536 + 5.537 +In case 2, one first uses GUI gestures to instantiate a programSpace holding the code for a srcManipulator, then to instantiate a creator, and connect the two. When one placed the creator, a black-box popped up as its output. One then uses further GUI gestures to connect that black-box to other processors in the workSpace. One must instantiate (create) the programSpace and connect it to the creator before the workSpace allows making any connections to the black-box. This allows the interface specified in the code in the programSpace to be checked against the connections made to the black-box. Subsequent changes made to the interface in the source will be checked by the workSpace. 5.538 + 5.539 +3.4.5 SrcManipulators in Architecture Descriptions 5.540 +Architecture descriptions of systems are normally generated by tools: one builds the live system, then has the architecture description of it generated. With the resulting description, the live system can be re-created, at a later time or inside other OSInstances. 5.541 + 5.542 +Two approaches can be taken to generating systems from architecture descriptions: make ADL the language of the creator, or make ADL be commands to workSpaces. Each has its attractions. 5.543 + 5.544 +When going with making ADL the language of the creator, the creator processor implements the ADL interface the same way a Pentium implements the x86 ISA. To create a live system from an architecture description, one gives it to the creator. The creator builds the system by implementing the architecture description primitives. 5.545 + 5.546 +In this case, the only primitives needed in the ADL are for: 5.547 + finding the names of srcHolders 5.548 + causing creation of a processor from code inside a srcHolder, and placement into another processor 5.549 + creating connections among processors 5.550 + causing an existing processor to be placed, by tunneling into a processor 5.551 + causing the creator processor, along with its created processor, to be placed into a processor 5.552 + 5.553 +From these five, every possible system can be constructed. However, the OSInstance must already contain srcHolders holding the source to create standard types of processor such as workSpaces, programSpaces, srcWindows, new and empty srcHolders, and so on. In addition, if one wishes to create any application-defined processors, one must have the source code for those processors in some srcHolder in the OSInstance before giving the architecture description to the creator. 5.554 + 5.555 +If, on the otherhand, one goes with ADL as commands to a workSpace, one creates the top-level workSpace by hand, then gives that workSpace the ADL. The ADL will be heirarchically organized. The top level of the ADL will be commands that create and place processors into the top level workSpace. 5.556 + 5.557 +Some ADL commands will specify creating a new, embedded, workSpace and then handing a sub-tree of the ADL to the embedded workSpace. Thus, a system builds itself. 5.558 + 5.559 +The only primitives needed in addition to those for the creator-case are: 5.560 + 5.561 + a primitive that demarcates an ADL sub-tree (defines the sub-trees boundaries) 5.562 + 5.563 + a primitive that causes an ADL sub-tree to be handed to a processor 5.564 + 5.565 +This is probably the more flexible option, allowing customization of ADL by writing new kinds of Space processors to give the new custom commands to. However, it may have logistical implications for the proliferation of Space types and compatibilities. Both paths look interesting. 5.566 + 5.567 +Either way one goes, no special syntactic mechanism is needed for srcManipulators in architecture descriptions. In live worksheets, srcManipulators had to be treated specially because they implied modifications to the system backing the worksheet. But in ADL code, one is specifying the system directly, so a srcManipulator is just another processor. 5.568 + 5.569 +When considering custom notation in architecture descriptions, the situation is a bit simplified because architecture descriptions are, by their nature, never inter-mixed with live processors. So one can always use translatable custom notation in architecture descriptions, even when specifying the creation and inter-connection of srcManipulators. Custom ADL notation, even involving srcManipulators, can be specified to re-write itself into the above primitives (or primitives plus other custom ADL notation). 5.570 + 5.571 +Only one compilication exists, which is checking interfaces when creating connections between processors. The source code of the srcManipulator is not necessarily known at the time of the system creation. Nor is the syntax-graph that will flow into the srcManipulator necessarily known. Thus, no analysis can be done to discover the types of the ports on the processors created from the output of the srcManipulator. 5.572 + 5.573 +The creator must connect the creator-generated processors blindly. This means that run-time checks will have to be performed. These checks can be done on code when it is inside the creator, or the workSpace can perform checks on the ports of a creator-generated processor before disconnecting the old creator-generated processor and connecting up the new one. 5.574 + 5.575 +Who checks the interfaces of processors generated from srcManipulators is independent of ADL choice. After the system creation is complete, the code that leaves a srcManipulator is put through a creator. So it only matters that the resulting processors interface is checked every time the srcManipulator outputs new code. 5.576 + 5.577 +3.5 Implementing POPs proposed features 5.578 +We desire application-code extensions to the syntax of POP, without modifying the Translator (compiler). In general, this is possible in (at least) two ways: by re-writing the extended syntax into language primitives just before compiling; and by doing live modification of source, while the program is running, then compiling and linking it in to the running program. POP uses both methods. 5.579 + 5.580 +Because of the nature of the OS, compiling a POP program is quite different than with other languages. Traditional compiling includes lexical analysis to turn character sequences into a syntax structure, plus grammatic analysis to determine the kind of syntactic element each token represents, plus optimization transforms, followed by translation to a different language (such as assembly). 5.581 + 5.582 +In POP, these functions are separated out and performed in many different processors. As a result, only translation is performed in a POP compiler. To avoid confusion, in the OS, what would otherwise be called the compiler is called the Translator. The re-writing step, in POP, is implemented with standard re-write techniques. 5.583 + 5.584 +Meanwhile, new syntax that semantically means that source code will be modified during a run and turned into a live processor that is linked in during that same run is implemented using features of the OS. The OS includes a command to translate code, one to create a new processor from translated code, and one to link the newly created processor into a pre-existing system of processors. 5.585 + 5.586 +
6.1 Binary file 0__Papers/VMS/Split-core_msg_passing_based/figures/control_flow.pdf has changed
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 7.2 +++ b/0__Papers/VMS/Split-core_msg_passing_based/figures/control_flow.svg Mon Oct 08 23:03:26 2012 -0700 7.3 @@ -0,0 +1,3090 @@ 7.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 7.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 7.6 + 7.7 +<svg 7.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 7.9 + xmlns:cc="http://creativecommons.org/ns#" 7.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 7.11 + xmlns:svg="http://www.w3.org/2000/svg" 7.12 + xmlns="http://www.w3.org/2000/svg" 7.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 7.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 7.15 + width="1488.189" 7.16 + height="1052.3622" 7.17 + id="svg2" 7.18 + sodipodi:version="0.32" 7.19 + inkscape:version="0.48.1 " 7.20 + sodipodi:docname="control_flow.svg" 7.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 7.22 + version="1.1"> 7.23 + <defs 7.24 + id="defs4"> 7.25 + <marker 7.26 + inkscape:stockid="StopL" 7.27 + orient="auto" 7.28 + refY="0" 7.29 + refX="0" 7.30 + id="StopL" 7.31 + style="overflow:visible"> 7.32 + <path 7.33 + id="path10015" 7.34 + d="M 0,5.65 0,-5.65" 7.35 + style="fill:none;stroke:#000000;stroke-width:1pt" 7.36 + transform="scale(0.8,0.8)" 7.37 + inkscape:connector-curvature="0" /> 7.38 + </marker> 7.39 + <marker 7.40 + inkscape:stockid="TriangleOutL" 7.41 + orient="auto" 7.42 + refY="0" 7.43 + refX="0" 7.44 + id="TriangleOutL" 7.45 + style="overflow:visible"> 7.46 + <path 7.47 + id="path9988" 7.48 + d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" 7.49 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 7.50 + transform="scale(0.8,0.8)" 7.51 + inkscape:connector-curvature="0" /> 7.52 + </marker> 7.53 + <marker 7.54 + inkscape:stockid="Arrow2Mstart" 7.55 + orient="auto" 7.56 + refY="0" 7.57 + refX="0" 7.58 + id="Arrow2Mstart" 7.59 + style="overflow:visible"> 7.60 + <path 7.61 + id="path5492" 7.62 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.63 + 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" 7.64 + transform="scale(0.6,0.6)" 7.65 + inkscape:connector-curvature="0" /> 7.66 + </marker> 7.67 + <marker 7.68 + inkscape:stockid="Arrow2Mend" 7.69 + orient="auto" 7.70 + refY="0" 7.71 + refX="0" 7.72 + id="Arrow2Mend" 7.73 + style="overflow:visible"> 7.74 + <path 7.75 + id="path3563" 7.76 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.77 + 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" 7.78 + transform="scale(-0.6,-0.6)" 7.79 + inkscape:connector-curvature="0" /> 7.80 + </marker> 7.81 + <marker 7.82 + inkscape:stockid="TriangleOutM" 7.83 + orient="auto" 7.84 + refY="0" 7.85 + refX="0" 7.86 + id="TriangleOutM" 7.87 + style="overflow:visible"> 7.88 + <path 7.89 + id="path3682" 7.90 + d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" 7.91 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 7.92 + transform="scale(0.4,0.4)" 7.93 + inkscape:connector-curvature="0" /> 7.94 + </marker> 7.95 + <marker 7.96 + inkscape:stockid="Arrow2Lend" 7.97 + orient="auto" 7.98 + refY="0" 7.99 + refX="0" 7.100 + id="Arrow2Lend" 7.101 + style="overflow:visible"> 7.102 + <path 7.103 + id="path3557" 7.104 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.105 + 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" 7.106 + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" 7.107 + inkscape:connector-curvature="0" /> 7.108 + </marker> 7.109 + <marker 7.110 + inkscape:stockid="Arrow1Mstart" 7.111 + orient="auto" 7.112 + refY="0" 7.113 + refX="0" 7.114 + id="Arrow1Mstart" 7.115 + style="overflow:visible"> 7.116 + <path 7.117 + id="path3542" 7.118 + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" 7.119 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 7.120 + transform="matrix(0.4,0,0,0.4,4,0)" 7.121 + inkscape:connector-curvature="0" /> 7.122 + </marker> 7.123 + <marker 7.124 + inkscape:stockid="Arrow1Lend" 7.125 + orient="auto" 7.126 + refY="0" 7.127 + refX="0" 7.128 + id="Arrow1Lend" 7.129 + style="overflow:visible"> 7.130 + <path 7.131 + id="path3539" 7.132 + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" 7.133 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 7.134 + transform="matrix(-0.8,0,0,-0.8,-10,0)" 7.135 + inkscape:connector-curvature="0" /> 7.136 + </marker> 7.137 + <marker 7.138 + inkscape:stockid="Arrow1Lstart" 7.139 + orient="auto" 7.140 + refY="0" 7.141 + refX="0" 7.142 + id="Arrow1Lstart" 7.143 + style="overflow:visible"> 7.144 + <path 7.145 + id="path3536" 7.146 + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" 7.147 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 7.148 + transform="matrix(0.8,0,0,0.8,10,0)" 7.149 + inkscape:connector-curvature="0" /> 7.150 + </marker> 7.151 + <inkscape:perspective 7.152 + sodipodi:type="inkscape:persp3d" 7.153 + inkscape:vp_x="0 : 526.18109 : 1" 7.154 + inkscape:vp_y="0 : 1000 : 0" 7.155 + inkscape:vp_z="744.09448 : 526.18109 : 1" 7.156 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 7.157 + id="perspective10" /> 7.158 + <inkscape:perspective 7.159 + id="perspective4311" 7.160 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.161 + inkscape:vp_z="1 : 0.5 : 1" 7.162 + inkscape:vp_y="0 : 1000 : 0" 7.163 + inkscape:vp_x="0 : 0.5 : 1" 7.164 + sodipodi:type="inkscape:persp3d" /> 7.165 + <inkscape:perspective 7.166 + id="perspective4336" 7.167 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.168 + inkscape:vp_z="1 : 0.5 : 1" 7.169 + inkscape:vp_y="0 : 1000 : 0" 7.170 + inkscape:vp_x="0 : 0.5 : 1" 7.171 + sodipodi:type="inkscape:persp3d" /> 7.172 + <inkscape:perspective 7.173 + id="perspective4365" 7.174 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.175 + inkscape:vp_z="1 : 0.5 : 1" 7.176 + inkscape:vp_y="0 : 1000 : 0" 7.177 + inkscape:vp_x="0 : 0.5 : 1" 7.178 + sodipodi:type="inkscape:persp3d" /> 7.179 + <marker 7.180 + inkscape:stockid="Arrow2Mend" 7.181 + orient="auto" 7.182 + refY="0" 7.183 + refX="0" 7.184 + id="Arrow2Mend-9" 7.185 + style="overflow:visible"> 7.186 + <path 7.187 + id="path3563-4" 7.188 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.189 + 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" 7.190 + transform="scale(-0.6,-0.6)" 7.191 + inkscape:connector-curvature="0" /> 7.192 + </marker> 7.193 + <inkscape:perspective 7.194 + id="perspective4423" 7.195 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.196 + inkscape:vp_z="1 : 0.5 : 1" 7.197 + inkscape:vp_y="0 : 1000 : 0" 7.198 + inkscape:vp_x="0 : 0.5 : 1" 7.199 + sodipodi:type="inkscape:persp3d" /> 7.200 + <marker 7.201 + inkscape:stockid="Arrow2Mend" 7.202 + orient="auto" 7.203 + refY="0" 7.204 + refX="0" 7.205 + id="Arrow2Mend-8" 7.206 + style="overflow:visible"> 7.207 + <path 7.208 + id="path3563-2" 7.209 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.210 + 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" 7.211 + transform="scale(-0.6,-0.6)" 7.212 + inkscape:connector-curvature="0" /> 7.213 + </marker> 7.214 + <inkscape:perspective 7.215 + id="perspective4461" 7.216 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.217 + inkscape:vp_z="1 : 0.5 : 1" 7.218 + inkscape:vp_y="0 : 1000 : 0" 7.219 + inkscape:vp_x="0 : 0.5 : 1" 7.220 + sodipodi:type="inkscape:persp3d" /> 7.221 + <inkscape:perspective 7.222 + id="perspective14081" 7.223 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.224 + inkscape:vp_z="1 : 0.5 : 1" 7.225 + inkscape:vp_y="0 : 1000 : 0" 7.226 + inkscape:vp_x="0 : 0.5 : 1" 7.227 + sodipodi:type="inkscape:persp3d" /> 7.228 + <inkscape:perspective 7.229 + id="perspective14206" 7.230 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.231 + inkscape:vp_z="1 : 0.5 : 1" 7.232 + inkscape:vp_y="0 : 1000 : 0" 7.233 + inkscape:vp_x="0 : 0.5 : 1" 7.234 + sodipodi:type="inkscape:persp3d" /> 7.235 + <inkscape:perspective 7.236 + id="perspective14299" 7.237 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.238 + inkscape:vp_z="1 : 0.5 : 1" 7.239 + inkscape:vp_y="0 : 1000 : 0" 7.240 + inkscape:vp_x="0 : 0.5 : 1" 7.241 + sodipodi:type="inkscape:persp3d" /> 7.242 + <inkscape:perspective 7.243 + id="perspective16915" 7.244 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.245 + inkscape:vp_z="1 : 0.5 : 1" 7.246 + inkscape:vp_y="0 : 1000 : 0" 7.247 + inkscape:vp_x="0 : 0.5 : 1" 7.248 + sodipodi:type="inkscape:persp3d" /> 7.249 + <inkscape:perspective 7.250 + id="perspective16946" 7.251 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.252 + inkscape:vp_z="1 : 0.5 : 1" 7.253 + inkscape:vp_y="0 : 1000 : 0" 7.254 + inkscape:vp_x="0 : 0.5 : 1" 7.255 + sodipodi:type="inkscape:persp3d" /> 7.256 + <inkscape:perspective 7.257 + id="perspective17789" 7.258 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.259 + inkscape:vp_z="1 : 0.5 : 1" 7.260 + inkscape:vp_y="0 : 1000 : 0" 7.261 + inkscape:vp_x="0 : 0.5 : 1" 7.262 + sodipodi:type="inkscape:persp3d" /> 7.263 + <inkscape:perspective 7.264 + id="perspective17820" 7.265 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.266 + inkscape:vp_z="1 : 0.5 : 1" 7.267 + inkscape:vp_y="0 : 1000 : 0" 7.268 + inkscape:vp_x="0 : 0.5 : 1" 7.269 + sodipodi:type="inkscape:persp3d" /> 7.270 + <marker 7.271 + inkscape:stockid="Arrow2Mend" 7.272 + orient="auto" 7.273 + refY="0" 7.274 + refX="0" 7.275 + id="Arrow2Mend-8-2" 7.276 + style="overflow:visible"> 7.277 + <path 7.278 + id="path3563-2-3" 7.279 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.280 + 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" 7.281 + transform="scale(-0.6,-0.6)" 7.282 + inkscape:connector-curvature="0" /> 7.283 + </marker> 7.284 + <inkscape:perspective 7.285 + id="perspective17848" 7.286 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.287 + inkscape:vp_z="1 : 0.5 : 1" 7.288 + inkscape:vp_y="0 : 1000 : 0" 7.289 + inkscape:vp_x="0 : 0.5 : 1" 7.290 + sodipodi:type="inkscape:persp3d" /> 7.291 + <inkscape:perspective 7.292 + id="perspective17891" 7.293 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.294 + inkscape:vp_z="1 : 0.5 : 1" 7.295 + inkscape:vp_y="0 : 1000 : 0" 7.296 + inkscape:vp_x="0 : 0.5 : 1" 7.297 + sodipodi:type="inkscape:persp3d" /> 7.298 + <marker 7.299 + inkscape:stockid="Arrow2Mend" 7.300 + orient="auto" 7.301 + refY="0" 7.302 + refX="0" 7.303 + id="Arrow2Mend-8-7" 7.304 + style="overflow:visible"> 7.305 + <path 7.306 + id="path3563-2-8" 7.307 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.308 + 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" 7.309 + transform="scale(-0.6,-0.6)" 7.310 + inkscape:connector-curvature="0" /> 7.311 + </marker> 7.312 + <inkscape:perspective 7.313 + id="perspective17925" 7.314 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.315 + inkscape:vp_z="1 : 0.5 : 1" 7.316 + inkscape:vp_y="0 : 1000 : 0" 7.317 + inkscape:vp_x="0 : 0.5 : 1" 7.318 + sodipodi:type="inkscape:persp3d" /> 7.319 + <inkscape:perspective 7.320 + id="perspective17996" 7.321 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.322 + inkscape:vp_z="1 : 0.5 : 1" 7.323 + inkscape:vp_y="0 : 1000 : 0" 7.324 + inkscape:vp_x="0 : 0.5 : 1" 7.325 + sodipodi:type="inkscape:persp3d" /> 7.326 + <inkscape:perspective 7.327 + id="perspective18039" 7.328 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.329 + inkscape:vp_z="1 : 0.5 : 1" 7.330 + inkscape:vp_y="0 : 1000 : 0" 7.331 + inkscape:vp_x="0 : 0.5 : 1" 7.332 + sodipodi:type="inkscape:persp3d" /> 7.333 + <inkscape:perspective 7.334 + id="perspective18073" 7.335 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.336 + inkscape:vp_z="1 : 0.5 : 1" 7.337 + inkscape:vp_y="0 : 1000 : 0" 7.338 + inkscape:vp_x="0 : 0.5 : 1" 7.339 + sodipodi:type="inkscape:persp3d" /> 7.340 + <inkscape:perspective 7.341 + id="perspective4016" 7.342 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.343 + inkscape:vp_z="1 : 0.5 : 1" 7.344 + inkscape:vp_y="0 : 1000 : 0" 7.345 + inkscape:vp_x="0 : 0.5 : 1" 7.346 + sodipodi:type="inkscape:persp3d" /> 7.347 + <inkscape:perspective 7.348 + id="perspective4046" 7.349 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.350 + inkscape:vp_z="1 : 0.5 : 1" 7.351 + inkscape:vp_y="0 : 1000 : 0" 7.352 + inkscape:vp_x="0 : 0.5 : 1" 7.353 + sodipodi:type="inkscape:persp3d" /> 7.354 + <inkscape:perspective 7.355 + id="perspective4071" 7.356 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.357 + inkscape:vp_z="1 : 0.5 : 1" 7.358 + inkscape:vp_y="0 : 1000 : 0" 7.359 + inkscape:vp_x="0 : 0.5 : 1" 7.360 + sodipodi:type="inkscape:persp3d" /> 7.361 + <inkscape:perspective 7.362 + id="perspective4101" 7.363 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.364 + inkscape:vp_z="1 : 0.5 : 1" 7.365 + inkscape:vp_y="0 : 1000 : 0" 7.366 + inkscape:vp_x="0 : 0.5 : 1" 7.367 + sodipodi:type="inkscape:persp3d" /> 7.368 + <inkscape:perspective 7.369 + id="perspective5945" 7.370 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.371 + inkscape:vp_z="1 : 0.5 : 1" 7.372 + inkscape:vp_y="0 : 1000 : 0" 7.373 + inkscape:vp_x="0 : 0.5 : 1" 7.374 + sodipodi:type="inkscape:persp3d" /> 7.375 + <inkscape:perspective 7.376 + id="perspective4144" 7.377 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.378 + inkscape:vp_z="1 : 0.5 : 1" 7.379 + inkscape:vp_y="0 : 1000 : 0" 7.380 + inkscape:vp_x="0 : 0.5 : 1" 7.381 + sodipodi:type="inkscape:persp3d" /> 7.382 + <marker 7.383 + inkscape:stockid="Arrow2Mend" 7.384 + orient="auto" 7.385 + refY="0" 7.386 + refX="0" 7.387 + id="Arrow2Mend-8-7-1" 7.388 + style="overflow:visible"> 7.389 + <path 7.390 + id="path3563-2-8-7" 7.391 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.392 + 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" 7.393 + transform="scale(-0.6,-0.6)" 7.394 + inkscape:connector-curvature="0" /> 7.395 + </marker> 7.396 + <inkscape:perspective 7.397 + id="perspective4733" 7.398 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 7.399 + inkscape:vp_z="1 : 0.5 : 1" 7.400 + inkscape:vp_y="0 : 1000 : 0" 7.401 + inkscape:vp_x="0 : 0.5 : 1" 7.402 + sodipodi:type="inkscape:persp3d" /> 7.403 + <marker 7.404 + inkscape:stockid="Arrow2Mend" 7.405 + orient="auto" 7.406 + refY="0" 7.407 + refX="0" 7.408 + id="Arrow2Mend-8-7-12" 7.409 + style="overflow:visible"> 7.410 + <path 7.411 + inkscape:connector-curvature="0" 7.412 + id="path3563-2-8-2" 7.413 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.414 + 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" 7.415 + transform="scale(-0.6,-0.6)" /> 7.416 + </marker> 7.417 + <marker 7.418 + inkscape:stockid="Arrow2Mend" 7.419 + orient="auto" 7.420 + refY="0" 7.421 + refX="0" 7.422 + id="marker8401" 7.423 + style="overflow:visible"> 7.424 + <path 7.425 + inkscape:connector-curvature="0" 7.426 + id="path8403" 7.427 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.428 + 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" 7.429 + transform="scale(-0.6,-0.6)" /> 7.430 + </marker> 7.431 + <marker 7.432 + inkscape:stockid="Arrow2Mend" 7.433 + orient="auto" 7.434 + refY="0" 7.435 + refX="0" 7.436 + id="marker8405" 7.437 + style="overflow:visible"> 7.438 + <path 7.439 + inkscape:connector-curvature="0" 7.440 + id="path8407" 7.441 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.442 + 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" 7.443 + transform="scale(-0.6,-0.6)" /> 7.444 + </marker> 7.445 + <marker 7.446 + inkscape:stockid="Arrow2Mend" 7.447 + orient="auto" 7.448 + refY="0" 7.449 + refX="0" 7.450 + id="marker8409" 7.451 + style="overflow:visible"> 7.452 + <path 7.453 + inkscape:connector-curvature="0" 7.454 + id="path8411" 7.455 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.456 + 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" 7.457 + transform="scale(-0.6,-0.6)" /> 7.458 + </marker> 7.459 + <marker 7.460 + inkscape:stockid="Arrow2Mend" 7.461 + orient="auto" 7.462 + refY="0" 7.463 + refX="0" 7.464 + id="marker8413" 7.465 + style="overflow:visible"> 7.466 + <path 7.467 + inkscape:connector-curvature="0" 7.468 + id="path8415" 7.469 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.470 + 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" 7.471 + transform="scale(-0.6,-0.6)" /> 7.472 + </marker> 7.473 + <marker 7.474 + inkscape:stockid="Arrow2Mend" 7.475 + orient="auto" 7.476 + refY="0" 7.477 + refX="0" 7.478 + id="marker8417" 7.479 + style="overflow:visible"> 7.480 + <path 7.481 + inkscape:connector-curvature="0" 7.482 + id="path8419" 7.483 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.484 + 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" 7.485 + transform="scale(-0.6,-0.6)" /> 7.486 + </marker> 7.487 + <marker 7.488 + inkscape:stockid="Arrow2Mend" 7.489 + orient="auto" 7.490 + refY="0" 7.491 + refX="0" 7.492 + id="Arrow2Mend-8-7-17" 7.493 + style="overflow:visible"> 7.494 + <path 7.495 + inkscape:connector-curvature="0" 7.496 + id="path3563-2-8-5" 7.497 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.498 + 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" 7.499 + transform="scale(-0.6,-0.6)" /> 7.500 + </marker> 7.501 + <marker 7.502 + inkscape:stockid="Arrow2Mend" 7.503 + orient="auto" 7.504 + refY="0" 7.505 + refX="0" 7.506 + id="Arrow2Mend-8-7-0" 7.507 + style="overflow:visible"> 7.508 + <path 7.509 + inkscape:connector-curvature="0" 7.510 + id="path3563-2-8-3" 7.511 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 7.512 + 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" 7.513 + transform="scale(-0.6,-0.6)" /> 7.514 + </marker> 7.515 + </defs> 7.516 + <sodipodi:namedview 7.517 + id="base" 7.518 + pagecolor="#ffffff" 7.519 + bordercolor="#666666" 7.520 + borderopacity="1.0" 7.521 + gridtolerance="10000" 7.522 + guidetolerance="10" 7.523 + objecttolerance="10" 7.524 + inkscape:pageopacity="0.0" 7.525 + inkscape:pageshadow="2" 7.526 + inkscape:zoom="0.97968464" 7.527 + inkscape:cx="457.74508" 7.528 + inkscape:cy="264.16662" 7.529 + inkscape:document-units="px" 7.530 + inkscape:current-layer="layer1" 7.531 + showgrid="false" 7.532 + inkscape:window-width="1600" 7.533 + inkscape:window-height="848" 7.534 + inkscape:window-x="-8" 7.535 + inkscape:window-y="-8" 7.536 + inkscape:window-maximized="1" /> 7.537 + <metadata 7.538 + id="metadata7"> 7.539 + <rdf:RDF> 7.540 + <cc:Work 7.541 + rdf:about=""> 7.542 + <dc:format>image/svg+xml</dc:format> 7.543 + <dc:type 7.544 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 7.545 + <dc:title></dc:title> 7.546 + </cc:Work> 7.547 + </rdf:RDF> 7.548 + </metadata> 7.549 + <g 7.550 + inkscape:label="Layer 1" 7.551 + inkscape:groupmode="layer" 7.552 + id="layer1" 7.553 + transform="translate(-3.5307846,729.06884)"> 7.554 + <text 7.555 + xml:space="preserve" 7.556 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.557 + x="441.66748" 7.558 + y="344.66492" 7.559 + id="text8002" 7.560 + sodipodi:linespacing="100%"><tspan 7.561 + sodipodi:role="line" 7.562 + x="441.66748" 7.563 + y="344.66492" 7.564 + style="font-size:8px" 7.565 + id="tspan12172" /></text> 7.566 + <text 7.567 + xml:space="preserve" 7.568 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.569 + x="368.25397" 7.570 + y="345.27225" 7.571 + id="text5849"><tspan 7.572 + sodipodi:role="line" 7.573 + id="tspan5851" 7.574 + x="368.25397" 7.575 + y="345.27225" /></text> 7.576 + <g 7.577 + transform="translate(-22.94669,-784)" 7.578 + id="g8065"> 7.579 + <text 7.580 + xml:space="preserve" 7.581 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.582 + x="222.37003" 7.583 + y="285.39841" 7.584 + id="text8067" 7.585 + sodipodi:linespacing="100%"><tspan 7.586 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.587 + sodipodi:role="line" 7.588 + x="222.37003" 7.589 + y="285.39841" 7.590 + id="tspan11696">save VP</tspan><tspan 7.591 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.592 + sodipodi:role="line" 7.593 + x="222.37003" 7.594 + y="294.39841" 7.595 + id="tspan12201">context</tspan></text> 7.596 + <rect 7.597 + y="274.77512" 7.598 + x="193.78287" 7.599 + height="25.544432" 7.600 + width="57.486332" 7.601 + id="rect8073" 7.602 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.603 + </g> 7.604 + <g 7.605 + id="g11700" 7.606 + transform="translate(160,-40)"> 7.607 + <text 7.608 + xml:space="preserve" 7.609 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.610 + x="579.39252" 7.611 + y="-343.22998" 7.612 + id="text11476" 7.613 + sodipodi:linespacing="100%"><tspan 7.614 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.615 + sodipodi:role="line" 7.616 + x="579.39252" 7.617 + y="-343.22998" 7.618 + id="tspan11478">which</tspan><tspan 7.619 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.620 + sodipodi:role="line" 7.621 + x="579.39252" 7.622 + y="-334.22998" 7.623 + id="tspan12299">context</tspan><tspan 7.624 + id="tspan11480" 7.625 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.626 + sodipodi:role="line" 7.627 + x="579.39252" 7.628 + y="-325.22998">switch</tspan></text> 7.629 + <rect 7.630 + ry="0" 7.631 + transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 7.632 + y="93.582199" 7.633 + x="624.01776" 7.634 + height="36.457531" 7.635 + width="36.810017" 7.636 + id="rect11482" 7.637 + style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.638 + </g> 7.639 + <g 7.640 + transform="translate(177.05331,-664)" 7.641 + id="g8103"> 7.642 + <text 7.643 + xml:space="preserve" 7.644 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.645 + x="222.25137" 7.646 + y="285.36765" 7.647 + id="text8105" 7.648 + sodipodi:linespacing="100%"><tspan 7.649 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.650 + sodipodi:role="line" 7.651 + x="222.25137" 7.652 + y="285.36765" 7.653 + id="tspan8111">constraint</tspan><tspan 7.654 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.655 + sodipodi:role="line" 7.656 + x="222.25137" 7.657 + y="294.36765" 7.658 + id="tspan8115">update hdlr</tspan></text> 7.659 + <rect 7.660 + y="274.77512" 7.661 + x="193.78287" 7.662 + height="25.544432" 7.663 + width="57.486332" 7.664 + id="rect8109" 7.665 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.666 + </g> 7.667 + <g 7.668 + id="g8165" 7.669 + transform="translate(177.05331,-604)"> 7.670 + <text 7.671 + sodipodi:linespacing="100%" 7.672 + id="text8167" 7.673 + y="285.39841" 7.674 + x="222.37003" 7.675 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.676 + xml:space="preserve"><tspan 7.677 + id="tspan8169" 7.678 + y="285.39841" 7.679 + x="222.37003" 7.680 + sodipodi:role="line" 7.681 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Push work</tspan><tspan 7.682 + y="294.39841" 7.683 + x="222.37003" 7.684 + sodipodi:role="line" 7.685 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.686 + id="tspan11020">onto Q</tspan></text> 7.687 + <rect 7.688 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.689 + id="rect8171" 7.690 + width="57.486332" 7.691 + height="25.544432" 7.692 + x="193.78287" 7.693 + y="274.77512" /> 7.694 + </g> 7.695 + <g 7.696 + transform="translate(437.05331,-664)" 7.697 + id="g8173"> 7.698 + <text 7.699 + xml:space="preserve" 7.700 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.701 + x="222.37003" 7.702 + y="285.69943" 7.703 + id="text8175" 7.704 + sodipodi:linespacing="100%"><tspan 7.705 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.706 + sodipodi:role="line" 7.707 + x="222.37003" 7.708 + y="285.69943" 7.709 + id="tspan11014">Take work-</tspan><tspan 7.710 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.711 + sodipodi:role="line" 7.712 + x="222.37003" 7.713 + y="294.69943" 7.714 + id="tspan11018">unit from Q</tspan></text> 7.715 + <rect 7.716 + y="274.77512" 7.717 + x="193.78287" 7.718 + height="25.544432" 7.719 + width="57.486332" 7.720 + id="rect8179" 7.721 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.722 + </g> 7.723 + <path 7.724 + sodipodi:nodetypes="cc" 7.725 + inkscape:connector-curvature="0" 7.726 + id="path8510" 7.727 + d="m 30.09217,-376.20795 134.75175,0" 7.728 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" /> 7.729 + <text 7.730 + xml:space="preserve" 7.731 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.732 + x="95.276283" 7.733 + y="-377.95343" 7.734 + id="text8067-3" 7.735 + sodipodi:linespacing="100%"><tspan 7.736 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.737 + sodipodi:role="line" 7.738 + x="95.276283" 7.739 + y="-377.95343" 7.740 + id="tspan8071-6">Non-suspend end of work-unit</tspan></text> 7.741 + <path 7.742 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" 7.743 + d="m 30.09217,-496.20795 134.75175,0" 7.744 + id="path11002" 7.745 + inkscape:connector-curvature="0" 7.746 + sodipodi:nodetypes="cc" /> 7.747 + <text 7.748 + sodipodi:linespacing="100%" 7.749 + id="text11004" 7.750 + y="-497.95343" 7.751 + x="95.430077" 7.752 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.753 + xml:space="preserve"><tspan 7.754 + id="tspan11006" 7.755 + y="-497.95343" 7.756 + x="95.430077" 7.757 + sodipodi:role="line" 7.758 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Suspend at end of work-unit</tspan></text> 7.759 + <path 7.760 + sodipodi:nodetypes="cc" 7.761 + inkscape:connector-curvature="0" 7.762 + id="path11472" 7.763 + d="m 399.56974,-364.00562 0,34.68367" 7.764 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.765 + <path 7.766 + sodipodi:nodetypes="cc" 7.767 + inkscape:connector-curvature="0" 7.768 + id="path11484" 7.769 + d="m 688.09217,-376.20795 22.13646,0" 7.770 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.771 + <path 7.772 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 7.773 + d="m 768.09217,-376.20795 41.4633,0" 7.774 + id="path11518" 7.775 + inkscape:connector-curvature="0" 7.776 + sodipodi:nodetypes="cc" /> 7.777 + <text 7.778 + sodipodi:linespacing="100%" 7.779 + id="text11578" 7.780 + y="-387.95343" 7.781 + x="295.27628" 7.782 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.783 + xml:space="preserve"><tspan 7.784 + id="tspan11580" 7.785 + y="-387.95343" 7.786 + x="295.27628" 7.787 + sodipodi:role="line" 7.788 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" /></text> 7.789 + <text 7.790 + xml:space="preserve" 7.791 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.792 + x="729.43005" 7.793 + y="-341.95343" 7.794 + id="text11616" 7.795 + sodipodi:linespacing="100%"><tspan 7.796 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.797 + sodipodi:role="line" 7.798 + x="730.78357" 7.799 + y="-341.95343" 7.800 + id="tspan11618"> new </tspan><tspan 7.801 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.802 + sodipodi:role="line" 7.803 + x="729.43005" 7.804 + y="-332.95343" 7.805 + id="tspan12175"> work-unit</tspan><tspan 7.806 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.807 + sodipodi:role="line" 7.808 + x="729.43005" 7.809 + y="-323.95343" 7.810 + id="tspan11620"> is attached to</tspan><tspan 7.811 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.812 + sodipodi:role="line" 7.813 + x="729.43005" 7.814 + y="-314.95343" 7.815 + id="tspan11622"> a VP's context</tspan></text> 7.816 + <text 7.817 + sodipodi:linespacing="100%" 7.818 + id="text11624" 7.819 + y="-405.95343" 7.820 + x="787.43005" 7.821 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.822 + xml:space="preserve"><tspan 7.823 + id="tspan11626" 7.824 + y="-405.95343" 7.825 + x="787.43005" 7.826 + sodipodi:role="line" 7.827 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">new work-</tspan><tspan 7.828 + id="tspan11630" 7.829 + y="-396.95343" 7.830 + x="787.43005" 7.831 + sodipodi:role="line" 7.832 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">unit has</tspan><tspan 7.833 + y="-387.95343" 7.834 + x="787.43005" 7.835 + sodipodi:role="line" 7.836 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.837 + id="tspan12161">own local</tspan><tspan 7.838 + y="-378.95343" 7.839 + x="787.43005" 7.840 + sodipodi:role="line" 7.841 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.842 + id="tspan11634">context</tspan></text> 7.843 + <g 7.844 + transform="translate(617.05331,-683.31973)" 7.845 + id="g11656"> 7.846 + <text 7.847 + xml:space="preserve" 7.848 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.849 + x="222.37003" 7.850 + y="285.39841" 7.851 + id="text11658" 7.852 + sodipodi:linespacing="100%"><tspan 7.853 + id="tspan11668" 7.854 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.855 + sodipodi:role="line" 7.856 + x="222.37003" 7.857 + y="285.39841">load curr VP</tspan><tspan 7.858 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.859 + sodipodi:role="line" 7.860 + x="222.37003" 7.861 + y="294.39841" 7.862 + id="tspan11686">with context</tspan><tspan 7.863 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.864 + sodipodi:role="line" 7.865 + x="222.37003" 7.866 + y="303.39841" 7.867 + id="tspan11688">from new</tspan><tspan 7.868 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.869 + sodipodi:role="line" 7.870 + x="222.37003" 7.871 + y="312.39841" 7.872 + id="tspan11690">work-unit</tspan></text> 7.873 + <rect 7.874 + y="274.77512" 7.875 + x="193.78287" 7.876 + height="63.639675" 7.877 + width="57.486332" 7.878 + id="rect11670" 7.879 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.880 + </g> 7.881 + <text 7.882 + sodipodi:linespacing="100%" 7.883 + id="text11718" 7.884 + y="-367.95343" 7.885 + x="95.276283" 7.886 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.887 + xml:space="preserve"><tspan 7.888 + id="tspan11720" 7.889 + y="-367.95343" 7.890 + x="95.276283" 7.891 + sodipodi:role="line" 7.892 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">which has attached context</tspan></text> 7.893 + <path 7.894 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" 7.895 + d="m 30.09217,-296.20795 134.75175,0" 7.896 + id="path11742" 7.897 + inkscape:connector-curvature="0" 7.898 + sodipodi:nodetypes="cc" /> 7.899 + <text 7.900 + sodipodi:linespacing="100%" 7.901 + id="text11744" 7.902 + y="-297.95343" 7.903 + x="95.276283" 7.904 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.905 + xml:space="preserve"><tspan 7.906 + id="tspan11746" 7.907 + y="-297.95343" 7.908 + x="95.276283" 7.909 + sodipodi:role="line" 7.910 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Non-suspend end of work-unit</tspan></text> 7.911 + <text 7.912 + xml:space="preserve" 7.913 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.914 + x="95.276283" 7.915 + y="-287.95343" 7.916 + id="text11750" 7.917 + sodipodi:linespacing="100%"><tspan 7.918 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.919 + sodipodi:role="line" 7.920 + x="95.276283" 7.921 + y="-287.95343" 7.922 + id="tspan11752">purely local (no ctxt attached)</tspan></text> 7.923 + <g 7.924 + id="g11754" 7.925 + transform="translate(-22.94669,-664)"> 7.926 + <text 7.927 + sodipodi:linespacing="100%" 7.928 + id="text11756" 7.929 + y="285.39841" 7.930 + x="222.37003" 7.931 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.932 + xml:space="preserve"><tspan 7.933 + id="tspan11758" 7.934 + y="285.39841" 7.935 + x="222.37003" 7.936 + sodipodi:role="line" 7.937 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">save stack</tspan><tspan 7.938 + id="tspan11760" 7.939 + y="294.39841" 7.940 + x="222.37003" 7.941 + sodipodi:role="line" 7.942 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">& frame ptrs</tspan></text> 7.943 + <rect 7.944 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.945 + id="rect11762" 7.946 + width="57.486332" 7.947 + height="25.544432" 7.948 + x="193.78287" 7.949 + y="274.77512" /> 7.950 + </g> 7.951 + <text 7.952 + xml:space="preserve" 7.953 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.954 + x="29.276283" 7.955 + y="-349.95343" 7.956 + id="text11764" 7.957 + sodipodi:linespacing="100%"><tspan 7.958 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.959 + sodipodi:role="line" 7.960 + x="29.276283" 7.961 + y="-349.95343" 7.962 + id="tspan11766">CILK is example of this case,</tspan><tspan 7.963 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.964 + sodipodi:role="line" 7.965 + x="29.276283" 7.966 + y="-340.95343" 7.967 + id="tspan12203">when leaf child finishes</tspan></text> 7.968 + <text 7.969 + sodipodi:linespacing="100%" 7.970 + id="text11768" 7.971 + y="-269.95343" 7.972 + x="29.276283" 7.973 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.974 + xml:space="preserve"><tspan 7.975 + id="tspan11770" 7.976 + y="-269.95343" 7.977 + x="29.276283" 7.978 + sodipodi:role="line" 7.979 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">Dataflow is example of this case</tspan></text> 7.980 + <text 7.981 + sodipodi:linespacing="100%" 7.982 + id="text11772" 7.983 + y="-473.95343" 7.984 + x="29.276283" 7.985 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.986 + xml:space="preserve"><tspan 7.987 + id="tspan11774" 7.988 + y="-473.95343" 7.989 + x="29.276283" 7.990 + sodipodi:role="line" 7.991 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">pthread is example of this case,</tspan><tspan 7.992 + y="-464.95343" 7.993 + x="29.276283" 7.994 + sodipodi:role="line" 7.995 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.996 + id="tspan3625">as is Cilk when suspends on sync</tspan></text> 7.997 + <path 7.998 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 7.999 + d="m 170.33352,-296.29839 100.31543,-78.14797" 7.1000 + id="path11776" 7.1001 + inkscape:connector-curvature="0" 7.1002 + sodipodi:nodetypes="cc" /> 7.1003 + <path 7.1004 + sodipodi:nodetypes="cc" 7.1005 + inkscape:connector-curvature="0" 7.1006 + id="path12020" 7.1007 + d="m 228.09216,-376.20795 41.06088,0" 7.1008 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.1009 + <path 7.1010 + sodipodi:nodetypes="cc" 7.1011 + inkscape:connector-curvature="0" 7.1012 + id="path12086" 7.1013 + d="m 659.56974,-364.00562 0,24.4507" 7.1014 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.1015 + <text 7.1016 + xml:space="preserve" 7.1017 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1018 + x="661.43005" 7.1019 + y="-355.95343" 7.1020 + id="text12088" 7.1021 + sodipodi:linespacing="100%"><tspan 7.1022 + style="font-size:9px;text-align:start;text-anchor:start;fill:#008000;fill-opacity:1" 7.1023 + sodipodi:role="line" 7.1024 + x="661.43005" 7.1025 + y="-355.95343" 7.1026 + id="tspan12090">no work</tspan><tspan 7.1027 + style="font-size:9px;text-align:start;text-anchor:start;fill:#008000;fill-opacity:1" 7.1028 + sodipodi:role="line" 7.1029 + x="661.43005" 7.1030 + y="-346.95343" 7.1031 + id="tspan12092">in Q</tspan></text> 7.1032 + <path 7.1033 + sodipodi:nodetypes="cc" 7.1034 + inkscape:connector-curvature="0" 7.1035 + id="path12155" 7.1036 + d="m 737.20425,-353.48137 72.41226,56.50237" 7.1037 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.1038 + <path 7.1039 + sodipodi:nodetypes="cc" 7.1040 + inkscape:connector-curvature="0" 7.1041 + id="path12197" 7.1042 + d="m 688.33352,-316.29839 23.17876,-59.17839" 7.1043 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.1044 + <text 7.1045 + sodipodi:linespacing="100%" 7.1046 + id="text12205" 7.1047 + y="-412.5929" 7.1048 + x="369.27625" 7.1049 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1050 + xml:space="preserve"><tspan 7.1051 + id="tspan12209" 7.1052 + y="-412.5929" 7.1053 + x="369.27625" 7.1054 + sodipodi:role="line" 7.1055 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in CILK, counts</tspan><tspan 7.1056 + y="-403.5929" 7.1057 + x="369.27625" 7.1058 + sodipodi:role="line" 7.1059 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1060 + id="tspan12307"> child ends, and</tspan><tspan 7.1061 + y="-394.5929" 7.1062 + x="369.27625" 7.1063 + sodipodi:role="line" 7.1064 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1065 + id="tspan12313"> handles sync)</tspan></text> 7.1066 + <text 7.1067 + xml:space="preserve" 7.1068 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1069 + x="627.27625" 7.1070 + y="-411.95343" 7.1071 + id="text12213" 7.1072 + sodipodi:linespacing="100%"><tspan 7.1073 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1074 + sodipodi:role="line" 7.1075 + x="627.27625" 7.1076 + y="-411.95343" 7.1077 + id="tspan12221">(for CILK, Q</tspan><tspan 7.1078 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1079 + sodipodi:role="line" 7.1080 + x="627.27625" 7.1081 + y="-402.95343" 7.1082 + id="tspan12305"> filled by async</tspan><tspan 7.1083 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1084 + sodipodi:role="line" 7.1085 + x="627.27625" 7.1086 + y="-393.95343" 7.1087 + id="tspan12219"> spawns)</tspan></text> 7.1088 + <path 7.1089 + sodipodi:nodetypes="cc" 7.1090 + inkscape:connector-curvature="0" 7.1091 + id="path12275" 7.1092 + d="m 328.09217,-376.20795 41.44502,0" 7.1093 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.1094 + <g 7.1095 + id="g12277" 7.1096 + transform="translate(-280,-40)"> 7.1097 + <text 7.1098 + sodipodi:linespacing="100%" 7.1099 + id="text12279" 7.1100 + y="-339.22998" 7.1101 + x="579.39252" 7.1102 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1103 + xml:space="preserve"><tspan 7.1104 + id="tspan12281" 7.1105 + y="-339.22998" 7.1106 + x="579.39252" 7.1107 + sodipodi:role="line" 7.1108 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">time to</tspan><tspan 7.1109 + y="-330.22998" 7.1110 + x="579.39252" 7.1111 + sodipodi:role="line" 7.1112 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1113 + id="tspan12283">chk msgs?</tspan></text> 7.1114 + <rect 7.1115 + style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.1116 + id="rect12285" 7.1117 + width="36.810017" 7.1118 + height="36.457531" 7.1119 + x="624.01776" 7.1120 + y="93.582199" 7.1121 + transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 7.1122 + ry="0" /> 7.1123 + </g> 7.1124 + <path 7.1125 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 7.1126 + d="m 299.56974,-351.98903 0,122.09492" 7.1127 + id="path12297" 7.1128 + inkscape:connector-curvature="0" 7.1129 + sodipodi:nodetypes="cc" /> 7.1130 + <g 7.1131 + id="g12335" 7.1132 + transform="translate(77.05331,-503.31973)"> 7.1133 + <text 7.1134 + sodipodi:linespacing="100%" 7.1135 + id="text12337" 7.1136 + y="285.39841" 7.1137 + x="222.37003" 7.1138 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1139 + xml:space="preserve"><tspan 7.1140 + y="285.39841" 7.1141 + x="222.37003" 7.1142 + sodipodi:role="line" 7.1143 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1144 + id="tspan12339">scan for in-</tspan><tspan 7.1145 + y="294.39841" 7.1146 + x="222.37003" 7.1147 + sodipodi:role="line" 7.1148 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1149 + id="tspan12394">coming msgs,</tspan><tspan 7.1150 + id="tspan12343" 7.1151 + y="303.39841" 7.1152 + x="222.37003" 7.1153 + sodipodi:role="line" 7.1154 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">give to hdlrs.</tspan><tspan 7.1155 + y="312.39841" 7.1156 + x="222.37003" 7.1157 + sodipodi:role="line" 7.1158 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1159 + id="tspan12400">check timers,</tspan><tspan 7.1160 + y="321.39841" 7.1161 + x="222.37003" 7.1162 + sodipodi:role="line" 7.1163 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1164 + id="tspan3521">fire hdlr for</tspan><tspan 7.1165 + y="330.39841" 7.1166 + x="222.37003" 7.1167 + sodipodi:role="line" 7.1168 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1169 + id="tspan3523">expired ones</tspan></text> 7.1170 + <rect 7.1171 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.1172 + id="rect12347" 7.1173 + width="57.486332" 7.1174 + height="63.639675" 7.1175 + x="193.78287" 7.1176 + y="274.77512" /> 7.1177 + </g> 7.1178 + <g 7.1179 + id="g12349" 7.1180 + transform="translate(617.05331,-603.31973)"> 7.1181 + <text 7.1182 + sodipodi:linespacing="100%" 7.1183 + id="text12351" 7.1184 + y="285.39841" 7.1185 + x="222.37003" 7.1186 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1187 + xml:space="preserve"><tspan 7.1188 + id="tspan12359" 7.1189 + y="285.39841" 7.1190 + x="222.37003" 7.1191 + sodipodi:role="line" 7.1192 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">send curr VP</tspan><tspan 7.1193 + y="294.39841" 7.1194 + x="222.37003" 7.1195 + sodipodi:role="line" 7.1196 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1197 + id="tspan12386">to pool,</tspan><tspan 7.1198 + y="303.39841" 7.1199 + x="222.37003" 7.1200 + sodipodi:role="line" 7.1201 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1202 + id="tspan12388">switch to</tspan><tspan 7.1203 + y="312.39841" 7.1204 + x="222.37003" 7.1205 + sodipodi:role="line" 7.1206 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1207 + id="tspan12390">VP of new</tspan><tspan 7.1208 + y="321.39841" 7.1209 + x="222.37003" 7.1210 + sodipodi:role="line" 7.1211 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1212 + id="tspan12392">work-unit</tspan></text> 7.1213 + <rect 7.1214 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.1215 + id="rect12361" 7.1216 + width="57.486332" 7.1217 + height="63.639675" 7.1218 + x="193.78287" 7.1219 + y="274.77512" /> 7.1220 + </g> 7.1221 + <g 7.1222 + id="g12404" 7.1223 + transform="translate(17.05331,-404)"> 7.1224 + <text 7.1225 + sodipodi:linespacing="100%" 7.1226 + id="text12406" 7.1227 + y="285.36765" 7.1228 + x="222.25137" 7.1229 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1230 + xml:space="preserve"><tspan 7.1231 + id="tspan12410" 7.1232 + y="285.36765" 7.1233 + x="222.25137" 7.1234 + sodipodi:role="line" 7.1235 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">constraint</tspan><tspan 7.1236 + y="294.36765" 7.1237 + x="222.25137" 7.1238 + sodipodi:role="line" 7.1239 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1240 + id="tspan12416">msg handler</tspan></text> 7.1241 + <rect 7.1242 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.1243 + id="rect12412" 7.1244 + width="57.486332" 7.1245 + height="25.544432" 7.1246 + x="193.78287" 7.1247 + y="274.77512" /> 7.1248 + </g> 7.1249 + <g 7.1250 + transform="translate(97.05331,-344)" 7.1251 + id="g12418"> 7.1252 + <text 7.1253 + xml:space="preserve" 7.1254 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1255 + x="142.25137" 7.1256 + y="285.36765" 7.1257 + id="text12420" 7.1258 + sodipodi:linespacing="100%"><tspan 7.1259 + id="tspan12424" 7.1260 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1261 + sodipodi:role="line" 7.1262 + x="142.25137" 7.1263 + y="285.36765">Push Work</tspan><tspan 7.1264 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1265 + sodipodi:role="line" 7.1266 + x="142.25137" 7.1267 + y="294.36765" 7.1268 + id="tspan12548">onto Q</tspan></text> 7.1269 + <rect 7.1270 + y="274.77512" 7.1271 + x="113.78287" 7.1272 + height="25.544432" 7.1273 + width="57.486332" 7.1274 + id="rect12426" 7.1275 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.1276 + </g> 7.1277 + <path 7.1278 + sodipodi:nodetypes="cc" 7.1279 + inkscape:connector-curvature="0" 7.1280 + id="path12432" 7.1281 + d="m 239.56974,-104.00562 0,34.68367" 7.1282 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.1283 + <g 7.1284 + id="g12434" 7.1285 + transform="translate(-62.94669,-344)"> 7.1286 + <text 7.1287 + sodipodi:linespacing="100%" 7.1288 + id="text12436" 7.1289 + y="285.36765" 7.1290 + x="222.25137" 7.1291 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1292 + xml:space="preserve"><tspan 7.1293 + y="285.36765" 7.1294 + x="222.25137" 7.1295 + sodipodi:role="line" 7.1296 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1297 + id="tspan12438">send constr</tspan><tspan 7.1298 + y="294.36765" 7.1299 + x="222.25137" 7.1300 + sodipodi:role="line" 7.1301 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1302 + id="tspan12776">update msg</tspan></text> 7.1303 + <rect 7.1304 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.1305 + id="rect12440" 7.1306 + width="57.486332" 7.1307 + height="25.544432" 7.1308 + x="193.78287" 7.1309 + y="274.77512" /> 7.1310 + </g> 7.1311 + <text 7.1312 + xml:space="preserve" 7.1313 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1314 + x="273.27625" 7.1315 + y="6.7268219" 7.1316 + id="text12442" 7.1317 + sodipodi:linespacing="100%"><tspan 7.1318 + id="tspan12448" 7.1319 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1320 + sodipodi:role="line" 7.1321 + x="273.27625" 7.1322 + y="6.7268219">(in dataflow & CILK,</tspan><tspan 7.1323 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1324 + sodipodi:role="line" 7.1325 + x="273.27625" 7.1326 + y="15.726822" 7.1327 + id="tspan12454"> msgs from other cores</tspan><tspan 7.1328 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1329 + sodipodi:role="line" 7.1330 + x="273.27625" 7.1331 + y="24.726822" 7.1332 + id="tspan12482"> that ask for or push</tspan><tspan 7.1333 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1334 + sodipodi:role="line" 7.1335 + x="273.27625" 7.1336 + y="33.726822" 7.1337 + id="tspan3527"> work, go to assigner)</tspan></text> 7.1338 + <text 7.1339 + sodipodi:linespacing="100%" 7.1340 + id="text12460" 7.1341 + y="6.7268066" 7.1342 + x="369.27625" 7.1343 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1344 + xml:space="preserve"><tspan 7.1345 + id="tspan12466" 7.1346 + y="6.7268066" 7.1347 + x="369.27625" 7.1348 + sodipodi:role="line" 7.1349 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in dataflow & CILK,</tspan><tspan 7.1350 + y="15.726807" 7.1351 + x="369.27625" 7.1352 + sodipodi:role="line" 7.1353 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1354 + id="tspan12472"> push work to other</tspan><tspan 7.1355 + y="24.726807" 7.1356 + x="369.27625" 7.1357 + sodipodi:role="line" 7.1358 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1359 + id="tspan12488"> cores via msgs -- </tspan><tspan 7.1360 + y="33.726807" 7.1361 + x="369.27625" 7.1362 + sodipodi:role="line" 7.1363 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1364 + id="tspan3973"> remember </tspan><tspan 7.1365 + y="42.726807" 7.1366 + x="369.27625" 7.1367 + sodipodi:role="line" 7.1368 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1369 + id="tspan3977"> constraints that</tspan><tspan 7.1370 + y="51.726807" 7.1371 + x="369.27625" 7.1372 + sodipodi:role="line" 7.1373 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1374 + id="tspan12642"> cross cores)</tspan></text> 7.1375 + <path 7.1376 + sodipodi:nodetypes="cc" 7.1377 + inkscape:connector-curvature="0" 7.1378 + id="path12490" 7.1379 + d="m 328.33352,-203.17339 41.44797,-171.27297" 7.1380 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.1381 + <g 7.1382 + id="g12506" 7.1383 + transform="translate(97.05331,-404)"> 7.1384 + <text 7.1385 + sodipodi:linespacing="100%" 7.1386 + id="text12508" 7.1387 + y="285.36765" 7.1388 + x="222.25137" 7.1389 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1390 + xml:space="preserve"><tspan 7.1391 + y="285.36765" 7.1392 + x="222.25137" 7.1393 + sodipodi:role="line" 7.1394 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1395 + id="tspan12510">Assigner</tspan><tspan 7.1396 + y="294.36765" 7.1397 + x="222.25137" 7.1398 + sodipodi:role="line" 7.1399 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1400 + id="tspan12656">msg handler</tspan></text> 7.1401 + <rect 7.1402 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.1403 + id="rect12512" 7.1404 + width="57.486332" 7.1405 + height="25.544432" 7.1406 + x="193.78287" 7.1407 + y="274.77512" /> 7.1408 + </g> 7.1409 + <path 7.1410 + sodipodi:nodetypes="cc" 7.1411 + inkscape:connector-curvature="0" 7.1412 + id="path12534" 7.1413 + d="m 319.56974,-104.00562 0,34.68367" 7.1414 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.1415 + <path 7.1416 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 7.1417 + d="m 297.91051,-165.12086 -53.68184,35.65757" 7.1418 + id="path12544" 7.1419 + inkscape:connector-curvature="0" 7.1420 + sodipodi:nodetypes="cc" /> 7.1421 + <path 7.1422 + sodipodi:nodetypes="cc" 7.1423 + inkscape:connector-curvature="0" 7.1424 + id="path12550" 7.1425 + d="m 239.95132,-103.76032 -77.23827,34.97636" 7.1426 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.1427 + <g 7.1428 + transform="translate(257.05331,-604)" 7.1429 + id="g12552"> 7.1430 + <text 7.1431 + xml:space="preserve" 7.1432 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1433 + x="222.25137" 7.1434 + y="285.36765" 7.1435 + id="text12554" 7.1436 + sodipodi:linespacing="100%"><tspan 7.1437 + id="tspan12556" 7.1438 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1439 + sodipodi:role="line" 7.1440 + x="222.25137" 7.1441 + y="285.36765">send constr</tspan><tspan 7.1442 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1443 + sodipodi:role="line" 7.1444 + x="222.25137" 7.1445 + y="294.36765" 7.1446 + id="tspan12888">update msgs</tspan></text> 7.1447 + <rect 7.1448 + y="274.77512" 7.1449 + x="193.78287" 7.1450 + height="25.544432" 7.1451 + width="57.486332" 7.1452 + id="rect12558" 7.1453 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.1454 + </g> 7.1455 + <path 7.1456 + sodipodi:nodetypes="cc" 7.1457 + inkscape:connector-curvature="0" 7.1458 + id="path12562" 7.1459 + d="m 303.63081,-165.12086 14.66828,34.98156" 7.1460 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.1461 + <text 7.1462 + sodipodi:linespacing="100%" 7.1463 + id="text12564" 7.1464 + y="-351.95343" 7.1465 + x="371.43005" 7.1466 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1467 + xml:space="preserve"><tspan 7.1468 + id="tspan12568" 7.1469 + y="-351.95343" 7.1470 + x="371.43005" 7.1471 + sodipodi:role="line" 7.1472 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> done</tspan><tspan 7.1473 + y="-342.95343" 7.1474 + x="371.43005" 7.1475 + sodipodi:role="line" 7.1476 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1477 + id="tspan12598"> with</tspan><tspan 7.1478 + y="-333.95343" 7.1479 + x="371.43005" 7.1480 + sodipodi:role="line" 7.1481 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1482 + id="tspan12600">msgs</tspan></text> 7.1483 + <text 7.1484 + xml:space="preserve" 7.1485 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1486 + x="335.43005" 7.1487 + y="-379.95343" 7.1488 + id="text12572" 7.1489 + sodipodi:linespacing="100%"><tspan 7.1490 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1491 + sodipodi:role="line" 7.1492 + x="335.43005" 7.1493 + y="-379.95343" 7.1494 + id="tspan12574">no</tspan></text> 7.1495 + <text 7.1496 + sodipodi:linespacing="100%" 7.1497 + id="text12576" 7.1498 + y="-343.95343" 7.1499 + x="309.43005" 7.1500 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1501 + xml:space="preserve"><tspan 7.1502 + id="tspan12578" 7.1503 + y="-343.95343" 7.1504 + x="309.43005" 7.1505 + sodipodi:role="line" 7.1506 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan 7.1507 + y="-334.95343" 7.1508 + x="309.43005" 7.1509 + sodipodi:role="line" 7.1510 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1511 + id="tspan12580">chk</tspan></text> 7.1512 + <text 7.1513 + xml:space="preserve" 7.1514 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1515 + x="251.43005" 7.1516 + y="-151.95343" 7.1517 + id="text12582" 7.1518 + sodipodi:linespacing="100%"><tspan 7.1519 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1520 + sodipodi:role="line" 7.1521 + x="251.43005" 7.1522 + y="-151.95343" 7.1523 + id="tspan12584"> constraint</tspan><tspan 7.1524 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1525 + sodipodi:role="line" 7.1526 + x="251.43005" 7.1527 + y="-142.95343" 7.1528 + id="tspan12586">msgs</tspan></text> 7.1529 + <text 7.1530 + sodipodi:linespacing="100%" 7.1531 + id="text12592" 7.1532 + y="-151.95343" 7.1533 + x="323.43005" 7.1534 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1535 + xml:space="preserve"><tspan 7.1536 + id="tspan12594" 7.1537 + y="-151.95343" 7.1538 + x="323.43005" 7.1539 + sodipodi:role="line" 7.1540 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> Assigner</tspan><tspan 7.1541 + id="tspan12596" 7.1542 + y="-142.95343" 7.1543 + x="323.43005" 7.1544 + sodipodi:role="line" 7.1545 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">msgs</tspan></text> 7.1546 + <text 7.1547 + sodipodi:linespacing="100%" 7.1548 + id="text12602" 7.1549 + y="-29.273178" 7.1550 + x="129.27625" 7.1551 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1552 + xml:space="preserve"><tspan 7.1553 + id="tspan12606" 7.1554 + y="-29.273178" 7.1555 + x="129.27625" 7.1556 + sodipodi:role="line" 7.1557 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in CILK, completion of</tspan><tspan 7.1558 + y="-20.273178" 7.1559 + x="129.27625" 7.1560 + sodipodi:role="line" 7.1561 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1562 + id="tspan12614"> child on remote core</tspan><tspan 7.1563 + id="tspan12610" 7.1564 + y="-11.273178" 7.1565 + x="129.27625" 7.1566 + sodipodi:role="line" 7.1567 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"> notifies parent's core.</tspan><tspan 7.1568 + y="-2.2731781" 7.1569 + x="129.27625" 7.1570 + sodipodi:role="line" 7.1571 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1572 + id="tspan12624"> In dataflow, remote pro-</tspan><tspan 7.1573 + y="6.7268219" 7.1574 + x="129.27625" 7.1575 + sodipodi:role="line" 7.1576 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1577 + id="tspan12626"> pendent sends data to</tspan><tspan 7.1578 + y="15.726822" 7.1579 + x="129.27625" 7.1580 + sodipodi:role="line" 7.1581 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.1582 + id="tspan12634"> dependents' cores)</tspan></text> 7.1583 + <path 7.1584 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 7.1585 + d="m 401.6308,-363.12086 74.44669,32.98177" 7.1586 + id="path12658" 7.1587 + inkscape:connector-curvature="0" 7.1588 + sodipodi:nodetypes="cc" /> 7.1589 + <g 7.1590 + id="g12764" 7.1591 + transform="translate(437.05331,-484)"> 7.1592 + <text 7.1593 + sodipodi:linespacing="100%" 7.1594 + id="text12766" 7.1595 + y="285.36765" 7.1596 + x="222.25137" 7.1597 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1598 + xml:space="preserve"><tspan 7.1599 + y="285.36765" 7.1600 + x="222.25137" 7.1601 + sodipodi:role="line" 7.1602 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1603 + id="tspan12768">send "need</tspan><tspan 7.1604 + y="294.36765" 7.1605 + x="222.25137" 7.1606 + sodipodi:role="line" 7.1607 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1608 + id="tspan12774">work" msg</tspan></text> 7.1609 + <rect 7.1610 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.1611 + id="rect12770" 7.1612 + width="57.486332" 7.1613 + height="25.544432" 7.1614 + x="193.78287" 7.1615 + y="274.77512" /> 7.1616 + </g> 7.1617 + <text 7.1618 + xml:space="preserve" 7.1619 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1620 + x="299.43005" 7.1621 + y="-93.95343" 7.1622 + id="text12816" 7.1623 + sodipodi:linespacing="100%"><tspan 7.1624 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1625 + sodipodi:role="line" 7.1626 + x="299.43005" 7.1627 + y="-93.95343" 7.1628 + id="tspan12818"> receive</tspan><tspan 7.1629 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1630 + sodipodi:role="line" 7.1631 + x="300.78357" 7.1632 + y="-84.95343" 7.1633 + id="tspan12820">work-push </tspan><tspan 7.1634 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1635 + sodipodi:role="line" 7.1636 + x="299.43005" 7.1637 + y="-75.95343" 7.1638 + id="tspan12822"> msg</tspan></text> 7.1639 + <path 7.1640 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 7.1641 + d="m 321.6308,-103.12086 74.44669,32.98177" 7.1642 + id="path12824" 7.1643 + inkscape:connector-curvature="0" 7.1644 + sodipodi:nodetypes="cc" /> 7.1645 + <text 7.1646 + sodipodi:linespacing="100%" 7.1647 + id="text12826" 7.1648 + y="-93.95343" 7.1649 + x="379.43005" 7.1650 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1651 + xml:space="preserve"><tspan 7.1652 + id="tspan12828" 7.1653 + y="-93.95343" 7.1654 + x="379.43005" 7.1655 + sodipodi:role="line" 7.1656 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> receive need-work</tspan><tspan 7.1657 + id="tspan12832" 7.1658 + y="-84.95343" 7.1659 + x="379.43005" 7.1660 + sodipodi:role="line" 7.1661 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> msg & have work</tspan><tspan 7.1662 + y="-75.95343" 7.1663 + x="379.43005" 7.1664 + sodipodi:role="line" 7.1665 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1666 + id="tspan12836"> to give</tspan></text> 7.1667 + <text 7.1668 + sodipodi:linespacing="100%" 7.1669 + id="text12914" 7.1670 + y="-281.95343" 7.1671 + x="678.38245" 7.1672 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1673 + xml:space="preserve"><tspan 7.1674 + y="-281.95343" 7.1675 + x="678.38245" 7.1676 + sodipodi:role="line" 7.1677 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1678 + id="tspan12946">No work</tspan></text> 7.1679 + <g 7.1680 + id="g3699" 7.1681 + transform="translate(717.05331,-664)"> 7.1682 + <text 7.1683 + sodipodi:linespacing="100%" 7.1684 + id="text3701" 7.1685 + y="285.69943" 7.1686 + x="222.37003" 7.1687 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1688 + xml:space="preserve"><tspan 7.1689 + id="tspan3705" 7.1690 + y="285.69943" 7.1691 + x="222.37003" 7.1692 + sodipodi:role="line" 7.1693 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Jmp to new</tspan><tspan 7.1694 + y="294.69943" 7.1695 + x="222.37003" 7.1696 + sodipodi:role="line" 7.1697 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1698 + id="tspan3713">work-unit</tspan></text> 7.1699 + <rect 7.1700 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.1701 + id="rect3707" 7.1702 + width="57.486332" 7.1703 + height="25.544432" 7.1704 + x="193.78287" 7.1705 + y="274.77512" /> 7.1706 + </g> 7.1707 + <path 7.1708 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 7.1709 + d="m 868.0922,-376.20795 41.0608,0" 7.1710 + id="path3709" 7.1711 + inkscape:connector-curvature="0" 7.1712 + sodipodi:nodetypes="cc" /> 7.1713 + <path 7.1714 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 7.1715 + d="m 868.33356,-296.29838 40.86584,-76.648" 7.1716 + id="path3715" 7.1717 + inkscape:connector-curvature="0" 7.1718 + sodipodi:nodetypes="cc" /> 7.1719 + <path 7.1720 + sodipodi:nodetypes="cc" 7.1721 + inkscape:connector-curvature="0" 7.1722 + id="path3769" 7.1723 + d="m 428.86861,-376.20795 200.12395,0" 7.1724 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.1725 + <g 7.1726 + id="g3775" 7.1727 + transform="translate(297.05331,-784)"> 7.1728 + <text 7.1729 + sodipodi:linespacing="100%" 7.1730 + id="text3777" 7.1731 + y="285.36765" 7.1732 + x="222.25137" 7.1733 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1734 + xml:space="preserve"><tspan 7.1735 + id="tspan3781" 7.1736 + y="285.36765" 7.1737 + x="222.25137" 7.1738 + sodipodi:role="line" 7.1739 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Assigner</tspan></text> 7.1740 + <rect 7.1741 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.1742 + id="rect3783" 7.1743 + width="57.486332" 7.1744 + height="25.544432" 7.1745 + x="193.78287" 7.1746 + y="274.77512" /> 7.1747 + </g> 7.1748 + <g 7.1749 + id="g3789" 7.1750 + transform="translate(177.05331,-784)"> 7.1751 + <text 7.1752 + sodipodi:linespacing="100%" 7.1753 + id="text3791" 7.1754 + y="285.36765" 7.1755 + x="222.25137" 7.1756 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1757 + xml:space="preserve"><tspan 7.1758 + id="tspan3795" 7.1759 + y="285.36765" 7.1760 + x="222.25137" 7.1761 + sodipodi:role="line" 7.1762 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">request hdlr</tspan></text> 7.1763 + <rect 7.1764 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.1765 + id="rect3797" 7.1766 + width="57.486332" 7.1767 + height="25.544432" 7.1768 + x="193.78287" 7.1769 + y="274.77512" /> 7.1770 + </g> 7.1771 + <path 7.1772 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 7.1773 + d="m 428.09218,-496.20795 60.12116,0" 7.1774 + id="path3799" 7.1775 + inkscape:connector-curvature="0" 7.1776 + sodipodi:nodetypes="cc" /> 7.1777 + <g 7.1778 + transform="translate(-300,-160)" 7.1779 + id="g3801"> 7.1780 + <text 7.1781 + xml:space="preserve" 7.1782 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1783 + x="579.39252" 7.1784 + y="-339.22998" 7.1785 + id="text3803" 7.1786 + sodipodi:linespacing="100%"><tspan 7.1787 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1788 + sodipodi:role="line" 7.1789 + x="579.39252" 7.1790 + y="-339.22998" 7.1791 + id="tspan3805">time to</tspan><tspan 7.1792 + id="tspan3807" 7.1793 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1794 + sodipodi:role="line" 7.1795 + x="579.39252" 7.1796 + y="-330.22998">chk msgs?</tspan></text> 7.1797 + <rect 7.1798 + ry="0" 7.1799 + transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 7.1800 + y="93.582199" 7.1801 + x="624.01776" 7.1802 + height="36.457531" 7.1803 + width="36.810017" 7.1804 + id="rect3809" 7.1805 + style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.1806 + </g> 7.1807 + <path 7.1808 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 7.1809 + d="m 228.09216,-496.20795 21.72127,0" 7.1810 + id="path3811" 7.1811 + inkscape:connector-curvature="0" 7.1812 + sodipodi:nodetypes="cc" /> 7.1813 + <path 7.1814 + sodipodi:nodetypes="cc" 7.1815 + inkscape:connector-curvature="0" 7.1816 + id="path3813" 7.1817 + d="m 307.68401,-496.20795 61.46905,0" 7.1818 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.1819 + <text 7.1820 + xml:space="preserve" 7.1821 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1822 + x="289.43005" 7.1823 + y="-463.95343" 7.1824 + id="text3815" 7.1825 + sodipodi:linespacing="100%"><tspan 7.1826 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1827 + sodipodi:role="line" 7.1828 + x="289.43005" 7.1829 + y="-463.95343" 7.1830 + id="tspan3817">yes,</tspan><tspan 7.1831 + id="tspan3819" 7.1832 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1833 + sodipodi:role="line" 7.1834 + x="289.43005" 7.1835 + y="-454.95343">chk</tspan></text> 7.1836 + <path 7.1837 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 7.1838 + d="m 328.33352,-197.5484 41.44797,-295.744" 7.1839 + id="path3823" 7.1840 + inkscape:connector-curvature="0" 7.1841 + sodipodi:nodetypes="cc" /> 7.1842 + <text 7.1843 + sodipodi:linespacing="100%" 7.1844 + id="text3825" 7.1845 + y="-499.95343" 7.1846 + x="315.43005" 7.1847 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1848 + xml:space="preserve"><tspan 7.1849 + id="tspan3827" 7.1850 + y="-499.95343" 7.1851 + x="315.43005" 7.1852 + sodipodi:role="line" 7.1853 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">no</tspan></text> 7.1854 + <text 7.1855 + xml:space="preserve" 7.1856 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1857 + x="353.43005" 7.1858 + y="-473.95343" 7.1859 + id="text3829" 7.1860 + sodipodi:linespacing="100%"><tspan 7.1861 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1862 + sodipodi:role="line" 7.1863 + x="353.43005" 7.1864 + y="-473.95343" 7.1865 + id="tspan3831"> done</tspan><tspan 7.1866 + id="tspan3833" 7.1867 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1868 + sodipodi:role="line" 7.1869 + x="353.43005" 7.1870 + y="-464.95343"> with</tspan><tspan 7.1871 + id="tspan3835" 7.1872 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.1873 + sodipodi:role="line" 7.1874 + x="353.43005" 7.1875 + y="-455.95343">msgs</tspan></text> 7.1876 + <g 7.1877 + transform="translate(97.05331,-343.31973)" 7.1878 + id="g3837"> 7.1879 + <text 7.1880 + xml:space="preserve" 7.1881 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1882 + x="222.37003" 7.1883 + y="285.39841" 7.1884 + id="text3839" 7.1885 + sodipodi:linespacing="100%"><tspan 7.1886 + id="tspan3841" 7.1887 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1888 + sodipodi:role="line" 7.1889 + x="222.37003" 7.1890 + y="285.39841">push work</tspan><tspan 7.1891 + id="tspan3843" 7.1892 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1893 + sodipodi:role="line" 7.1894 + x="222.37003" 7.1895 + y="294.39841">onto Q, and</tspan><tspan 7.1896 + id="tspan3845" 7.1897 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1898 + sodipodi:role="line" 7.1899 + x="222.37003" 7.1900 + y="303.39841">send "cancel</tspan><tspan 7.1901 + id="tspan3847" 7.1902 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1903 + sodipodi:role="line" 7.1904 + x="222.37003" 7.1905 + y="312.39841">need work"</tspan></text> 7.1906 + <rect 7.1907 + y="274.77512" 7.1908 + x="193.78287" 7.1909 + height="63.639675" 7.1910 + width="57.486332" 7.1911 + id="rect3849" 7.1912 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.1913 + </g> 7.1914 + <g 7.1915 + id="g3851" 7.1916 + transform="translate(177.05331,-744)"> 7.1917 + <text 7.1918 + sodipodi:linespacing="100%" 7.1919 + id="text3853" 7.1920 + y="285.36765" 7.1921 + x="222.25137" 7.1922 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1923 + xml:space="preserve"><tspan 7.1924 + y="285.36765" 7.1925 + x="222.25137" 7.1926 + sodipodi:role="line" 7.1927 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1928 + id="tspan3855">send constr</tspan><tspan 7.1929 + id="tspan3857" 7.1930 + y="294.36765" 7.1931 + x="222.25137" 7.1932 + sodipodi:role="line" 7.1933 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">update msgs</tspan></text> 7.1934 + <rect 7.1935 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.1936 + id="rect3859" 7.1937 + width="57.486332" 7.1938 + height="25.544432" 7.1939 + x="193.78287" 7.1940 + y="274.77512" /> 7.1941 + </g> 7.1942 + <path 7.1943 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 7.1944 + d="m 399.56974,-484.00562 0,12.75587" 7.1945 + id="path3863" 7.1946 + inkscape:connector-curvature="0" 7.1947 + sodipodi:nodetypes="cc" /> 7.1948 + <g 7.1949 + transform="translate(257.05331,-744)" 7.1950 + id="g3865"> 7.1951 + <text 7.1952 + xml:space="preserve" 7.1953 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1954 + x="222.37003" 7.1955 + y="285.39841" 7.1956 + id="text3867" 7.1957 + sodipodi:linespacing="100%"><tspan 7.1958 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1959 + sodipodi:role="line" 7.1960 + x="222.37003" 7.1961 + y="285.39841" 7.1962 + id="tspan3869">Push work</tspan><tspan 7.1963 + id="tspan3871" 7.1964 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1965 + sodipodi:role="line" 7.1966 + x="222.37003" 7.1967 + y="294.39841">onto Q</tspan></text> 7.1968 + <rect 7.1969 + y="274.77512" 7.1970 + x="193.78287" 7.1971 + height="25.544432" 7.1972 + width="57.486332" 7.1973 + id="rect3873" 7.1974 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.1975 + </g> 7.1976 + <g 7.1977 + transform="translate(317.05331,-744)" 7.1978 + id="g3875"> 7.1979 + <text 7.1980 + xml:space="preserve" 7.1981 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.1982 + x="222.25137" 7.1983 + y="285.36765" 7.1984 + id="text3877" 7.1985 + sodipodi:linespacing="100%"><tspan 7.1986 + id="tspan3879" 7.1987 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1988 + sodipodi:role="line" 7.1989 + x="222.25137" 7.1990 + y="285.36765">send Assigner</tspan><tspan 7.1991 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.1992 + sodipodi:role="line" 7.1993 + x="222.25137" 7.1994 + y="294.36765" 7.1995 + id="tspan3881">messages</tspan></text> 7.1996 + <rect 7.1997 + y="274.77512" 7.1998 + x="193.78287" 7.1999 + height="25.544432" 7.2000 + width="57.486332" 7.2001 + id="rect3883" 7.2002 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.2003 + </g> 7.2004 + <path 7.2005 + sodipodi:nodetypes="cc" 7.2006 + inkscape:connector-curvature="0" 7.2007 + id="path3887" 7.2008 + d="m 519.99814,-483.12085 17.68767,13.95011" 7.2009 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.2010 + <path 7.2011 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 7.2012 + d="m 516.1523,-483.12085 -35.11392,13.95011" 7.2013 + id="path3889" 7.2014 + inkscape:connector-curvature="0" 7.2015 + sodipodi:nodetypes="cc" /> 7.2016 + <path 7.2017 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 7.2018 + d="m 548.6784,-495.12084 80.39811,116.64706" 7.2019 + id="path3891" 7.2020 + inkscape:connector-curvature="0" 7.2021 + sodipodi:nodetypes="cc" /> 7.2022 + <path 7.2023 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 7.2024 + d="m 737.20425,-398.67186 72.41226,-56.50237" 7.2025 + id="path3893" 7.2026 + inkscape:connector-curvature="0" 7.2027 + sodipodi:nodetypes="cc" /> 7.2028 + <g 7.2029 + id="g3895" 7.2030 + transform="translate(617.05331,-763.31973)"> 7.2031 + <text 7.2032 + sodipodi:linespacing="100%" 7.2033 + id="text3897" 7.2034 + y="285.39841" 7.2035 + x="222.37003" 7.2036 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2037 + xml:space="preserve"><tspan 7.2038 + y="285.39841" 7.2039 + x="222.37003" 7.2040 + sodipodi:role="line" 7.2041 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2042 + id="tspan3933">get VP from</tspan><tspan 7.2043 + y="294.39841" 7.2044 + x="222.37003" 7.2045 + sodipodi:role="line" 7.2046 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2047 + id="tspan3935">pool (make</tspan><tspan 7.2048 + y="303.39841" 7.2049 + x="222.37003" 7.2050 + sodipodi:role="line" 7.2051 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2052 + id="tspan3943">new if none).</tspan><tspan 7.2053 + id="tspan3901" 7.2054 + y="312.39841" 7.2055 + x="222.37003" 7.2056 + sodipodi:role="line" 7.2057 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Load it with</tspan><tspan 7.2058 + id="tspan3903" 7.2059 + y="321.39841" 7.2060 + x="222.37003" 7.2061 + sodipodi:role="line" 7.2062 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">context from</tspan><tspan 7.2063 + id="tspan3905" 7.2064 + y="330.39841" 7.2065 + x="222.37003" 7.2066 + sodipodi:role="line" 7.2067 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">new work-unit</tspan></text> 7.2068 + <rect 7.2069 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.2070 + id="rect3907" 7.2071 + width="57.486332" 7.2072 + height="63.639675" 7.2073 + x="193.78287" 7.2074 + y="274.77512" /> 7.2075 + </g> 7.2076 + <text 7.2077 + xml:space="preserve" 7.2078 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2079 + x="755.43005" 7.2080 + y="-449.95343" 7.2081 + id="text3909" 7.2082 + sodipodi:linespacing="100%"><tspan 7.2083 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2084 + sodipodi:role="line" 7.2085 + x="755.43005" 7.2086 + y="-449.95343" 7.2087 + id="tspan3913">new work-unit has own</tspan><tspan 7.2088 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2089 + sodipodi:role="line" 7.2090 + x="755.43005" 7.2091 + y="-440.95343" 7.2092 + id="tspan3927">local context, but</tspan><tspan 7.2093 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2094 + sodipodi:role="line" 7.2095 + x="756.78357" 7.2096 + y="-431.95343" 7.2097 + id="tspan3931">prev VP suspended </tspan></text> 7.2098 + <path 7.2099 + sodipodi:nodetypes="cc" 7.2100 + inkscape:connector-curvature="0" 7.2101 + id="path3953" 7.2102 + d="m 868.33356,-456.25901 40.86584,76.648" 7.2103 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.2104 + <text 7.2105 + xml:space="preserve" 7.2106 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2107 + x="357.27625" 7.2108 + y="-534.5929" 7.2109 + id="text3955" 7.2110 + sodipodi:linespacing="100%"><tspan 7.2111 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2112 + sodipodi:role="line" 7.2113 + x="357.27625" 7.2114 + y="-534.5929" 7.2115 + id="tspan3957">(in pthreads, checks</tspan><tspan 7.2116 + id="tspan3959" 7.2117 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2118 + sodipodi:role="line" 7.2119 + x="357.27625" 7.2120 + y="-525.5929"> mutex structures,</tspan><tspan 7.2121 + id="tspan3961" 7.2122 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2123 + sodipodi:role="line" 7.2124 + x="357.27625" 7.2125 + y="-516.5929"> cond var structs, etc)</tspan></text> 7.2126 + <text 7.2127 + xml:space="preserve" 7.2128 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2129 + x="459.43005" 7.2130 + y="-507.95343" 7.2131 + id="text3963" 7.2132 + sodipodi:linespacing="100%"><tspan 7.2133 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2134 + sodipodi:role="line" 7.2135 + x="459.43005" 7.2136 + y="-507.95343" 7.2137 + id="tspan3967">work-unit</tspan><tspan 7.2138 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2139 + sodipodi:role="line" 7.2140 + x="459.43005" 7.2141 + y="-498.95343" 7.2142 + id="tspan3971">state chgs</tspan></text> 7.2143 + <text 7.2144 + sodipodi:linespacing="100%" 7.2145 + id="text3981" 7.2146 + y="-195.95343" 7.2147 + x="415.43005" 7.2148 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2149 + xml:space="preserve" 7.2150 + inkscape:transform-center-x="-8.125"><tspan 7.2151 + y="-195.95343" 7.2152 + x="415.43005" 7.2153 + sodipodi:role="line" 7.2154 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2155 + id="tspan3987">done with msgs</tspan></text> 7.2156 + <path 7.2157 + sodipodi:nodetypes="cc" 7.2158 + inkscape:connector-curvature="0" 7.2159 + id="path3386" 7.2160 + d="m 30.09217,-616.20795 134.75175,0" 7.2161 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" /> 7.2162 + <text 7.2163 + xml:space="preserve" 7.2164 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2165 + x="95.430077" 7.2166 + y="-617.95343" 7.2167 + id="text3388" 7.2168 + sodipodi:linespacing="100%"><tspan 7.2169 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2170 + sodipodi:role="line" 7.2171 + x="95.430077" 7.2172 + y="-617.95343" 7.2173 + id="tspan3390">Suspend at end of work-unit</tspan></text> 7.2174 + <text 7.2175 + xml:space="preserve" 7.2176 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2177 + x="29.276283" 7.2178 + y="-593.95343" 7.2179 + id="text3392" 7.2180 + sodipodi:linespacing="100%"><tspan 7.2181 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2182 + sodipodi:role="line" 7.2183 + x="29.276283" 7.2184 + y="-593.95343" 7.2185 + id="tspan3394">pthread is example of this case,</tspan><tspan 7.2186 + id="tspan3396" 7.2187 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2188 + sodipodi:role="line" 7.2189 + x="29.276283" 7.2190 + y="-584.95343">as is Cilk when suspends on sync</tspan></text> 7.2191 + <g 7.2192 + transform="translate(297.05331,-904)" 7.2193 + id="g3398"> 7.2194 + <text 7.2195 + xml:space="preserve" 7.2196 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2197 + x="222.25137" 7.2198 + y="285.36765" 7.2199 + id="text3400" 7.2200 + sodipodi:linespacing="100%"><tspan 7.2201 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2202 + sodipodi:role="line" 7.2203 + x="222.25137" 7.2204 + y="285.36765" 7.2205 + id="tspan3402">Assigner</tspan></text> 7.2206 + <rect 7.2207 + y="274.77512" 7.2208 + x="193.78287" 7.2209 + height="25.544432" 7.2210 + width="57.486332" 7.2211 + id="rect3404" 7.2212 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.2213 + </g> 7.2214 + <g 7.2215 + transform="translate(177.05331,-904)" 7.2216 + id="g3406"> 7.2217 + <text 7.2218 + xml:space="preserve" 7.2219 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2220 + x="222.25137" 7.2221 + y="285.36765" 7.2222 + id="text3408" 7.2223 + sodipodi:linespacing="100%"><tspan 7.2224 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2225 + sodipodi:role="line" 7.2226 + x="222.25137" 7.2227 + y="285.36765" 7.2228 + id="tspan3412">request hdlr</tspan></text> 7.2229 + <rect 7.2230 + y="274.77512" 7.2231 + x="193.78287" 7.2232 + height="25.544432" 7.2233 + width="57.486332" 7.2234 + id="rect3414" 7.2235 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.2236 + </g> 7.2237 + <path 7.2238 + sodipodi:nodetypes="cc" 7.2239 + inkscape:connector-curvature="0" 7.2240 + id="path3416" 7.2241 + d="m 428.09218,-616.20795 60.12116,0" 7.2242 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.2243 + <g 7.2244 + id="g3418" 7.2245 + transform="translate(-300,-280)"> 7.2246 + <text 7.2247 + sodipodi:linespacing="100%" 7.2248 + id="text3420" 7.2249 + y="-339.22998" 7.2250 + x="579.39252" 7.2251 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2252 + xml:space="preserve"><tspan 7.2253 + id="tspan3422" 7.2254 + y="-339.22998" 7.2255 + x="579.39252" 7.2256 + sodipodi:role="line" 7.2257 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">time to</tspan><tspan 7.2258 + y="-330.22998" 7.2259 + x="579.39252" 7.2260 + sodipodi:role="line" 7.2261 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2262 + id="tspan3424">chk msgs?</tspan></text> 7.2263 + <rect 7.2264 + style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.2265 + id="rect3426" 7.2266 + width="36.810017" 7.2267 + height="36.457531" 7.2268 + x="624.01776" 7.2269 + y="93.582199" 7.2270 + transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 7.2271 + ry="0" /> 7.2272 + </g> 7.2273 + <path 7.2274 + sodipodi:nodetypes="cc" 7.2275 + inkscape:connector-curvature="0" 7.2276 + id="path3428" 7.2277 + d="m 228.09216,-616.20795 21.72127,0" 7.2278 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.2279 + <path 7.2280 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 7.2281 + d="m 307.68401,-616.20795 61.46905,0" 7.2282 + id="path3430" 7.2283 + inkscape:connector-curvature="0" 7.2284 + sodipodi:nodetypes="cc" /> 7.2285 + <text 7.2286 + sodipodi:linespacing="100%" 7.2287 + id="text3432" 7.2288 + y="-583.95343" 7.2289 + x="289.43005" 7.2290 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2291 + xml:space="preserve"><tspan 7.2292 + id="tspan3434" 7.2293 + y="-583.95343" 7.2294 + x="289.43005" 7.2295 + sodipodi:role="line" 7.2296 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan 7.2297 + y="-574.95343" 7.2298 + x="289.43005" 7.2299 + sodipodi:role="line" 7.2300 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2301 + id="tspan3436">chk</tspan></text> 7.2302 + <text 7.2303 + xml:space="preserve" 7.2304 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2305 + x="315.43005" 7.2306 + y="-619.95343" 7.2307 + id="text3438" 7.2308 + sodipodi:linespacing="100%"><tspan 7.2309 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2310 + sodipodi:role="line" 7.2311 + x="315.43005" 7.2312 + y="-619.95343" 7.2313 + id="tspan3440">no</tspan></text> 7.2314 + <text 7.2315 + sodipodi:linespacing="100%" 7.2316 + id="text3442" 7.2317 + y="-593.95343" 7.2318 + x="353.43005" 7.2319 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2320 + xml:space="preserve"><tspan 7.2321 + id="tspan3444" 7.2322 + y="-593.95343" 7.2323 + x="353.43005" 7.2324 + sodipodi:role="line" 7.2325 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> done</tspan><tspan 7.2326 + y="-584.95343" 7.2327 + x="353.43005" 7.2328 + sodipodi:role="line" 7.2329 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2330 + id="tspan3446"> with</tspan><tspan 7.2331 + y="-575.95343" 7.2332 + x="353.43005" 7.2333 + sodipodi:role="line" 7.2334 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2335 + id="tspan3448">msgs</tspan></text> 7.2336 + <g 7.2337 + transform="translate(177.05331,-864)" 7.2338 + id="g3450"> 7.2339 + <text 7.2340 + xml:space="preserve" 7.2341 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2342 + x="222.25137" 7.2343 + y="285.36765" 7.2344 + id="text3452" 7.2345 + sodipodi:linespacing="100%"><tspan 7.2346 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2347 + sodipodi:role="line" 7.2348 + x="222.25137" 7.2349 + y="285.36765" 7.2350 + id="tspan3456">get semEnv</tspan><tspan 7.2351 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2352 + sodipodi:role="line" 7.2353 + x="222.25137" 7.2354 + y="294.36765" 7.2355 + id="tspan3558">lock & update</tspan><tspan 7.2356 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2357 + sodipodi:role="line" 7.2358 + x="222.25137" 7.2359 + y="303.36765" 7.2360 + id="tspan3560">state of VP</tspan></text> 7.2361 + <rect 7.2362 + y="274.77512" 7.2363 + x="193.78287" 7.2364 + height="33.710323" 7.2365 + width="57.486332" 7.2366 + id="rect3458" 7.2367 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.2368 + </g> 7.2369 + <path 7.2370 + sodipodi:nodetypes="cc" 7.2371 + inkscape:connector-curvature="0" 7.2372 + id="path3460" 7.2373 + d="m 399.56974,-604.00562 0,12.75587" 7.2374 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.2375 + <g 7.2376 + id="g3472" 7.2377 + transform="translate(297.05331,-864)"> 7.2378 + <text 7.2379 + sodipodi:linespacing="100%" 7.2380 + id="text3474" 7.2381 + y="285.36765" 7.2382 + x="222.25137" 7.2383 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2384 + xml:space="preserve"><tspan 7.2385 + y="285.36765" 7.2386 + x="222.25137" 7.2387 + sodipodi:role="line" 7.2388 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2389 + id="tspan3476">get semEnv</tspan><tspan 7.2390 + id="tspan3478" 7.2391 + y="294.36765" 7.2392 + x="222.25137" 7.2393 + sodipodi:role="line" 7.2394 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">lock & pick a</tspan><tspan 7.2395 + y="303.36765" 7.2396 + x="222.25137" 7.2397 + sodipodi:role="line" 7.2398 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2399 + id="tspan3566">ready VP</tspan></text> 7.2400 + <rect 7.2401 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.2402 + id="rect3480" 7.2403 + width="57.486332" 7.2404 + height="33.710323" 7.2405 + x="193.78287" 7.2406 + y="274.77512" /> 7.2407 + </g> 7.2408 + <text 7.2409 + sodipodi:linespacing="100%" 7.2410 + id="text3486" 7.2411 + y="-654.5929" 7.2412 + x="357.27625" 7.2413 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2414 + xml:space="preserve"><tspan 7.2415 + id="tspan3488" 7.2416 + y="-654.5929" 7.2417 + x="357.27625" 7.2418 + sodipodi:role="line" 7.2419 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in pthreads, checks</tspan><tspan 7.2420 + y="-645.5929" 7.2421 + x="357.27625" 7.2422 + sodipodi:role="line" 7.2423 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2424 + id="tspan3490"> mutex structures,</tspan><tspan 7.2425 + y="-636.5929" 7.2426 + x="357.27625" 7.2427 + sodipodi:role="line" 7.2428 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2429 + id="tspan3492"> cond var structs, etc)</tspan></text> 7.2430 + <text 7.2431 + sodipodi:linespacing="100%" 7.2432 + id="text3494" 7.2433 + y="-627.95343" 7.2434 + x="459.43005" 7.2435 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2436 + xml:space="preserve"><tspan 7.2437 + id="tspan3496" 7.2438 + y="-627.95343" 7.2439 + x="459.43005" 7.2440 + sodipodi:role="line" 7.2441 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">work-unit</tspan><tspan 7.2442 + id="tspan3498" 7.2443 + y="-618.95343" 7.2444 + x="459.43005" 7.2445 + sodipodi:role="line" 7.2446 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">state chgs</tspan></text> 7.2447 + <path 7.2448 + sodipodi:nodetypes="cc" 7.2449 + inkscape:connector-curvature="0" 7.2450 + id="path3500" 7.2451 + d="m 548.67846,-615.848 261.45961,-0.0912" 7.2452 + style="fill:none;stroke:#000000;stroke-width:1.00000036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.2453 + <g 7.2454 + transform="translate(717.05331,-904)" 7.2455 + id="g3518"> 7.2456 + <text 7.2457 + xml:space="preserve" 7.2458 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2459 + x="222.37003" 7.2460 + y="285.69943" 7.2461 + id="text3520" 7.2462 + sodipodi:linespacing="100%"><tspan 7.2463 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2464 + sodipodi:role="line" 7.2465 + x="222.37003" 7.2466 + y="285.69943" 7.2467 + id="tspan3522">Jmp to new</tspan><tspan 7.2468 + id="tspan3524" 7.2469 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2470 + sodipodi:role="line" 7.2471 + x="222.37003" 7.2472 + y="294.69943">work-unit</tspan></text> 7.2473 + <rect 7.2474 + y="274.77512" 7.2475 + x="193.78287" 7.2476 + height="25.544432" 7.2477 + width="57.486332" 7.2478 + id="rect3526" 7.2479 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.2480 + </g> 7.2481 + <path 7.2482 + sodipodi:nodetypes="cc" 7.2483 + inkscape:connector-curvature="0" 7.2484 + id="path3528" 7.2485 + d="m 868.0922,-616.20795 41.0608,0" 7.2486 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.2487 + <path 7.2488 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 7.2489 + d="m 519.56974,-604.00562 0,12.75587" 7.2490 + id="path3568" 7.2491 + inkscape:connector-curvature="0" 7.2492 + sodipodi:nodetypes="cc" /> 7.2493 + <g 7.2494 + id="g3572" 7.2495 + transform="translate(617.05331,-904)"> 7.2496 + <text 7.2497 + sodipodi:linespacing="100%" 7.2498 + id="text3574" 7.2499 + y="285.69943" 7.2500 + x="222.37003" 7.2501 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2502 + xml:space="preserve"><tspan 7.2503 + y="285.69943" 7.2504 + x="222.37003" 7.2505 + sodipodi:role="line" 7.2506 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2507 + id="tspan3578">switch to</tspan><tspan 7.2508 + y="294.69943" 7.2509 + x="222.37003" 7.2510 + sodipodi:role="line" 7.2511 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2512 + id="tspan3584">ready VP</tspan></text> 7.2513 + <rect 7.2514 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.2515 + id="rect3580" 7.2516 + width="57.486332" 7.2517 + height="25.544432" 7.2518 + x="193.78287" 7.2519 + y="274.77512" /> 7.2520 + </g> 7.2521 + <path 7.2522 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 7.2523 + d="m 279.12967,-592.6255 -38.74926,53.74501 -0.37105,270.05417 35.3037,38.5653" 7.2524 + id="path3588" 7.2525 + inkscape:connector-curvature="0" 7.2526 + sodipodi:nodetypes="cccc" /> 7.2527 + <path 7.2528 + sodipodi:nodetypes="cc" 7.2529 + inkscape:connector-curvature="0" 7.2530 + id="path3590" 7.2531 + d="m 328.33352,-197.5484 41.44797,-413.82488" 7.2532 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.2533 + <g 7.2534 + id="g4716" 7.2535 + transform="translate(-22.94669,-904)"> 7.2536 + <text 7.2537 + sodipodi:linespacing="100%" 7.2538 + id="text4718" 7.2539 + y="285.39841" 7.2540 + x="222.37003" 7.2541 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2542 + xml:space="preserve"><tspan 7.2543 + id="tspan4720" 7.2544 + y="285.39841" 7.2545 + x="222.37003" 7.2546 + sodipodi:role="line" 7.2547 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">save VP</tspan><tspan 7.2548 + id="tspan4722" 7.2549 + y="294.39841" 7.2550 + x="222.37003" 7.2551 + sodipodi:role="line" 7.2552 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">context</tspan></text> 7.2553 + <rect 7.2554 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.2555 + id="rect4724" 7.2556 + width="57.486332" 7.2557 + height="25.544432" 7.2558 + x="193.78287" 7.2559 + y="274.77512" /> 7.2560 + </g> 7.2561 + <path 7.2562 + sodipodi:nodetypes="cc" 7.2563 + inkscape:connector-curvature="0" 7.2564 + id="path4726" 7.2565 + d="m 549.69914,-605.3604 79.38092,221.59022" 7.2566 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.2567 + <text 7.2568 + xml:space="preserve" 7.2569 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2570 + x="573.43005" 7.2571 + y="-583.95343" 7.2572 + id="text4728" 7.2573 + sodipodi:linespacing="100%"><tspan 7.2574 + id="tspan4732" 7.2575 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2576 + sodipodi:role="line" 7.2577 + x="573.43005" 7.2578 + y="-583.95343">No VPs</tspan><tspan 7.2579 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2580 + sodipodi:role="line" 7.2581 + x="573.43005" 7.2582 + y="-574.95343" 7.2583 + id="tspan4736">ready</tspan></text> 7.2584 + <text 7.2585 + inkscape:transform-center-x="-8.125" 7.2586 + xml:space="preserve" 7.2587 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2588 + x="451.43005" 7.2589 + y="-253.95343" 7.2590 + id="text4791" 7.2591 + sodipodi:linespacing="100%"><tspan 7.2592 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2593 + sodipodi:role="line" 7.2594 + x="451.43005" 7.2595 + y="-253.95343" 7.2596 + id="tspan4845">increase backoff each</tspan><tspan 7.2597 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2598 + sodipodi:role="line" 7.2599 + x="451.43005" 7.2600 + y="-244.95343" 7.2601 + id="tspan8389">repetition & update</tspan><tspan 7.2602 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2603 + sodipodi:role="line" 7.2604 + x="451.43005" 7.2605 + y="-235.95343" 7.2606 + id="tspan8385">backoff state</tspan><tspan 7.2607 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2608 + sodipodi:role="line" 7.2609 + x="451.43005" 7.2610 + y="-226.95343" 7.2611 + id="tspan8462">Try to make core enter</tspan><tspan 7.2612 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2613 + sodipodi:role="line" 7.2614 + x="451.43005" 7.2615 + y="-217.95343" 7.2616 + id="tspan8476">power-down idle state</tspan><tspan 7.2617 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2618 + sodipodi:role="line" 7.2619 + x="451.43005" 7.2620 + y="-208.95343" 7.2621 + id="tspan8464">while waiting</tspan></text> 7.2622 + <g 7.2623 + transform="translate(257.05331,-564)" 7.2624 + id="g4825"> 7.2625 + <text 7.2626 + xml:space="preserve" 7.2627 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2628 + x="222.37003" 7.2629 + y="285.39841" 7.2630 + id="text4827" 7.2631 + sodipodi:linespacing="100%"><tspan 7.2632 + id="tspan4831" 7.2633 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2634 + sodipodi:role="line" 7.2635 + x="222.37003" 7.2636 + y="285.39841">do Backoff</tspan><tspan 7.2637 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2638 + sodipodi:role="line" 7.2639 + x="222.37003" 7.2640 + y="294.39841" 7.2641 + id="tspan4837">wait</tspan></text> 7.2642 + <rect 7.2643 + y="274.77512" 7.2644 + x="193.78287" 7.2645 + height="25.544432" 7.2646 + width="57.486332" 7.2647 + id="rect4833" 7.2648 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.2649 + </g> 7.2650 + <path 7.2651 + sodipodi:nodetypes="cc" 7.2652 + inkscape:connector-curvature="0" 7.2653 + id="path4839" 7.2654 + d="m 449.58066,-276.19778 -135.75889,46.57393" 7.2655 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.2656 + <path 7.2657 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 7.2658 + d="m 328.29269,-192.89706 c 201.947,-1.19048 188.59077,6.60715 222.99693,-14.36012 65.59054,-39.97116 58.47949,-168.79464 107.66658,-129.80654" 7.2659 + id="path7449" 7.2660 + inkscape:connector-curvature="0" 7.2661 + sodipodi:nodetypes="csc" /> 7.2662 + <path 7.2663 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 7.2664 + d="m 659.56974,-233.52943 0,24.20748" 7.2665 + id="path8339" 7.2666 + inkscape:connector-curvature="0" 7.2667 + sodipodi:nodetypes="cc" /> 7.2668 + <g 7.2669 + transform="translate(80,80)" 7.2670 + id="g8347"> 7.2671 + <text 7.2672 + xml:space="preserve" 7.2673 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2674 + x="579.39252" 7.2675 + y="-335.22998" 7.2676 + id="text8349" 7.2677 + sodipodi:linespacing="100%"><tspan 7.2678 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2679 + sodipodi:role="line" 7.2680 + x="579.39252" 7.2681 + y="-335.22998" 7.2682 + id="tspan8359">send "need</tspan><tspan 7.2683 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2684 + sodipodi:role="line" 7.2685 + x="579.39252" 7.2686 + y="-326.22998" 7.2687 + id="tspan8412">work"?</tspan></text> 7.2688 + <rect 7.2689 + ry="0" 7.2690 + transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 7.2691 + y="93.582199" 7.2692 + x="624.01776" 7.2693 + height="36.457531" 7.2694 + width="36.810017" 7.2695 + id="rect8355" 7.2696 + style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.2697 + </g> 7.2698 + <text 7.2699 + xml:space="preserve" 7.2700 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2701 + x="681.43005" 7.2702 + y="-223.95343" 7.2703 + id="text8363" 7.2704 + sodipodi:linespacing="100%"><tspan 7.2705 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2706 + sodipodi:role="line" 7.2707 + x="681.43005" 7.2708 + y="-223.95343" 7.2709 + id="tspan8367">yes, send</tspan></text> 7.2710 + <path 7.2711 + sodipodi:nodetypes="cc" 7.2712 + inkscape:connector-curvature="0" 7.2713 + id="path8371" 7.2714 + d="M 630.69705,-196.1891 509.08787,-272.94486" 7.2715 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.2716 + <g 7.2717 + id="g8391" 7.2718 + transform="translate(80,20)"> 7.2719 + <text 7.2720 + sodipodi:linespacing="100%" 7.2721 + id="text8393" 7.2722 + y="-339.22998" 7.2723 + x="579.39252" 7.2724 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2725 + xml:space="preserve"><tspan 7.2726 + y="-339.22998" 7.2727 + x="579.39252" 7.2728 + sodipodi:role="line" 7.2729 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2730 + id="tspan8395">got</tspan><tspan 7.2731 + id="tspan8397" 7.2732 + y="-330.22998" 7.2733 + x="579.39252" 7.2734 + sodipodi:role="line" 7.2735 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">work?</tspan></text> 7.2736 + <rect 7.2737 + style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.2738 + id="rect8399" 7.2739 + width="36.810017" 7.2740 + height="36.457531" 7.2741 + x="624.01776" 7.2742 + y="93.582199" 7.2743 + transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 7.2744 + ry="0" /> 7.2745 + </g> 7.2746 + <path 7.2747 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 7.2748 + d="m 659.56974,-292.00562 0,13.28746" 7.2749 + id="path8401" 7.2750 + inkscape:connector-curvature="0" 7.2751 + sodipodi:nodetypes="cc" /> 7.2752 + <text 7.2753 + xml:space="preserve" 7.2754 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2755 + x="625.43005" 7.2756 + y="-247.95343" 7.2757 + id="text8403" 7.2758 + sodipodi:linespacing="100%"><tspan 7.2759 + id="tspan8405" 7.2760 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2761 + sodipodi:role="line" 7.2762 + x="625.43005" 7.2763 + y="-247.95343">Don't</tspan><tspan 7.2764 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2765 + sodipodi:role="line" 7.2766 + x="625.43005" 7.2767 + y="-238.95343" 7.2768 + id="tspan8460">send</tspan></text> 7.2769 + <path 7.2770 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 7.2771 + d="M 632.60182,-256.1891 509.09908,-276.55267" 7.2772 + id="path8408" 7.2773 + inkscape:connector-curvature="0" 7.2774 + sodipodi:nodetypes="cc" /> 7.2775 + <text 7.2776 + sodipodi:linespacing="100%" 7.2777 + id="text8420" 7.2778 + y="-317.95343" 7.2779 + x="697.43005" 7.2780 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2781 + xml:space="preserve"><tspan 7.2782 + id="tspan8422" 7.2783 + y="-317.95343" 7.2784 + x="697.43005" 7.2785 + sodipodi:role="line" 7.2786 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan 7.2787 + y="-308.95343" 7.2788 + x="697.43005" 7.2789 + sodipodi:role="line" 7.2790 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2791 + id="tspan8424">got</tspan><tspan 7.2792 + y="-299.95343" 7.2793 + x="697.43005" 7.2794 + sodipodi:role="line" 7.2795 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2796 + id="tspan8426">work</tspan></text> 7.2797 + <text 7.2798 + sodipodi:linespacing="100%" 7.2799 + id="text8428" 7.2800 + y="-560.5929" 7.2801 + x="737.27625" 7.2802 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2803 + xml:space="preserve"><tspan 7.2804 + y="-560.5929" 7.2805 + x="737.27625" 7.2806 + sodipodi:role="line" 7.2807 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2808 + id="tspan8434">The difference between top two paths</tspan><tspan 7.2809 + y="-551.5929" 7.2810 + x="737.27625" 7.2811 + sodipodi:role="line" 7.2812 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2813 + id="tspan8440">is the way the request hdlr+assigner has</tspan><tspan 7.2814 + y="-542.5929" 7.2815 + x="737.27625" 7.2816 + sodipodi:role="line" 7.2817 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2818 + id="tspan8442">been implemented -- use shared state on</tspan><tspan 7.2819 + y="-533.5929" 7.2820 + x="737.27625" 7.2821 + sodipodi:role="line" 7.2822 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2823 + id="tspan8450">top path, but only local on the second.</tspan><tspan 7.2824 + y="-524.5929" 7.2825 + x="737.27625" 7.2826 + sodipodi:role="line" 7.2827 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2828 + id="tspan8454">NOTE: the request hdlr and assigner are</tspan><tspan 7.2829 + y="-515.5929" 7.2830 + x="737.27625" 7.2831 + sodipodi:role="line" 7.2832 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2833 + id="tspan8456">combined into a single straight-line piece</tspan><tspan 7.2834 + y="-506.5929" 7.2835 + x="737.27625" 7.2836 + sodipodi:role="line" 7.2837 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2838 + id="tspan8458">of code.</tspan></text> 7.2839 + <path 7.2840 + sodipodi:nodetypes="cccc" 7.2841 + inkscape:connector-curvature="0" 7.2842 + id="path8466" 7.2843 + d="m 279.12967,-474.53026 -22.71235,36.22941 -0.21748,176.32874 29.26421,32.66347" 7.2844 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.2845 + <path 7.2846 + sodipodi:nodetypes="cc" 7.2847 + inkscape:connector-curvature="0" 7.2848 + id="path8468" 7.2849 + d="M 548.67838,-498.64159 808.48533,-608.65596" 7.2850 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 7.2851 + <text 7.2852 + sodipodi:linespacing="100%" 7.2853 + id="text8470" 7.2854 + y="-483.95343" 7.2855 + x="571.43005" 7.2856 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2857 + xml:space="preserve"><tspan 7.2858 + y="-483.95343" 7.2859 + x="571.43005" 7.2860 + sodipodi:role="line" 7.2861 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.2862 + id="tspan8472">No VPs</tspan><tspan 7.2863 + id="tspan8474" 7.2864 + y="-474.95343" 7.2865 + x="571.43005" 7.2866 + sodipodi:role="line" 7.2867 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> ready</tspan></text> 7.2868 + <text 7.2869 + sodipodi:linespacing="100%" 7.2870 + id="text8478" 7.2871 + y="86.04657" 7.2872 + x="531.43005" 7.2873 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2874 + xml:space="preserve" 7.2875 + inkscape:transform-center-x="-8.125"><tspan 7.2876 + y="86.04657" 7.2877 + x="531.43005" 7.2878 + sodipodi:role="line" 7.2879 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.2880 + id="tspan8538" /></text> 7.2881 + <flowRoot 7.2882 + xml:space="preserve" 7.2883 + id="flowRoot8540" 7.2884 + style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"><flowRegion 7.2885 + id="flowRegion8542"><rect 7.2886 + id="rect8544" 7.2887 + width="527.61902" 7.2888 + height="266.66666" 7.2889 + x="457.14285" 7.2890 + y="491.66666" 7.2891 + style="font-size:8px" /></flowRegion><flowPara 7.2892 + id="flowPara8546" /></flowRoot> <flowRoot 7.2893 + xml:space="preserve" 7.2894 + id="flowRoot8548" 7.2895 + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" 7.2896 + transform="translate(-336.46922,-441.70658)"><flowRegion 7.2897 + id="flowRegion8550"><rect 7.2898 + id="rect8552" 7.2899 + width="539.04761" 7.2900 + height="272.38095" 7.2901 + x="447.61905" 7.2902 + y="487.85715" /></flowRegion><flowPara 7.2903 + style="font-size:8px" 7.2904 + id="flowPara8765">Local semantic Env holds the Q of ready work-units </flowPara><flowPara 7.2905 + style="font-size:8px" 7.2906 + id="flowPara8805">-] Msgs update the local semantic state, and put work-units into this Q</flowPara><flowPara 7.2907 + style="font-size:8px" 7.2908 + id="flowPara8767">-] Shared sem state is traditional VMS, except req hdlr and assigner are same Fn</flowPara><flowPara 7.2909 + style="font-size:8px" 7.2910 + id="flowPara8769">-] Shared sem has its own structs to decide which VP is ready, and switches to it at end of Assigner</flowPara><flowPara 7.2911 + style="font-size:8px" 7.2912 + id="flowPara8771">-] Which core a VP runs on is decided between req hdlr and assigner, based on shared structs that hold the VPs</flowPara><flowPara 7.2913 + style="font-size:8px" 7.2914 + id="flowPara8773">-] For local-only, VP is moved to the core it runs on -- assigner only moves VPs to diff cores and receives them</flowPara><flowPara 7.2915 + style="font-size:8px" 7.2916 + id="flowPara8775">-] For atomic tasks, the task-info is sent betwn cores.. for VPs, whole live portion of stack is sent.</flowPara><flowPara 7.2917 + style="font-size:8px" 7.2918 + id="flowPara8777" /><flowPara 7.2919 + style="font-size:8px" 7.2920 + id="flowPara8823">Okay, so this fits the standard VMS model -- except now the core-controller is gone, so the extra level of UCC is taken away. Now, the MasterVP is "reusing" whatever VP has suspended. -- in a way, the core-controller plu AnimationMaster are reduced to the assembly call that the WrapperLib (WL) makes to end the current work-unit, which suspends the VP. Inside that suspend call, is the opportunity to switch between different processes, call upon VMS-only helper services, and so on.</flowPara><flowPara 7.2921 + style="font-size:8px" 7.2922 + id="flowPara8825">So, the switch-over is a function call to a wrapp-lib, which then does an assembly Fn call -- the assembly saves the stack state (regs already saved when did the wrapper-lib call), and then puts localEnv into the param reg (for 64 bit convention) and jumps to the plugin-fn. Note, there are three different assembly calls, one for each kind of work-unit, to end it. Sometimes work-unit calls assembly directly, sometimes it calls a wrapper-lib that just does all the work right there, sometimes the wrapper lib calls the appropriate assembly Fn.</flowPara><flowPara 7.2923 + style="font-size:8px" 7.2924 + id="flowPara8827" /><flowPara 7.2925 + style="font-size:8px" 7.2926 + id="flowPara8793">Need to modify request structure, so abstraction can supply services via request -- and perhaps library Fns that perform some of services direct from app, and other Fns for use inside the plugins.. such as Malloc-Free, create VP, create atomic-Task.. some are pure wrapper-lib, others are combo.. seeing one version of malloc for wrapper-lib, different for plugin and msg-system use.The msg system is details of impl of Lang Animator -- so plugin is still "completing" the lang animator by adding semantics</flowPara><flowPara 7.2927 + style="font-size:8px" 7.2928 + id="flowPara8801">Core-controller was a second level beneath the runtime (Language Animator is the runtime).. The sched slots were virtual physical animators, and the masterVP was the Language Animator, which the AnimationMaster Fn and the plugin Fns supplied the behavior of. The coreCtlr switched between levels -- The MasterVP was "outside" the framework of the schedling slots -- in a way it was beside them (they took turns getting the actual phys animator, so same level) and in other way was above -- it controlled what went into the slots, so above them. I another way, the MasterVP was the Language Animator, while the slots were virtual physical, so they had no locial connection -- the slots were related to the same thing that animatored the language animator.. a very strange arrangement.</flowPara></flowRoot> <text 7.2929 + xml:space="preserve" 7.2930 + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" 7.2931 + x="894.00696" 7.2932 + y="-182.42088" 7.2933 + id="text8833" 7.2934 + sodipodi:linespacing="125%"><tspan 7.2935 + sodipodi:role="line" 7.2936 + id="tspan8835" 7.2937 + x="894.00696" 7.2938 + y="-182.42088"> </tspan></text> 7.2939 + <g 7.2940 + id="g3490" 7.2941 + transform="translate(177.05331,-343.31973)"> 7.2942 + <text 7.2943 + sodipodi:linespacing="100%" 7.2944 + id="text3492" 7.2945 + y="285.39841" 7.2946 + x="222.37003" 7.2947 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2948 + xml:space="preserve"><tspan 7.2949 + y="285.39841" 7.2950 + x="222.37003" 7.2951 + sodipodi:role="line" 7.2952 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2953 + id="tspan3501">send work-</tspan><tspan 7.2954 + y="294.39841" 7.2955 + x="222.37003" 7.2956 + sodipodi:role="line" 7.2957 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2958 + id="tspan3511">push msg</tspan><tspan 7.2959 + y="303.39841" 7.2960 + x="223.72354" 7.2961 + sodipodi:role="line" 7.2962 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2963 + id="tspan3513">and start </tspan><tspan 7.2964 + y="312.39841" 7.2965 + x="222.37003" 7.2966 + sodipodi:role="line" 7.2967 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.2968 + id="tspan3515">timer for it.</tspan></text> 7.2969 + <rect 7.2970 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 7.2971 + id="rect3503" 7.2972 + width="57.486332" 7.2973 + height="63.639675" 7.2974 + x="193.78287" 7.2975 + y="274.77512" /> 7.2976 + </g> 7.2977 + <text 7.2978 + xml:space="preserve" 7.2979 + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" 7.2980 + x="84.168976" 7.2981 + y="-681.48474" 7.2982 + id="text3537" 7.2983 + sodipodi:linespacing="125%"><tspan 7.2984 + sodipodi:role="line" 7.2985 + id="tspan3539" 7.2986 + x="84.168976" 7.2987 + y="-681.48474" 7.2988 + style="font-size:40px">Control Flow of Universal Proto-Runtime </tspan></text> 7.2989 + <g 7.2990 + transform="translate(237.05331,-404)" 7.2991 + id="g3541"> 7.2992 + <text 7.2993 + xml:space="preserve" 7.2994 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.2995 + x="222.25137" 7.2996 + y="285.36765" 7.2997 + id="text3543" 7.2998 + sodipodi:linespacing="100%"><tspan 7.2999 + id="tspan3547" 7.3000 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.3001 + sodipodi:role="line" 7.3002 + x="222.25137" 7.3003 + y="285.36765">Expired timer</tspan><tspan 7.3004 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 7.3005 + sodipodi:role="line" 7.3006 + x="222.25137" 7.3007 + y="294.36765" 7.3008 + id="tspan3553">handler</tspan></text> 7.3009 + <rect 7.3010 + y="274.77512" 7.3011 + x="193.78287" 7.3012 + height="25.544432" 7.3013 + width="57.486332" 7.3014 + id="rect3549" 7.3015 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 7.3016 + </g> 7.3017 + <path 7.3018 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 7.3019 + d="m 323.63077,-165.12086 131.74691,33.98134" 7.3020 + id="path3555" 7.3021 + inkscape:connector-curvature="0" 7.3022 + sodipodi:nodetypes="cc" /> 7.3023 + <text 7.3024 + xml:space="preserve" 7.3025 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.3026 + x="393.43005" 7.3027 + y="-151.95343" 7.3028 + id="text3557" 7.3029 + sodipodi:linespacing="100%"><tspan 7.3030 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.3031 + sodipodi:role="line" 7.3032 + x="393.43005" 7.3033 + y="-151.95343" 7.3034 + id="tspan3561"> Expired</tspan><tspan 7.3035 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 7.3036 + sodipodi:role="line" 7.3037 + x="393.43005" 7.3038 + y="-142.95343" 7.3039 + id="tspan3565"> timer</tspan></text> 7.3040 + <text 7.3041 + xml:space="preserve" 7.3042 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 7.3043 + x="449.27625" 7.3044 + y="-93.273193" 7.3045 + id="text3567" 7.3046 + sodipodi:linespacing="100%"><tspan 7.3047 + id="tspan3579" 7.3048 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.3049 + sodipodi:role="line" 7.3050 + x="449.27625" 7.3051 + y="-93.273193">When send work to other core,</tspan><tspan 7.3052 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.3053 + sodipodi:role="line" 7.3054 + x="449.27625" 7.3055 + y="-84.273193" 7.3056 + id="tspan3591">it may be sleeping. So when timer</tspan><tspan 7.3057 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.3058 + sodipodi:role="line" 7.3059 + x="449.27625" 7.3060 + y="-75.273193" 7.3061 + id="tspan3593">expires, do escrow, which is atomic</tspan><tspan 7.3062 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.3063 + sodipodi:role="line" 7.3064 + x="449.27625" 7.3065 + y="-66.273193" 7.3066 + id="tspan3595">check of whether work was received.</tspan><tspan 7.3067 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.3068 + sodipodi:role="line" 7.3069 + x="449.27625" 7.3070 + y="-57.273193" 7.3071 + id="tspan3597">If not, then check if dest core is </tspan><tspan 7.3072 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.3073 + sodipodi:role="line" 7.3074 + x="449.27625" 7.3075 + y="-48.273193" 7.3076 + id="tspan3599">sleeping -- if no, then take work</tspan><tspan 7.3077 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.3078 + sodipodi:role="line" 7.3079 + x="449.27625" 7.3080 + y="-39.273193" 7.3081 + id="tspan3611">back. If yes, do wakeup and set a </tspan><tspan 7.3082 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.3083 + sodipodi:role="line" 7.3084 + x="449.27625" 7.3085 + y="-30.273193" 7.3086 + id="tspan3609">new timer, which will do this</tspan><tspan 7.3087 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 7.3088 + sodipodi:role="line" 7.3089 + x="449.27625" 7.3090 + y="-21.273193" 7.3091 + id="tspan3617">handling again.</tspan></text> 7.3092 + </g> 7.3093 +</svg>
8.1 Binary file 0__Papers/VMS/Split-core_msg_passing_based/figures/control_flow_big_page.pdf has changed
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 9.2 +++ b/0__Papers/VMS/Split-core_msg_passing_based/figures/control_flow_big_page.svg Mon Oct 08 23:03:26 2012 -0700 9.3 @@ -0,0 +1,3090 @@ 9.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 9.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 9.6 + 9.7 +<svg 9.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 9.9 + xmlns:cc="http://creativecommons.org/ns#" 9.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 9.11 + xmlns:svg="http://www.w3.org/2000/svg" 9.12 + xmlns="http://www.w3.org/2000/svg" 9.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 9.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 9.15 + width="1488.189" 9.16 + height="1052.3622" 9.17 + id="svg2" 9.18 + sodipodi:version="0.32" 9.19 + inkscape:version="0.48.1 " 9.20 + sodipodi:docname="control_flow.svg" 9.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 9.22 + version="1.1"> 9.23 + <defs 9.24 + id="defs4"> 9.25 + <marker 9.26 + inkscape:stockid="StopL" 9.27 + orient="auto" 9.28 + refY="0" 9.29 + refX="0" 9.30 + id="StopL" 9.31 + style="overflow:visible"> 9.32 + <path 9.33 + id="path10015" 9.34 + d="M 0,5.65 0,-5.65" 9.35 + style="fill:none;stroke:#000000;stroke-width:1pt" 9.36 + transform="scale(0.8,0.8)" 9.37 + inkscape:connector-curvature="0" /> 9.38 + </marker> 9.39 + <marker 9.40 + inkscape:stockid="TriangleOutL" 9.41 + orient="auto" 9.42 + refY="0" 9.43 + refX="0" 9.44 + id="TriangleOutL" 9.45 + style="overflow:visible"> 9.46 + <path 9.47 + id="path9988" 9.48 + d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" 9.49 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 9.50 + transform="scale(0.8,0.8)" 9.51 + inkscape:connector-curvature="0" /> 9.52 + </marker> 9.53 + <marker 9.54 + inkscape:stockid="Arrow2Mstart" 9.55 + orient="auto" 9.56 + refY="0" 9.57 + refX="0" 9.58 + id="Arrow2Mstart" 9.59 + style="overflow:visible"> 9.60 + <path 9.61 + id="path5492" 9.62 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.63 + 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" 9.64 + transform="scale(0.6,0.6)" 9.65 + inkscape:connector-curvature="0" /> 9.66 + </marker> 9.67 + <marker 9.68 + inkscape:stockid="Arrow2Mend" 9.69 + orient="auto" 9.70 + refY="0" 9.71 + refX="0" 9.72 + id="Arrow2Mend" 9.73 + style="overflow:visible"> 9.74 + <path 9.75 + id="path3563" 9.76 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.77 + 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" 9.78 + transform="scale(-0.6,-0.6)" 9.79 + inkscape:connector-curvature="0" /> 9.80 + </marker> 9.81 + <marker 9.82 + inkscape:stockid="TriangleOutM" 9.83 + orient="auto" 9.84 + refY="0" 9.85 + refX="0" 9.86 + id="TriangleOutM" 9.87 + style="overflow:visible"> 9.88 + <path 9.89 + id="path3682" 9.90 + d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" 9.91 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 9.92 + transform="scale(0.4,0.4)" 9.93 + inkscape:connector-curvature="0" /> 9.94 + </marker> 9.95 + <marker 9.96 + inkscape:stockid="Arrow2Lend" 9.97 + orient="auto" 9.98 + refY="0" 9.99 + refX="0" 9.100 + id="Arrow2Lend" 9.101 + style="overflow:visible"> 9.102 + <path 9.103 + id="path3557" 9.104 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.105 + 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" 9.106 + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" 9.107 + inkscape:connector-curvature="0" /> 9.108 + </marker> 9.109 + <marker 9.110 + inkscape:stockid="Arrow1Mstart" 9.111 + orient="auto" 9.112 + refY="0" 9.113 + refX="0" 9.114 + id="Arrow1Mstart" 9.115 + style="overflow:visible"> 9.116 + <path 9.117 + id="path3542" 9.118 + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" 9.119 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 9.120 + transform="matrix(0.4,0,0,0.4,4,0)" 9.121 + inkscape:connector-curvature="0" /> 9.122 + </marker> 9.123 + <marker 9.124 + inkscape:stockid="Arrow1Lend" 9.125 + orient="auto" 9.126 + refY="0" 9.127 + refX="0" 9.128 + id="Arrow1Lend" 9.129 + style="overflow:visible"> 9.130 + <path 9.131 + id="path3539" 9.132 + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" 9.133 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 9.134 + transform="matrix(-0.8,0,0,-0.8,-10,0)" 9.135 + inkscape:connector-curvature="0" /> 9.136 + </marker> 9.137 + <marker 9.138 + inkscape:stockid="Arrow1Lstart" 9.139 + orient="auto" 9.140 + refY="0" 9.141 + refX="0" 9.142 + id="Arrow1Lstart" 9.143 + style="overflow:visible"> 9.144 + <path 9.145 + id="path3536" 9.146 + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" 9.147 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 9.148 + transform="matrix(0.8,0,0,0.8,10,0)" 9.149 + inkscape:connector-curvature="0" /> 9.150 + </marker> 9.151 + <inkscape:perspective 9.152 + sodipodi:type="inkscape:persp3d" 9.153 + inkscape:vp_x="0 : 526.18109 : 1" 9.154 + inkscape:vp_y="0 : 1000 : 0" 9.155 + inkscape:vp_z="744.09448 : 526.18109 : 1" 9.156 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 9.157 + id="perspective10" /> 9.158 + <inkscape:perspective 9.159 + id="perspective4311" 9.160 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.161 + inkscape:vp_z="1 : 0.5 : 1" 9.162 + inkscape:vp_y="0 : 1000 : 0" 9.163 + inkscape:vp_x="0 : 0.5 : 1" 9.164 + sodipodi:type="inkscape:persp3d" /> 9.165 + <inkscape:perspective 9.166 + id="perspective4336" 9.167 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.168 + inkscape:vp_z="1 : 0.5 : 1" 9.169 + inkscape:vp_y="0 : 1000 : 0" 9.170 + inkscape:vp_x="0 : 0.5 : 1" 9.171 + sodipodi:type="inkscape:persp3d" /> 9.172 + <inkscape:perspective 9.173 + id="perspective4365" 9.174 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.175 + inkscape:vp_z="1 : 0.5 : 1" 9.176 + inkscape:vp_y="0 : 1000 : 0" 9.177 + inkscape:vp_x="0 : 0.5 : 1" 9.178 + sodipodi:type="inkscape:persp3d" /> 9.179 + <marker 9.180 + inkscape:stockid="Arrow2Mend" 9.181 + orient="auto" 9.182 + refY="0" 9.183 + refX="0" 9.184 + id="Arrow2Mend-9" 9.185 + style="overflow:visible"> 9.186 + <path 9.187 + id="path3563-4" 9.188 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.189 + 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" 9.190 + transform="scale(-0.6,-0.6)" 9.191 + inkscape:connector-curvature="0" /> 9.192 + </marker> 9.193 + <inkscape:perspective 9.194 + id="perspective4423" 9.195 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.196 + inkscape:vp_z="1 : 0.5 : 1" 9.197 + inkscape:vp_y="0 : 1000 : 0" 9.198 + inkscape:vp_x="0 : 0.5 : 1" 9.199 + sodipodi:type="inkscape:persp3d" /> 9.200 + <marker 9.201 + inkscape:stockid="Arrow2Mend" 9.202 + orient="auto" 9.203 + refY="0" 9.204 + refX="0" 9.205 + id="Arrow2Mend-8" 9.206 + style="overflow:visible"> 9.207 + <path 9.208 + id="path3563-2" 9.209 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.210 + 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" 9.211 + transform="scale(-0.6,-0.6)" 9.212 + inkscape:connector-curvature="0" /> 9.213 + </marker> 9.214 + <inkscape:perspective 9.215 + id="perspective4461" 9.216 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.217 + inkscape:vp_z="1 : 0.5 : 1" 9.218 + inkscape:vp_y="0 : 1000 : 0" 9.219 + inkscape:vp_x="0 : 0.5 : 1" 9.220 + sodipodi:type="inkscape:persp3d" /> 9.221 + <inkscape:perspective 9.222 + id="perspective14081" 9.223 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.224 + inkscape:vp_z="1 : 0.5 : 1" 9.225 + inkscape:vp_y="0 : 1000 : 0" 9.226 + inkscape:vp_x="0 : 0.5 : 1" 9.227 + sodipodi:type="inkscape:persp3d" /> 9.228 + <inkscape:perspective 9.229 + id="perspective14206" 9.230 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.231 + inkscape:vp_z="1 : 0.5 : 1" 9.232 + inkscape:vp_y="0 : 1000 : 0" 9.233 + inkscape:vp_x="0 : 0.5 : 1" 9.234 + sodipodi:type="inkscape:persp3d" /> 9.235 + <inkscape:perspective 9.236 + id="perspective14299" 9.237 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.238 + inkscape:vp_z="1 : 0.5 : 1" 9.239 + inkscape:vp_y="0 : 1000 : 0" 9.240 + inkscape:vp_x="0 : 0.5 : 1" 9.241 + sodipodi:type="inkscape:persp3d" /> 9.242 + <inkscape:perspective 9.243 + id="perspective16915" 9.244 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.245 + inkscape:vp_z="1 : 0.5 : 1" 9.246 + inkscape:vp_y="0 : 1000 : 0" 9.247 + inkscape:vp_x="0 : 0.5 : 1" 9.248 + sodipodi:type="inkscape:persp3d" /> 9.249 + <inkscape:perspective 9.250 + id="perspective16946" 9.251 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.252 + inkscape:vp_z="1 : 0.5 : 1" 9.253 + inkscape:vp_y="0 : 1000 : 0" 9.254 + inkscape:vp_x="0 : 0.5 : 1" 9.255 + sodipodi:type="inkscape:persp3d" /> 9.256 + <inkscape:perspective 9.257 + id="perspective17789" 9.258 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.259 + inkscape:vp_z="1 : 0.5 : 1" 9.260 + inkscape:vp_y="0 : 1000 : 0" 9.261 + inkscape:vp_x="0 : 0.5 : 1" 9.262 + sodipodi:type="inkscape:persp3d" /> 9.263 + <inkscape:perspective 9.264 + id="perspective17820" 9.265 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.266 + inkscape:vp_z="1 : 0.5 : 1" 9.267 + inkscape:vp_y="0 : 1000 : 0" 9.268 + inkscape:vp_x="0 : 0.5 : 1" 9.269 + sodipodi:type="inkscape:persp3d" /> 9.270 + <marker 9.271 + inkscape:stockid="Arrow2Mend" 9.272 + orient="auto" 9.273 + refY="0" 9.274 + refX="0" 9.275 + id="Arrow2Mend-8-2" 9.276 + style="overflow:visible"> 9.277 + <path 9.278 + id="path3563-2-3" 9.279 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.280 + 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" 9.281 + transform="scale(-0.6,-0.6)" 9.282 + inkscape:connector-curvature="0" /> 9.283 + </marker> 9.284 + <inkscape:perspective 9.285 + id="perspective17848" 9.286 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.287 + inkscape:vp_z="1 : 0.5 : 1" 9.288 + inkscape:vp_y="0 : 1000 : 0" 9.289 + inkscape:vp_x="0 : 0.5 : 1" 9.290 + sodipodi:type="inkscape:persp3d" /> 9.291 + <inkscape:perspective 9.292 + id="perspective17891" 9.293 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.294 + inkscape:vp_z="1 : 0.5 : 1" 9.295 + inkscape:vp_y="0 : 1000 : 0" 9.296 + inkscape:vp_x="0 : 0.5 : 1" 9.297 + sodipodi:type="inkscape:persp3d" /> 9.298 + <marker 9.299 + inkscape:stockid="Arrow2Mend" 9.300 + orient="auto" 9.301 + refY="0" 9.302 + refX="0" 9.303 + id="Arrow2Mend-8-7" 9.304 + style="overflow:visible"> 9.305 + <path 9.306 + id="path3563-2-8" 9.307 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.308 + 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" 9.309 + transform="scale(-0.6,-0.6)" 9.310 + inkscape:connector-curvature="0" /> 9.311 + </marker> 9.312 + <inkscape:perspective 9.313 + id="perspective17925" 9.314 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.315 + inkscape:vp_z="1 : 0.5 : 1" 9.316 + inkscape:vp_y="0 : 1000 : 0" 9.317 + inkscape:vp_x="0 : 0.5 : 1" 9.318 + sodipodi:type="inkscape:persp3d" /> 9.319 + <inkscape:perspective 9.320 + id="perspective17996" 9.321 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.322 + inkscape:vp_z="1 : 0.5 : 1" 9.323 + inkscape:vp_y="0 : 1000 : 0" 9.324 + inkscape:vp_x="0 : 0.5 : 1" 9.325 + sodipodi:type="inkscape:persp3d" /> 9.326 + <inkscape:perspective 9.327 + id="perspective18039" 9.328 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.329 + inkscape:vp_z="1 : 0.5 : 1" 9.330 + inkscape:vp_y="0 : 1000 : 0" 9.331 + inkscape:vp_x="0 : 0.5 : 1" 9.332 + sodipodi:type="inkscape:persp3d" /> 9.333 + <inkscape:perspective 9.334 + id="perspective18073" 9.335 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.336 + inkscape:vp_z="1 : 0.5 : 1" 9.337 + inkscape:vp_y="0 : 1000 : 0" 9.338 + inkscape:vp_x="0 : 0.5 : 1" 9.339 + sodipodi:type="inkscape:persp3d" /> 9.340 + <inkscape:perspective 9.341 + id="perspective4016" 9.342 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.343 + inkscape:vp_z="1 : 0.5 : 1" 9.344 + inkscape:vp_y="0 : 1000 : 0" 9.345 + inkscape:vp_x="0 : 0.5 : 1" 9.346 + sodipodi:type="inkscape:persp3d" /> 9.347 + <inkscape:perspective 9.348 + id="perspective4046" 9.349 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.350 + inkscape:vp_z="1 : 0.5 : 1" 9.351 + inkscape:vp_y="0 : 1000 : 0" 9.352 + inkscape:vp_x="0 : 0.5 : 1" 9.353 + sodipodi:type="inkscape:persp3d" /> 9.354 + <inkscape:perspective 9.355 + id="perspective4071" 9.356 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.357 + inkscape:vp_z="1 : 0.5 : 1" 9.358 + inkscape:vp_y="0 : 1000 : 0" 9.359 + inkscape:vp_x="0 : 0.5 : 1" 9.360 + sodipodi:type="inkscape:persp3d" /> 9.361 + <inkscape:perspective 9.362 + id="perspective4101" 9.363 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.364 + inkscape:vp_z="1 : 0.5 : 1" 9.365 + inkscape:vp_y="0 : 1000 : 0" 9.366 + inkscape:vp_x="0 : 0.5 : 1" 9.367 + sodipodi:type="inkscape:persp3d" /> 9.368 + <inkscape:perspective 9.369 + id="perspective5945" 9.370 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.371 + inkscape:vp_z="1 : 0.5 : 1" 9.372 + inkscape:vp_y="0 : 1000 : 0" 9.373 + inkscape:vp_x="0 : 0.5 : 1" 9.374 + sodipodi:type="inkscape:persp3d" /> 9.375 + <inkscape:perspective 9.376 + id="perspective4144" 9.377 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.378 + inkscape:vp_z="1 : 0.5 : 1" 9.379 + inkscape:vp_y="0 : 1000 : 0" 9.380 + inkscape:vp_x="0 : 0.5 : 1" 9.381 + sodipodi:type="inkscape:persp3d" /> 9.382 + <marker 9.383 + inkscape:stockid="Arrow2Mend" 9.384 + orient="auto" 9.385 + refY="0" 9.386 + refX="0" 9.387 + id="Arrow2Mend-8-7-1" 9.388 + style="overflow:visible"> 9.389 + <path 9.390 + id="path3563-2-8-7" 9.391 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.392 + 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" 9.393 + transform="scale(-0.6,-0.6)" 9.394 + inkscape:connector-curvature="0" /> 9.395 + </marker> 9.396 + <inkscape:perspective 9.397 + id="perspective4733" 9.398 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 9.399 + inkscape:vp_z="1 : 0.5 : 1" 9.400 + inkscape:vp_y="0 : 1000 : 0" 9.401 + inkscape:vp_x="0 : 0.5 : 1" 9.402 + sodipodi:type="inkscape:persp3d" /> 9.403 + <marker 9.404 + inkscape:stockid="Arrow2Mend" 9.405 + orient="auto" 9.406 + refY="0" 9.407 + refX="0" 9.408 + id="Arrow2Mend-8-7-12" 9.409 + style="overflow:visible"> 9.410 + <path 9.411 + inkscape:connector-curvature="0" 9.412 + id="path3563-2-8-2" 9.413 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.414 + 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" 9.415 + transform="scale(-0.6,-0.6)" /> 9.416 + </marker> 9.417 + <marker 9.418 + inkscape:stockid="Arrow2Mend" 9.419 + orient="auto" 9.420 + refY="0" 9.421 + refX="0" 9.422 + id="marker8401" 9.423 + style="overflow:visible"> 9.424 + <path 9.425 + inkscape:connector-curvature="0" 9.426 + id="path8403" 9.427 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.428 + 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" 9.429 + transform="scale(-0.6,-0.6)" /> 9.430 + </marker> 9.431 + <marker 9.432 + inkscape:stockid="Arrow2Mend" 9.433 + orient="auto" 9.434 + refY="0" 9.435 + refX="0" 9.436 + id="marker8405" 9.437 + style="overflow:visible"> 9.438 + <path 9.439 + inkscape:connector-curvature="0" 9.440 + id="path8407" 9.441 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.442 + 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" 9.443 + transform="scale(-0.6,-0.6)" /> 9.444 + </marker> 9.445 + <marker 9.446 + inkscape:stockid="Arrow2Mend" 9.447 + orient="auto" 9.448 + refY="0" 9.449 + refX="0" 9.450 + id="marker8409" 9.451 + style="overflow:visible"> 9.452 + <path 9.453 + inkscape:connector-curvature="0" 9.454 + id="path8411" 9.455 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.456 + 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" 9.457 + transform="scale(-0.6,-0.6)" /> 9.458 + </marker> 9.459 + <marker 9.460 + inkscape:stockid="Arrow2Mend" 9.461 + orient="auto" 9.462 + refY="0" 9.463 + refX="0" 9.464 + id="marker8413" 9.465 + style="overflow:visible"> 9.466 + <path 9.467 + inkscape:connector-curvature="0" 9.468 + id="path8415" 9.469 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.470 + 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" 9.471 + transform="scale(-0.6,-0.6)" /> 9.472 + </marker> 9.473 + <marker 9.474 + inkscape:stockid="Arrow2Mend" 9.475 + orient="auto" 9.476 + refY="0" 9.477 + refX="0" 9.478 + id="marker8417" 9.479 + style="overflow:visible"> 9.480 + <path 9.481 + inkscape:connector-curvature="0" 9.482 + id="path8419" 9.483 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.484 + 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" 9.485 + transform="scale(-0.6,-0.6)" /> 9.486 + </marker> 9.487 + <marker 9.488 + inkscape:stockid="Arrow2Mend" 9.489 + orient="auto" 9.490 + refY="0" 9.491 + refX="0" 9.492 + id="Arrow2Mend-8-7-17" 9.493 + style="overflow:visible"> 9.494 + <path 9.495 + inkscape:connector-curvature="0" 9.496 + id="path3563-2-8-5" 9.497 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.498 + 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" 9.499 + transform="scale(-0.6,-0.6)" /> 9.500 + </marker> 9.501 + <marker 9.502 + inkscape:stockid="Arrow2Mend" 9.503 + orient="auto" 9.504 + refY="0" 9.505 + refX="0" 9.506 + id="Arrow2Mend-8-7-0" 9.507 + style="overflow:visible"> 9.508 + <path 9.509 + inkscape:connector-curvature="0" 9.510 + id="path3563-2-8-3" 9.511 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 9.512 + 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" 9.513 + transform="scale(-0.6,-0.6)" /> 9.514 + </marker> 9.515 + </defs> 9.516 + <sodipodi:namedview 9.517 + id="base" 9.518 + pagecolor="#ffffff" 9.519 + bordercolor="#666666" 9.520 + borderopacity="1.0" 9.521 + gridtolerance="10000" 9.522 + guidetolerance="10" 9.523 + objecttolerance="10" 9.524 + inkscape:pageopacity="0.0" 9.525 + inkscape:pageshadow="2" 9.526 + inkscape:zoom="0.97968464" 9.527 + inkscape:cx="457.74508" 9.528 + inkscape:cy="680.01473" 9.529 + inkscape:document-units="px" 9.530 + inkscape:current-layer="layer1" 9.531 + showgrid="false" 9.532 + inkscape:window-width="1600" 9.533 + inkscape:window-height="848" 9.534 + inkscape:window-x="-8" 9.535 + inkscape:window-y="-8" 9.536 + inkscape:window-maximized="1" /> 9.537 + <metadata 9.538 + id="metadata7"> 9.539 + <rdf:RDF> 9.540 + <cc:Work 9.541 + rdf:about=""> 9.542 + <dc:format>image/svg+xml</dc:format> 9.543 + <dc:type 9.544 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 9.545 + <dc:title></dc:title> 9.546 + </cc:Work> 9.547 + </rdf:RDF> 9.548 + </metadata> 9.549 + <g 9.550 + inkscape:label="Layer 1" 9.551 + inkscape:groupmode="layer" 9.552 + id="layer1" 9.553 + transform="translate(-3.5307846,729.06884)"> 9.554 + <text 9.555 + xml:space="preserve" 9.556 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.557 + x="441.66748" 9.558 + y="344.66492" 9.559 + id="text8002" 9.560 + sodipodi:linespacing="100%"><tspan 9.561 + sodipodi:role="line" 9.562 + x="441.66748" 9.563 + y="344.66492" 9.564 + style="font-size:8px" 9.565 + id="tspan12172" /></text> 9.566 + <text 9.567 + xml:space="preserve" 9.568 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.569 + x="368.25397" 9.570 + y="345.27225" 9.571 + id="text5849"><tspan 9.572 + sodipodi:role="line" 9.573 + id="tspan5851" 9.574 + x="368.25397" 9.575 + y="345.27225" /></text> 9.576 + <g 9.577 + transform="translate(-22.94669,-784)" 9.578 + id="g8065"> 9.579 + <text 9.580 + xml:space="preserve" 9.581 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.582 + x="222.37003" 9.583 + y="285.39841" 9.584 + id="text8067" 9.585 + sodipodi:linespacing="100%"><tspan 9.586 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.587 + sodipodi:role="line" 9.588 + x="222.37003" 9.589 + y="285.39841" 9.590 + id="tspan11696">save VP</tspan><tspan 9.591 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.592 + sodipodi:role="line" 9.593 + x="222.37003" 9.594 + y="294.39841" 9.595 + id="tspan12201">context</tspan></text> 9.596 + <rect 9.597 + y="274.77512" 9.598 + x="193.78287" 9.599 + height="25.544432" 9.600 + width="57.486332" 9.601 + id="rect8073" 9.602 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.603 + </g> 9.604 + <g 9.605 + id="g11700" 9.606 + transform="translate(160,-40)"> 9.607 + <text 9.608 + xml:space="preserve" 9.609 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.610 + x="579.39252" 9.611 + y="-343.22998" 9.612 + id="text11476" 9.613 + sodipodi:linespacing="100%"><tspan 9.614 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.615 + sodipodi:role="line" 9.616 + x="579.39252" 9.617 + y="-343.22998" 9.618 + id="tspan11478">which</tspan><tspan 9.619 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.620 + sodipodi:role="line" 9.621 + x="579.39252" 9.622 + y="-334.22998" 9.623 + id="tspan12299">context</tspan><tspan 9.624 + id="tspan11480" 9.625 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.626 + sodipodi:role="line" 9.627 + x="579.39252" 9.628 + y="-325.22998">switch</tspan></text> 9.629 + <rect 9.630 + ry="0" 9.631 + transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 9.632 + y="93.582199" 9.633 + x="624.01776" 9.634 + height="36.457531" 9.635 + width="36.810017" 9.636 + id="rect11482" 9.637 + style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.638 + </g> 9.639 + <g 9.640 + transform="translate(177.05331,-664)" 9.641 + id="g8103"> 9.642 + <text 9.643 + xml:space="preserve" 9.644 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.645 + x="222.25137" 9.646 + y="285.36765" 9.647 + id="text8105" 9.648 + sodipodi:linespacing="100%"><tspan 9.649 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.650 + sodipodi:role="line" 9.651 + x="222.25137" 9.652 + y="285.36765" 9.653 + id="tspan8111">constraint</tspan><tspan 9.654 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.655 + sodipodi:role="line" 9.656 + x="222.25137" 9.657 + y="294.36765" 9.658 + id="tspan8115">update hdlr</tspan></text> 9.659 + <rect 9.660 + y="274.77512" 9.661 + x="193.78287" 9.662 + height="25.544432" 9.663 + width="57.486332" 9.664 + id="rect8109" 9.665 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.666 + </g> 9.667 + <g 9.668 + id="g8165" 9.669 + transform="translate(177.05331,-604)"> 9.670 + <text 9.671 + sodipodi:linespacing="100%" 9.672 + id="text8167" 9.673 + y="285.39841" 9.674 + x="222.37003" 9.675 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.676 + xml:space="preserve"><tspan 9.677 + id="tspan8169" 9.678 + y="285.39841" 9.679 + x="222.37003" 9.680 + sodipodi:role="line" 9.681 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Push work</tspan><tspan 9.682 + y="294.39841" 9.683 + x="222.37003" 9.684 + sodipodi:role="line" 9.685 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.686 + id="tspan11020">onto Q</tspan></text> 9.687 + <rect 9.688 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.689 + id="rect8171" 9.690 + width="57.486332" 9.691 + height="25.544432" 9.692 + x="193.78287" 9.693 + y="274.77512" /> 9.694 + </g> 9.695 + <g 9.696 + transform="translate(437.05331,-664)" 9.697 + id="g8173"> 9.698 + <text 9.699 + xml:space="preserve" 9.700 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.701 + x="222.37003" 9.702 + y="285.69943" 9.703 + id="text8175" 9.704 + sodipodi:linespacing="100%"><tspan 9.705 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.706 + sodipodi:role="line" 9.707 + x="222.37003" 9.708 + y="285.69943" 9.709 + id="tspan11014">Take work-</tspan><tspan 9.710 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.711 + sodipodi:role="line" 9.712 + x="222.37003" 9.713 + y="294.69943" 9.714 + id="tspan11018">unit from Q</tspan></text> 9.715 + <rect 9.716 + y="274.77512" 9.717 + x="193.78287" 9.718 + height="25.544432" 9.719 + width="57.486332" 9.720 + id="rect8179" 9.721 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.722 + </g> 9.723 + <path 9.724 + sodipodi:nodetypes="cc" 9.725 + inkscape:connector-curvature="0" 9.726 + id="path8510" 9.727 + d="m 30.09217,-376.20795 134.75175,0" 9.728 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" /> 9.729 + <text 9.730 + xml:space="preserve" 9.731 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.732 + x="95.276283" 9.733 + y="-377.95343" 9.734 + id="text8067-3" 9.735 + sodipodi:linespacing="100%"><tspan 9.736 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.737 + sodipodi:role="line" 9.738 + x="95.276283" 9.739 + y="-377.95343" 9.740 + id="tspan8071-6">Non-suspend end of work-unit</tspan></text> 9.741 + <path 9.742 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" 9.743 + d="m 30.09217,-496.20795 134.75175,0" 9.744 + id="path11002" 9.745 + inkscape:connector-curvature="0" 9.746 + sodipodi:nodetypes="cc" /> 9.747 + <text 9.748 + sodipodi:linespacing="100%" 9.749 + id="text11004" 9.750 + y="-497.95343" 9.751 + x="95.430077" 9.752 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.753 + xml:space="preserve"><tspan 9.754 + id="tspan11006" 9.755 + y="-497.95343" 9.756 + x="95.430077" 9.757 + sodipodi:role="line" 9.758 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Suspend at end of work-unit</tspan></text> 9.759 + <path 9.760 + sodipodi:nodetypes="cc" 9.761 + inkscape:connector-curvature="0" 9.762 + id="path11472" 9.763 + d="m 399.56974,-364.00562 0,34.68367" 9.764 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.765 + <path 9.766 + sodipodi:nodetypes="cc" 9.767 + inkscape:connector-curvature="0" 9.768 + id="path11484" 9.769 + d="m 688.09217,-376.20795 22.13646,0" 9.770 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.771 + <path 9.772 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 9.773 + d="m 768.09217,-376.20795 41.4633,0" 9.774 + id="path11518" 9.775 + inkscape:connector-curvature="0" 9.776 + sodipodi:nodetypes="cc" /> 9.777 + <text 9.778 + sodipodi:linespacing="100%" 9.779 + id="text11578" 9.780 + y="-387.95343" 9.781 + x="295.27628" 9.782 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.783 + xml:space="preserve"><tspan 9.784 + id="tspan11580" 9.785 + y="-387.95343" 9.786 + x="295.27628" 9.787 + sodipodi:role="line" 9.788 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" /></text> 9.789 + <text 9.790 + xml:space="preserve" 9.791 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.792 + x="729.43005" 9.793 + y="-341.95343" 9.794 + id="text11616" 9.795 + sodipodi:linespacing="100%"><tspan 9.796 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.797 + sodipodi:role="line" 9.798 + x="730.78357" 9.799 + y="-341.95343" 9.800 + id="tspan11618"> new </tspan><tspan 9.801 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.802 + sodipodi:role="line" 9.803 + x="729.43005" 9.804 + y="-332.95343" 9.805 + id="tspan12175"> work-unit</tspan><tspan 9.806 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.807 + sodipodi:role="line" 9.808 + x="729.43005" 9.809 + y="-323.95343" 9.810 + id="tspan11620"> is attached to</tspan><tspan 9.811 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.812 + sodipodi:role="line" 9.813 + x="729.43005" 9.814 + y="-314.95343" 9.815 + id="tspan11622"> a VP's context</tspan></text> 9.816 + <text 9.817 + sodipodi:linespacing="100%" 9.818 + id="text11624" 9.819 + y="-405.95343" 9.820 + x="787.43005" 9.821 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.822 + xml:space="preserve"><tspan 9.823 + id="tspan11626" 9.824 + y="-405.95343" 9.825 + x="787.43005" 9.826 + sodipodi:role="line" 9.827 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">new work-</tspan><tspan 9.828 + id="tspan11630" 9.829 + y="-396.95343" 9.830 + x="787.43005" 9.831 + sodipodi:role="line" 9.832 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">unit has</tspan><tspan 9.833 + y="-387.95343" 9.834 + x="787.43005" 9.835 + sodipodi:role="line" 9.836 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.837 + id="tspan12161">own local</tspan><tspan 9.838 + y="-378.95343" 9.839 + x="787.43005" 9.840 + sodipodi:role="line" 9.841 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.842 + id="tspan11634">context</tspan></text> 9.843 + <g 9.844 + transform="translate(617.05331,-683.31973)" 9.845 + id="g11656"> 9.846 + <text 9.847 + xml:space="preserve" 9.848 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.849 + x="222.37003" 9.850 + y="285.39841" 9.851 + id="text11658" 9.852 + sodipodi:linespacing="100%"><tspan 9.853 + id="tspan11668" 9.854 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.855 + sodipodi:role="line" 9.856 + x="222.37003" 9.857 + y="285.39841">load curr VP</tspan><tspan 9.858 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.859 + sodipodi:role="line" 9.860 + x="222.37003" 9.861 + y="294.39841" 9.862 + id="tspan11686">with context</tspan><tspan 9.863 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.864 + sodipodi:role="line" 9.865 + x="222.37003" 9.866 + y="303.39841" 9.867 + id="tspan11688">from new</tspan><tspan 9.868 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.869 + sodipodi:role="line" 9.870 + x="222.37003" 9.871 + y="312.39841" 9.872 + id="tspan11690">work-unit</tspan></text> 9.873 + <rect 9.874 + y="274.77512" 9.875 + x="193.78287" 9.876 + height="63.639675" 9.877 + width="57.486332" 9.878 + id="rect11670" 9.879 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.880 + </g> 9.881 + <text 9.882 + sodipodi:linespacing="100%" 9.883 + id="text11718" 9.884 + y="-367.95343" 9.885 + x="95.276283" 9.886 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.887 + xml:space="preserve"><tspan 9.888 + id="tspan11720" 9.889 + y="-367.95343" 9.890 + x="95.276283" 9.891 + sodipodi:role="line" 9.892 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">which has attached context</tspan></text> 9.893 + <path 9.894 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" 9.895 + d="m 30.09217,-296.20795 134.75175,0" 9.896 + id="path11742" 9.897 + inkscape:connector-curvature="0" 9.898 + sodipodi:nodetypes="cc" /> 9.899 + <text 9.900 + sodipodi:linespacing="100%" 9.901 + id="text11744" 9.902 + y="-297.95343" 9.903 + x="95.276283" 9.904 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.905 + xml:space="preserve"><tspan 9.906 + id="tspan11746" 9.907 + y="-297.95343" 9.908 + x="95.276283" 9.909 + sodipodi:role="line" 9.910 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Non-suspend end of work-unit</tspan></text> 9.911 + <text 9.912 + xml:space="preserve" 9.913 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.914 + x="95.276283" 9.915 + y="-287.95343" 9.916 + id="text11750" 9.917 + sodipodi:linespacing="100%"><tspan 9.918 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.919 + sodipodi:role="line" 9.920 + x="95.276283" 9.921 + y="-287.95343" 9.922 + id="tspan11752">purely local (no ctxt attached)</tspan></text> 9.923 + <g 9.924 + id="g11754" 9.925 + transform="translate(-22.94669,-664)"> 9.926 + <text 9.927 + sodipodi:linespacing="100%" 9.928 + id="text11756" 9.929 + y="285.39841" 9.930 + x="222.37003" 9.931 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.932 + xml:space="preserve"><tspan 9.933 + id="tspan11758" 9.934 + y="285.39841" 9.935 + x="222.37003" 9.936 + sodipodi:role="line" 9.937 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">save stack</tspan><tspan 9.938 + id="tspan11760" 9.939 + y="294.39841" 9.940 + x="222.37003" 9.941 + sodipodi:role="line" 9.942 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">& frame ptrs</tspan></text> 9.943 + <rect 9.944 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.945 + id="rect11762" 9.946 + width="57.486332" 9.947 + height="25.544432" 9.948 + x="193.78287" 9.949 + y="274.77512" /> 9.950 + </g> 9.951 + <text 9.952 + xml:space="preserve" 9.953 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.954 + x="29.276283" 9.955 + y="-349.95343" 9.956 + id="text11764" 9.957 + sodipodi:linespacing="100%"><tspan 9.958 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.959 + sodipodi:role="line" 9.960 + x="29.276283" 9.961 + y="-349.95343" 9.962 + id="tspan11766">CILK is example of this case,</tspan><tspan 9.963 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.964 + sodipodi:role="line" 9.965 + x="29.276283" 9.966 + y="-340.95343" 9.967 + id="tspan12203">when leaf child finishes</tspan></text> 9.968 + <text 9.969 + sodipodi:linespacing="100%" 9.970 + id="text11768" 9.971 + y="-269.95343" 9.972 + x="29.276283" 9.973 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.974 + xml:space="preserve"><tspan 9.975 + id="tspan11770" 9.976 + y="-269.95343" 9.977 + x="29.276283" 9.978 + sodipodi:role="line" 9.979 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">Dataflow is example of this case</tspan></text> 9.980 + <text 9.981 + sodipodi:linespacing="100%" 9.982 + id="text11772" 9.983 + y="-473.95343" 9.984 + x="29.276283" 9.985 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.986 + xml:space="preserve"><tspan 9.987 + id="tspan11774" 9.988 + y="-473.95343" 9.989 + x="29.276283" 9.990 + sodipodi:role="line" 9.991 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">pthread is example of this case,</tspan><tspan 9.992 + y="-464.95343" 9.993 + x="29.276283" 9.994 + sodipodi:role="line" 9.995 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.996 + id="tspan3625">as is Cilk when suspends on sync</tspan></text> 9.997 + <path 9.998 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 9.999 + d="m 170.33352,-296.29839 100.31543,-78.14797" 9.1000 + id="path11776" 9.1001 + inkscape:connector-curvature="0" 9.1002 + sodipodi:nodetypes="cc" /> 9.1003 + <path 9.1004 + sodipodi:nodetypes="cc" 9.1005 + inkscape:connector-curvature="0" 9.1006 + id="path12020" 9.1007 + d="m 228.09216,-376.20795 41.06088,0" 9.1008 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.1009 + <path 9.1010 + sodipodi:nodetypes="cc" 9.1011 + inkscape:connector-curvature="0" 9.1012 + id="path12086" 9.1013 + d="m 659.56974,-364.00562 0,24.4507" 9.1014 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.1015 + <text 9.1016 + xml:space="preserve" 9.1017 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1018 + x="661.43005" 9.1019 + y="-355.95343" 9.1020 + id="text12088" 9.1021 + sodipodi:linespacing="100%"><tspan 9.1022 + style="font-size:9px;text-align:start;text-anchor:start;fill:#008000;fill-opacity:1" 9.1023 + sodipodi:role="line" 9.1024 + x="661.43005" 9.1025 + y="-355.95343" 9.1026 + id="tspan12090">no work</tspan><tspan 9.1027 + style="font-size:9px;text-align:start;text-anchor:start;fill:#008000;fill-opacity:1" 9.1028 + sodipodi:role="line" 9.1029 + x="661.43005" 9.1030 + y="-346.95343" 9.1031 + id="tspan12092">in Q</tspan></text> 9.1032 + <path 9.1033 + sodipodi:nodetypes="cc" 9.1034 + inkscape:connector-curvature="0" 9.1035 + id="path12155" 9.1036 + d="m 737.20425,-353.48137 72.41226,56.50237" 9.1037 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.1038 + <path 9.1039 + sodipodi:nodetypes="cc" 9.1040 + inkscape:connector-curvature="0" 9.1041 + id="path12197" 9.1042 + d="m 688.33352,-316.29839 23.17876,-59.17839" 9.1043 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.1044 + <text 9.1045 + sodipodi:linespacing="100%" 9.1046 + id="text12205" 9.1047 + y="-412.5929" 9.1048 + x="369.27625" 9.1049 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1050 + xml:space="preserve"><tspan 9.1051 + id="tspan12209" 9.1052 + y="-412.5929" 9.1053 + x="369.27625" 9.1054 + sodipodi:role="line" 9.1055 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in CILK, counts</tspan><tspan 9.1056 + y="-403.5929" 9.1057 + x="369.27625" 9.1058 + sodipodi:role="line" 9.1059 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1060 + id="tspan12307"> child ends, and</tspan><tspan 9.1061 + y="-394.5929" 9.1062 + x="369.27625" 9.1063 + sodipodi:role="line" 9.1064 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1065 + id="tspan12313"> handles sync)</tspan></text> 9.1066 + <text 9.1067 + xml:space="preserve" 9.1068 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1069 + x="627.27625" 9.1070 + y="-411.95343" 9.1071 + id="text12213" 9.1072 + sodipodi:linespacing="100%"><tspan 9.1073 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1074 + sodipodi:role="line" 9.1075 + x="627.27625" 9.1076 + y="-411.95343" 9.1077 + id="tspan12221">(for CILK, Q</tspan><tspan 9.1078 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1079 + sodipodi:role="line" 9.1080 + x="627.27625" 9.1081 + y="-402.95343" 9.1082 + id="tspan12305"> filled by async</tspan><tspan 9.1083 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1084 + sodipodi:role="line" 9.1085 + x="627.27625" 9.1086 + y="-393.95343" 9.1087 + id="tspan12219"> spawns)</tspan></text> 9.1088 + <path 9.1089 + sodipodi:nodetypes="cc" 9.1090 + inkscape:connector-curvature="0" 9.1091 + id="path12275" 9.1092 + d="m 328.09217,-376.20795 41.44502,0" 9.1093 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.1094 + <g 9.1095 + id="g12277" 9.1096 + transform="translate(-280,-40)"> 9.1097 + <text 9.1098 + sodipodi:linespacing="100%" 9.1099 + id="text12279" 9.1100 + y="-339.22998" 9.1101 + x="579.39252" 9.1102 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1103 + xml:space="preserve"><tspan 9.1104 + id="tspan12281" 9.1105 + y="-339.22998" 9.1106 + x="579.39252" 9.1107 + sodipodi:role="line" 9.1108 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">time to</tspan><tspan 9.1109 + y="-330.22998" 9.1110 + x="579.39252" 9.1111 + sodipodi:role="line" 9.1112 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1113 + id="tspan12283">chk msgs?</tspan></text> 9.1114 + <rect 9.1115 + style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.1116 + id="rect12285" 9.1117 + width="36.810017" 9.1118 + height="36.457531" 9.1119 + x="624.01776" 9.1120 + y="93.582199" 9.1121 + transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 9.1122 + ry="0" /> 9.1123 + </g> 9.1124 + <path 9.1125 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 9.1126 + d="m 299.56974,-351.98903 0,122.09492" 9.1127 + id="path12297" 9.1128 + inkscape:connector-curvature="0" 9.1129 + sodipodi:nodetypes="cc" /> 9.1130 + <g 9.1131 + id="g12335" 9.1132 + transform="translate(77.05331,-503.31973)"> 9.1133 + <text 9.1134 + sodipodi:linespacing="100%" 9.1135 + id="text12337" 9.1136 + y="285.39841" 9.1137 + x="222.37003" 9.1138 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1139 + xml:space="preserve"><tspan 9.1140 + y="285.39841" 9.1141 + x="222.37003" 9.1142 + sodipodi:role="line" 9.1143 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1144 + id="tspan12339">scan for in-</tspan><tspan 9.1145 + y="294.39841" 9.1146 + x="222.37003" 9.1147 + sodipodi:role="line" 9.1148 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1149 + id="tspan12394">coming msgs,</tspan><tspan 9.1150 + id="tspan12343" 9.1151 + y="303.39841" 9.1152 + x="222.37003" 9.1153 + sodipodi:role="line" 9.1154 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">give to hdlrs.</tspan><tspan 9.1155 + y="312.39841" 9.1156 + x="222.37003" 9.1157 + sodipodi:role="line" 9.1158 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1159 + id="tspan12400">check timers,</tspan><tspan 9.1160 + y="321.39841" 9.1161 + x="222.37003" 9.1162 + sodipodi:role="line" 9.1163 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1164 + id="tspan3521">fire hdlr for</tspan><tspan 9.1165 + y="330.39841" 9.1166 + x="222.37003" 9.1167 + sodipodi:role="line" 9.1168 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1169 + id="tspan3523">expired ones</tspan></text> 9.1170 + <rect 9.1171 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.1172 + id="rect12347" 9.1173 + width="57.486332" 9.1174 + height="63.639675" 9.1175 + x="193.78287" 9.1176 + y="274.77512" /> 9.1177 + </g> 9.1178 + <g 9.1179 + id="g12349" 9.1180 + transform="translate(617.05331,-603.31973)"> 9.1181 + <text 9.1182 + sodipodi:linespacing="100%" 9.1183 + id="text12351" 9.1184 + y="285.39841" 9.1185 + x="222.37003" 9.1186 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1187 + xml:space="preserve"><tspan 9.1188 + id="tspan12359" 9.1189 + y="285.39841" 9.1190 + x="222.37003" 9.1191 + sodipodi:role="line" 9.1192 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">send curr VP</tspan><tspan 9.1193 + y="294.39841" 9.1194 + x="222.37003" 9.1195 + sodipodi:role="line" 9.1196 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1197 + id="tspan12386">to pool,</tspan><tspan 9.1198 + y="303.39841" 9.1199 + x="222.37003" 9.1200 + sodipodi:role="line" 9.1201 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1202 + id="tspan12388">switch to</tspan><tspan 9.1203 + y="312.39841" 9.1204 + x="222.37003" 9.1205 + sodipodi:role="line" 9.1206 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1207 + id="tspan12390">VP of new</tspan><tspan 9.1208 + y="321.39841" 9.1209 + x="222.37003" 9.1210 + sodipodi:role="line" 9.1211 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1212 + id="tspan12392">work-unit</tspan></text> 9.1213 + <rect 9.1214 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.1215 + id="rect12361" 9.1216 + width="57.486332" 9.1217 + height="63.639675" 9.1218 + x="193.78287" 9.1219 + y="274.77512" /> 9.1220 + </g> 9.1221 + <g 9.1222 + id="g12404" 9.1223 + transform="translate(17.05331,-404)"> 9.1224 + <text 9.1225 + sodipodi:linespacing="100%" 9.1226 + id="text12406" 9.1227 + y="285.36765" 9.1228 + x="222.25137" 9.1229 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1230 + xml:space="preserve"><tspan 9.1231 + id="tspan12410" 9.1232 + y="285.36765" 9.1233 + x="222.25137" 9.1234 + sodipodi:role="line" 9.1235 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">constraint</tspan><tspan 9.1236 + y="294.36765" 9.1237 + x="222.25137" 9.1238 + sodipodi:role="line" 9.1239 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1240 + id="tspan12416">msg handler</tspan></text> 9.1241 + <rect 9.1242 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.1243 + id="rect12412" 9.1244 + width="57.486332" 9.1245 + height="25.544432" 9.1246 + x="193.78287" 9.1247 + y="274.77512" /> 9.1248 + </g> 9.1249 + <g 9.1250 + transform="translate(97.05331,-344)" 9.1251 + id="g12418"> 9.1252 + <text 9.1253 + xml:space="preserve" 9.1254 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1255 + x="142.25137" 9.1256 + y="285.36765" 9.1257 + id="text12420" 9.1258 + sodipodi:linespacing="100%"><tspan 9.1259 + id="tspan12424" 9.1260 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1261 + sodipodi:role="line" 9.1262 + x="142.25137" 9.1263 + y="285.36765">Push Work</tspan><tspan 9.1264 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1265 + sodipodi:role="line" 9.1266 + x="142.25137" 9.1267 + y="294.36765" 9.1268 + id="tspan12548">onto Q</tspan></text> 9.1269 + <rect 9.1270 + y="274.77512" 9.1271 + x="113.78287" 9.1272 + height="25.544432" 9.1273 + width="57.486332" 9.1274 + id="rect12426" 9.1275 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.1276 + </g> 9.1277 + <path 9.1278 + sodipodi:nodetypes="cc" 9.1279 + inkscape:connector-curvature="0" 9.1280 + id="path12432" 9.1281 + d="m 239.56974,-104.00562 0,34.68367" 9.1282 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.1283 + <g 9.1284 + id="g12434" 9.1285 + transform="translate(-62.94669,-344)"> 9.1286 + <text 9.1287 + sodipodi:linespacing="100%" 9.1288 + id="text12436" 9.1289 + y="285.36765" 9.1290 + x="222.25137" 9.1291 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1292 + xml:space="preserve"><tspan 9.1293 + y="285.36765" 9.1294 + x="222.25137" 9.1295 + sodipodi:role="line" 9.1296 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1297 + id="tspan12438">send constr</tspan><tspan 9.1298 + y="294.36765" 9.1299 + x="222.25137" 9.1300 + sodipodi:role="line" 9.1301 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1302 + id="tspan12776">update msg</tspan></text> 9.1303 + <rect 9.1304 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.1305 + id="rect12440" 9.1306 + width="57.486332" 9.1307 + height="25.544432" 9.1308 + x="193.78287" 9.1309 + y="274.77512" /> 9.1310 + </g> 9.1311 + <text 9.1312 + xml:space="preserve" 9.1313 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1314 + x="273.27625" 9.1315 + y="6.7268219" 9.1316 + id="text12442" 9.1317 + sodipodi:linespacing="100%"><tspan 9.1318 + id="tspan12448" 9.1319 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1320 + sodipodi:role="line" 9.1321 + x="273.27625" 9.1322 + y="6.7268219">(in dataflow & CILK,</tspan><tspan 9.1323 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1324 + sodipodi:role="line" 9.1325 + x="273.27625" 9.1326 + y="15.726822" 9.1327 + id="tspan12454"> msgs from other cores</tspan><tspan 9.1328 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1329 + sodipodi:role="line" 9.1330 + x="273.27625" 9.1331 + y="24.726822" 9.1332 + id="tspan12482"> that ask for or push</tspan><tspan 9.1333 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1334 + sodipodi:role="line" 9.1335 + x="273.27625" 9.1336 + y="33.726822" 9.1337 + id="tspan3527"> work, go to assigner)</tspan></text> 9.1338 + <text 9.1339 + sodipodi:linespacing="100%" 9.1340 + id="text12460" 9.1341 + y="6.7268066" 9.1342 + x="369.27625" 9.1343 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1344 + xml:space="preserve"><tspan 9.1345 + id="tspan12466" 9.1346 + y="6.7268066" 9.1347 + x="369.27625" 9.1348 + sodipodi:role="line" 9.1349 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in dataflow & CILK,</tspan><tspan 9.1350 + y="15.726807" 9.1351 + x="369.27625" 9.1352 + sodipodi:role="line" 9.1353 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1354 + id="tspan12472"> push work to other</tspan><tspan 9.1355 + y="24.726807" 9.1356 + x="369.27625" 9.1357 + sodipodi:role="line" 9.1358 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1359 + id="tspan12488"> cores via msgs -- </tspan><tspan 9.1360 + y="33.726807" 9.1361 + x="369.27625" 9.1362 + sodipodi:role="line" 9.1363 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1364 + id="tspan3973"> remember </tspan><tspan 9.1365 + y="42.726807" 9.1366 + x="369.27625" 9.1367 + sodipodi:role="line" 9.1368 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1369 + id="tspan3977"> constraints that</tspan><tspan 9.1370 + y="51.726807" 9.1371 + x="369.27625" 9.1372 + sodipodi:role="line" 9.1373 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1374 + id="tspan12642"> cross cores)</tspan></text> 9.1375 + <path 9.1376 + sodipodi:nodetypes="cc" 9.1377 + inkscape:connector-curvature="0" 9.1378 + id="path12490" 9.1379 + d="m 328.33352,-203.17339 41.44797,-171.27297" 9.1380 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.1381 + <g 9.1382 + id="g12506" 9.1383 + transform="translate(97.05331,-404)"> 9.1384 + <text 9.1385 + sodipodi:linespacing="100%" 9.1386 + id="text12508" 9.1387 + y="285.36765" 9.1388 + x="222.25137" 9.1389 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1390 + xml:space="preserve"><tspan 9.1391 + y="285.36765" 9.1392 + x="222.25137" 9.1393 + sodipodi:role="line" 9.1394 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1395 + id="tspan12510">Assigner</tspan><tspan 9.1396 + y="294.36765" 9.1397 + x="222.25137" 9.1398 + sodipodi:role="line" 9.1399 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1400 + id="tspan12656">msg handler</tspan></text> 9.1401 + <rect 9.1402 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.1403 + id="rect12512" 9.1404 + width="57.486332" 9.1405 + height="25.544432" 9.1406 + x="193.78287" 9.1407 + y="274.77512" /> 9.1408 + </g> 9.1409 + <path 9.1410 + sodipodi:nodetypes="cc" 9.1411 + inkscape:connector-curvature="0" 9.1412 + id="path12534" 9.1413 + d="m 319.56974,-104.00562 0,34.68367" 9.1414 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.1415 + <path 9.1416 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 9.1417 + d="m 297.91051,-165.12086 -53.68184,35.65757" 9.1418 + id="path12544" 9.1419 + inkscape:connector-curvature="0" 9.1420 + sodipodi:nodetypes="cc" /> 9.1421 + <path 9.1422 + sodipodi:nodetypes="cc" 9.1423 + inkscape:connector-curvature="0" 9.1424 + id="path12550" 9.1425 + d="m 239.95132,-103.76032 -77.23827,34.97636" 9.1426 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.1427 + <g 9.1428 + transform="translate(257.05331,-604)" 9.1429 + id="g12552"> 9.1430 + <text 9.1431 + xml:space="preserve" 9.1432 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1433 + x="222.25137" 9.1434 + y="285.36765" 9.1435 + id="text12554" 9.1436 + sodipodi:linespacing="100%"><tspan 9.1437 + id="tspan12556" 9.1438 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1439 + sodipodi:role="line" 9.1440 + x="222.25137" 9.1441 + y="285.36765">send constr</tspan><tspan 9.1442 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1443 + sodipodi:role="line" 9.1444 + x="222.25137" 9.1445 + y="294.36765" 9.1446 + id="tspan12888">update msgs</tspan></text> 9.1447 + <rect 9.1448 + y="274.77512" 9.1449 + x="193.78287" 9.1450 + height="25.544432" 9.1451 + width="57.486332" 9.1452 + id="rect12558" 9.1453 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.1454 + </g> 9.1455 + <path 9.1456 + sodipodi:nodetypes="cc" 9.1457 + inkscape:connector-curvature="0" 9.1458 + id="path12562" 9.1459 + d="m 303.63081,-165.12086 14.66828,34.98156" 9.1460 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.1461 + <text 9.1462 + sodipodi:linespacing="100%" 9.1463 + id="text12564" 9.1464 + y="-351.95343" 9.1465 + x="371.43005" 9.1466 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1467 + xml:space="preserve"><tspan 9.1468 + id="tspan12568" 9.1469 + y="-351.95343" 9.1470 + x="371.43005" 9.1471 + sodipodi:role="line" 9.1472 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> done</tspan><tspan 9.1473 + y="-342.95343" 9.1474 + x="371.43005" 9.1475 + sodipodi:role="line" 9.1476 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1477 + id="tspan12598"> with</tspan><tspan 9.1478 + y="-333.95343" 9.1479 + x="371.43005" 9.1480 + sodipodi:role="line" 9.1481 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1482 + id="tspan12600">msgs</tspan></text> 9.1483 + <text 9.1484 + xml:space="preserve" 9.1485 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1486 + x="335.43005" 9.1487 + y="-379.95343" 9.1488 + id="text12572" 9.1489 + sodipodi:linespacing="100%"><tspan 9.1490 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1491 + sodipodi:role="line" 9.1492 + x="335.43005" 9.1493 + y="-379.95343" 9.1494 + id="tspan12574">no</tspan></text> 9.1495 + <text 9.1496 + sodipodi:linespacing="100%" 9.1497 + id="text12576" 9.1498 + y="-343.95343" 9.1499 + x="309.43005" 9.1500 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1501 + xml:space="preserve"><tspan 9.1502 + id="tspan12578" 9.1503 + y="-343.95343" 9.1504 + x="309.43005" 9.1505 + sodipodi:role="line" 9.1506 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan 9.1507 + y="-334.95343" 9.1508 + x="309.43005" 9.1509 + sodipodi:role="line" 9.1510 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1511 + id="tspan12580">chk</tspan></text> 9.1512 + <text 9.1513 + xml:space="preserve" 9.1514 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1515 + x="251.43005" 9.1516 + y="-151.95343" 9.1517 + id="text12582" 9.1518 + sodipodi:linespacing="100%"><tspan 9.1519 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1520 + sodipodi:role="line" 9.1521 + x="251.43005" 9.1522 + y="-151.95343" 9.1523 + id="tspan12584"> constraint</tspan><tspan 9.1524 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1525 + sodipodi:role="line" 9.1526 + x="251.43005" 9.1527 + y="-142.95343" 9.1528 + id="tspan12586">msgs</tspan></text> 9.1529 + <text 9.1530 + sodipodi:linespacing="100%" 9.1531 + id="text12592" 9.1532 + y="-151.95343" 9.1533 + x="323.43005" 9.1534 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1535 + xml:space="preserve"><tspan 9.1536 + id="tspan12594" 9.1537 + y="-151.95343" 9.1538 + x="323.43005" 9.1539 + sodipodi:role="line" 9.1540 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> Assigner</tspan><tspan 9.1541 + id="tspan12596" 9.1542 + y="-142.95343" 9.1543 + x="323.43005" 9.1544 + sodipodi:role="line" 9.1545 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">msgs</tspan></text> 9.1546 + <text 9.1547 + sodipodi:linespacing="100%" 9.1548 + id="text12602" 9.1549 + y="-29.273178" 9.1550 + x="129.27625" 9.1551 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1552 + xml:space="preserve"><tspan 9.1553 + id="tspan12606" 9.1554 + y="-29.273178" 9.1555 + x="129.27625" 9.1556 + sodipodi:role="line" 9.1557 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in CILK, completion of</tspan><tspan 9.1558 + y="-20.273178" 9.1559 + x="129.27625" 9.1560 + sodipodi:role="line" 9.1561 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1562 + id="tspan12614"> child on remote core</tspan><tspan 9.1563 + id="tspan12610" 9.1564 + y="-11.273178" 9.1565 + x="129.27625" 9.1566 + sodipodi:role="line" 9.1567 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"> notifies parent's core.</tspan><tspan 9.1568 + y="-2.2731781" 9.1569 + x="129.27625" 9.1570 + sodipodi:role="line" 9.1571 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1572 + id="tspan12624"> In dataflow, remote pro-</tspan><tspan 9.1573 + y="6.7268219" 9.1574 + x="129.27625" 9.1575 + sodipodi:role="line" 9.1576 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1577 + id="tspan12626"> pendent sends data to</tspan><tspan 9.1578 + y="15.726822" 9.1579 + x="129.27625" 9.1580 + sodipodi:role="line" 9.1581 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.1582 + id="tspan12634"> dependents' cores)</tspan></text> 9.1583 + <path 9.1584 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 9.1585 + d="m 401.6308,-363.12086 74.44669,32.98177" 9.1586 + id="path12658" 9.1587 + inkscape:connector-curvature="0" 9.1588 + sodipodi:nodetypes="cc" /> 9.1589 + <g 9.1590 + id="g12764" 9.1591 + transform="translate(437.05331,-484)"> 9.1592 + <text 9.1593 + sodipodi:linespacing="100%" 9.1594 + id="text12766" 9.1595 + y="285.36765" 9.1596 + x="222.25137" 9.1597 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1598 + xml:space="preserve"><tspan 9.1599 + y="285.36765" 9.1600 + x="222.25137" 9.1601 + sodipodi:role="line" 9.1602 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1603 + id="tspan12768">send "need</tspan><tspan 9.1604 + y="294.36765" 9.1605 + x="222.25137" 9.1606 + sodipodi:role="line" 9.1607 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1608 + id="tspan12774">work" msg</tspan></text> 9.1609 + <rect 9.1610 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.1611 + id="rect12770" 9.1612 + width="57.486332" 9.1613 + height="25.544432" 9.1614 + x="193.78287" 9.1615 + y="274.77512" /> 9.1616 + </g> 9.1617 + <text 9.1618 + xml:space="preserve" 9.1619 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1620 + x="299.43005" 9.1621 + y="-93.95343" 9.1622 + id="text12816" 9.1623 + sodipodi:linespacing="100%"><tspan 9.1624 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1625 + sodipodi:role="line" 9.1626 + x="299.43005" 9.1627 + y="-93.95343" 9.1628 + id="tspan12818"> receive</tspan><tspan 9.1629 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1630 + sodipodi:role="line" 9.1631 + x="300.78357" 9.1632 + y="-84.95343" 9.1633 + id="tspan12820">work-push </tspan><tspan 9.1634 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1635 + sodipodi:role="line" 9.1636 + x="299.43005" 9.1637 + y="-75.95343" 9.1638 + id="tspan12822"> msg</tspan></text> 9.1639 + <path 9.1640 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 9.1641 + d="m 321.6308,-103.12086 74.44669,32.98177" 9.1642 + id="path12824" 9.1643 + inkscape:connector-curvature="0" 9.1644 + sodipodi:nodetypes="cc" /> 9.1645 + <text 9.1646 + sodipodi:linespacing="100%" 9.1647 + id="text12826" 9.1648 + y="-93.95343" 9.1649 + x="379.43005" 9.1650 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1651 + xml:space="preserve"><tspan 9.1652 + id="tspan12828" 9.1653 + y="-93.95343" 9.1654 + x="379.43005" 9.1655 + sodipodi:role="line" 9.1656 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> receive need-work</tspan><tspan 9.1657 + id="tspan12832" 9.1658 + y="-84.95343" 9.1659 + x="379.43005" 9.1660 + sodipodi:role="line" 9.1661 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> msg & have work</tspan><tspan 9.1662 + y="-75.95343" 9.1663 + x="379.43005" 9.1664 + sodipodi:role="line" 9.1665 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1666 + id="tspan12836"> to give</tspan></text> 9.1667 + <text 9.1668 + sodipodi:linespacing="100%" 9.1669 + id="text12914" 9.1670 + y="-281.95343" 9.1671 + x="678.38245" 9.1672 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1673 + xml:space="preserve"><tspan 9.1674 + y="-281.95343" 9.1675 + x="678.38245" 9.1676 + sodipodi:role="line" 9.1677 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1678 + id="tspan12946">No work</tspan></text> 9.1679 + <g 9.1680 + id="g3699" 9.1681 + transform="translate(717.05331,-664)"> 9.1682 + <text 9.1683 + sodipodi:linespacing="100%" 9.1684 + id="text3701" 9.1685 + y="285.69943" 9.1686 + x="222.37003" 9.1687 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1688 + xml:space="preserve"><tspan 9.1689 + id="tspan3705" 9.1690 + y="285.69943" 9.1691 + x="222.37003" 9.1692 + sodipodi:role="line" 9.1693 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Jmp to new</tspan><tspan 9.1694 + y="294.69943" 9.1695 + x="222.37003" 9.1696 + sodipodi:role="line" 9.1697 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1698 + id="tspan3713">work-unit</tspan></text> 9.1699 + <rect 9.1700 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.1701 + id="rect3707" 9.1702 + width="57.486332" 9.1703 + height="25.544432" 9.1704 + x="193.78287" 9.1705 + y="274.77512" /> 9.1706 + </g> 9.1707 + <path 9.1708 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 9.1709 + d="m 868.0922,-376.20795 41.0608,0" 9.1710 + id="path3709" 9.1711 + inkscape:connector-curvature="0" 9.1712 + sodipodi:nodetypes="cc" /> 9.1713 + <path 9.1714 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 9.1715 + d="m 868.33356,-296.29838 40.86584,-76.648" 9.1716 + id="path3715" 9.1717 + inkscape:connector-curvature="0" 9.1718 + sodipodi:nodetypes="cc" /> 9.1719 + <path 9.1720 + sodipodi:nodetypes="cc" 9.1721 + inkscape:connector-curvature="0" 9.1722 + id="path3769" 9.1723 + d="m 428.86861,-376.20795 200.12395,0" 9.1724 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.1725 + <g 9.1726 + id="g3775" 9.1727 + transform="translate(297.05331,-784)"> 9.1728 + <text 9.1729 + sodipodi:linespacing="100%" 9.1730 + id="text3777" 9.1731 + y="285.36765" 9.1732 + x="222.25137" 9.1733 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1734 + xml:space="preserve"><tspan 9.1735 + id="tspan3781" 9.1736 + y="285.36765" 9.1737 + x="222.25137" 9.1738 + sodipodi:role="line" 9.1739 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Assigner</tspan></text> 9.1740 + <rect 9.1741 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.1742 + id="rect3783" 9.1743 + width="57.486332" 9.1744 + height="25.544432" 9.1745 + x="193.78287" 9.1746 + y="274.77512" /> 9.1747 + </g> 9.1748 + <g 9.1749 + id="g3789" 9.1750 + transform="translate(177.05331,-784)"> 9.1751 + <text 9.1752 + sodipodi:linespacing="100%" 9.1753 + id="text3791" 9.1754 + y="285.36765" 9.1755 + x="222.25137" 9.1756 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1757 + xml:space="preserve"><tspan 9.1758 + id="tspan3795" 9.1759 + y="285.36765" 9.1760 + x="222.25137" 9.1761 + sodipodi:role="line" 9.1762 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">request hdlr</tspan></text> 9.1763 + <rect 9.1764 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.1765 + id="rect3797" 9.1766 + width="57.486332" 9.1767 + height="25.544432" 9.1768 + x="193.78287" 9.1769 + y="274.77512" /> 9.1770 + </g> 9.1771 + <path 9.1772 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 9.1773 + d="m 428.09218,-496.20795 60.12116,0" 9.1774 + id="path3799" 9.1775 + inkscape:connector-curvature="0" 9.1776 + sodipodi:nodetypes="cc" /> 9.1777 + <g 9.1778 + transform="translate(-300,-160)" 9.1779 + id="g3801"> 9.1780 + <text 9.1781 + xml:space="preserve" 9.1782 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1783 + x="579.39252" 9.1784 + y="-339.22998" 9.1785 + id="text3803" 9.1786 + sodipodi:linespacing="100%"><tspan 9.1787 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1788 + sodipodi:role="line" 9.1789 + x="579.39252" 9.1790 + y="-339.22998" 9.1791 + id="tspan3805">time to</tspan><tspan 9.1792 + id="tspan3807" 9.1793 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1794 + sodipodi:role="line" 9.1795 + x="579.39252" 9.1796 + y="-330.22998">chk msgs?</tspan></text> 9.1797 + <rect 9.1798 + ry="0" 9.1799 + transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 9.1800 + y="93.582199" 9.1801 + x="624.01776" 9.1802 + height="36.457531" 9.1803 + width="36.810017" 9.1804 + id="rect3809" 9.1805 + style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.1806 + </g> 9.1807 + <path 9.1808 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 9.1809 + d="m 228.09216,-496.20795 21.72127,0" 9.1810 + id="path3811" 9.1811 + inkscape:connector-curvature="0" 9.1812 + sodipodi:nodetypes="cc" /> 9.1813 + <path 9.1814 + sodipodi:nodetypes="cc" 9.1815 + inkscape:connector-curvature="0" 9.1816 + id="path3813" 9.1817 + d="m 307.68401,-496.20795 61.46905,0" 9.1818 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.1819 + <text 9.1820 + xml:space="preserve" 9.1821 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1822 + x="289.43005" 9.1823 + y="-463.95343" 9.1824 + id="text3815" 9.1825 + sodipodi:linespacing="100%"><tspan 9.1826 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1827 + sodipodi:role="line" 9.1828 + x="289.43005" 9.1829 + y="-463.95343" 9.1830 + id="tspan3817">yes,</tspan><tspan 9.1831 + id="tspan3819" 9.1832 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1833 + sodipodi:role="line" 9.1834 + x="289.43005" 9.1835 + y="-454.95343">chk</tspan></text> 9.1836 + <path 9.1837 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 9.1838 + d="m 328.33352,-197.5484 41.44797,-295.744" 9.1839 + id="path3823" 9.1840 + inkscape:connector-curvature="0" 9.1841 + sodipodi:nodetypes="cc" /> 9.1842 + <text 9.1843 + sodipodi:linespacing="100%" 9.1844 + id="text3825" 9.1845 + y="-499.95343" 9.1846 + x="315.43005" 9.1847 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1848 + xml:space="preserve"><tspan 9.1849 + id="tspan3827" 9.1850 + y="-499.95343" 9.1851 + x="315.43005" 9.1852 + sodipodi:role="line" 9.1853 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">no</tspan></text> 9.1854 + <text 9.1855 + xml:space="preserve" 9.1856 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1857 + x="353.43005" 9.1858 + y="-473.95343" 9.1859 + id="text3829" 9.1860 + sodipodi:linespacing="100%"><tspan 9.1861 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1862 + sodipodi:role="line" 9.1863 + x="353.43005" 9.1864 + y="-473.95343" 9.1865 + id="tspan3831"> done</tspan><tspan 9.1866 + id="tspan3833" 9.1867 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1868 + sodipodi:role="line" 9.1869 + x="353.43005" 9.1870 + y="-464.95343"> with</tspan><tspan 9.1871 + id="tspan3835" 9.1872 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.1873 + sodipodi:role="line" 9.1874 + x="353.43005" 9.1875 + y="-455.95343">msgs</tspan></text> 9.1876 + <g 9.1877 + transform="translate(97.05331,-343.31973)" 9.1878 + id="g3837"> 9.1879 + <text 9.1880 + xml:space="preserve" 9.1881 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1882 + x="222.37003" 9.1883 + y="285.39841" 9.1884 + id="text3839" 9.1885 + sodipodi:linespacing="100%"><tspan 9.1886 + id="tspan3841" 9.1887 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1888 + sodipodi:role="line" 9.1889 + x="222.37003" 9.1890 + y="285.39841">push work</tspan><tspan 9.1891 + id="tspan3843" 9.1892 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1893 + sodipodi:role="line" 9.1894 + x="222.37003" 9.1895 + y="294.39841">onto Q, and</tspan><tspan 9.1896 + id="tspan3845" 9.1897 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1898 + sodipodi:role="line" 9.1899 + x="222.37003" 9.1900 + y="303.39841">send "cancel</tspan><tspan 9.1901 + id="tspan3847" 9.1902 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1903 + sodipodi:role="line" 9.1904 + x="222.37003" 9.1905 + y="312.39841">need work"</tspan></text> 9.1906 + <rect 9.1907 + y="274.77512" 9.1908 + x="193.78287" 9.1909 + height="63.639675" 9.1910 + width="57.486332" 9.1911 + id="rect3849" 9.1912 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.1913 + </g> 9.1914 + <g 9.1915 + id="g3851" 9.1916 + transform="translate(177.05331,-744)"> 9.1917 + <text 9.1918 + sodipodi:linespacing="100%" 9.1919 + id="text3853" 9.1920 + y="285.36765" 9.1921 + x="222.25137" 9.1922 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1923 + xml:space="preserve"><tspan 9.1924 + y="285.36765" 9.1925 + x="222.25137" 9.1926 + sodipodi:role="line" 9.1927 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1928 + id="tspan3855">send constr</tspan><tspan 9.1929 + id="tspan3857" 9.1930 + y="294.36765" 9.1931 + x="222.25137" 9.1932 + sodipodi:role="line" 9.1933 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">update msgs</tspan></text> 9.1934 + <rect 9.1935 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.1936 + id="rect3859" 9.1937 + width="57.486332" 9.1938 + height="25.544432" 9.1939 + x="193.78287" 9.1940 + y="274.77512" /> 9.1941 + </g> 9.1942 + <path 9.1943 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 9.1944 + d="m 399.56974,-484.00562 0,12.75587" 9.1945 + id="path3863" 9.1946 + inkscape:connector-curvature="0" 9.1947 + sodipodi:nodetypes="cc" /> 9.1948 + <g 9.1949 + transform="translate(257.05331,-744)" 9.1950 + id="g3865"> 9.1951 + <text 9.1952 + xml:space="preserve" 9.1953 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1954 + x="222.37003" 9.1955 + y="285.39841" 9.1956 + id="text3867" 9.1957 + sodipodi:linespacing="100%"><tspan 9.1958 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1959 + sodipodi:role="line" 9.1960 + x="222.37003" 9.1961 + y="285.39841" 9.1962 + id="tspan3869">Push work</tspan><tspan 9.1963 + id="tspan3871" 9.1964 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1965 + sodipodi:role="line" 9.1966 + x="222.37003" 9.1967 + y="294.39841">onto Q</tspan></text> 9.1968 + <rect 9.1969 + y="274.77512" 9.1970 + x="193.78287" 9.1971 + height="25.544432" 9.1972 + width="57.486332" 9.1973 + id="rect3873" 9.1974 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.1975 + </g> 9.1976 + <g 9.1977 + transform="translate(317.05331,-744)" 9.1978 + id="g3875"> 9.1979 + <text 9.1980 + xml:space="preserve" 9.1981 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.1982 + x="222.25137" 9.1983 + y="285.36765" 9.1984 + id="text3877" 9.1985 + sodipodi:linespacing="100%"><tspan 9.1986 + id="tspan3879" 9.1987 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1988 + sodipodi:role="line" 9.1989 + x="222.25137" 9.1990 + y="285.36765">send Assigner</tspan><tspan 9.1991 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.1992 + sodipodi:role="line" 9.1993 + x="222.25137" 9.1994 + y="294.36765" 9.1995 + id="tspan3881">messages</tspan></text> 9.1996 + <rect 9.1997 + y="274.77512" 9.1998 + x="193.78287" 9.1999 + height="25.544432" 9.2000 + width="57.486332" 9.2001 + id="rect3883" 9.2002 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.2003 + </g> 9.2004 + <path 9.2005 + sodipodi:nodetypes="cc" 9.2006 + inkscape:connector-curvature="0" 9.2007 + id="path3887" 9.2008 + d="m 519.99814,-483.12085 17.68767,13.95011" 9.2009 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.2010 + <path 9.2011 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 9.2012 + d="m 516.1523,-483.12085 -35.11392,13.95011" 9.2013 + id="path3889" 9.2014 + inkscape:connector-curvature="0" 9.2015 + sodipodi:nodetypes="cc" /> 9.2016 + <path 9.2017 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 9.2018 + d="m 548.6784,-495.12084 80.39811,116.64706" 9.2019 + id="path3891" 9.2020 + inkscape:connector-curvature="0" 9.2021 + sodipodi:nodetypes="cc" /> 9.2022 + <path 9.2023 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 9.2024 + d="m 737.20425,-398.67186 72.41226,-56.50237" 9.2025 + id="path3893" 9.2026 + inkscape:connector-curvature="0" 9.2027 + sodipodi:nodetypes="cc" /> 9.2028 + <g 9.2029 + id="g3895" 9.2030 + transform="translate(617.05331,-763.31973)"> 9.2031 + <text 9.2032 + sodipodi:linespacing="100%" 9.2033 + id="text3897" 9.2034 + y="285.39841" 9.2035 + x="222.37003" 9.2036 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2037 + xml:space="preserve"><tspan 9.2038 + y="285.39841" 9.2039 + x="222.37003" 9.2040 + sodipodi:role="line" 9.2041 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2042 + id="tspan3933">get VP from</tspan><tspan 9.2043 + y="294.39841" 9.2044 + x="222.37003" 9.2045 + sodipodi:role="line" 9.2046 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2047 + id="tspan3935">pool (make</tspan><tspan 9.2048 + y="303.39841" 9.2049 + x="222.37003" 9.2050 + sodipodi:role="line" 9.2051 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2052 + id="tspan3943">new if none).</tspan><tspan 9.2053 + id="tspan3901" 9.2054 + y="312.39841" 9.2055 + x="222.37003" 9.2056 + sodipodi:role="line" 9.2057 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Load it with</tspan><tspan 9.2058 + id="tspan3903" 9.2059 + y="321.39841" 9.2060 + x="222.37003" 9.2061 + sodipodi:role="line" 9.2062 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">context from</tspan><tspan 9.2063 + id="tspan3905" 9.2064 + y="330.39841" 9.2065 + x="222.37003" 9.2066 + sodipodi:role="line" 9.2067 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">new work-unit</tspan></text> 9.2068 + <rect 9.2069 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.2070 + id="rect3907" 9.2071 + width="57.486332" 9.2072 + height="63.639675" 9.2073 + x="193.78287" 9.2074 + y="274.77512" /> 9.2075 + </g> 9.2076 + <text 9.2077 + xml:space="preserve" 9.2078 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2079 + x="755.43005" 9.2080 + y="-449.95343" 9.2081 + id="text3909" 9.2082 + sodipodi:linespacing="100%"><tspan 9.2083 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2084 + sodipodi:role="line" 9.2085 + x="755.43005" 9.2086 + y="-449.95343" 9.2087 + id="tspan3913">new work-unit has own</tspan><tspan 9.2088 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2089 + sodipodi:role="line" 9.2090 + x="755.43005" 9.2091 + y="-440.95343" 9.2092 + id="tspan3927">local context, but</tspan><tspan 9.2093 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2094 + sodipodi:role="line" 9.2095 + x="756.78357" 9.2096 + y="-431.95343" 9.2097 + id="tspan3931">prev VP suspended </tspan></text> 9.2098 + <path 9.2099 + sodipodi:nodetypes="cc" 9.2100 + inkscape:connector-curvature="0" 9.2101 + id="path3953" 9.2102 + d="m 868.33356,-456.25901 40.86584,76.648" 9.2103 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.2104 + <text 9.2105 + xml:space="preserve" 9.2106 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2107 + x="357.27625" 9.2108 + y="-534.5929" 9.2109 + id="text3955" 9.2110 + sodipodi:linespacing="100%"><tspan 9.2111 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2112 + sodipodi:role="line" 9.2113 + x="357.27625" 9.2114 + y="-534.5929" 9.2115 + id="tspan3957">(in pthreads, checks</tspan><tspan 9.2116 + id="tspan3959" 9.2117 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2118 + sodipodi:role="line" 9.2119 + x="357.27625" 9.2120 + y="-525.5929"> mutex structures,</tspan><tspan 9.2121 + id="tspan3961" 9.2122 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2123 + sodipodi:role="line" 9.2124 + x="357.27625" 9.2125 + y="-516.5929"> cond var structs, etc)</tspan></text> 9.2126 + <text 9.2127 + xml:space="preserve" 9.2128 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2129 + x="459.43005" 9.2130 + y="-507.95343" 9.2131 + id="text3963" 9.2132 + sodipodi:linespacing="100%"><tspan 9.2133 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2134 + sodipodi:role="line" 9.2135 + x="459.43005" 9.2136 + y="-507.95343" 9.2137 + id="tspan3967">work-unit</tspan><tspan 9.2138 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2139 + sodipodi:role="line" 9.2140 + x="459.43005" 9.2141 + y="-498.95343" 9.2142 + id="tspan3971">state chgs</tspan></text> 9.2143 + <text 9.2144 + sodipodi:linespacing="100%" 9.2145 + id="text3981" 9.2146 + y="-195.95343" 9.2147 + x="415.43005" 9.2148 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2149 + xml:space="preserve" 9.2150 + inkscape:transform-center-x="-8.125"><tspan 9.2151 + y="-195.95343" 9.2152 + x="415.43005" 9.2153 + sodipodi:role="line" 9.2154 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2155 + id="tspan3987">done with msgs</tspan></text> 9.2156 + <path 9.2157 + sodipodi:nodetypes="cc" 9.2158 + inkscape:connector-curvature="0" 9.2159 + id="path3386" 9.2160 + d="m 30.09217,-616.20795 134.75175,0" 9.2161 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" /> 9.2162 + <text 9.2163 + xml:space="preserve" 9.2164 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2165 + x="95.430077" 9.2166 + y="-617.95343" 9.2167 + id="text3388" 9.2168 + sodipodi:linespacing="100%"><tspan 9.2169 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2170 + sodipodi:role="line" 9.2171 + x="95.430077" 9.2172 + y="-617.95343" 9.2173 + id="tspan3390">Suspend at end of work-unit</tspan></text> 9.2174 + <text 9.2175 + xml:space="preserve" 9.2176 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2177 + x="29.276283" 9.2178 + y="-593.95343" 9.2179 + id="text3392" 9.2180 + sodipodi:linespacing="100%"><tspan 9.2181 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2182 + sodipodi:role="line" 9.2183 + x="29.276283" 9.2184 + y="-593.95343" 9.2185 + id="tspan3394">pthread is example of this case,</tspan><tspan 9.2186 + id="tspan3396" 9.2187 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2188 + sodipodi:role="line" 9.2189 + x="29.276283" 9.2190 + y="-584.95343">as is Cilk when suspends on sync</tspan></text> 9.2191 + <g 9.2192 + transform="translate(297.05331,-904)" 9.2193 + id="g3398"> 9.2194 + <text 9.2195 + xml:space="preserve" 9.2196 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2197 + x="222.25137" 9.2198 + y="285.36765" 9.2199 + id="text3400" 9.2200 + sodipodi:linespacing="100%"><tspan 9.2201 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2202 + sodipodi:role="line" 9.2203 + x="222.25137" 9.2204 + y="285.36765" 9.2205 + id="tspan3402">Assigner</tspan></text> 9.2206 + <rect 9.2207 + y="274.77512" 9.2208 + x="193.78287" 9.2209 + height="25.544432" 9.2210 + width="57.486332" 9.2211 + id="rect3404" 9.2212 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.2213 + </g> 9.2214 + <g 9.2215 + transform="translate(177.05331,-904)" 9.2216 + id="g3406"> 9.2217 + <text 9.2218 + xml:space="preserve" 9.2219 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2220 + x="222.25137" 9.2221 + y="285.36765" 9.2222 + id="text3408" 9.2223 + sodipodi:linespacing="100%"><tspan 9.2224 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2225 + sodipodi:role="line" 9.2226 + x="222.25137" 9.2227 + y="285.36765" 9.2228 + id="tspan3412">request hdlr</tspan></text> 9.2229 + <rect 9.2230 + y="274.77512" 9.2231 + x="193.78287" 9.2232 + height="25.544432" 9.2233 + width="57.486332" 9.2234 + id="rect3414" 9.2235 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.2236 + </g> 9.2237 + <path 9.2238 + sodipodi:nodetypes="cc" 9.2239 + inkscape:connector-curvature="0" 9.2240 + id="path3416" 9.2241 + d="m 428.09218,-616.20795 60.12116,0" 9.2242 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.2243 + <g 9.2244 + id="g3418" 9.2245 + transform="translate(-300,-280)"> 9.2246 + <text 9.2247 + sodipodi:linespacing="100%" 9.2248 + id="text3420" 9.2249 + y="-339.22998" 9.2250 + x="579.39252" 9.2251 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2252 + xml:space="preserve"><tspan 9.2253 + id="tspan3422" 9.2254 + y="-339.22998" 9.2255 + x="579.39252" 9.2256 + sodipodi:role="line" 9.2257 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">time to</tspan><tspan 9.2258 + y="-330.22998" 9.2259 + x="579.39252" 9.2260 + sodipodi:role="line" 9.2261 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2262 + id="tspan3424">chk msgs?</tspan></text> 9.2263 + <rect 9.2264 + style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.2265 + id="rect3426" 9.2266 + width="36.810017" 9.2267 + height="36.457531" 9.2268 + x="624.01776" 9.2269 + y="93.582199" 9.2270 + transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 9.2271 + ry="0" /> 9.2272 + </g> 9.2273 + <path 9.2274 + sodipodi:nodetypes="cc" 9.2275 + inkscape:connector-curvature="0" 9.2276 + id="path3428" 9.2277 + d="m 228.09216,-616.20795 21.72127,0" 9.2278 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.2279 + <path 9.2280 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 9.2281 + d="m 307.68401,-616.20795 61.46905,0" 9.2282 + id="path3430" 9.2283 + inkscape:connector-curvature="0" 9.2284 + sodipodi:nodetypes="cc" /> 9.2285 + <text 9.2286 + sodipodi:linespacing="100%" 9.2287 + id="text3432" 9.2288 + y="-583.95343" 9.2289 + x="289.43005" 9.2290 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2291 + xml:space="preserve"><tspan 9.2292 + id="tspan3434" 9.2293 + y="-583.95343" 9.2294 + x="289.43005" 9.2295 + sodipodi:role="line" 9.2296 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan 9.2297 + y="-574.95343" 9.2298 + x="289.43005" 9.2299 + sodipodi:role="line" 9.2300 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2301 + id="tspan3436">chk</tspan></text> 9.2302 + <text 9.2303 + xml:space="preserve" 9.2304 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2305 + x="315.43005" 9.2306 + y="-619.95343" 9.2307 + id="text3438" 9.2308 + sodipodi:linespacing="100%"><tspan 9.2309 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2310 + sodipodi:role="line" 9.2311 + x="315.43005" 9.2312 + y="-619.95343" 9.2313 + id="tspan3440">no</tspan></text> 9.2314 + <text 9.2315 + sodipodi:linespacing="100%" 9.2316 + id="text3442" 9.2317 + y="-593.95343" 9.2318 + x="353.43005" 9.2319 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2320 + xml:space="preserve"><tspan 9.2321 + id="tspan3444" 9.2322 + y="-593.95343" 9.2323 + x="353.43005" 9.2324 + sodipodi:role="line" 9.2325 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> done</tspan><tspan 9.2326 + y="-584.95343" 9.2327 + x="353.43005" 9.2328 + sodipodi:role="line" 9.2329 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2330 + id="tspan3446"> with</tspan><tspan 9.2331 + y="-575.95343" 9.2332 + x="353.43005" 9.2333 + sodipodi:role="line" 9.2334 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2335 + id="tspan3448">msgs</tspan></text> 9.2336 + <g 9.2337 + transform="translate(177.05331,-864)" 9.2338 + id="g3450"> 9.2339 + <text 9.2340 + xml:space="preserve" 9.2341 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2342 + x="222.25137" 9.2343 + y="285.36765" 9.2344 + id="text3452" 9.2345 + sodipodi:linespacing="100%"><tspan 9.2346 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2347 + sodipodi:role="line" 9.2348 + x="222.25137" 9.2349 + y="285.36765" 9.2350 + id="tspan3456">get semEnv</tspan><tspan 9.2351 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2352 + sodipodi:role="line" 9.2353 + x="222.25137" 9.2354 + y="294.36765" 9.2355 + id="tspan3558">lock & update</tspan><tspan 9.2356 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2357 + sodipodi:role="line" 9.2358 + x="222.25137" 9.2359 + y="303.36765" 9.2360 + id="tspan3560">state of VP</tspan></text> 9.2361 + <rect 9.2362 + y="274.77512" 9.2363 + x="193.78287" 9.2364 + height="33.710323" 9.2365 + width="57.486332" 9.2366 + id="rect3458" 9.2367 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.2368 + </g> 9.2369 + <path 9.2370 + sodipodi:nodetypes="cc" 9.2371 + inkscape:connector-curvature="0" 9.2372 + id="path3460" 9.2373 + d="m 399.56974,-604.00562 0,12.75587" 9.2374 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.2375 + <g 9.2376 + id="g3472" 9.2377 + transform="translate(297.05331,-864)"> 9.2378 + <text 9.2379 + sodipodi:linespacing="100%" 9.2380 + id="text3474" 9.2381 + y="285.36765" 9.2382 + x="222.25137" 9.2383 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2384 + xml:space="preserve"><tspan 9.2385 + y="285.36765" 9.2386 + x="222.25137" 9.2387 + sodipodi:role="line" 9.2388 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2389 + id="tspan3476">get semEnv</tspan><tspan 9.2390 + id="tspan3478" 9.2391 + y="294.36765" 9.2392 + x="222.25137" 9.2393 + sodipodi:role="line" 9.2394 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">lock & pick a</tspan><tspan 9.2395 + y="303.36765" 9.2396 + x="222.25137" 9.2397 + sodipodi:role="line" 9.2398 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2399 + id="tspan3566">ready VP</tspan></text> 9.2400 + <rect 9.2401 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.2402 + id="rect3480" 9.2403 + width="57.486332" 9.2404 + height="33.710323" 9.2405 + x="193.78287" 9.2406 + y="274.77512" /> 9.2407 + </g> 9.2408 + <text 9.2409 + sodipodi:linespacing="100%" 9.2410 + id="text3486" 9.2411 + y="-654.5929" 9.2412 + x="357.27625" 9.2413 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2414 + xml:space="preserve"><tspan 9.2415 + id="tspan3488" 9.2416 + y="-654.5929" 9.2417 + x="357.27625" 9.2418 + sodipodi:role="line" 9.2419 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in pthreads, checks</tspan><tspan 9.2420 + y="-645.5929" 9.2421 + x="357.27625" 9.2422 + sodipodi:role="line" 9.2423 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2424 + id="tspan3490"> mutex structures,</tspan><tspan 9.2425 + y="-636.5929" 9.2426 + x="357.27625" 9.2427 + sodipodi:role="line" 9.2428 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2429 + id="tspan3492"> cond var structs, etc)</tspan></text> 9.2430 + <text 9.2431 + sodipodi:linespacing="100%" 9.2432 + id="text3494" 9.2433 + y="-627.95343" 9.2434 + x="459.43005" 9.2435 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2436 + xml:space="preserve"><tspan 9.2437 + id="tspan3496" 9.2438 + y="-627.95343" 9.2439 + x="459.43005" 9.2440 + sodipodi:role="line" 9.2441 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">work-unit</tspan><tspan 9.2442 + id="tspan3498" 9.2443 + y="-618.95343" 9.2444 + x="459.43005" 9.2445 + sodipodi:role="line" 9.2446 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">state chgs</tspan></text> 9.2447 + <path 9.2448 + sodipodi:nodetypes="cc" 9.2449 + inkscape:connector-curvature="0" 9.2450 + id="path3500" 9.2451 + d="m 548.67846,-615.848 261.45961,-0.0912" 9.2452 + style="fill:none;stroke:#000000;stroke-width:1.00000036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.2453 + <g 9.2454 + transform="translate(717.05331,-904)" 9.2455 + id="g3518"> 9.2456 + <text 9.2457 + xml:space="preserve" 9.2458 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2459 + x="222.37003" 9.2460 + y="285.69943" 9.2461 + id="text3520" 9.2462 + sodipodi:linespacing="100%"><tspan 9.2463 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2464 + sodipodi:role="line" 9.2465 + x="222.37003" 9.2466 + y="285.69943" 9.2467 + id="tspan3522">Jmp to new</tspan><tspan 9.2468 + id="tspan3524" 9.2469 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2470 + sodipodi:role="line" 9.2471 + x="222.37003" 9.2472 + y="294.69943">work-unit</tspan></text> 9.2473 + <rect 9.2474 + y="274.77512" 9.2475 + x="193.78287" 9.2476 + height="25.544432" 9.2477 + width="57.486332" 9.2478 + id="rect3526" 9.2479 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.2480 + </g> 9.2481 + <path 9.2482 + sodipodi:nodetypes="cc" 9.2483 + inkscape:connector-curvature="0" 9.2484 + id="path3528" 9.2485 + d="m 868.0922,-616.20795 41.0608,0" 9.2486 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.2487 + <path 9.2488 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 9.2489 + d="m 519.56974,-604.00562 0,12.75587" 9.2490 + id="path3568" 9.2491 + inkscape:connector-curvature="0" 9.2492 + sodipodi:nodetypes="cc" /> 9.2493 + <g 9.2494 + id="g3572" 9.2495 + transform="translate(617.05331,-904)"> 9.2496 + <text 9.2497 + sodipodi:linespacing="100%" 9.2498 + id="text3574" 9.2499 + y="285.69943" 9.2500 + x="222.37003" 9.2501 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2502 + xml:space="preserve"><tspan 9.2503 + y="285.69943" 9.2504 + x="222.37003" 9.2505 + sodipodi:role="line" 9.2506 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2507 + id="tspan3578">switch to</tspan><tspan 9.2508 + y="294.69943" 9.2509 + x="222.37003" 9.2510 + sodipodi:role="line" 9.2511 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2512 + id="tspan3584">ready VP</tspan></text> 9.2513 + <rect 9.2514 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.2515 + id="rect3580" 9.2516 + width="57.486332" 9.2517 + height="25.544432" 9.2518 + x="193.78287" 9.2519 + y="274.77512" /> 9.2520 + </g> 9.2521 + <path 9.2522 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 9.2523 + d="m 279.12967,-592.6255 -38.74926,53.74501 -0.37105,270.05417 35.3037,38.5653" 9.2524 + id="path3588" 9.2525 + inkscape:connector-curvature="0" 9.2526 + sodipodi:nodetypes="cccc" /> 9.2527 + <path 9.2528 + sodipodi:nodetypes="cc" 9.2529 + inkscape:connector-curvature="0" 9.2530 + id="path3590" 9.2531 + d="m 328.33352,-197.5484 41.44797,-413.82488" 9.2532 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.2533 + <g 9.2534 + id="g4716" 9.2535 + transform="translate(-22.94669,-904)"> 9.2536 + <text 9.2537 + sodipodi:linespacing="100%" 9.2538 + id="text4718" 9.2539 + y="285.39841" 9.2540 + x="222.37003" 9.2541 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2542 + xml:space="preserve"><tspan 9.2543 + id="tspan4720" 9.2544 + y="285.39841" 9.2545 + x="222.37003" 9.2546 + sodipodi:role="line" 9.2547 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">save VP</tspan><tspan 9.2548 + id="tspan4722" 9.2549 + y="294.39841" 9.2550 + x="222.37003" 9.2551 + sodipodi:role="line" 9.2552 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">context</tspan></text> 9.2553 + <rect 9.2554 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.2555 + id="rect4724" 9.2556 + width="57.486332" 9.2557 + height="25.544432" 9.2558 + x="193.78287" 9.2559 + y="274.77512" /> 9.2560 + </g> 9.2561 + <path 9.2562 + sodipodi:nodetypes="cc" 9.2563 + inkscape:connector-curvature="0" 9.2564 + id="path4726" 9.2565 + d="m 549.69914,-605.3604 79.38092,221.59022" 9.2566 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.2567 + <text 9.2568 + xml:space="preserve" 9.2569 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2570 + x="573.43005" 9.2571 + y="-583.95343" 9.2572 + id="text4728" 9.2573 + sodipodi:linespacing="100%"><tspan 9.2574 + id="tspan4732" 9.2575 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2576 + sodipodi:role="line" 9.2577 + x="573.43005" 9.2578 + y="-583.95343">No VPs</tspan><tspan 9.2579 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2580 + sodipodi:role="line" 9.2581 + x="573.43005" 9.2582 + y="-574.95343" 9.2583 + id="tspan4736">ready</tspan></text> 9.2584 + <text 9.2585 + inkscape:transform-center-x="-8.125" 9.2586 + xml:space="preserve" 9.2587 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2588 + x="451.43005" 9.2589 + y="-253.95343" 9.2590 + id="text4791" 9.2591 + sodipodi:linespacing="100%"><tspan 9.2592 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2593 + sodipodi:role="line" 9.2594 + x="451.43005" 9.2595 + y="-253.95343" 9.2596 + id="tspan4845">increase backoff each</tspan><tspan 9.2597 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2598 + sodipodi:role="line" 9.2599 + x="451.43005" 9.2600 + y="-244.95343" 9.2601 + id="tspan8389">repetition & update</tspan><tspan 9.2602 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2603 + sodipodi:role="line" 9.2604 + x="451.43005" 9.2605 + y="-235.95343" 9.2606 + id="tspan8385">backoff state</tspan><tspan 9.2607 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2608 + sodipodi:role="line" 9.2609 + x="451.43005" 9.2610 + y="-226.95343" 9.2611 + id="tspan8462">Try to make core enter</tspan><tspan 9.2612 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2613 + sodipodi:role="line" 9.2614 + x="451.43005" 9.2615 + y="-217.95343" 9.2616 + id="tspan8476">power-down idle state</tspan><tspan 9.2617 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2618 + sodipodi:role="line" 9.2619 + x="451.43005" 9.2620 + y="-208.95343" 9.2621 + id="tspan8464">while waiting</tspan></text> 9.2622 + <g 9.2623 + transform="translate(257.05331,-564)" 9.2624 + id="g4825"> 9.2625 + <text 9.2626 + xml:space="preserve" 9.2627 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2628 + x="222.37003" 9.2629 + y="285.39841" 9.2630 + id="text4827" 9.2631 + sodipodi:linespacing="100%"><tspan 9.2632 + id="tspan4831" 9.2633 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2634 + sodipodi:role="line" 9.2635 + x="222.37003" 9.2636 + y="285.39841">do Backoff</tspan><tspan 9.2637 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2638 + sodipodi:role="line" 9.2639 + x="222.37003" 9.2640 + y="294.39841" 9.2641 + id="tspan4837">wait</tspan></text> 9.2642 + <rect 9.2643 + y="274.77512" 9.2644 + x="193.78287" 9.2645 + height="25.544432" 9.2646 + width="57.486332" 9.2647 + id="rect4833" 9.2648 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.2649 + </g> 9.2650 + <path 9.2651 + sodipodi:nodetypes="cc" 9.2652 + inkscape:connector-curvature="0" 9.2653 + id="path4839" 9.2654 + d="m 449.58066,-276.19778 -135.75889,46.57393" 9.2655 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.2656 + <path 9.2657 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 9.2658 + d="m 328.29269,-192.89706 c 201.947,-1.19048 188.59077,6.60715 222.99693,-14.36012 65.59054,-39.97116 58.47949,-168.79464 107.66658,-129.80654" 9.2659 + id="path7449" 9.2660 + inkscape:connector-curvature="0" 9.2661 + sodipodi:nodetypes="csc" /> 9.2662 + <path 9.2663 + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 9.2664 + d="m 659.56974,-233.52943 0,24.20748" 9.2665 + id="path8339" 9.2666 + inkscape:connector-curvature="0" 9.2667 + sodipodi:nodetypes="cc" /> 9.2668 + <g 9.2669 + transform="translate(80,80)" 9.2670 + id="g8347"> 9.2671 + <text 9.2672 + xml:space="preserve" 9.2673 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2674 + x="579.39252" 9.2675 + y="-335.22998" 9.2676 + id="text8349" 9.2677 + sodipodi:linespacing="100%"><tspan 9.2678 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2679 + sodipodi:role="line" 9.2680 + x="579.39252" 9.2681 + y="-335.22998" 9.2682 + id="tspan8359">send "need</tspan><tspan 9.2683 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2684 + sodipodi:role="line" 9.2685 + x="579.39252" 9.2686 + y="-326.22998" 9.2687 + id="tspan8412">work"?</tspan></text> 9.2688 + <rect 9.2689 + ry="0" 9.2690 + transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 9.2691 + y="93.582199" 9.2692 + x="624.01776" 9.2693 + height="36.457531" 9.2694 + width="36.810017" 9.2695 + id="rect8355" 9.2696 + style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.2697 + </g> 9.2698 + <text 9.2699 + xml:space="preserve" 9.2700 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2701 + x="681.43005" 9.2702 + y="-223.95343" 9.2703 + id="text8363" 9.2704 + sodipodi:linespacing="100%"><tspan 9.2705 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2706 + sodipodi:role="line" 9.2707 + x="681.43005" 9.2708 + y="-223.95343" 9.2709 + id="tspan8367">yes, send</tspan></text> 9.2710 + <path 9.2711 + sodipodi:nodetypes="cc" 9.2712 + inkscape:connector-curvature="0" 9.2713 + id="path8371" 9.2714 + d="M 630.69705,-196.1891 509.08787,-272.94486" 9.2715 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.2716 + <g 9.2717 + id="g8391" 9.2718 + transform="translate(80,20)"> 9.2719 + <text 9.2720 + sodipodi:linespacing="100%" 9.2721 + id="text8393" 9.2722 + y="-339.22998" 9.2723 + x="579.39252" 9.2724 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2725 + xml:space="preserve"><tspan 9.2726 + y="-339.22998" 9.2727 + x="579.39252" 9.2728 + sodipodi:role="line" 9.2729 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2730 + id="tspan8395">got</tspan><tspan 9.2731 + id="tspan8397" 9.2732 + y="-330.22998" 9.2733 + x="579.39252" 9.2734 + sodipodi:role="line" 9.2735 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">work?</tspan></text> 9.2736 + <rect 9.2737 + style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.2738 + id="rect8399" 9.2739 + width="36.810017" 9.2740 + height="36.457531" 9.2741 + x="624.01776" 9.2742 + y="93.582199" 9.2743 + transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 9.2744 + ry="0" /> 9.2745 + </g> 9.2746 + <path 9.2747 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 9.2748 + d="m 659.56974,-292.00562 0,13.28746" 9.2749 + id="path8401" 9.2750 + inkscape:connector-curvature="0" 9.2751 + sodipodi:nodetypes="cc" /> 9.2752 + <text 9.2753 + xml:space="preserve" 9.2754 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2755 + x="625.43005" 9.2756 + y="-247.95343" 9.2757 + id="text8403" 9.2758 + sodipodi:linespacing="100%"><tspan 9.2759 + id="tspan8405" 9.2760 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2761 + sodipodi:role="line" 9.2762 + x="625.43005" 9.2763 + y="-247.95343">Don't</tspan><tspan 9.2764 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2765 + sodipodi:role="line" 9.2766 + x="625.43005" 9.2767 + y="-238.95343" 9.2768 + id="tspan8460">send</tspan></text> 9.2769 + <path 9.2770 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 9.2771 + d="M 632.60182,-256.1891 509.09908,-276.55267" 9.2772 + id="path8408" 9.2773 + inkscape:connector-curvature="0" 9.2774 + sodipodi:nodetypes="cc" /> 9.2775 + <text 9.2776 + sodipodi:linespacing="100%" 9.2777 + id="text8420" 9.2778 + y="-317.95343" 9.2779 + x="697.43005" 9.2780 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2781 + xml:space="preserve"><tspan 9.2782 + id="tspan8422" 9.2783 + y="-317.95343" 9.2784 + x="697.43005" 9.2785 + sodipodi:role="line" 9.2786 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan 9.2787 + y="-308.95343" 9.2788 + x="697.43005" 9.2789 + sodipodi:role="line" 9.2790 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2791 + id="tspan8424">got</tspan><tspan 9.2792 + y="-299.95343" 9.2793 + x="697.43005" 9.2794 + sodipodi:role="line" 9.2795 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2796 + id="tspan8426">work</tspan></text> 9.2797 + <text 9.2798 + sodipodi:linespacing="100%" 9.2799 + id="text8428" 9.2800 + y="-560.5929" 9.2801 + x="737.27625" 9.2802 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2803 + xml:space="preserve"><tspan 9.2804 + y="-560.5929" 9.2805 + x="737.27625" 9.2806 + sodipodi:role="line" 9.2807 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2808 + id="tspan8434">The difference between top two paths</tspan><tspan 9.2809 + y="-551.5929" 9.2810 + x="737.27625" 9.2811 + sodipodi:role="line" 9.2812 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2813 + id="tspan8440">is the way the request hdlr+assigner has</tspan><tspan 9.2814 + y="-542.5929" 9.2815 + x="737.27625" 9.2816 + sodipodi:role="line" 9.2817 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2818 + id="tspan8442">been implemented -- use shared state on</tspan><tspan 9.2819 + y="-533.5929" 9.2820 + x="737.27625" 9.2821 + sodipodi:role="line" 9.2822 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2823 + id="tspan8450">top path, but only local on the second.</tspan><tspan 9.2824 + y="-524.5929" 9.2825 + x="737.27625" 9.2826 + sodipodi:role="line" 9.2827 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2828 + id="tspan8454">NOTE: the request hdlr and assigner are</tspan><tspan 9.2829 + y="-515.5929" 9.2830 + x="737.27625" 9.2831 + sodipodi:role="line" 9.2832 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2833 + id="tspan8456">combined into a single straight-line piece</tspan><tspan 9.2834 + y="-506.5929" 9.2835 + x="737.27625" 9.2836 + sodipodi:role="line" 9.2837 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2838 + id="tspan8458">of code.</tspan></text> 9.2839 + <path 9.2840 + sodipodi:nodetypes="cccc" 9.2841 + inkscape:connector-curvature="0" 9.2842 + id="path8466" 9.2843 + d="m 279.12967,-474.53026 -22.71235,36.22941 -0.21748,176.32874 29.26421,32.66347" 9.2844 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.2845 + <path 9.2846 + sodipodi:nodetypes="cc" 9.2847 + inkscape:connector-curvature="0" 9.2848 + id="path8468" 9.2849 + d="M 548.67838,-498.64159 808.48533,-608.65596" 9.2850 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 9.2851 + <text 9.2852 + sodipodi:linespacing="100%" 9.2853 + id="text8470" 9.2854 + y="-483.95343" 9.2855 + x="571.43005" 9.2856 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2857 + xml:space="preserve"><tspan 9.2858 + y="-483.95343" 9.2859 + x="571.43005" 9.2860 + sodipodi:role="line" 9.2861 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.2862 + id="tspan8472">No VPs</tspan><tspan 9.2863 + id="tspan8474" 9.2864 + y="-474.95343" 9.2865 + x="571.43005" 9.2866 + sodipodi:role="line" 9.2867 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> ready</tspan></text> 9.2868 + <text 9.2869 + sodipodi:linespacing="100%" 9.2870 + id="text8478" 9.2871 + y="86.04657" 9.2872 + x="531.43005" 9.2873 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2874 + xml:space="preserve" 9.2875 + inkscape:transform-center-x="-8.125"><tspan 9.2876 + y="86.04657" 9.2877 + x="531.43005" 9.2878 + sodipodi:role="line" 9.2879 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.2880 + id="tspan8538" /></text> 9.2881 + <flowRoot 9.2882 + xml:space="preserve" 9.2883 + id="flowRoot8540" 9.2884 + style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"><flowRegion 9.2885 + id="flowRegion8542"><rect 9.2886 + id="rect8544" 9.2887 + width="527.61902" 9.2888 + height="266.66666" 9.2889 + x="457.14285" 9.2890 + y="491.66666" 9.2891 + style="font-size:8px" /></flowRegion><flowPara 9.2892 + id="flowPara8546" /></flowRoot> <flowRoot 9.2893 + xml:space="preserve" 9.2894 + id="flowRoot8548" 9.2895 + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" 9.2896 + transform="translate(-336.46922,-441.70658)"><flowRegion 9.2897 + id="flowRegion8550"><rect 9.2898 + id="rect8552" 9.2899 + width="539.04761" 9.2900 + height="272.38095" 9.2901 + x="447.61905" 9.2902 + y="487.85715" /></flowRegion><flowPara 9.2903 + style="font-size:8px" 9.2904 + id="flowPara8765">Local semantic Env holds the Q of ready work-units </flowPara><flowPara 9.2905 + style="font-size:8px" 9.2906 + id="flowPara8805">-] Msgs update the local semantic state, and put work-units into this Q</flowPara><flowPara 9.2907 + style="font-size:8px" 9.2908 + id="flowPara8767">-] Shared sem state is traditional VMS, except req hdlr and assigner are same Fn</flowPara><flowPara 9.2909 + style="font-size:8px" 9.2910 + id="flowPara8769">-] Shared sem has its own structs to decide which VP is ready, and switches to it at end of Assigner</flowPara><flowPara 9.2911 + style="font-size:8px" 9.2912 + id="flowPara8771">-] Which core a VP runs on is decided between req hdlr and assigner, based on shared structs that hold the VPs</flowPara><flowPara 9.2913 + style="font-size:8px" 9.2914 + id="flowPara8773">-] For local-only, VP is moved to the core it runs on -- assigner only moves VPs to diff cores and receives them</flowPara><flowPara 9.2915 + style="font-size:8px" 9.2916 + id="flowPara8775">-] For atomic tasks, the task-info is sent betwn cores.. for VPs, whole live portion of stack is sent.</flowPara><flowPara 9.2917 + style="font-size:8px" 9.2918 + id="flowPara8777" /><flowPara 9.2919 + style="font-size:8px" 9.2920 + id="flowPara8823">Okay, so this fits the standard VMS model -- except now the core-controller is gone, so the extra level of UCC is taken away. Now, the MasterVP is "reusing" whatever VP has suspended. -- in a way, the core-controller plu AnimationMaster are reduced to the assembly call that the WrapperLib (WL) makes to end the current work-unit, which suspends the VP. Inside that suspend call, is the opportunity to switch between different processes, call upon VMS-only helper services, and so on.</flowPara><flowPara 9.2921 + style="font-size:8px" 9.2922 + id="flowPara8825">So, the switch-over is a function call to a wrapp-lib, which then does an assembly Fn call -- the assembly saves the stack state (regs already saved when did the wrapper-lib call), and then puts localEnv into the param reg (for 64 bit convention) and jumps to the plugin-fn. Note, there are three different assembly calls, one for each kind of work-unit, to end it. Sometimes work-unit calls assembly directly, sometimes it calls a wrapper-lib that just does all the work right there, sometimes the wrapper lib calls the appropriate assembly Fn.</flowPara><flowPara 9.2923 + style="font-size:8px" 9.2924 + id="flowPara8827" /><flowPara 9.2925 + style="font-size:8px" 9.2926 + id="flowPara8793">Need to modify request structure, so abstraction can supply services via request -- and perhaps library Fns that perform some of services direct from app, and other Fns for use inside the plugins.. such as Malloc-Free, create VP, create atomic-Task.. some are pure wrapper-lib, others are combo.. seeing one version of malloc for wrapper-lib, different for plugin and msg-system use.The msg system is details of impl of Lang Animator -- so plugin is still "completing" the lang animator by adding semantics</flowPara><flowPara 9.2927 + style="font-size:8px" 9.2928 + id="flowPara8801">Core-controller was a second level beneath the runtime (Language Animator is the runtime).. The sched slots were virtual physical animators, and the masterVP was the Language Animator, which the AnimationMaster Fn and the plugin Fns supplied the behavior of. The coreCtlr switched between levels -- The MasterVP was "outside" the framework of the schedling slots -- in a way it was beside them (they took turns getting the actual phys animator, so same level) and in other way was above -- it controlled what went into the slots, so above them. I another way, the MasterVP was the Language Animator, while the slots were virtual physical, so they had no locial connection -- the slots were related to the same thing that animatored the language animator.. a very strange arrangement.</flowPara></flowRoot> <text 9.2929 + xml:space="preserve" 9.2930 + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" 9.2931 + x="894.00696" 9.2932 + y="-182.42088" 9.2933 + id="text8833" 9.2934 + sodipodi:linespacing="125%"><tspan 9.2935 + sodipodi:role="line" 9.2936 + id="tspan8835" 9.2937 + x="894.00696" 9.2938 + y="-182.42088"> </tspan></text> 9.2939 + <g 9.2940 + id="g3490" 9.2941 + transform="translate(177.05331,-343.31973)"> 9.2942 + <text 9.2943 + sodipodi:linespacing="100%" 9.2944 + id="text3492" 9.2945 + y="285.39841" 9.2946 + x="222.37003" 9.2947 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2948 + xml:space="preserve"><tspan 9.2949 + y="285.39841" 9.2950 + x="222.37003" 9.2951 + sodipodi:role="line" 9.2952 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2953 + id="tspan3501">send work-</tspan><tspan 9.2954 + y="294.39841" 9.2955 + x="222.37003" 9.2956 + sodipodi:role="line" 9.2957 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2958 + id="tspan3511">push msg</tspan><tspan 9.2959 + y="303.39841" 9.2960 + x="223.72354" 9.2961 + sodipodi:role="line" 9.2962 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2963 + id="tspan3513">and start </tspan><tspan 9.2964 + y="312.39841" 9.2965 + x="222.37003" 9.2966 + sodipodi:role="line" 9.2967 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.2968 + id="tspan3515">timer for it.</tspan></text> 9.2969 + <rect 9.2970 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 9.2971 + id="rect3503" 9.2972 + width="57.486332" 9.2973 + height="63.639675" 9.2974 + x="193.78287" 9.2975 + y="274.77512" /> 9.2976 + </g> 9.2977 + <text 9.2978 + xml:space="preserve" 9.2979 + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" 9.2980 + x="84.168976" 9.2981 + y="-681.48474" 9.2982 + id="text3537" 9.2983 + sodipodi:linespacing="125%"><tspan 9.2984 + sodipodi:role="line" 9.2985 + id="tspan3539" 9.2986 + x="84.168976" 9.2987 + y="-681.48474" 9.2988 + style="font-size:40px">Control Flow of Universal Proto-Runtime </tspan></text> 9.2989 + <g 9.2990 + transform="translate(237.05331,-404)" 9.2991 + id="g3541"> 9.2992 + <text 9.2993 + xml:space="preserve" 9.2994 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.2995 + x="222.25137" 9.2996 + y="285.36765" 9.2997 + id="text3543" 9.2998 + sodipodi:linespacing="100%"><tspan 9.2999 + id="tspan3547" 9.3000 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.3001 + sodipodi:role="line" 9.3002 + x="222.25137" 9.3003 + y="285.36765">Expired timer</tspan><tspan 9.3004 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 9.3005 + sodipodi:role="line" 9.3006 + x="222.25137" 9.3007 + y="294.36765" 9.3008 + id="tspan3553">handler</tspan></text> 9.3009 + <rect 9.3010 + y="274.77512" 9.3011 + x="193.78287" 9.3012 + height="25.544432" 9.3013 + width="57.486332" 9.3014 + id="rect3549" 9.3015 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 9.3016 + </g> 9.3017 + <path 9.3018 + style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 9.3019 + d="m 323.63077,-165.12086 131.74691,33.98134" 9.3020 + id="path3555" 9.3021 + inkscape:connector-curvature="0" 9.3022 + sodipodi:nodetypes="cc" /> 9.3023 + <text 9.3024 + xml:space="preserve" 9.3025 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.3026 + x="393.43005" 9.3027 + y="-151.95343" 9.3028 + id="text3557" 9.3029 + sodipodi:linespacing="100%"><tspan 9.3030 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.3031 + sodipodi:role="line" 9.3032 + x="393.43005" 9.3033 + y="-151.95343" 9.3034 + id="tspan3561"> Expired</tspan><tspan 9.3035 + style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 9.3036 + sodipodi:role="line" 9.3037 + x="393.43005" 9.3038 + y="-142.95343" 9.3039 + id="tspan3565"> timer</tspan></text> 9.3040 + <text 9.3041 + xml:space="preserve" 9.3042 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 9.3043 + x="449.27625" 9.3044 + y="-93.273193" 9.3045 + id="text3567" 9.3046 + sodipodi:linespacing="100%"><tspan 9.3047 + id="tspan3579" 9.3048 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.3049 + sodipodi:role="line" 9.3050 + x="449.27625" 9.3051 + y="-93.273193">When send work to other core,</tspan><tspan 9.3052 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.3053 + sodipodi:role="line" 9.3054 + x="449.27625" 9.3055 + y="-84.273193" 9.3056 + id="tspan3591">it may be sleeping. So when timer</tspan><tspan 9.3057 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.3058 + sodipodi:role="line" 9.3059 + x="449.27625" 9.3060 + y="-75.273193" 9.3061 + id="tspan3593">expires, do escrow, which is atomic</tspan><tspan 9.3062 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.3063 + sodipodi:role="line" 9.3064 + x="449.27625" 9.3065 + y="-66.273193" 9.3066 + id="tspan3595">check of whether work was received.</tspan><tspan 9.3067 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.3068 + sodipodi:role="line" 9.3069 + x="449.27625" 9.3070 + y="-57.273193" 9.3071 + id="tspan3597">If not, then check if dest core is </tspan><tspan 9.3072 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.3073 + sodipodi:role="line" 9.3074 + x="449.27625" 9.3075 + y="-48.273193" 9.3076 + id="tspan3599">sleeping -- if no, then take work</tspan><tspan 9.3077 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.3078 + sodipodi:role="line" 9.3079 + x="449.27625" 9.3080 + y="-39.273193" 9.3081 + id="tspan3611">back. If yes, do wakeup and set a </tspan><tspan 9.3082 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.3083 + sodipodi:role="line" 9.3084 + x="449.27625" 9.3085 + y="-30.273193" 9.3086 + id="tspan3609">new timer, which will do this</tspan><tspan 9.3087 + style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 9.3088 + sodipodi:role="line" 9.3089 + x="449.27625" 9.3090 + y="-21.273193" 9.3091 + id="tspan3617">handling again.</tspan></text> 9.3092 + </g> 9.3093 +</svg>
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 10.2 +++ b/0__Papers/VMS/Split-core_msg_passing_based/latex/VMS_universal.tex Mon Oct 08 23:03:26 2012 -0700 10.3 @@ -0,0 +1,281 @@ 10.4 +%&latex 10.5 +%% Derived from: `accept.tex' (from acmconf.dtx), 10.6 + 10.7 +\documentclass[box,accept]{acmconf} 10.8 + 10.9 +\CopyrightText{\copyright ACM 2000, ....., used with the \texttt{box} option.} 10.10 +\IfFileExists{graphicx.sty}{\usepackage{graphicx}}{} 10.11 +\ConferenceName{1. Conference on Designing a \LaTeX2e Class for 10.12 + Typesetting ACM Papers, Hawaii 2000} 10.13 +\ConferenceShortName{CONF-2000} 10.14 + 10.15 +\def\XX{More text should follow, but keep in mind that a limit of 6 10.16 + pages has been set, including figures and references. More text 10.17 + should follow, but keep in mind that a limit of 6 pages has been 10.18 + set, including figures and references. More text should follow, but 10.19 + keep in mind that a limit of 6 pages has been set, including figures 10.20 + and references. More text should follow, but keep in mind that a 10.21 + limit of 6 pages has been set, including figures and references. 10.22 + \par 10.23 +} 10.24 + 10.25 +\begin{document} 10.26 + 10.27 +%+Title 10.28 +\date{31. December 1999} 10.29 +\title{A Universal Proto-Runtime for Domain Specific Parallel Languages} 10.30 +\author{\Author{Sean Halle}\\ 10.31 + \Address{Open Source Research Institute}\\ 10.32 + \Email{Sean.Halle@OpenSourceResearchInstitute.org} 10.33 + } 10.34 +\maketitle 10.35 +%-Title 10.36 + 10.37 +%+Abstract 10.38 +\begin{abstract} 10.39 +Software has not been keeping up with parallel hardware, which slows the economy and retards adoption of new hardware. The gap is due in part to the disruption caused by moving to parallel languages, and in part to the prohibitive effort of porting parallel code across platforms. A leading idea for solving this is domain-specific parallel languages, where custom constructs are made to match features of the problem. However, such languages have a small number of users, which can't support the currently large effort to create such languages and port them across hardware platforms. 10.40 + 10.41 +To simplify creation of domain-specific languages, we propose a "proto" runtime, which provides the cross-language portion of runtime behavior. This includes handling the concurrency issues within the runtime itself. A given language only provides sequential implementations of its constructs. 10.42 + 10.43 + 10.44 + 10.45 +We explain the practical usage and theory, and show measurements of implementation time of three simple languages and one domain-specific language for hardware simulation. We also give runtime overhead measurements, which are orders of magnitude better than pthreads and OpenMP. 10.46 +\end{abstract} 10.47 +%-Abstract 10.48 + 10.49 + 10.50 +\section{Introduction} 10.51 +Current parallel languages, such as pthreads, TBB, OpenMP, and MPI, require programmers to learn new, complex mental models. Sequential programmers have to be retrained to using the parallel languages, and a new set of programming practices must be adopted for them. Such retraining generates a large disruption in the application-software companies that attempt to start using these parallel languages. 10.52 + 10.53 +Further, after learning the new language and adopting the new programming practices, the companies still have to hand-tune each application for each target hardware platform. Not only that, but customers have to acquire a new binary when they upgrade hardware. Both effects are costly, and tend to retard adoption of new hardware, despite potential performance gains. 10.54 + 10.55 +The net result is that software lags behind hardware, and the potential advantages across the economy of new hardware designs are lost. What is needed is a way to ease the transition from sequential programming to parallel programming, and to reduce the amount of hand-tuning done to get efficient performance on new hardware. 10.56 + 10.57 + 10.58 +Domain-specific languages promise to deliver both easier transition and efficiency across hardware[]. They do this by providing custom constructs that match to patterns in the application. Thus, they are natural for the sequential programmer to use. The custom constructs ``hide'' parallelism inside themselves, letting the runtime or toolchain handle it, freeing the programmer, and putting performance inside the tools. This makes coding easier and reduces hand-tuning. 10.59 + 10.60 +To illustrate the concept, we briefly cover one such language, which is used for describing the behavior of hardware, called HWSim. It has a straight-forward means for describing hardware, and then extracts parallelism from the description. The extracted parallelism is then efficiently exploited on a variety of target platforms. 10.61 + 10.62 +One blockage to wide-spread adoption of such domain-specific languages is the cost of developing them. Currently, a toolchain is created, including an optimizer and back end for each target platform. This is expensive. 10.63 + 10.64 +An alternative approach is so-called embedded languages, in which the new constructs are viewed as library calls made from a base language, such as C. This relies on the runtime system to provide efficient execution on a given target platform. It avoids the expense of creating a toolchain for each target, by instead creating a runtime for each target that is tuned to the hardware. 10.65 + 10.66 +This is a step forward, but such runtimes are still expensive to create. A technology to simplify the runtime creation would be helpful. 10.67 + 10.68 +In this paper, we present a means to reduce runtime creation, by not only reducing the complexity, but also by making reuse of runtime code in new languages more practical. It essentially breaks a runtime into two pieces: a part that implements the semantic behavior of the custom constructs, and a part that is the same for every language. 10.69 + 10.70 + A nice happenstance is that most of the complicated concurrency issues that come up inside current runtime implementations can be collected inside the part that stays the same across languages. This means the language only need supply a sequential implementation of its constructs' behavior. The cross-language part handles low-level synchronization and communication between cores, exporting a simple interface. 10.71 + 10.72 +Another nice happenstance is that the interface between the two parts of the runtime modularizes the runtime code. This, by itself, speeds development of new runtimes. In addition, it makes sharing between languages practical, especially for the portion that chooses where to perform work, and in which order. 10.73 + 10.74 + This placement-choosing portion handles data affinity and the shape of the dependency graph, which are largely responsible for the resulting performance. However, it can be written to contain few language-specific portions, making it practical to share between languages, for a given target platform. This saves a non-trivial amount of development work. 10.75 + 10.76 +While runtimes built without our contribution are still free to share such code, they have no equivalent interface between the runtime pieces. This makes isolating this portion of code more time consuming, and forces more effort to fit code from one runtime into the one of a different language. 10.77 + 10.78 +We call our contribution Universal Proto-Runtime (UPR) in order to capture the idea that we supply a partial runtime that must be completed by the language. Unlike a thread package, our contribution cannot be used directly by application code. Rather, a \emph{plugin} that contains the language-specific portions must be supplied. 10.79 +The application then uses the combination. 10.80 + 10.81 + 10.82 +Organization of paper 10.83 + 10.84 +\section{Background and Related Work} 10.85 + 10.86 +The current method of creating a runtime for a new domain-specific language is either writing one from scratch, normally on top of pthreads, or else modifying an existing runtime. LibGomp, the runtime for OpenMP, is a popular starting point. 10.87 + 10.88 +From anecdotal evidence, talking with 5 groups that have created domain specific languages, development of bare functionality of the runtime takes anywhere from one to several months. Perhaps a majority of the time is spent on multi-threading design and debugging. That is just for basic functionality; if they want low overhead, they expect another three to six months of performance tuning. 10.89 + 10.90 +One group was interviewed, which used libGomp as the base upon which to build a streaming dataflow language. 10.91 + 10.92 +UPR is designed to shorten that development time. 10.93 + 10.94 + 10.95 +UPR differs from pthreads, TBB, and other thread packages in that it provides a mental model that is specific to runtime creation. Pthreads and TBB are programming languages in their own right, but UPR is not. It has no semantics usable in application code, because it's only a \emph{part} of a runtime. It is geared exclusively to runtime creation. 10.96 + 10.97 +? 10.98 + 10.99 + 10.100 + 10.101 +\section{The Story Begins\ldots} 10.102 +A real article is supposed to have some deep results and good 10.103 +explanations. That, however, is your job and not mine so you should 10.104 +replace this text with something more appropriate\footnote{Another a 10.105 + footnote}.. 10.106 + 10.107 +\section{Some often used \LaTeX\ commands} 10.108 + 10.109 +\subsection{\texttt{emph}, etc.} 10.110 +Text may be set as \emph{emph}.\\ 10.111 +Text may be set as \texttt{texttt}.\\ 10.112 +Text may be set as \underline{unterline}.\\ 10.113 +Text may be set as \textbf{textbf}.\\ 10.114 +Text may be set as \textrm{textrm}.\\ 10.115 +Text may be set as {\tiny tiny}.\\ 10.116 +Text may be set as {\scriptsize scriptsize}.\\ 10.117 +Text may be set as {\footnotesize footnotesize}.\\ 10.118 +Text may be set as {\normalfont normalsize}.\\ 10.119 +Text may be set as {\large large}.\\ 10.120 +Text may be set as {\Large Large}.\\ 10.121 +Text may be set as {\LARGE LARGE}.\\ 10.122 +Text may be set as {\huge huge}.\\ 10.123 +Text may be set as {\Huge Huge}.\\ 10.124 +Text may have$^{\textrm{super}}$ and$_{\textrm{sub}}$scripts. 10.125 + 10.126 +\subsection{\texttt{itemize}} 10.127 +\begin{itemize} 10.128 +\item More text should follow, but keep in mind that a limit of 6 10.129 + pages has been set, including figures and references. More text 10.130 + should follow, but keep in mind that a limit of 6 pages has been 10.131 + set, including figures and references. 10.132 +\item More text should follow, but keep in mind that a limit of 6 10.133 + pages has been set, including figures and references. More text 10.134 + should follow, but keep in mind that a limit of 6 pages has been 10.135 + set, including figures and references. 10.136 +\end{itemize} 10.137 + 10.138 +\subsection{\texttt{enumerate}} 10.139 +\begin{enumerate} 10.140 +\item More text should follow, but keep in mind that a limit of 6 10.141 + pages has been set, including figures and references. More text 10.142 + should follow, but keep in mind that a limit of 6 pages has been 10.143 + set, including figures and references. 10.144 +\item More text should follow, but keep in mind that a limit of 6 10.145 + pages has been set, including figures and references. More text 10.146 + should follow, but keep in mind that a limit of 6 pages has been 10.147 + set, including figures and references. 10.148 +\end{enumerate} 10.149 + 10.150 +\subsection{\texttt{description}} 10.151 +\begin{description} 10.152 +\item[Foo] More text should follow, but keep in mind that a limit of 6 10.153 + pages has been set, including figures and references. More text 10.154 + should follow, but keep in mind that a limit of 6 pages has been 10.155 + set, including figures and references. 10.156 +\item[Bar] More text should follow, but keep in mind that a limit of 6 10.157 + pages has been set, including figures and references. More text 10.158 + should follow, but keep in mind that a limit of 6 pages has been 10.159 + set, including figures and references. 10.160 +\end{description} 10.161 + 10.162 +\subsection{\texttt{center} and \texttt{tabular}} 10.163 +\begin{center} 10.164 +\begin{tabular}{|l|c|r|}\hline 10.165 +left & center & right \\\hline\hline 10.166 +AAAAAAAA & BBBBBBBB & CCCCCCCC \\ 10.167 +AAAAAAAA & BBBBBBBB & CCCCCCCC \\\cline{3-3} 10.168 +AAAAAAAA & BBBBBBBB & CCCCCCCC \\\cline{2-2} 10.169 +AAAAAAAA & BBBBBBBB & CCCCCCCC \\\cline{1-2} 10.170 +AAAAAAAA & BBBBBBBB & CCCCCCCC \\\hline 10.171 +AAAAAAAA & BBBBBBBB & CCCCCCCC \\\hline 10.172 +1 & \multicolumn{2}{|c|}{2} \\\hline 10.173 +\end{tabular} 10.174 +\end{center} 10.175 + 10.176 +\subsection{\texttt{figure} and Postscript pictures} 10.177 +Have a look to to figure~\ref{fig-1} and~\ref{fig-2}. 10.178 + 10.179 +\begin{figure} 10.180 +\hrule 10.181 +Nice Postscript, isn't it? 10.182 +\begin{center} 10.183 +\IfFileExists{graphicx.sty}{ 10.184 + \includegraphics{body.eps} 10.185 +}{ 10.186 + Sorry, package \texttt{graphicx} not present. 10.187 +} 10.188 +\end{center} 10.189 + 10.190 +Same, a little bit smaller: 10.191 +\begin{center} 10.192 +\IfFileExists{graphicx.sty}{ 10.193 + \includegraphics[scale=.5]{body.eps} 10.194 + }{ 10.195 + Sorry, package \texttt{graphicx} not present. 10.196 +} 10.197 +\end{center} 10.198 +\caption{\label{fig-1}This is a nice floating figure} 10.199 +\hrule 10.200 +\end{figure} 10.201 + 10.202 +\begin{figure*} 10.203 +\hrule 10.204 +This figure uses both columns, using \texttt{figure*} 10.205 +\begin{center} 10.206 +\IfFileExists{graphicx.sty}{ 10.207 + \includegraphics[scale=.5]{body.eps} 10.208 + \hspace{1cm} 10.209 + \includegraphics[scale=.5]{body.eps} 10.210 +}{ 10.211 + Sorry, package \texttt{graphicx} not present. 10.212 +} 10.213 +\end{center} 10.214 +\caption{\label{fig-2}This is a nice floating figure} 10.215 +\hrule 10.216 +\end{figure*} 10.217 + 10.218 +\section{The Story Continues 1} 10.219 + 10.220 +This is a \verb+\section+. 10.221 + 10.222 +\XX\XX 10.223 + 10.224 +\subsection{The Story Continues 2} 10.225 + 10.226 +This is a \verb+\subsection+. 10.227 + 10.228 +\XX\XX 10.229 + 10.230 +\subsubsection{The Story Continues 3} 10.231 + 10.232 +This is a \verb+\subsubsection+. 10.233 + 10.234 +\XX\XX 10.235 + 10.236 +\subsubsubsection{The Story Continues 4} 10.237 + 10.238 +This is a \verb+\subsubsubsection+. 10.239 + 10.240 +\XX\XX 10.241 + 10.242 +\subsubsubsubsection{The Story Continues 5} 10.243 + 10.244 +This is a \verb+\subsubsubsubsection+. 10.245 + 10.246 +\XX\XX 10.247 + 10.248 +\paragraph{The Story Continues 6} 10.249 + 10.250 +This is a \verb+\paragraph+. 10.251 +\XX\XX 10.252 + 10.253 +\subparagraph{The Story Continues 7} 10.254 +This is a \verb+\subparagraph+. 10.255 +\XX\XX\XX 10.256 + 10.257 +\section{Conclusion} 10.258 +The end, at last! In this example there really are no results or 10.259 +points to summarize but I trust your article has more food for though 10.260 +and thus will need a conclusion. 10.261 + 10.262 +\appendix 10.263 +\section{Appendices} 10.264 +If you have any, appendices might go here. Note that appendices 10.265 +should not be used to circumvent the word count limit. 10.266 + 10.267 +This is "doing it by hand" --- you might be better off using BibTeX. 10.268 + 10.269 +%+Bibliography 10.270 +\begin{thebibliography}{X} 10.271 +\bibitem[1]{Lam94} Leslie Lamport: {\em \LaTeX, A Document 10.272 + Preparation System,} Addison Wesley~1994. 10.273 +\end{thebibliography} 10.274 +%-Bibliography 10.275 + 10.276 +\IfPrepare{ 10.277 + \tableofcontents 10.278 + \listoffigures 10.279 + \listoftables 10.280 +}{} 10.281 + 10.282 +\end{document} 10.283 + 10.284 +
11.1 Binary file 0__Papers/VMS/Universal/figures/control_flow.pdf has changed
12.1 --- a/0__Papers/VMS/Universal/figures/control_flow.svg Fri Aug 17 19:01:07 2012 +0200 12.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 12.3 @@ -1,3090 +0,0 @@ 12.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 12.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 12.6 - 12.7 -<svg 12.8 - xmlns:dc="http://purl.org/dc/elements/1.1/" 12.9 - xmlns:cc="http://creativecommons.org/ns#" 12.10 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 12.11 - xmlns:svg="http://www.w3.org/2000/svg" 12.12 - xmlns="http://www.w3.org/2000/svg" 12.13 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 12.14 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 12.15 - width="1488.189" 12.16 - height="1052.3622" 12.17 - id="svg2" 12.18 - sodipodi:version="0.32" 12.19 - inkscape:version="0.48.1 " 12.20 - sodipodi:docname="control_flow.svg" 12.21 - inkscape:output_extension="org.inkscape.output.svg.inkscape" 12.22 - version="1.1"> 12.23 - <defs 12.24 - id="defs4"> 12.25 - <marker 12.26 - inkscape:stockid="StopL" 12.27 - orient="auto" 12.28 - refY="0" 12.29 - refX="0" 12.30 - id="StopL" 12.31 - style="overflow:visible"> 12.32 - <path 12.33 - id="path10015" 12.34 - d="M 0,5.65 0,-5.65" 12.35 - style="fill:none;stroke:#000000;stroke-width:1pt" 12.36 - transform="scale(0.8,0.8)" 12.37 - inkscape:connector-curvature="0" /> 12.38 - </marker> 12.39 - <marker 12.40 - inkscape:stockid="TriangleOutL" 12.41 - orient="auto" 12.42 - refY="0" 12.43 - refX="0" 12.44 - id="TriangleOutL" 12.45 - style="overflow:visible"> 12.46 - <path 12.47 - id="path9988" 12.48 - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" 12.49 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 12.50 - transform="scale(0.8,0.8)" 12.51 - inkscape:connector-curvature="0" /> 12.52 - </marker> 12.53 - <marker 12.54 - inkscape:stockid="Arrow2Mstart" 12.55 - orient="auto" 12.56 - refY="0" 12.57 - refX="0" 12.58 - id="Arrow2Mstart" 12.59 - style="overflow:visible"> 12.60 - <path 12.61 - id="path5492" 12.62 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.63 - 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" 12.64 - transform="scale(0.6,0.6)" 12.65 - inkscape:connector-curvature="0" /> 12.66 - </marker> 12.67 - <marker 12.68 - inkscape:stockid="Arrow2Mend" 12.69 - orient="auto" 12.70 - refY="0" 12.71 - refX="0" 12.72 - id="Arrow2Mend" 12.73 - style="overflow:visible"> 12.74 - <path 12.75 - id="path3563" 12.76 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.77 - 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" 12.78 - transform="scale(-0.6,-0.6)" 12.79 - inkscape:connector-curvature="0" /> 12.80 - </marker> 12.81 - <marker 12.82 - inkscape:stockid="TriangleOutM" 12.83 - orient="auto" 12.84 - refY="0" 12.85 - refX="0" 12.86 - id="TriangleOutM" 12.87 - style="overflow:visible"> 12.88 - <path 12.89 - id="path3682" 12.90 - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" 12.91 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 12.92 - transform="scale(0.4,0.4)" 12.93 - inkscape:connector-curvature="0" /> 12.94 - </marker> 12.95 - <marker 12.96 - inkscape:stockid="Arrow2Lend" 12.97 - orient="auto" 12.98 - refY="0" 12.99 - refX="0" 12.100 - id="Arrow2Lend" 12.101 - style="overflow:visible"> 12.102 - <path 12.103 - id="path3557" 12.104 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.105 - 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" 12.106 - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" 12.107 - inkscape:connector-curvature="0" /> 12.108 - </marker> 12.109 - <marker 12.110 - inkscape:stockid="Arrow1Mstart" 12.111 - orient="auto" 12.112 - refY="0" 12.113 - refX="0" 12.114 - id="Arrow1Mstart" 12.115 - style="overflow:visible"> 12.116 - <path 12.117 - id="path3542" 12.118 - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" 12.119 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 12.120 - transform="matrix(0.4,0,0,0.4,4,0)" 12.121 - inkscape:connector-curvature="0" /> 12.122 - </marker> 12.123 - <marker 12.124 - inkscape:stockid="Arrow1Lend" 12.125 - orient="auto" 12.126 - refY="0" 12.127 - refX="0" 12.128 - id="Arrow1Lend" 12.129 - style="overflow:visible"> 12.130 - <path 12.131 - id="path3539" 12.132 - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" 12.133 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 12.134 - transform="matrix(-0.8,0,0,-0.8,-10,0)" 12.135 - inkscape:connector-curvature="0" /> 12.136 - </marker> 12.137 - <marker 12.138 - inkscape:stockid="Arrow1Lstart" 12.139 - orient="auto" 12.140 - refY="0" 12.141 - refX="0" 12.142 - id="Arrow1Lstart" 12.143 - style="overflow:visible"> 12.144 - <path 12.145 - id="path3536" 12.146 - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" 12.147 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 12.148 - transform="matrix(0.8,0,0,0.8,10,0)" 12.149 - inkscape:connector-curvature="0" /> 12.150 - </marker> 12.151 - <inkscape:perspective 12.152 - sodipodi:type="inkscape:persp3d" 12.153 - inkscape:vp_x="0 : 526.18109 : 1" 12.154 - inkscape:vp_y="0 : 1000 : 0" 12.155 - inkscape:vp_z="744.09448 : 526.18109 : 1" 12.156 - inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 12.157 - id="perspective10" /> 12.158 - <inkscape:perspective 12.159 - id="perspective4311" 12.160 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.161 - inkscape:vp_z="1 : 0.5 : 1" 12.162 - inkscape:vp_y="0 : 1000 : 0" 12.163 - inkscape:vp_x="0 : 0.5 : 1" 12.164 - sodipodi:type="inkscape:persp3d" /> 12.165 - <inkscape:perspective 12.166 - id="perspective4336" 12.167 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.168 - inkscape:vp_z="1 : 0.5 : 1" 12.169 - inkscape:vp_y="0 : 1000 : 0" 12.170 - inkscape:vp_x="0 : 0.5 : 1" 12.171 - sodipodi:type="inkscape:persp3d" /> 12.172 - <inkscape:perspective 12.173 - id="perspective4365" 12.174 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.175 - inkscape:vp_z="1 : 0.5 : 1" 12.176 - inkscape:vp_y="0 : 1000 : 0" 12.177 - inkscape:vp_x="0 : 0.5 : 1" 12.178 - sodipodi:type="inkscape:persp3d" /> 12.179 - <marker 12.180 - inkscape:stockid="Arrow2Mend" 12.181 - orient="auto" 12.182 - refY="0" 12.183 - refX="0" 12.184 - id="Arrow2Mend-9" 12.185 - style="overflow:visible"> 12.186 - <path 12.187 - id="path3563-4" 12.188 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.189 - 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" 12.190 - transform="scale(-0.6,-0.6)" 12.191 - inkscape:connector-curvature="0" /> 12.192 - </marker> 12.193 - <inkscape:perspective 12.194 - id="perspective4423" 12.195 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.196 - inkscape:vp_z="1 : 0.5 : 1" 12.197 - inkscape:vp_y="0 : 1000 : 0" 12.198 - inkscape:vp_x="0 : 0.5 : 1" 12.199 - sodipodi:type="inkscape:persp3d" /> 12.200 - <marker 12.201 - inkscape:stockid="Arrow2Mend" 12.202 - orient="auto" 12.203 - refY="0" 12.204 - refX="0" 12.205 - id="Arrow2Mend-8" 12.206 - style="overflow:visible"> 12.207 - <path 12.208 - id="path3563-2" 12.209 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.210 - 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" 12.211 - transform="scale(-0.6,-0.6)" 12.212 - inkscape:connector-curvature="0" /> 12.213 - </marker> 12.214 - <inkscape:perspective 12.215 - id="perspective4461" 12.216 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.217 - inkscape:vp_z="1 : 0.5 : 1" 12.218 - inkscape:vp_y="0 : 1000 : 0" 12.219 - inkscape:vp_x="0 : 0.5 : 1" 12.220 - sodipodi:type="inkscape:persp3d" /> 12.221 - <inkscape:perspective 12.222 - id="perspective14081" 12.223 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.224 - inkscape:vp_z="1 : 0.5 : 1" 12.225 - inkscape:vp_y="0 : 1000 : 0" 12.226 - inkscape:vp_x="0 : 0.5 : 1" 12.227 - sodipodi:type="inkscape:persp3d" /> 12.228 - <inkscape:perspective 12.229 - id="perspective14206" 12.230 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.231 - inkscape:vp_z="1 : 0.5 : 1" 12.232 - inkscape:vp_y="0 : 1000 : 0" 12.233 - inkscape:vp_x="0 : 0.5 : 1" 12.234 - sodipodi:type="inkscape:persp3d" /> 12.235 - <inkscape:perspective 12.236 - id="perspective14299" 12.237 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.238 - inkscape:vp_z="1 : 0.5 : 1" 12.239 - inkscape:vp_y="0 : 1000 : 0" 12.240 - inkscape:vp_x="0 : 0.5 : 1" 12.241 - sodipodi:type="inkscape:persp3d" /> 12.242 - <inkscape:perspective 12.243 - id="perspective16915" 12.244 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.245 - inkscape:vp_z="1 : 0.5 : 1" 12.246 - inkscape:vp_y="0 : 1000 : 0" 12.247 - inkscape:vp_x="0 : 0.5 : 1" 12.248 - sodipodi:type="inkscape:persp3d" /> 12.249 - <inkscape:perspective 12.250 - id="perspective16946" 12.251 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.252 - inkscape:vp_z="1 : 0.5 : 1" 12.253 - inkscape:vp_y="0 : 1000 : 0" 12.254 - inkscape:vp_x="0 : 0.5 : 1" 12.255 - sodipodi:type="inkscape:persp3d" /> 12.256 - <inkscape:perspective 12.257 - id="perspective17789" 12.258 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.259 - inkscape:vp_z="1 : 0.5 : 1" 12.260 - inkscape:vp_y="0 : 1000 : 0" 12.261 - inkscape:vp_x="0 : 0.5 : 1" 12.262 - sodipodi:type="inkscape:persp3d" /> 12.263 - <inkscape:perspective 12.264 - id="perspective17820" 12.265 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.266 - inkscape:vp_z="1 : 0.5 : 1" 12.267 - inkscape:vp_y="0 : 1000 : 0" 12.268 - inkscape:vp_x="0 : 0.5 : 1" 12.269 - sodipodi:type="inkscape:persp3d" /> 12.270 - <marker 12.271 - inkscape:stockid="Arrow2Mend" 12.272 - orient="auto" 12.273 - refY="0" 12.274 - refX="0" 12.275 - id="Arrow2Mend-8-2" 12.276 - style="overflow:visible"> 12.277 - <path 12.278 - id="path3563-2-3" 12.279 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.280 - 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" 12.281 - transform="scale(-0.6,-0.6)" 12.282 - inkscape:connector-curvature="0" /> 12.283 - </marker> 12.284 - <inkscape:perspective 12.285 - id="perspective17848" 12.286 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.287 - inkscape:vp_z="1 : 0.5 : 1" 12.288 - inkscape:vp_y="0 : 1000 : 0" 12.289 - inkscape:vp_x="0 : 0.5 : 1" 12.290 - sodipodi:type="inkscape:persp3d" /> 12.291 - <inkscape:perspective 12.292 - id="perspective17891" 12.293 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.294 - inkscape:vp_z="1 : 0.5 : 1" 12.295 - inkscape:vp_y="0 : 1000 : 0" 12.296 - inkscape:vp_x="0 : 0.5 : 1" 12.297 - sodipodi:type="inkscape:persp3d" /> 12.298 - <marker 12.299 - inkscape:stockid="Arrow2Mend" 12.300 - orient="auto" 12.301 - refY="0" 12.302 - refX="0" 12.303 - id="Arrow2Mend-8-7" 12.304 - style="overflow:visible"> 12.305 - <path 12.306 - id="path3563-2-8" 12.307 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.308 - 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" 12.309 - transform="scale(-0.6,-0.6)" 12.310 - inkscape:connector-curvature="0" /> 12.311 - </marker> 12.312 - <inkscape:perspective 12.313 - id="perspective17925" 12.314 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.315 - inkscape:vp_z="1 : 0.5 : 1" 12.316 - inkscape:vp_y="0 : 1000 : 0" 12.317 - inkscape:vp_x="0 : 0.5 : 1" 12.318 - sodipodi:type="inkscape:persp3d" /> 12.319 - <inkscape:perspective 12.320 - id="perspective17996" 12.321 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.322 - inkscape:vp_z="1 : 0.5 : 1" 12.323 - inkscape:vp_y="0 : 1000 : 0" 12.324 - inkscape:vp_x="0 : 0.5 : 1" 12.325 - sodipodi:type="inkscape:persp3d" /> 12.326 - <inkscape:perspective 12.327 - id="perspective18039" 12.328 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.329 - inkscape:vp_z="1 : 0.5 : 1" 12.330 - inkscape:vp_y="0 : 1000 : 0" 12.331 - inkscape:vp_x="0 : 0.5 : 1" 12.332 - sodipodi:type="inkscape:persp3d" /> 12.333 - <inkscape:perspective 12.334 - id="perspective18073" 12.335 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.336 - inkscape:vp_z="1 : 0.5 : 1" 12.337 - inkscape:vp_y="0 : 1000 : 0" 12.338 - inkscape:vp_x="0 : 0.5 : 1" 12.339 - sodipodi:type="inkscape:persp3d" /> 12.340 - <inkscape:perspective 12.341 - id="perspective4016" 12.342 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.343 - inkscape:vp_z="1 : 0.5 : 1" 12.344 - inkscape:vp_y="0 : 1000 : 0" 12.345 - inkscape:vp_x="0 : 0.5 : 1" 12.346 - sodipodi:type="inkscape:persp3d" /> 12.347 - <inkscape:perspective 12.348 - id="perspective4046" 12.349 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.350 - inkscape:vp_z="1 : 0.5 : 1" 12.351 - inkscape:vp_y="0 : 1000 : 0" 12.352 - inkscape:vp_x="0 : 0.5 : 1" 12.353 - sodipodi:type="inkscape:persp3d" /> 12.354 - <inkscape:perspective 12.355 - id="perspective4071" 12.356 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.357 - inkscape:vp_z="1 : 0.5 : 1" 12.358 - inkscape:vp_y="0 : 1000 : 0" 12.359 - inkscape:vp_x="0 : 0.5 : 1" 12.360 - sodipodi:type="inkscape:persp3d" /> 12.361 - <inkscape:perspective 12.362 - id="perspective4101" 12.363 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.364 - inkscape:vp_z="1 : 0.5 : 1" 12.365 - inkscape:vp_y="0 : 1000 : 0" 12.366 - inkscape:vp_x="0 : 0.5 : 1" 12.367 - sodipodi:type="inkscape:persp3d" /> 12.368 - <inkscape:perspective 12.369 - id="perspective5945" 12.370 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.371 - inkscape:vp_z="1 : 0.5 : 1" 12.372 - inkscape:vp_y="0 : 1000 : 0" 12.373 - inkscape:vp_x="0 : 0.5 : 1" 12.374 - sodipodi:type="inkscape:persp3d" /> 12.375 - <inkscape:perspective 12.376 - id="perspective4144" 12.377 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.378 - inkscape:vp_z="1 : 0.5 : 1" 12.379 - inkscape:vp_y="0 : 1000 : 0" 12.380 - inkscape:vp_x="0 : 0.5 : 1" 12.381 - sodipodi:type="inkscape:persp3d" /> 12.382 - <marker 12.383 - inkscape:stockid="Arrow2Mend" 12.384 - orient="auto" 12.385 - refY="0" 12.386 - refX="0" 12.387 - id="Arrow2Mend-8-7-1" 12.388 - style="overflow:visible"> 12.389 - <path 12.390 - id="path3563-2-8-7" 12.391 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.392 - 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" 12.393 - transform="scale(-0.6,-0.6)" 12.394 - inkscape:connector-curvature="0" /> 12.395 - </marker> 12.396 - <inkscape:perspective 12.397 - id="perspective4733" 12.398 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 12.399 - inkscape:vp_z="1 : 0.5 : 1" 12.400 - inkscape:vp_y="0 : 1000 : 0" 12.401 - inkscape:vp_x="0 : 0.5 : 1" 12.402 - sodipodi:type="inkscape:persp3d" /> 12.403 - <marker 12.404 - inkscape:stockid="Arrow2Mend" 12.405 - orient="auto" 12.406 - refY="0" 12.407 - refX="0" 12.408 - id="Arrow2Mend-8-7-12" 12.409 - style="overflow:visible"> 12.410 - <path 12.411 - inkscape:connector-curvature="0" 12.412 - id="path3563-2-8-2" 12.413 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.414 - 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" 12.415 - transform="scale(-0.6,-0.6)" /> 12.416 - </marker> 12.417 - <marker 12.418 - inkscape:stockid="Arrow2Mend" 12.419 - orient="auto" 12.420 - refY="0" 12.421 - refX="0" 12.422 - id="marker8401" 12.423 - style="overflow:visible"> 12.424 - <path 12.425 - inkscape:connector-curvature="0" 12.426 - id="path8403" 12.427 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.428 - 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" 12.429 - transform="scale(-0.6,-0.6)" /> 12.430 - </marker> 12.431 - <marker 12.432 - inkscape:stockid="Arrow2Mend" 12.433 - orient="auto" 12.434 - refY="0" 12.435 - refX="0" 12.436 - id="marker8405" 12.437 - style="overflow:visible"> 12.438 - <path 12.439 - inkscape:connector-curvature="0" 12.440 - id="path8407" 12.441 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.442 - 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" 12.443 - transform="scale(-0.6,-0.6)" /> 12.444 - </marker> 12.445 - <marker 12.446 - inkscape:stockid="Arrow2Mend" 12.447 - orient="auto" 12.448 - refY="0" 12.449 - refX="0" 12.450 - id="marker8409" 12.451 - style="overflow:visible"> 12.452 - <path 12.453 - inkscape:connector-curvature="0" 12.454 - id="path8411" 12.455 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.456 - 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" 12.457 - transform="scale(-0.6,-0.6)" /> 12.458 - </marker> 12.459 - <marker 12.460 - inkscape:stockid="Arrow2Mend" 12.461 - orient="auto" 12.462 - refY="0" 12.463 - refX="0" 12.464 - id="marker8413" 12.465 - style="overflow:visible"> 12.466 - <path 12.467 - inkscape:connector-curvature="0" 12.468 - id="path8415" 12.469 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.470 - 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" 12.471 - transform="scale(-0.6,-0.6)" /> 12.472 - </marker> 12.473 - <marker 12.474 - inkscape:stockid="Arrow2Mend" 12.475 - orient="auto" 12.476 - refY="0" 12.477 - refX="0" 12.478 - id="marker8417" 12.479 - style="overflow:visible"> 12.480 - <path 12.481 - inkscape:connector-curvature="0" 12.482 - id="path8419" 12.483 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.484 - 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" 12.485 - transform="scale(-0.6,-0.6)" /> 12.486 - </marker> 12.487 - <marker 12.488 - inkscape:stockid="Arrow2Mend" 12.489 - orient="auto" 12.490 - refY="0" 12.491 - refX="0" 12.492 - id="Arrow2Mend-8-7-17" 12.493 - style="overflow:visible"> 12.494 - <path 12.495 - inkscape:connector-curvature="0" 12.496 - id="path3563-2-8-5" 12.497 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.498 - 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" 12.499 - transform="scale(-0.6,-0.6)" /> 12.500 - </marker> 12.501 - <marker 12.502 - inkscape:stockid="Arrow2Mend" 12.503 - orient="auto" 12.504 - refY="0" 12.505 - refX="0" 12.506 - id="Arrow2Mend-8-7-0" 12.507 - style="overflow:visible"> 12.508 - <path 12.509 - inkscape:connector-curvature="0" 12.510 - id="path3563-2-8-3" 12.511 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 12.512 - 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" 12.513 - transform="scale(-0.6,-0.6)" /> 12.514 - </marker> 12.515 - </defs> 12.516 - <sodipodi:namedview 12.517 - id="base" 12.518 - pagecolor="#ffffff" 12.519 - bordercolor="#666666" 12.520 - borderopacity="1.0" 12.521 - gridtolerance="10000" 12.522 - guidetolerance="10" 12.523 - objecttolerance="10" 12.524 - inkscape:pageopacity="0.0" 12.525 - inkscape:pageshadow="2" 12.526 - inkscape:zoom="0.97968464" 12.527 - inkscape:cx="457.74508" 12.528 - inkscape:cy="264.16662" 12.529 - inkscape:document-units="px" 12.530 - inkscape:current-layer="layer1" 12.531 - showgrid="false" 12.532 - inkscape:window-width="1600" 12.533 - inkscape:window-height="848" 12.534 - inkscape:window-x="-8" 12.535 - inkscape:window-y="-8" 12.536 - inkscape:window-maximized="1" /> 12.537 - <metadata 12.538 - id="metadata7"> 12.539 - <rdf:RDF> 12.540 - <cc:Work 12.541 - rdf:about=""> 12.542 - <dc:format>image/svg+xml</dc:format> 12.543 - <dc:type 12.544 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 12.545 - <dc:title></dc:title> 12.546 - </cc:Work> 12.547 - </rdf:RDF> 12.548 - </metadata> 12.549 - <g 12.550 - inkscape:label="Layer 1" 12.551 - inkscape:groupmode="layer" 12.552 - id="layer1" 12.553 - transform="translate(-3.5307846,729.06884)"> 12.554 - <text 12.555 - xml:space="preserve" 12.556 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.557 - x="441.66748" 12.558 - y="344.66492" 12.559 - id="text8002" 12.560 - sodipodi:linespacing="100%"><tspan 12.561 - sodipodi:role="line" 12.562 - x="441.66748" 12.563 - y="344.66492" 12.564 - style="font-size:8px" 12.565 - id="tspan12172" /></text> 12.566 - <text 12.567 - xml:space="preserve" 12.568 - style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.569 - x="368.25397" 12.570 - y="345.27225" 12.571 - id="text5849"><tspan 12.572 - sodipodi:role="line" 12.573 - id="tspan5851" 12.574 - x="368.25397" 12.575 - y="345.27225" /></text> 12.576 - <g 12.577 - transform="translate(-22.94669,-784)" 12.578 - id="g8065"> 12.579 - <text 12.580 - xml:space="preserve" 12.581 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.582 - x="222.37003" 12.583 - y="285.39841" 12.584 - id="text8067" 12.585 - sodipodi:linespacing="100%"><tspan 12.586 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.587 - sodipodi:role="line" 12.588 - x="222.37003" 12.589 - y="285.39841" 12.590 - id="tspan11696">save VP</tspan><tspan 12.591 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.592 - sodipodi:role="line" 12.593 - x="222.37003" 12.594 - y="294.39841" 12.595 - id="tspan12201">context</tspan></text> 12.596 - <rect 12.597 - y="274.77512" 12.598 - x="193.78287" 12.599 - height="25.544432" 12.600 - width="57.486332" 12.601 - id="rect8073" 12.602 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.603 - </g> 12.604 - <g 12.605 - id="g11700" 12.606 - transform="translate(160,-40)"> 12.607 - <text 12.608 - xml:space="preserve" 12.609 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.610 - x="579.39252" 12.611 - y="-343.22998" 12.612 - id="text11476" 12.613 - sodipodi:linespacing="100%"><tspan 12.614 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.615 - sodipodi:role="line" 12.616 - x="579.39252" 12.617 - y="-343.22998" 12.618 - id="tspan11478">which</tspan><tspan 12.619 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.620 - sodipodi:role="line" 12.621 - x="579.39252" 12.622 - y="-334.22998" 12.623 - id="tspan12299">context</tspan><tspan 12.624 - id="tspan11480" 12.625 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.626 - sodipodi:role="line" 12.627 - x="579.39252" 12.628 - y="-325.22998">switch</tspan></text> 12.629 - <rect 12.630 - ry="0" 12.631 - transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 12.632 - y="93.582199" 12.633 - x="624.01776" 12.634 - height="36.457531" 12.635 - width="36.810017" 12.636 - id="rect11482" 12.637 - style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.638 - </g> 12.639 - <g 12.640 - transform="translate(177.05331,-664)" 12.641 - id="g8103"> 12.642 - <text 12.643 - xml:space="preserve" 12.644 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.645 - x="222.25137" 12.646 - y="285.36765" 12.647 - id="text8105" 12.648 - sodipodi:linespacing="100%"><tspan 12.649 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.650 - sodipodi:role="line" 12.651 - x="222.25137" 12.652 - y="285.36765" 12.653 - id="tspan8111">constraint</tspan><tspan 12.654 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.655 - sodipodi:role="line" 12.656 - x="222.25137" 12.657 - y="294.36765" 12.658 - id="tspan8115">update hdlr</tspan></text> 12.659 - <rect 12.660 - y="274.77512" 12.661 - x="193.78287" 12.662 - height="25.544432" 12.663 - width="57.486332" 12.664 - id="rect8109" 12.665 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.666 - </g> 12.667 - <g 12.668 - id="g8165" 12.669 - transform="translate(177.05331,-604)"> 12.670 - <text 12.671 - sodipodi:linespacing="100%" 12.672 - id="text8167" 12.673 - y="285.39841" 12.674 - x="222.37003" 12.675 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.676 - xml:space="preserve"><tspan 12.677 - id="tspan8169" 12.678 - y="285.39841" 12.679 - x="222.37003" 12.680 - sodipodi:role="line" 12.681 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Push work</tspan><tspan 12.682 - y="294.39841" 12.683 - x="222.37003" 12.684 - sodipodi:role="line" 12.685 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.686 - id="tspan11020">onto Q</tspan></text> 12.687 - <rect 12.688 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.689 - id="rect8171" 12.690 - width="57.486332" 12.691 - height="25.544432" 12.692 - x="193.78287" 12.693 - y="274.77512" /> 12.694 - </g> 12.695 - <g 12.696 - transform="translate(437.05331,-664)" 12.697 - id="g8173"> 12.698 - <text 12.699 - xml:space="preserve" 12.700 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.701 - x="222.37003" 12.702 - y="285.69943" 12.703 - id="text8175" 12.704 - sodipodi:linespacing="100%"><tspan 12.705 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.706 - sodipodi:role="line" 12.707 - x="222.37003" 12.708 - y="285.69943" 12.709 - id="tspan11014">Take work-</tspan><tspan 12.710 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.711 - sodipodi:role="line" 12.712 - x="222.37003" 12.713 - y="294.69943" 12.714 - id="tspan11018">unit from Q</tspan></text> 12.715 - <rect 12.716 - y="274.77512" 12.717 - x="193.78287" 12.718 - height="25.544432" 12.719 - width="57.486332" 12.720 - id="rect8179" 12.721 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.722 - </g> 12.723 - <path 12.724 - sodipodi:nodetypes="cc" 12.725 - inkscape:connector-curvature="0" 12.726 - id="path8510" 12.727 - d="m 30.09217,-376.20795 134.75175,0" 12.728 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" /> 12.729 - <text 12.730 - xml:space="preserve" 12.731 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.732 - x="95.276283" 12.733 - y="-377.95343" 12.734 - id="text8067-3" 12.735 - sodipodi:linespacing="100%"><tspan 12.736 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.737 - sodipodi:role="line" 12.738 - x="95.276283" 12.739 - y="-377.95343" 12.740 - id="tspan8071-6">Non-suspend end of work-unit</tspan></text> 12.741 - <path 12.742 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" 12.743 - d="m 30.09217,-496.20795 134.75175,0" 12.744 - id="path11002" 12.745 - inkscape:connector-curvature="0" 12.746 - sodipodi:nodetypes="cc" /> 12.747 - <text 12.748 - sodipodi:linespacing="100%" 12.749 - id="text11004" 12.750 - y="-497.95343" 12.751 - x="95.430077" 12.752 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.753 - xml:space="preserve"><tspan 12.754 - id="tspan11006" 12.755 - y="-497.95343" 12.756 - x="95.430077" 12.757 - sodipodi:role="line" 12.758 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Suspend at end of work-unit</tspan></text> 12.759 - <path 12.760 - sodipodi:nodetypes="cc" 12.761 - inkscape:connector-curvature="0" 12.762 - id="path11472" 12.763 - d="m 399.56974,-364.00562 0,34.68367" 12.764 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.765 - <path 12.766 - sodipodi:nodetypes="cc" 12.767 - inkscape:connector-curvature="0" 12.768 - id="path11484" 12.769 - d="m 688.09217,-376.20795 22.13646,0" 12.770 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.771 - <path 12.772 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 12.773 - d="m 768.09217,-376.20795 41.4633,0" 12.774 - id="path11518" 12.775 - inkscape:connector-curvature="0" 12.776 - sodipodi:nodetypes="cc" /> 12.777 - <text 12.778 - sodipodi:linespacing="100%" 12.779 - id="text11578" 12.780 - y="-387.95343" 12.781 - x="295.27628" 12.782 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.783 - xml:space="preserve"><tspan 12.784 - id="tspan11580" 12.785 - y="-387.95343" 12.786 - x="295.27628" 12.787 - sodipodi:role="line" 12.788 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" /></text> 12.789 - <text 12.790 - xml:space="preserve" 12.791 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.792 - x="729.43005" 12.793 - y="-341.95343" 12.794 - id="text11616" 12.795 - sodipodi:linespacing="100%"><tspan 12.796 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.797 - sodipodi:role="line" 12.798 - x="730.78357" 12.799 - y="-341.95343" 12.800 - id="tspan11618"> new </tspan><tspan 12.801 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.802 - sodipodi:role="line" 12.803 - x="729.43005" 12.804 - y="-332.95343" 12.805 - id="tspan12175"> work-unit</tspan><tspan 12.806 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.807 - sodipodi:role="line" 12.808 - x="729.43005" 12.809 - y="-323.95343" 12.810 - id="tspan11620"> is attached to</tspan><tspan 12.811 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.812 - sodipodi:role="line" 12.813 - x="729.43005" 12.814 - y="-314.95343" 12.815 - id="tspan11622"> a VP's context</tspan></text> 12.816 - <text 12.817 - sodipodi:linespacing="100%" 12.818 - id="text11624" 12.819 - y="-405.95343" 12.820 - x="787.43005" 12.821 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.822 - xml:space="preserve"><tspan 12.823 - id="tspan11626" 12.824 - y="-405.95343" 12.825 - x="787.43005" 12.826 - sodipodi:role="line" 12.827 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">new work-</tspan><tspan 12.828 - id="tspan11630" 12.829 - y="-396.95343" 12.830 - x="787.43005" 12.831 - sodipodi:role="line" 12.832 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">unit has</tspan><tspan 12.833 - y="-387.95343" 12.834 - x="787.43005" 12.835 - sodipodi:role="line" 12.836 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.837 - id="tspan12161">own local</tspan><tspan 12.838 - y="-378.95343" 12.839 - x="787.43005" 12.840 - sodipodi:role="line" 12.841 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.842 - id="tspan11634">context</tspan></text> 12.843 - <g 12.844 - transform="translate(617.05331,-683.31973)" 12.845 - id="g11656"> 12.846 - <text 12.847 - xml:space="preserve" 12.848 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.849 - x="222.37003" 12.850 - y="285.39841" 12.851 - id="text11658" 12.852 - sodipodi:linespacing="100%"><tspan 12.853 - id="tspan11668" 12.854 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.855 - sodipodi:role="line" 12.856 - x="222.37003" 12.857 - y="285.39841">load curr VP</tspan><tspan 12.858 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.859 - sodipodi:role="line" 12.860 - x="222.37003" 12.861 - y="294.39841" 12.862 - id="tspan11686">with context</tspan><tspan 12.863 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.864 - sodipodi:role="line" 12.865 - x="222.37003" 12.866 - y="303.39841" 12.867 - id="tspan11688">from new</tspan><tspan 12.868 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.869 - sodipodi:role="line" 12.870 - x="222.37003" 12.871 - y="312.39841" 12.872 - id="tspan11690">work-unit</tspan></text> 12.873 - <rect 12.874 - y="274.77512" 12.875 - x="193.78287" 12.876 - height="63.639675" 12.877 - width="57.486332" 12.878 - id="rect11670" 12.879 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.880 - </g> 12.881 - <text 12.882 - sodipodi:linespacing="100%" 12.883 - id="text11718" 12.884 - y="-367.95343" 12.885 - x="95.276283" 12.886 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.887 - xml:space="preserve"><tspan 12.888 - id="tspan11720" 12.889 - y="-367.95343" 12.890 - x="95.276283" 12.891 - sodipodi:role="line" 12.892 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">which has attached context</tspan></text> 12.893 - <path 12.894 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" 12.895 - d="m 30.09217,-296.20795 134.75175,0" 12.896 - id="path11742" 12.897 - inkscape:connector-curvature="0" 12.898 - sodipodi:nodetypes="cc" /> 12.899 - <text 12.900 - sodipodi:linespacing="100%" 12.901 - id="text11744" 12.902 - y="-297.95343" 12.903 - x="95.276283" 12.904 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.905 - xml:space="preserve"><tspan 12.906 - id="tspan11746" 12.907 - y="-297.95343" 12.908 - x="95.276283" 12.909 - sodipodi:role="line" 12.910 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Non-suspend end of work-unit</tspan></text> 12.911 - <text 12.912 - xml:space="preserve" 12.913 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.914 - x="95.276283" 12.915 - y="-287.95343" 12.916 - id="text11750" 12.917 - sodipodi:linespacing="100%"><tspan 12.918 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.919 - sodipodi:role="line" 12.920 - x="95.276283" 12.921 - y="-287.95343" 12.922 - id="tspan11752">purely local (no ctxt attached)</tspan></text> 12.923 - <g 12.924 - id="g11754" 12.925 - transform="translate(-22.94669,-664)"> 12.926 - <text 12.927 - sodipodi:linespacing="100%" 12.928 - id="text11756" 12.929 - y="285.39841" 12.930 - x="222.37003" 12.931 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.932 - xml:space="preserve"><tspan 12.933 - id="tspan11758" 12.934 - y="285.39841" 12.935 - x="222.37003" 12.936 - sodipodi:role="line" 12.937 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">save stack</tspan><tspan 12.938 - id="tspan11760" 12.939 - y="294.39841" 12.940 - x="222.37003" 12.941 - sodipodi:role="line" 12.942 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">& frame ptrs</tspan></text> 12.943 - <rect 12.944 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.945 - id="rect11762" 12.946 - width="57.486332" 12.947 - height="25.544432" 12.948 - x="193.78287" 12.949 - y="274.77512" /> 12.950 - </g> 12.951 - <text 12.952 - xml:space="preserve" 12.953 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.954 - x="29.276283" 12.955 - y="-349.95343" 12.956 - id="text11764" 12.957 - sodipodi:linespacing="100%"><tspan 12.958 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.959 - sodipodi:role="line" 12.960 - x="29.276283" 12.961 - y="-349.95343" 12.962 - id="tspan11766">CILK is example of this case,</tspan><tspan 12.963 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.964 - sodipodi:role="line" 12.965 - x="29.276283" 12.966 - y="-340.95343" 12.967 - id="tspan12203">when leaf child finishes</tspan></text> 12.968 - <text 12.969 - sodipodi:linespacing="100%" 12.970 - id="text11768" 12.971 - y="-269.95343" 12.972 - x="29.276283" 12.973 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.974 - xml:space="preserve"><tspan 12.975 - id="tspan11770" 12.976 - y="-269.95343" 12.977 - x="29.276283" 12.978 - sodipodi:role="line" 12.979 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">Dataflow is example of this case</tspan></text> 12.980 - <text 12.981 - sodipodi:linespacing="100%" 12.982 - id="text11772" 12.983 - y="-473.95343" 12.984 - x="29.276283" 12.985 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.986 - xml:space="preserve"><tspan 12.987 - id="tspan11774" 12.988 - y="-473.95343" 12.989 - x="29.276283" 12.990 - sodipodi:role="line" 12.991 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">pthread is example of this case,</tspan><tspan 12.992 - y="-464.95343" 12.993 - x="29.276283" 12.994 - sodipodi:role="line" 12.995 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.996 - id="tspan3625">as is Cilk when suspends on sync</tspan></text> 12.997 - <path 12.998 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 12.999 - d="m 170.33352,-296.29839 100.31543,-78.14797" 12.1000 - id="path11776" 12.1001 - inkscape:connector-curvature="0" 12.1002 - sodipodi:nodetypes="cc" /> 12.1003 - <path 12.1004 - sodipodi:nodetypes="cc" 12.1005 - inkscape:connector-curvature="0" 12.1006 - id="path12020" 12.1007 - d="m 228.09216,-376.20795 41.06088,0" 12.1008 - style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.1009 - <path 12.1010 - sodipodi:nodetypes="cc" 12.1011 - inkscape:connector-curvature="0" 12.1012 - id="path12086" 12.1013 - d="m 659.56974,-364.00562 0,24.4507" 12.1014 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.1015 - <text 12.1016 - xml:space="preserve" 12.1017 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1018 - x="661.43005" 12.1019 - y="-355.95343" 12.1020 - id="text12088" 12.1021 - sodipodi:linespacing="100%"><tspan 12.1022 - style="font-size:9px;text-align:start;text-anchor:start;fill:#008000;fill-opacity:1" 12.1023 - sodipodi:role="line" 12.1024 - x="661.43005" 12.1025 - y="-355.95343" 12.1026 - id="tspan12090">no work</tspan><tspan 12.1027 - style="font-size:9px;text-align:start;text-anchor:start;fill:#008000;fill-opacity:1" 12.1028 - sodipodi:role="line" 12.1029 - x="661.43005" 12.1030 - y="-346.95343" 12.1031 - id="tspan12092">in Q</tspan></text> 12.1032 - <path 12.1033 - sodipodi:nodetypes="cc" 12.1034 - inkscape:connector-curvature="0" 12.1035 - id="path12155" 12.1036 - d="m 737.20425,-353.48137 72.41226,56.50237" 12.1037 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.1038 - <path 12.1039 - sodipodi:nodetypes="cc" 12.1040 - inkscape:connector-curvature="0" 12.1041 - id="path12197" 12.1042 - d="m 688.33352,-316.29839 23.17876,-59.17839" 12.1043 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.1044 - <text 12.1045 - sodipodi:linespacing="100%" 12.1046 - id="text12205" 12.1047 - y="-412.5929" 12.1048 - x="369.27625" 12.1049 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1050 - xml:space="preserve"><tspan 12.1051 - id="tspan12209" 12.1052 - y="-412.5929" 12.1053 - x="369.27625" 12.1054 - sodipodi:role="line" 12.1055 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in CILK, counts</tspan><tspan 12.1056 - y="-403.5929" 12.1057 - x="369.27625" 12.1058 - sodipodi:role="line" 12.1059 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1060 - id="tspan12307"> child ends, and</tspan><tspan 12.1061 - y="-394.5929" 12.1062 - x="369.27625" 12.1063 - sodipodi:role="line" 12.1064 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1065 - id="tspan12313"> handles sync)</tspan></text> 12.1066 - <text 12.1067 - xml:space="preserve" 12.1068 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1069 - x="627.27625" 12.1070 - y="-411.95343" 12.1071 - id="text12213" 12.1072 - sodipodi:linespacing="100%"><tspan 12.1073 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1074 - sodipodi:role="line" 12.1075 - x="627.27625" 12.1076 - y="-411.95343" 12.1077 - id="tspan12221">(for CILK, Q</tspan><tspan 12.1078 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1079 - sodipodi:role="line" 12.1080 - x="627.27625" 12.1081 - y="-402.95343" 12.1082 - id="tspan12305"> filled by async</tspan><tspan 12.1083 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1084 - sodipodi:role="line" 12.1085 - x="627.27625" 12.1086 - y="-393.95343" 12.1087 - id="tspan12219"> spawns)</tspan></text> 12.1088 - <path 12.1089 - sodipodi:nodetypes="cc" 12.1090 - inkscape:connector-curvature="0" 12.1091 - id="path12275" 12.1092 - d="m 328.09217,-376.20795 41.44502,0" 12.1093 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.1094 - <g 12.1095 - id="g12277" 12.1096 - transform="translate(-280,-40)"> 12.1097 - <text 12.1098 - sodipodi:linespacing="100%" 12.1099 - id="text12279" 12.1100 - y="-339.22998" 12.1101 - x="579.39252" 12.1102 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1103 - xml:space="preserve"><tspan 12.1104 - id="tspan12281" 12.1105 - y="-339.22998" 12.1106 - x="579.39252" 12.1107 - sodipodi:role="line" 12.1108 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">time to</tspan><tspan 12.1109 - y="-330.22998" 12.1110 - x="579.39252" 12.1111 - sodipodi:role="line" 12.1112 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1113 - id="tspan12283">chk msgs?</tspan></text> 12.1114 - <rect 12.1115 - style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.1116 - id="rect12285" 12.1117 - width="36.810017" 12.1118 - height="36.457531" 12.1119 - x="624.01776" 12.1120 - y="93.582199" 12.1121 - transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 12.1122 - ry="0" /> 12.1123 - </g> 12.1124 - <path 12.1125 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 12.1126 - d="m 299.56974,-351.98903 0,122.09492" 12.1127 - id="path12297" 12.1128 - inkscape:connector-curvature="0" 12.1129 - sodipodi:nodetypes="cc" /> 12.1130 - <g 12.1131 - id="g12335" 12.1132 - transform="translate(77.05331,-503.31973)"> 12.1133 - <text 12.1134 - sodipodi:linespacing="100%" 12.1135 - id="text12337" 12.1136 - y="285.39841" 12.1137 - x="222.37003" 12.1138 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1139 - xml:space="preserve"><tspan 12.1140 - y="285.39841" 12.1141 - x="222.37003" 12.1142 - sodipodi:role="line" 12.1143 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1144 - id="tspan12339">scan for in-</tspan><tspan 12.1145 - y="294.39841" 12.1146 - x="222.37003" 12.1147 - sodipodi:role="line" 12.1148 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1149 - id="tspan12394">coming msgs,</tspan><tspan 12.1150 - id="tspan12343" 12.1151 - y="303.39841" 12.1152 - x="222.37003" 12.1153 - sodipodi:role="line" 12.1154 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">give to hdlrs.</tspan><tspan 12.1155 - y="312.39841" 12.1156 - x="222.37003" 12.1157 - sodipodi:role="line" 12.1158 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1159 - id="tspan12400">check timers,</tspan><tspan 12.1160 - y="321.39841" 12.1161 - x="222.37003" 12.1162 - sodipodi:role="line" 12.1163 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1164 - id="tspan3521">fire hdlr for</tspan><tspan 12.1165 - y="330.39841" 12.1166 - x="222.37003" 12.1167 - sodipodi:role="line" 12.1168 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1169 - id="tspan3523">expired ones</tspan></text> 12.1170 - <rect 12.1171 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.1172 - id="rect12347" 12.1173 - width="57.486332" 12.1174 - height="63.639675" 12.1175 - x="193.78287" 12.1176 - y="274.77512" /> 12.1177 - </g> 12.1178 - <g 12.1179 - id="g12349" 12.1180 - transform="translate(617.05331,-603.31973)"> 12.1181 - <text 12.1182 - sodipodi:linespacing="100%" 12.1183 - id="text12351" 12.1184 - y="285.39841" 12.1185 - x="222.37003" 12.1186 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1187 - xml:space="preserve"><tspan 12.1188 - id="tspan12359" 12.1189 - y="285.39841" 12.1190 - x="222.37003" 12.1191 - sodipodi:role="line" 12.1192 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">send curr VP</tspan><tspan 12.1193 - y="294.39841" 12.1194 - x="222.37003" 12.1195 - sodipodi:role="line" 12.1196 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1197 - id="tspan12386">to pool,</tspan><tspan 12.1198 - y="303.39841" 12.1199 - x="222.37003" 12.1200 - sodipodi:role="line" 12.1201 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1202 - id="tspan12388">switch to</tspan><tspan 12.1203 - y="312.39841" 12.1204 - x="222.37003" 12.1205 - sodipodi:role="line" 12.1206 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1207 - id="tspan12390">VP of new</tspan><tspan 12.1208 - y="321.39841" 12.1209 - x="222.37003" 12.1210 - sodipodi:role="line" 12.1211 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1212 - id="tspan12392">work-unit</tspan></text> 12.1213 - <rect 12.1214 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.1215 - id="rect12361" 12.1216 - width="57.486332" 12.1217 - height="63.639675" 12.1218 - x="193.78287" 12.1219 - y="274.77512" /> 12.1220 - </g> 12.1221 - <g 12.1222 - id="g12404" 12.1223 - transform="translate(17.05331,-404)"> 12.1224 - <text 12.1225 - sodipodi:linespacing="100%" 12.1226 - id="text12406" 12.1227 - y="285.36765" 12.1228 - x="222.25137" 12.1229 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1230 - xml:space="preserve"><tspan 12.1231 - id="tspan12410" 12.1232 - y="285.36765" 12.1233 - x="222.25137" 12.1234 - sodipodi:role="line" 12.1235 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">constraint</tspan><tspan 12.1236 - y="294.36765" 12.1237 - x="222.25137" 12.1238 - sodipodi:role="line" 12.1239 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1240 - id="tspan12416">msg handler</tspan></text> 12.1241 - <rect 12.1242 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.1243 - id="rect12412" 12.1244 - width="57.486332" 12.1245 - height="25.544432" 12.1246 - x="193.78287" 12.1247 - y="274.77512" /> 12.1248 - </g> 12.1249 - <g 12.1250 - transform="translate(97.05331,-344)" 12.1251 - id="g12418"> 12.1252 - <text 12.1253 - xml:space="preserve" 12.1254 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1255 - x="142.25137" 12.1256 - y="285.36765" 12.1257 - id="text12420" 12.1258 - sodipodi:linespacing="100%"><tspan 12.1259 - id="tspan12424" 12.1260 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1261 - sodipodi:role="line" 12.1262 - x="142.25137" 12.1263 - y="285.36765">Push Work</tspan><tspan 12.1264 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1265 - sodipodi:role="line" 12.1266 - x="142.25137" 12.1267 - y="294.36765" 12.1268 - id="tspan12548">onto Q</tspan></text> 12.1269 - <rect 12.1270 - y="274.77512" 12.1271 - x="113.78287" 12.1272 - height="25.544432" 12.1273 - width="57.486332" 12.1274 - id="rect12426" 12.1275 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.1276 - </g> 12.1277 - <path 12.1278 - sodipodi:nodetypes="cc" 12.1279 - inkscape:connector-curvature="0" 12.1280 - id="path12432" 12.1281 - d="m 239.56974,-104.00562 0,34.68367" 12.1282 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.1283 - <g 12.1284 - id="g12434" 12.1285 - transform="translate(-62.94669,-344)"> 12.1286 - <text 12.1287 - sodipodi:linespacing="100%" 12.1288 - id="text12436" 12.1289 - y="285.36765" 12.1290 - x="222.25137" 12.1291 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1292 - xml:space="preserve"><tspan 12.1293 - y="285.36765" 12.1294 - x="222.25137" 12.1295 - sodipodi:role="line" 12.1296 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1297 - id="tspan12438">send constr</tspan><tspan 12.1298 - y="294.36765" 12.1299 - x="222.25137" 12.1300 - sodipodi:role="line" 12.1301 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1302 - id="tspan12776">update msg</tspan></text> 12.1303 - <rect 12.1304 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.1305 - id="rect12440" 12.1306 - width="57.486332" 12.1307 - height="25.544432" 12.1308 - x="193.78287" 12.1309 - y="274.77512" /> 12.1310 - </g> 12.1311 - <text 12.1312 - xml:space="preserve" 12.1313 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1314 - x="273.27625" 12.1315 - y="6.7268219" 12.1316 - id="text12442" 12.1317 - sodipodi:linespacing="100%"><tspan 12.1318 - id="tspan12448" 12.1319 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1320 - sodipodi:role="line" 12.1321 - x="273.27625" 12.1322 - y="6.7268219">(in dataflow & CILK,</tspan><tspan 12.1323 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1324 - sodipodi:role="line" 12.1325 - x="273.27625" 12.1326 - y="15.726822" 12.1327 - id="tspan12454"> msgs from other cores</tspan><tspan 12.1328 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1329 - sodipodi:role="line" 12.1330 - x="273.27625" 12.1331 - y="24.726822" 12.1332 - id="tspan12482"> that ask for or push</tspan><tspan 12.1333 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1334 - sodipodi:role="line" 12.1335 - x="273.27625" 12.1336 - y="33.726822" 12.1337 - id="tspan3527"> work, go to assigner)</tspan></text> 12.1338 - <text 12.1339 - sodipodi:linespacing="100%" 12.1340 - id="text12460" 12.1341 - y="6.7268066" 12.1342 - x="369.27625" 12.1343 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1344 - xml:space="preserve"><tspan 12.1345 - id="tspan12466" 12.1346 - y="6.7268066" 12.1347 - x="369.27625" 12.1348 - sodipodi:role="line" 12.1349 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in dataflow & CILK,</tspan><tspan 12.1350 - y="15.726807" 12.1351 - x="369.27625" 12.1352 - sodipodi:role="line" 12.1353 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1354 - id="tspan12472"> push work to other</tspan><tspan 12.1355 - y="24.726807" 12.1356 - x="369.27625" 12.1357 - sodipodi:role="line" 12.1358 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1359 - id="tspan12488"> cores via msgs -- </tspan><tspan 12.1360 - y="33.726807" 12.1361 - x="369.27625" 12.1362 - sodipodi:role="line" 12.1363 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1364 - id="tspan3973"> remember </tspan><tspan 12.1365 - y="42.726807" 12.1366 - x="369.27625" 12.1367 - sodipodi:role="line" 12.1368 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1369 - id="tspan3977"> constraints that</tspan><tspan 12.1370 - y="51.726807" 12.1371 - x="369.27625" 12.1372 - sodipodi:role="line" 12.1373 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1374 - id="tspan12642"> cross cores)</tspan></text> 12.1375 - <path 12.1376 - sodipodi:nodetypes="cc" 12.1377 - inkscape:connector-curvature="0" 12.1378 - id="path12490" 12.1379 - d="m 328.33352,-203.17339 41.44797,-171.27297" 12.1380 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.1381 - <g 12.1382 - id="g12506" 12.1383 - transform="translate(97.05331,-404)"> 12.1384 - <text 12.1385 - sodipodi:linespacing="100%" 12.1386 - id="text12508" 12.1387 - y="285.36765" 12.1388 - x="222.25137" 12.1389 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1390 - xml:space="preserve"><tspan 12.1391 - y="285.36765" 12.1392 - x="222.25137" 12.1393 - sodipodi:role="line" 12.1394 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1395 - id="tspan12510">Assigner</tspan><tspan 12.1396 - y="294.36765" 12.1397 - x="222.25137" 12.1398 - sodipodi:role="line" 12.1399 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1400 - id="tspan12656">msg handler</tspan></text> 12.1401 - <rect 12.1402 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.1403 - id="rect12512" 12.1404 - width="57.486332" 12.1405 - height="25.544432" 12.1406 - x="193.78287" 12.1407 - y="274.77512" /> 12.1408 - </g> 12.1409 - <path 12.1410 - sodipodi:nodetypes="cc" 12.1411 - inkscape:connector-curvature="0" 12.1412 - id="path12534" 12.1413 - d="m 319.56974,-104.00562 0,34.68367" 12.1414 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.1415 - <path 12.1416 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 12.1417 - d="m 297.91051,-165.12086 -53.68184,35.65757" 12.1418 - id="path12544" 12.1419 - inkscape:connector-curvature="0" 12.1420 - sodipodi:nodetypes="cc" /> 12.1421 - <path 12.1422 - sodipodi:nodetypes="cc" 12.1423 - inkscape:connector-curvature="0" 12.1424 - id="path12550" 12.1425 - d="m 239.95132,-103.76032 -77.23827,34.97636" 12.1426 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.1427 - <g 12.1428 - transform="translate(257.05331,-604)" 12.1429 - id="g12552"> 12.1430 - <text 12.1431 - xml:space="preserve" 12.1432 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1433 - x="222.25137" 12.1434 - y="285.36765" 12.1435 - id="text12554" 12.1436 - sodipodi:linespacing="100%"><tspan 12.1437 - id="tspan12556" 12.1438 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1439 - sodipodi:role="line" 12.1440 - x="222.25137" 12.1441 - y="285.36765">send constr</tspan><tspan 12.1442 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1443 - sodipodi:role="line" 12.1444 - x="222.25137" 12.1445 - y="294.36765" 12.1446 - id="tspan12888">update msgs</tspan></text> 12.1447 - <rect 12.1448 - y="274.77512" 12.1449 - x="193.78287" 12.1450 - height="25.544432" 12.1451 - width="57.486332" 12.1452 - id="rect12558" 12.1453 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.1454 - </g> 12.1455 - <path 12.1456 - sodipodi:nodetypes="cc" 12.1457 - inkscape:connector-curvature="0" 12.1458 - id="path12562" 12.1459 - d="m 303.63081,-165.12086 14.66828,34.98156" 12.1460 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.1461 - <text 12.1462 - sodipodi:linespacing="100%" 12.1463 - id="text12564" 12.1464 - y="-351.95343" 12.1465 - x="371.43005" 12.1466 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1467 - xml:space="preserve"><tspan 12.1468 - id="tspan12568" 12.1469 - y="-351.95343" 12.1470 - x="371.43005" 12.1471 - sodipodi:role="line" 12.1472 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> done</tspan><tspan 12.1473 - y="-342.95343" 12.1474 - x="371.43005" 12.1475 - sodipodi:role="line" 12.1476 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1477 - id="tspan12598"> with</tspan><tspan 12.1478 - y="-333.95343" 12.1479 - x="371.43005" 12.1480 - sodipodi:role="line" 12.1481 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1482 - id="tspan12600">msgs</tspan></text> 12.1483 - <text 12.1484 - xml:space="preserve" 12.1485 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1486 - x="335.43005" 12.1487 - y="-379.95343" 12.1488 - id="text12572" 12.1489 - sodipodi:linespacing="100%"><tspan 12.1490 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1491 - sodipodi:role="line" 12.1492 - x="335.43005" 12.1493 - y="-379.95343" 12.1494 - id="tspan12574">no</tspan></text> 12.1495 - <text 12.1496 - sodipodi:linespacing="100%" 12.1497 - id="text12576" 12.1498 - y="-343.95343" 12.1499 - x="309.43005" 12.1500 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1501 - xml:space="preserve"><tspan 12.1502 - id="tspan12578" 12.1503 - y="-343.95343" 12.1504 - x="309.43005" 12.1505 - sodipodi:role="line" 12.1506 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan 12.1507 - y="-334.95343" 12.1508 - x="309.43005" 12.1509 - sodipodi:role="line" 12.1510 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1511 - id="tspan12580">chk</tspan></text> 12.1512 - <text 12.1513 - xml:space="preserve" 12.1514 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1515 - x="251.43005" 12.1516 - y="-151.95343" 12.1517 - id="text12582" 12.1518 - sodipodi:linespacing="100%"><tspan 12.1519 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1520 - sodipodi:role="line" 12.1521 - x="251.43005" 12.1522 - y="-151.95343" 12.1523 - id="tspan12584"> constraint</tspan><tspan 12.1524 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1525 - sodipodi:role="line" 12.1526 - x="251.43005" 12.1527 - y="-142.95343" 12.1528 - id="tspan12586">msgs</tspan></text> 12.1529 - <text 12.1530 - sodipodi:linespacing="100%" 12.1531 - id="text12592" 12.1532 - y="-151.95343" 12.1533 - x="323.43005" 12.1534 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1535 - xml:space="preserve"><tspan 12.1536 - id="tspan12594" 12.1537 - y="-151.95343" 12.1538 - x="323.43005" 12.1539 - sodipodi:role="line" 12.1540 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> Assigner</tspan><tspan 12.1541 - id="tspan12596" 12.1542 - y="-142.95343" 12.1543 - x="323.43005" 12.1544 - sodipodi:role="line" 12.1545 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">msgs</tspan></text> 12.1546 - <text 12.1547 - sodipodi:linespacing="100%" 12.1548 - id="text12602" 12.1549 - y="-29.273178" 12.1550 - x="129.27625" 12.1551 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1552 - xml:space="preserve"><tspan 12.1553 - id="tspan12606" 12.1554 - y="-29.273178" 12.1555 - x="129.27625" 12.1556 - sodipodi:role="line" 12.1557 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in CILK, completion of</tspan><tspan 12.1558 - y="-20.273178" 12.1559 - x="129.27625" 12.1560 - sodipodi:role="line" 12.1561 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1562 - id="tspan12614"> child on remote core</tspan><tspan 12.1563 - id="tspan12610" 12.1564 - y="-11.273178" 12.1565 - x="129.27625" 12.1566 - sodipodi:role="line" 12.1567 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"> notifies parent's core.</tspan><tspan 12.1568 - y="-2.2731781" 12.1569 - x="129.27625" 12.1570 - sodipodi:role="line" 12.1571 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1572 - id="tspan12624"> In dataflow, remote pro-</tspan><tspan 12.1573 - y="6.7268219" 12.1574 - x="129.27625" 12.1575 - sodipodi:role="line" 12.1576 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1577 - id="tspan12626"> pendent sends data to</tspan><tspan 12.1578 - y="15.726822" 12.1579 - x="129.27625" 12.1580 - sodipodi:role="line" 12.1581 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.1582 - id="tspan12634"> dependents' cores)</tspan></text> 12.1583 - <path 12.1584 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 12.1585 - d="m 401.6308,-363.12086 74.44669,32.98177" 12.1586 - id="path12658" 12.1587 - inkscape:connector-curvature="0" 12.1588 - sodipodi:nodetypes="cc" /> 12.1589 - <g 12.1590 - id="g12764" 12.1591 - transform="translate(437.05331,-484)"> 12.1592 - <text 12.1593 - sodipodi:linespacing="100%" 12.1594 - id="text12766" 12.1595 - y="285.36765" 12.1596 - x="222.25137" 12.1597 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1598 - xml:space="preserve"><tspan 12.1599 - y="285.36765" 12.1600 - x="222.25137" 12.1601 - sodipodi:role="line" 12.1602 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1603 - id="tspan12768">send "need</tspan><tspan 12.1604 - y="294.36765" 12.1605 - x="222.25137" 12.1606 - sodipodi:role="line" 12.1607 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1608 - id="tspan12774">work" msg</tspan></text> 12.1609 - <rect 12.1610 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.1611 - id="rect12770" 12.1612 - width="57.486332" 12.1613 - height="25.544432" 12.1614 - x="193.78287" 12.1615 - y="274.77512" /> 12.1616 - </g> 12.1617 - <text 12.1618 - xml:space="preserve" 12.1619 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1620 - x="299.43005" 12.1621 - y="-93.95343" 12.1622 - id="text12816" 12.1623 - sodipodi:linespacing="100%"><tspan 12.1624 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1625 - sodipodi:role="line" 12.1626 - x="299.43005" 12.1627 - y="-93.95343" 12.1628 - id="tspan12818"> receive</tspan><tspan 12.1629 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1630 - sodipodi:role="line" 12.1631 - x="300.78357" 12.1632 - y="-84.95343" 12.1633 - id="tspan12820">work-push </tspan><tspan 12.1634 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1635 - sodipodi:role="line" 12.1636 - x="299.43005" 12.1637 - y="-75.95343" 12.1638 - id="tspan12822"> msg</tspan></text> 12.1639 - <path 12.1640 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 12.1641 - d="m 321.6308,-103.12086 74.44669,32.98177" 12.1642 - id="path12824" 12.1643 - inkscape:connector-curvature="0" 12.1644 - sodipodi:nodetypes="cc" /> 12.1645 - <text 12.1646 - sodipodi:linespacing="100%" 12.1647 - id="text12826" 12.1648 - y="-93.95343" 12.1649 - x="379.43005" 12.1650 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1651 - xml:space="preserve"><tspan 12.1652 - id="tspan12828" 12.1653 - y="-93.95343" 12.1654 - x="379.43005" 12.1655 - sodipodi:role="line" 12.1656 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> receive need-work</tspan><tspan 12.1657 - id="tspan12832" 12.1658 - y="-84.95343" 12.1659 - x="379.43005" 12.1660 - sodipodi:role="line" 12.1661 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> msg & have work</tspan><tspan 12.1662 - y="-75.95343" 12.1663 - x="379.43005" 12.1664 - sodipodi:role="line" 12.1665 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1666 - id="tspan12836"> to give</tspan></text> 12.1667 - <text 12.1668 - sodipodi:linespacing="100%" 12.1669 - id="text12914" 12.1670 - y="-281.95343" 12.1671 - x="678.38245" 12.1672 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1673 - xml:space="preserve"><tspan 12.1674 - y="-281.95343" 12.1675 - x="678.38245" 12.1676 - sodipodi:role="line" 12.1677 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1678 - id="tspan12946">No work</tspan></text> 12.1679 - <g 12.1680 - id="g3699" 12.1681 - transform="translate(717.05331,-664)"> 12.1682 - <text 12.1683 - sodipodi:linespacing="100%" 12.1684 - id="text3701" 12.1685 - y="285.69943" 12.1686 - x="222.37003" 12.1687 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1688 - xml:space="preserve"><tspan 12.1689 - id="tspan3705" 12.1690 - y="285.69943" 12.1691 - x="222.37003" 12.1692 - sodipodi:role="line" 12.1693 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Jmp to new</tspan><tspan 12.1694 - y="294.69943" 12.1695 - x="222.37003" 12.1696 - sodipodi:role="line" 12.1697 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1698 - id="tspan3713">work-unit</tspan></text> 12.1699 - <rect 12.1700 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.1701 - id="rect3707" 12.1702 - width="57.486332" 12.1703 - height="25.544432" 12.1704 - x="193.78287" 12.1705 - y="274.77512" /> 12.1706 - </g> 12.1707 - <path 12.1708 - style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 12.1709 - d="m 868.0922,-376.20795 41.0608,0" 12.1710 - id="path3709" 12.1711 - inkscape:connector-curvature="0" 12.1712 - sodipodi:nodetypes="cc" /> 12.1713 - <path 12.1714 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 12.1715 - d="m 868.33356,-296.29838 40.86584,-76.648" 12.1716 - id="path3715" 12.1717 - inkscape:connector-curvature="0" 12.1718 - sodipodi:nodetypes="cc" /> 12.1719 - <path 12.1720 - sodipodi:nodetypes="cc" 12.1721 - inkscape:connector-curvature="0" 12.1722 - id="path3769" 12.1723 - d="m 428.86861,-376.20795 200.12395,0" 12.1724 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.1725 - <g 12.1726 - id="g3775" 12.1727 - transform="translate(297.05331,-784)"> 12.1728 - <text 12.1729 - sodipodi:linespacing="100%" 12.1730 - id="text3777" 12.1731 - y="285.36765" 12.1732 - x="222.25137" 12.1733 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1734 - xml:space="preserve"><tspan 12.1735 - id="tspan3781" 12.1736 - y="285.36765" 12.1737 - x="222.25137" 12.1738 - sodipodi:role="line" 12.1739 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Assigner</tspan></text> 12.1740 - <rect 12.1741 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.1742 - id="rect3783" 12.1743 - width="57.486332" 12.1744 - height="25.544432" 12.1745 - x="193.78287" 12.1746 - y="274.77512" /> 12.1747 - </g> 12.1748 - <g 12.1749 - id="g3789" 12.1750 - transform="translate(177.05331,-784)"> 12.1751 - <text 12.1752 - sodipodi:linespacing="100%" 12.1753 - id="text3791" 12.1754 - y="285.36765" 12.1755 - x="222.25137" 12.1756 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1757 - xml:space="preserve"><tspan 12.1758 - id="tspan3795" 12.1759 - y="285.36765" 12.1760 - x="222.25137" 12.1761 - sodipodi:role="line" 12.1762 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">request hdlr</tspan></text> 12.1763 - <rect 12.1764 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.1765 - id="rect3797" 12.1766 - width="57.486332" 12.1767 - height="25.544432" 12.1768 - x="193.78287" 12.1769 - y="274.77512" /> 12.1770 - </g> 12.1771 - <path 12.1772 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 12.1773 - d="m 428.09218,-496.20795 60.12116,0" 12.1774 - id="path3799" 12.1775 - inkscape:connector-curvature="0" 12.1776 - sodipodi:nodetypes="cc" /> 12.1777 - <g 12.1778 - transform="translate(-300,-160)" 12.1779 - id="g3801"> 12.1780 - <text 12.1781 - xml:space="preserve" 12.1782 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1783 - x="579.39252" 12.1784 - y="-339.22998" 12.1785 - id="text3803" 12.1786 - sodipodi:linespacing="100%"><tspan 12.1787 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1788 - sodipodi:role="line" 12.1789 - x="579.39252" 12.1790 - y="-339.22998" 12.1791 - id="tspan3805">time to</tspan><tspan 12.1792 - id="tspan3807" 12.1793 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1794 - sodipodi:role="line" 12.1795 - x="579.39252" 12.1796 - y="-330.22998">chk msgs?</tspan></text> 12.1797 - <rect 12.1798 - ry="0" 12.1799 - transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 12.1800 - y="93.582199" 12.1801 - x="624.01776" 12.1802 - height="36.457531" 12.1803 - width="36.810017" 12.1804 - id="rect3809" 12.1805 - style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.1806 - </g> 12.1807 - <path 12.1808 - style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 12.1809 - d="m 228.09216,-496.20795 21.72127,0" 12.1810 - id="path3811" 12.1811 - inkscape:connector-curvature="0" 12.1812 - sodipodi:nodetypes="cc" /> 12.1813 - <path 12.1814 - sodipodi:nodetypes="cc" 12.1815 - inkscape:connector-curvature="0" 12.1816 - id="path3813" 12.1817 - d="m 307.68401,-496.20795 61.46905,0" 12.1818 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.1819 - <text 12.1820 - xml:space="preserve" 12.1821 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1822 - x="289.43005" 12.1823 - y="-463.95343" 12.1824 - id="text3815" 12.1825 - sodipodi:linespacing="100%"><tspan 12.1826 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1827 - sodipodi:role="line" 12.1828 - x="289.43005" 12.1829 - y="-463.95343" 12.1830 - id="tspan3817">yes,</tspan><tspan 12.1831 - id="tspan3819" 12.1832 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1833 - sodipodi:role="line" 12.1834 - x="289.43005" 12.1835 - y="-454.95343">chk</tspan></text> 12.1836 - <path 12.1837 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 12.1838 - d="m 328.33352,-197.5484 41.44797,-295.744" 12.1839 - id="path3823" 12.1840 - inkscape:connector-curvature="0" 12.1841 - sodipodi:nodetypes="cc" /> 12.1842 - <text 12.1843 - sodipodi:linespacing="100%" 12.1844 - id="text3825" 12.1845 - y="-499.95343" 12.1846 - x="315.43005" 12.1847 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1848 - xml:space="preserve"><tspan 12.1849 - id="tspan3827" 12.1850 - y="-499.95343" 12.1851 - x="315.43005" 12.1852 - sodipodi:role="line" 12.1853 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">no</tspan></text> 12.1854 - <text 12.1855 - xml:space="preserve" 12.1856 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1857 - x="353.43005" 12.1858 - y="-473.95343" 12.1859 - id="text3829" 12.1860 - sodipodi:linespacing="100%"><tspan 12.1861 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1862 - sodipodi:role="line" 12.1863 - x="353.43005" 12.1864 - y="-473.95343" 12.1865 - id="tspan3831"> done</tspan><tspan 12.1866 - id="tspan3833" 12.1867 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1868 - sodipodi:role="line" 12.1869 - x="353.43005" 12.1870 - y="-464.95343"> with</tspan><tspan 12.1871 - id="tspan3835" 12.1872 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.1873 - sodipodi:role="line" 12.1874 - x="353.43005" 12.1875 - y="-455.95343">msgs</tspan></text> 12.1876 - <g 12.1877 - transform="translate(97.05331,-343.31973)" 12.1878 - id="g3837"> 12.1879 - <text 12.1880 - xml:space="preserve" 12.1881 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1882 - x="222.37003" 12.1883 - y="285.39841" 12.1884 - id="text3839" 12.1885 - sodipodi:linespacing="100%"><tspan 12.1886 - id="tspan3841" 12.1887 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1888 - sodipodi:role="line" 12.1889 - x="222.37003" 12.1890 - y="285.39841">push work</tspan><tspan 12.1891 - id="tspan3843" 12.1892 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1893 - sodipodi:role="line" 12.1894 - x="222.37003" 12.1895 - y="294.39841">onto Q, and</tspan><tspan 12.1896 - id="tspan3845" 12.1897 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1898 - sodipodi:role="line" 12.1899 - x="222.37003" 12.1900 - y="303.39841">send "cancel</tspan><tspan 12.1901 - id="tspan3847" 12.1902 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1903 - sodipodi:role="line" 12.1904 - x="222.37003" 12.1905 - y="312.39841">need work"</tspan></text> 12.1906 - <rect 12.1907 - y="274.77512" 12.1908 - x="193.78287" 12.1909 - height="63.639675" 12.1910 - width="57.486332" 12.1911 - id="rect3849" 12.1912 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.1913 - </g> 12.1914 - <g 12.1915 - id="g3851" 12.1916 - transform="translate(177.05331,-744)"> 12.1917 - <text 12.1918 - sodipodi:linespacing="100%" 12.1919 - id="text3853" 12.1920 - y="285.36765" 12.1921 - x="222.25137" 12.1922 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1923 - xml:space="preserve"><tspan 12.1924 - y="285.36765" 12.1925 - x="222.25137" 12.1926 - sodipodi:role="line" 12.1927 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1928 - id="tspan3855">send constr</tspan><tspan 12.1929 - id="tspan3857" 12.1930 - y="294.36765" 12.1931 - x="222.25137" 12.1932 - sodipodi:role="line" 12.1933 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">update msgs</tspan></text> 12.1934 - <rect 12.1935 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.1936 - id="rect3859" 12.1937 - width="57.486332" 12.1938 - height="25.544432" 12.1939 - x="193.78287" 12.1940 - y="274.77512" /> 12.1941 - </g> 12.1942 - <path 12.1943 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 12.1944 - d="m 399.56974,-484.00562 0,12.75587" 12.1945 - id="path3863" 12.1946 - inkscape:connector-curvature="0" 12.1947 - sodipodi:nodetypes="cc" /> 12.1948 - <g 12.1949 - transform="translate(257.05331,-744)" 12.1950 - id="g3865"> 12.1951 - <text 12.1952 - xml:space="preserve" 12.1953 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1954 - x="222.37003" 12.1955 - y="285.39841" 12.1956 - id="text3867" 12.1957 - sodipodi:linespacing="100%"><tspan 12.1958 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1959 - sodipodi:role="line" 12.1960 - x="222.37003" 12.1961 - y="285.39841" 12.1962 - id="tspan3869">Push work</tspan><tspan 12.1963 - id="tspan3871" 12.1964 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1965 - sodipodi:role="line" 12.1966 - x="222.37003" 12.1967 - y="294.39841">onto Q</tspan></text> 12.1968 - <rect 12.1969 - y="274.77512" 12.1970 - x="193.78287" 12.1971 - height="25.544432" 12.1972 - width="57.486332" 12.1973 - id="rect3873" 12.1974 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.1975 - </g> 12.1976 - <g 12.1977 - transform="translate(317.05331,-744)" 12.1978 - id="g3875"> 12.1979 - <text 12.1980 - xml:space="preserve" 12.1981 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.1982 - x="222.25137" 12.1983 - y="285.36765" 12.1984 - id="text3877" 12.1985 - sodipodi:linespacing="100%"><tspan 12.1986 - id="tspan3879" 12.1987 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1988 - sodipodi:role="line" 12.1989 - x="222.25137" 12.1990 - y="285.36765">send Assigner</tspan><tspan 12.1991 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.1992 - sodipodi:role="line" 12.1993 - x="222.25137" 12.1994 - y="294.36765" 12.1995 - id="tspan3881">messages</tspan></text> 12.1996 - <rect 12.1997 - y="274.77512" 12.1998 - x="193.78287" 12.1999 - height="25.544432" 12.2000 - width="57.486332" 12.2001 - id="rect3883" 12.2002 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.2003 - </g> 12.2004 - <path 12.2005 - sodipodi:nodetypes="cc" 12.2006 - inkscape:connector-curvature="0" 12.2007 - id="path3887" 12.2008 - d="m 519.99814,-483.12085 17.68767,13.95011" 12.2009 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.2010 - <path 12.2011 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 12.2012 - d="m 516.1523,-483.12085 -35.11392,13.95011" 12.2013 - id="path3889" 12.2014 - inkscape:connector-curvature="0" 12.2015 - sodipodi:nodetypes="cc" /> 12.2016 - <path 12.2017 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 12.2018 - d="m 548.6784,-495.12084 80.39811,116.64706" 12.2019 - id="path3891" 12.2020 - inkscape:connector-curvature="0" 12.2021 - sodipodi:nodetypes="cc" /> 12.2022 - <path 12.2023 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 12.2024 - d="m 737.20425,-398.67186 72.41226,-56.50237" 12.2025 - id="path3893" 12.2026 - inkscape:connector-curvature="0" 12.2027 - sodipodi:nodetypes="cc" /> 12.2028 - <g 12.2029 - id="g3895" 12.2030 - transform="translate(617.05331,-763.31973)"> 12.2031 - <text 12.2032 - sodipodi:linespacing="100%" 12.2033 - id="text3897" 12.2034 - y="285.39841" 12.2035 - x="222.37003" 12.2036 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2037 - xml:space="preserve"><tspan 12.2038 - y="285.39841" 12.2039 - x="222.37003" 12.2040 - sodipodi:role="line" 12.2041 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2042 - id="tspan3933">get VP from</tspan><tspan 12.2043 - y="294.39841" 12.2044 - x="222.37003" 12.2045 - sodipodi:role="line" 12.2046 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2047 - id="tspan3935">pool (make</tspan><tspan 12.2048 - y="303.39841" 12.2049 - x="222.37003" 12.2050 - sodipodi:role="line" 12.2051 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2052 - id="tspan3943">new if none).</tspan><tspan 12.2053 - id="tspan3901" 12.2054 - y="312.39841" 12.2055 - x="222.37003" 12.2056 - sodipodi:role="line" 12.2057 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Load it with</tspan><tspan 12.2058 - id="tspan3903" 12.2059 - y="321.39841" 12.2060 - x="222.37003" 12.2061 - sodipodi:role="line" 12.2062 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">context from</tspan><tspan 12.2063 - id="tspan3905" 12.2064 - y="330.39841" 12.2065 - x="222.37003" 12.2066 - sodipodi:role="line" 12.2067 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">new work-unit</tspan></text> 12.2068 - <rect 12.2069 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.2070 - id="rect3907" 12.2071 - width="57.486332" 12.2072 - height="63.639675" 12.2073 - x="193.78287" 12.2074 - y="274.77512" /> 12.2075 - </g> 12.2076 - <text 12.2077 - xml:space="preserve" 12.2078 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2079 - x="755.43005" 12.2080 - y="-449.95343" 12.2081 - id="text3909" 12.2082 - sodipodi:linespacing="100%"><tspan 12.2083 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2084 - sodipodi:role="line" 12.2085 - x="755.43005" 12.2086 - y="-449.95343" 12.2087 - id="tspan3913">new work-unit has own</tspan><tspan 12.2088 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2089 - sodipodi:role="line" 12.2090 - x="755.43005" 12.2091 - y="-440.95343" 12.2092 - id="tspan3927">local context, but</tspan><tspan 12.2093 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2094 - sodipodi:role="line" 12.2095 - x="756.78357" 12.2096 - y="-431.95343" 12.2097 - id="tspan3931">prev VP suspended </tspan></text> 12.2098 - <path 12.2099 - sodipodi:nodetypes="cc" 12.2100 - inkscape:connector-curvature="0" 12.2101 - id="path3953" 12.2102 - d="m 868.33356,-456.25901 40.86584,76.648" 12.2103 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.2104 - <text 12.2105 - xml:space="preserve" 12.2106 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2107 - x="357.27625" 12.2108 - y="-534.5929" 12.2109 - id="text3955" 12.2110 - sodipodi:linespacing="100%"><tspan 12.2111 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2112 - sodipodi:role="line" 12.2113 - x="357.27625" 12.2114 - y="-534.5929" 12.2115 - id="tspan3957">(in pthreads, checks</tspan><tspan 12.2116 - id="tspan3959" 12.2117 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2118 - sodipodi:role="line" 12.2119 - x="357.27625" 12.2120 - y="-525.5929"> mutex structures,</tspan><tspan 12.2121 - id="tspan3961" 12.2122 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2123 - sodipodi:role="line" 12.2124 - x="357.27625" 12.2125 - y="-516.5929"> cond var structs, etc)</tspan></text> 12.2126 - <text 12.2127 - xml:space="preserve" 12.2128 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2129 - x="459.43005" 12.2130 - y="-507.95343" 12.2131 - id="text3963" 12.2132 - sodipodi:linespacing="100%"><tspan 12.2133 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2134 - sodipodi:role="line" 12.2135 - x="459.43005" 12.2136 - y="-507.95343" 12.2137 - id="tspan3967">work-unit</tspan><tspan 12.2138 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2139 - sodipodi:role="line" 12.2140 - x="459.43005" 12.2141 - y="-498.95343" 12.2142 - id="tspan3971">state chgs</tspan></text> 12.2143 - <text 12.2144 - sodipodi:linespacing="100%" 12.2145 - id="text3981" 12.2146 - y="-195.95343" 12.2147 - x="415.43005" 12.2148 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2149 - xml:space="preserve" 12.2150 - inkscape:transform-center-x="-8.125"><tspan 12.2151 - y="-195.95343" 12.2152 - x="415.43005" 12.2153 - sodipodi:role="line" 12.2154 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2155 - id="tspan3987">done with msgs</tspan></text> 12.2156 - <path 12.2157 - sodipodi:nodetypes="cc" 12.2158 - inkscape:connector-curvature="0" 12.2159 - id="path3386" 12.2160 - d="m 30.09217,-616.20795 134.75175,0" 12.2161 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" /> 12.2162 - <text 12.2163 - xml:space="preserve" 12.2164 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2165 - x="95.430077" 12.2166 - y="-617.95343" 12.2167 - id="text3388" 12.2168 - sodipodi:linespacing="100%"><tspan 12.2169 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2170 - sodipodi:role="line" 12.2171 - x="95.430077" 12.2172 - y="-617.95343" 12.2173 - id="tspan3390">Suspend at end of work-unit</tspan></text> 12.2174 - <text 12.2175 - xml:space="preserve" 12.2176 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2177 - x="29.276283" 12.2178 - y="-593.95343" 12.2179 - id="text3392" 12.2180 - sodipodi:linespacing="100%"><tspan 12.2181 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2182 - sodipodi:role="line" 12.2183 - x="29.276283" 12.2184 - y="-593.95343" 12.2185 - id="tspan3394">pthread is example of this case,</tspan><tspan 12.2186 - id="tspan3396" 12.2187 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2188 - sodipodi:role="line" 12.2189 - x="29.276283" 12.2190 - y="-584.95343">as is Cilk when suspends on sync</tspan></text> 12.2191 - <g 12.2192 - transform="translate(297.05331,-904)" 12.2193 - id="g3398"> 12.2194 - <text 12.2195 - xml:space="preserve" 12.2196 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2197 - x="222.25137" 12.2198 - y="285.36765" 12.2199 - id="text3400" 12.2200 - sodipodi:linespacing="100%"><tspan 12.2201 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2202 - sodipodi:role="line" 12.2203 - x="222.25137" 12.2204 - y="285.36765" 12.2205 - id="tspan3402">Assigner</tspan></text> 12.2206 - <rect 12.2207 - y="274.77512" 12.2208 - x="193.78287" 12.2209 - height="25.544432" 12.2210 - width="57.486332" 12.2211 - id="rect3404" 12.2212 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.2213 - </g> 12.2214 - <g 12.2215 - transform="translate(177.05331,-904)" 12.2216 - id="g3406"> 12.2217 - <text 12.2218 - xml:space="preserve" 12.2219 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2220 - x="222.25137" 12.2221 - y="285.36765" 12.2222 - id="text3408" 12.2223 - sodipodi:linespacing="100%"><tspan 12.2224 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2225 - sodipodi:role="line" 12.2226 - x="222.25137" 12.2227 - y="285.36765" 12.2228 - id="tspan3412">request hdlr</tspan></text> 12.2229 - <rect 12.2230 - y="274.77512" 12.2231 - x="193.78287" 12.2232 - height="25.544432" 12.2233 - width="57.486332" 12.2234 - id="rect3414" 12.2235 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.2236 - </g> 12.2237 - <path 12.2238 - sodipodi:nodetypes="cc" 12.2239 - inkscape:connector-curvature="0" 12.2240 - id="path3416" 12.2241 - d="m 428.09218,-616.20795 60.12116,0" 12.2242 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.2243 - <g 12.2244 - id="g3418" 12.2245 - transform="translate(-300,-280)"> 12.2246 - <text 12.2247 - sodipodi:linespacing="100%" 12.2248 - id="text3420" 12.2249 - y="-339.22998" 12.2250 - x="579.39252" 12.2251 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2252 - xml:space="preserve"><tspan 12.2253 - id="tspan3422" 12.2254 - y="-339.22998" 12.2255 - x="579.39252" 12.2256 - sodipodi:role="line" 12.2257 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">time to</tspan><tspan 12.2258 - y="-330.22998" 12.2259 - x="579.39252" 12.2260 - sodipodi:role="line" 12.2261 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2262 - id="tspan3424">chk msgs?</tspan></text> 12.2263 - <rect 12.2264 - style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.2265 - id="rect3426" 12.2266 - width="36.810017" 12.2267 - height="36.457531" 12.2268 - x="624.01776" 12.2269 - y="93.582199" 12.2270 - transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 12.2271 - ry="0" /> 12.2272 - </g> 12.2273 - <path 12.2274 - sodipodi:nodetypes="cc" 12.2275 - inkscape:connector-curvature="0" 12.2276 - id="path3428" 12.2277 - d="m 228.09216,-616.20795 21.72127,0" 12.2278 - style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.2279 - <path 12.2280 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 12.2281 - d="m 307.68401,-616.20795 61.46905,0" 12.2282 - id="path3430" 12.2283 - inkscape:connector-curvature="0" 12.2284 - sodipodi:nodetypes="cc" /> 12.2285 - <text 12.2286 - sodipodi:linespacing="100%" 12.2287 - id="text3432" 12.2288 - y="-583.95343" 12.2289 - x="289.43005" 12.2290 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2291 - xml:space="preserve"><tspan 12.2292 - id="tspan3434" 12.2293 - y="-583.95343" 12.2294 - x="289.43005" 12.2295 - sodipodi:role="line" 12.2296 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan 12.2297 - y="-574.95343" 12.2298 - x="289.43005" 12.2299 - sodipodi:role="line" 12.2300 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2301 - id="tspan3436">chk</tspan></text> 12.2302 - <text 12.2303 - xml:space="preserve" 12.2304 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2305 - x="315.43005" 12.2306 - y="-619.95343" 12.2307 - id="text3438" 12.2308 - sodipodi:linespacing="100%"><tspan 12.2309 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2310 - sodipodi:role="line" 12.2311 - x="315.43005" 12.2312 - y="-619.95343" 12.2313 - id="tspan3440">no</tspan></text> 12.2314 - <text 12.2315 - sodipodi:linespacing="100%" 12.2316 - id="text3442" 12.2317 - y="-593.95343" 12.2318 - x="353.43005" 12.2319 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2320 - xml:space="preserve"><tspan 12.2321 - id="tspan3444" 12.2322 - y="-593.95343" 12.2323 - x="353.43005" 12.2324 - sodipodi:role="line" 12.2325 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> done</tspan><tspan 12.2326 - y="-584.95343" 12.2327 - x="353.43005" 12.2328 - sodipodi:role="line" 12.2329 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2330 - id="tspan3446"> with</tspan><tspan 12.2331 - y="-575.95343" 12.2332 - x="353.43005" 12.2333 - sodipodi:role="line" 12.2334 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2335 - id="tspan3448">msgs</tspan></text> 12.2336 - <g 12.2337 - transform="translate(177.05331,-864)" 12.2338 - id="g3450"> 12.2339 - <text 12.2340 - xml:space="preserve" 12.2341 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2342 - x="222.25137" 12.2343 - y="285.36765" 12.2344 - id="text3452" 12.2345 - sodipodi:linespacing="100%"><tspan 12.2346 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2347 - sodipodi:role="line" 12.2348 - x="222.25137" 12.2349 - y="285.36765" 12.2350 - id="tspan3456">get semEnv</tspan><tspan 12.2351 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2352 - sodipodi:role="line" 12.2353 - x="222.25137" 12.2354 - y="294.36765" 12.2355 - id="tspan3558">lock & update</tspan><tspan 12.2356 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2357 - sodipodi:role="line" 12.2358 - x="222.25137" 12.2359 - y="303.36765" 12.2360 - id="tspan3560">state of VP</tspan></text> 12.2361 - <rect 12.2362 - y="274.77512" 12.2363 - x="193.78287" 12.2364 - height="33.710323" 12.2365 - width="57.486332" 12.2366 - id="rect3458" 12.2367 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.2368 - </g> 12.2369 - <path 12.2370 - sodipodi:nodetypes="cc" 12.2371 - inkscape:connector-curvature="0" 12.2372 - id="path3460" 12.2373 - d="m 399.56974,-604.00562 0,12.75587" 12.2374 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.2375 - <g 12.2376 - id="g3472" 12.2377 - transform="translate(297.05331,-864)"> 12.2378 - <text 12.2379 - sodipodi:linespacing="100%" 12.2380 - id="text3474" 12.2381 - y="285.36765" 12.2382 - x="222.25137" 12.2383 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2384 - xml:space="preserve"><tspan 12.2385 - y="285.36765" 12.2386 - x="222.25137" 12.2387 - sodipodi:role="line" 12.2388 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2389 - id="tspan3476">get semEnv</tspan><tspan 12.2390 - id="tspan3478" 12.2391 - y="294.36765" 12.2392 - x="222.25137" 12.2393 - sodipodi:role="line" 12.2394 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">lock & pick a</tspan><tspan 12.2395 - y="303.36765" 12.2396 - x="222.25137" 12.2397 - sodipodi:role="line" 12.2398 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2399 - id="tspan3566">ready VP</tspan></text> 12.2400 - <rect 12.2401 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.2402 - id="rect3480" 12.2403 - width="57.486332" 12.2404 - height="33.710323" 12.2405 - x="193.78287" 12.2406 - y="274.77512" /> 12.2407 - </g> 12.2408 - <text 12.2409 - sodipodi:linespacing="100%" 12.2410 - id="text3486" 12.2411 - y="-654.5929" 12.2412 - x="357.27625" 12.2413 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2414 - xml:space="preserve"><tspan 12.2415 - id="tspan3488" 12.2416 - y="-654.5929" 12.2417 - x="357.27625" 12.2418 - sodipodi:role="line" 12.2419 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in pthreads, checks</tspan><tspan 12.2420 - y="-645.5929" 12.2421 - x="357.27625" 12.2422 - sodipodi:role="line" 12.2423 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2424 - id="tspan3490"> mutex structures,</tspan><tspan 12.2425 - y="-636.5929" 12.2426 - x="357.27625" 12.2427 - sodipodi:role="line" 12.2428 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2429 - id="tspan3492"> cond var structs, etc)</tspan></text> 12.2430 - <text 12.2431 - sodipodi:linespacing="100%" 12.2432 - id="text3494" 12.2433 - y="-627.95343" 12.2434 - x="459.43005" 12.2435 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2436 - xml:space="preserve"><tspan 12.2437 - id="tspan3496" 12.2438 - y="-627.95343" 12.2439 - x="459.43005" 12.2440 - sodipodi:role="line" 12.2441 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">work-unit</tspan><tspan 12.2442 - id="tspan3498" 12.2443 - y="-618.95343" 12.2444 - x="459.43005" 12.2445 - sodipodi:role="line" 12.2446 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">state chgs</tspan></text> 12.2447 - <path 12.2448 - sodipodi:nodetypes="cc" 12.2449 - inkscape:connector-curvature="0" 12.2450 - id="path3500" 12.2451 - d="m 548.67846,-615.848 261.45961,-0.0912" 12.2452 - style="fill:none;stroke:#000000;stroke-width:1.00000036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.2453 - <g 12.2454 - transform="translate(717.05331,-904)" 12.2455 - id="g3518"> 12.2456 - <text 12.2457 - xml:space="preserve" 12.2458 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2459 - x="222.37003" 12.2460 - y="285.69943" 12.2461 - id="text3520" 12.2462 - sodipodi:linespacing="100%"><tspan 12.2463 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2464 - sodipodi:role="line" 12.2465 - x="222.37003" 12.2466 - y="285.69943" 12.2467 - id="tspan3522">Jmp to new</tspan><tspan 12.2468 - id="tspan3524" 12.2469 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2470 - sodipodi:role="line" 12.2471 - x="222.37003" 12.2472 - y="294.69943">work-unit</tspan></text> 12.2473 - <rect 12.2474 - y="274.77512" 12.2475 - x="193.78287" 12.2476 - height="25.544432" 12.2477 - width="57.486332" 12.2478 - id="rect3526" 12.2479 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.2480 - </g> 12.2481 - <path 12.2482 - sodipodi:nodetypes="cc" 12.2483 - inkscape:connector-curvature="0" 12.2484 - id="path3528" 12.2485 - d="m 868.0922,-616.20795 41.0608,0" 12.2486 - style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.2487 - <path 12.2488 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 12.2489 - d="m 519.56974,-604.00562 0,12.75587" 12.2490 - id="path3568" 12.2491 - inkscape:connector-curvature="0" 12.2492 - sodipodi:nodetypes="cc" /> 12.2493 - <g 12.2494 - id="g3572" 12.2495 - transform="translate(617.05331,-904)"> 12.2496 - <text 12.2497 - sodipodi:linespacing="100%" 12.2498 - id="text3574" 12.2499 - y="285.69943" 12.2500 - x="222.37003" 12.2501 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2502 - xml:space="preserve"><tspan 12.2503 - y="285.69943" 12.2504 - x="222.37003" 12.2505 - sodipodi:role="line" 12.2506 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2507 - id="tspan3578">switch to</tspan><tspan 12.2508 - y="294.69943" 12.2509 - x="222.37003" 12.2510 - sodipodi:role="line" 12.2511 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2512 - id="tspan3584">ready VP</tspan></text> 12.2513 - <rect 12.2514 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.2515 - id="rect3580" 12.2516 - width="57.486332" 12.2517 - height="25.544432" 12.2518 - x="193.78287" 12.2519 - y="274.77512" /> 12.2520 - </g> 12.2521 - <path 12.2522 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 12.2523 - d="m 279.12967,-592.6255 -38.74926,53.74501 -0.37105,270.05417 35.3037,38.5653" 12.2524 - id="path3588" 12.2525 - inkscape:connector-curvature="0" 12.2526 - sodipodi:nodetypes="cccc" /> 12.2527 - <path 12.2528 - sodipodi:nodetypes="cc" 12.2529 - inkscape:connector-curvature="0" 12.2530 - id="path3590" 12.2531 - d="m 328.33352,-197.5484 41.44797,-413.82488" 12.2532 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.2533 - <g 12.2534 - id="g4716" 12.2535 - transform="translate(-22.94669,-904)"> 12.2536 - <text 12.2537 - sodipodi:linespacing="100%" 12.2538 - id="text4718" 12.2539 - y="285.39841" 12.2540 - x="222.37003" 12.2541 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2542 - xml:space="preserve"><tspan 12.2543 - id="tspan4720" 12.2544 - y="285.39841" 12.2545 - x="222.37003" 12.2546 - sodipodi:role="line" 12.2547 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">save VP</tspan><tspan 12.2548 - id="tspan4722" 12.2549 - y="294.39841" 12.2550 - x="222.37003" 12.2551 - sodipodi:role="line" 12.2552 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">context</tspan></text> 12.2553 - <rect 12.2554 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.2555 - id="rect4724" 12.2556 - width="57.486332" 12.2557 - height="25.544432" 12.2558 - x="193.78287" 12.2559 - y="274.77512" /> 12.2560 - </g> 12.2561 - <path 12.2562 - sodipodi:nodetypes="cc" 12.2563 - inkscape:connector-curvature="0" 12.2564 - id="path4726" 12.2565 - d="m 549.69914,-605.3604 79.38092,221.59022" 12.2566 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.2567 - <text 12.2568 - xml:space="preserve" 12.2569 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2570 - x="573.43005" 12.2571 - y="-583.95343" 12.2572 - id="text4728" 12.2573 - sodipodi:linespacing="100%"><tspan 12.2574 - id="tspan4732" 12.2575 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2576 - sodipodi:role="line" 12.2577 - x="573.43005" 12.2578 - y="-583.95343">No VPs</tspan><tspan 12.2579 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2580 - sodipodi:role="line" 12.2581 - x="573.43005" 12.2582 - y="-574.95343" 12.2583 - id="tspan4736">ready</tspan></text> 12.2584 - <text 12.2585 - inkscape:transform-center-x="-8.125" 12.2586 - xml:space="preserve" 12.2587 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2588 - x="451.43005" 12.2589 - y="-253.95343" 12.2590 - id="text4791" 12.2591 - sodipodi:linespacing="100%"><tspan 12.2592 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2593 - sodipodi:role="line" 12.2594 - x="451.43005" 12.2595 - y="-253.95343" 12.2596 - id="tspan4845">increase backoff each</tspan><tspan 12.2597 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2598 - sodipodi:role="line" 12.2599 - x="451.43005" 12.2600 - y="-244.95343" 12.2601 - id="tspan8389">repetition & update</tspan><tspan 12.2602 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2603 - sodipodi:role="line" 12.2604 - x="451.43005" 12.2605 - y="-235.95343" 12.2606 - id="tspan8385">backoff state</tspan><tspan 12.2607 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2608 - sodipodi:role="line" 12.2609 - x="451.43005" 12.2610 - y="-226.95343" 12.2611 - id="tspan8462">Try to make core enter</tspan><tspan 12.2612 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2613 - sodipodi:role="line" 12.2614 - x="451.43005" 12.2615 - y="-217.95343" 12.2616 - id="tspan8476">power-down idle state</tspan><tspan 12.2617 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2618 - sodipodi:role="line" 12.2619 - x="451.43005" 12.2620 - y="-208.95343" 12.2621 - id="tspan8464">while waiting</tspan></text> 12.2622 - <g 12.2623 - transform="translate(257.05331,-564)" 12.2624 - id="g4825"> 12.2625 - <text 12.2626 - xml:space="preserve" 12.2627 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2628 - x="222.37003" 12.2629 - y="285.39841" 12.2630 - id="text4827" 12.2631 - sodipodi:linespacing="100%"><tspan 12.2632 - id="tspan4831" 12.2633 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2634 - sodipodi:role="line" 12.2635 - x="222.37003" 12.2636 - y="285.39841">do Backoff</tspan><tspan 12.2637 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2638 - sodipodi:role="line" 12.2639 - x="222.37003" 12.2640 - y="294.39841" 12.2641 - id="tspan4837">wait</tspan></text> 12.2642 - <rect 12.2643 - y="274.77512" 12.2644 - x="193.78287" 12.2645 - height="25.544432" 12.2646 - width="57.486332" 12.2647 - id="rect4833" 12.2648 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.2649 - </g> 12.2650 - <path 12.2651 - sodipodi:nodetypes="cc" 12.2652 - inkscape:connector-curvature="0" 12.2653 - id="path4839" 12.2654 - d="m 449.58066,-276.19778 -135.75889,46.57393" 12.2655 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.2656 - <path 12.2657 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 12.2658 - d="m 328.29269,-192.89706 c 201.947,-1.19048 188.59077,6.60715 222.99693,-14.36012 65.59054,-39.97116 58.47949,-168.79464 107.66658,-129.80654" 12.2659 - id="path7449" 12.2660 - inkscape:connector-curvature="0" 12.2661 - sodipodi:nodetypes="csc" /> 12.2662 - <path 12.2663 - style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 12.2664 - d="m 659.56974,-233.52943 0,24.20748" 12.2665 - id="path8339" 12.2666 - inkscape:connector-curvature="0" 12.2667 - sodipodi:nodetypes="cc" /> 12.2668 - <g 12.2669 - transform="translate(80,80)" 12.2670 - id="g8347"> 12.2671 - <text 12.2672 - xml:space="preserve" 12.2673 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2674 - x="579.39252" 12.2675 - y="-335.22998" 12.2676 - id="text8349" 12.2677 - sodipodi:linespacing="100%"><tspan 12.2678 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2679 - sodipodi:role="line" 12.2680 - x="579.39252" 12.2681 - y="-335.22998" 12.2682 - id="tspan8359">send "need</tspan><tspan 12.2683 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2684 - sodipodi:role="line" 12.2685 - x="579.39252" 12.2686 - y="-326.22998" 12.2687 - id="tspan8412">work"?</tspan></text> 12.2688 - <rect 12.2689 - ry="0" 12.2690 - transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 12.2691 - y="93.582199" 12.2692 - x="624.01776" 12.2693 - height="36.457531" 12.2694 - width="36.810017" 12.2695 - id="rect8355" 12.2696 - style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.2697 - </g> 12.2698 - <text 12.2699 - xml:space="preserve" 12.2700 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2701 - x="681.43005" 12.2702 - y="-223.95343" 12.2703 - id="text8363" 12.2704 - sodipodi:linespacing="100%"><tspan 12.2705 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2706 - sodipodi:role="line" 12.2707 - x="681.43005" 12.2708 - y="-223.95343" 12.2709 - id="tspan8367">yes, send</tspan></text> 12.2710 - <path 12.2711 - sodipodi:nodetypes="cc" 12.2712 - inkscape:connector-curvature="0" 12.2713 - id="path8371" 12.2714 - d="M 630.69705,-196.1891 509.08787,-272.94486" 12.2715 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.2716 - <g 12.2717 - id="g8391" 12.2718 - transform="translate(80,20)"> 12.2719 - <text 12.2720 - sodipodi:linespacing="100%" 12.2721 - id="text8393" 12.2722 - y="-339.22998" 12.2723 - x="579.39252" 12.2724 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2725 - xml:space="preserve"><tspan 12.2726 - y="-339.22998" 12.2727 - x="579.39252" 12.2728 - sodipodi:role="line" 12.2729 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2730 - id="tspan8395">got</tspan><tspan 12.2731 - id="tspan8397" 12.2732 - y="-330.22998" 12.2733 - x="579.39252" 12.2734 - sodipodi:role="line" 12.2735 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">work?</tspan></text> 12.2736 - <rect 12.2737 - style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.2738 - id="rect8399" 12.2739 - width="36.810017" 12.2740 - height="36.457531" 12.2741 - x="624.01776" 12.2742 - y="93.582199" 12.2743 - transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 12.2744 - ry="0" /> 12.2745 - </g> 12.2746 - <path 12.2747 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 12.2748 - d="m 659.56974,-292.00562 0,13.28746" 12.2749 - id="path8401" 12.2750 - inkscape:connector-curvature="0" 12.2751 - sodipodi:nodetypes="cc" /> 12.2752 - <text 12.2753 - xml:space="preserve" 12.2754 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2755 - x="625.43005" 12.2756 - y="-247.95343" 12.2757 - id="text8403" 12.2758 - sodipodi:linespacing="100%"><tspan 12.2759 - id="tspan8405" 12.2760 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2761 - sodipodi:role="line" 12.2762 - x="625.43005" 12.2763 - y="-247.95343">Don't</tspan><tspan 12.2764 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2765 - sodipodi:role="line" 12.2766 - x="625.43005" 12.2767 - y="-238.95343" 12.2768 - id="tspan8460">send</tspan></text> 12.2769 - <path 12.2770 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 12.2771 - d="M 632.60182,-256.1891 509.09908,-276.55267" 12.2772 - id="path8408" 12.2773 - inkscape:connector-curvature="0" 12.2774 - sodipodi:nodetypes="cc" /> 12.2775 - <text 12.2776 - sodipodi:linespacing="100%" 12.2777 - id="text8420" 12.2778 - y="-317.95343" 12.2779 - x="697.43005" 12.2780 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2781 - xml:space="preserve"><tspan 12.2782 - id="tspan8422" 12.2783 - y="-317.95343" 12.2784 - x="697.43005" 12.2785 - sodipodi:role="line" 12.2786 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan 12.2787 - y="-308.95343" 12.2788 - x="697.43005" 12.2789 - sodipodi:role="line" 12.2790 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2791 - id="tspan8424">got</tspan><tspan 12.2792 - y="-299.95343" 12.2793 - x="697.43005" 12.2794 - sodipodi:role="line" 12.2795 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2796 - id="tspan8426">work</tspan></text> 12.2797 - <text 12.2798 - sodipodi:linespacing="100%" 12.2799 - id="text8428" 12.2800 - y="-560.5929" 12.2801 - x="737.27625" 12.2802 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2803 - xml:space="preserve"><tspan 12.2804 - y="-560.5929" 12.2805 - x="737.27625" 12.2806 - sodipodi:role="line" 12.2807 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2808 - id="tspan8434">The difference between top two paths</tspan><tspan 12.2809 - y="-551.5929" 12.2810 - x="737.27625" 12.2811 - sodipodi:role="line" 12.2812 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2813 - id="tspan8440">is the way the request hdlr+assigner has</tspan><tspan 12.2814 - y="-542.5929" 12.2815 - x="737.27625" 12.2816 - sodipodi:role="line" 12.2817 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2818 - id="tspan8442">been implemented -- use shared state on</tspan><tspan 12.2819 - y="-533.5929" 12.2820 - x="737.27625" 12.2821 - sodipodi:role="line" 12.2822 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2823 - id="tspan8450">top path, but only local on the second.</tspan><tspan 12.2824 - y="-524.5929" 12.2825 - x="737.27625" 12.2826 - sodipodi:role="line" 12.2827 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2828 - id="tspan8454">NOTE: the request hdlr and assigner are</tspan><tspan 12.2829 - y="-515.5929" 12.2830 - x="737.27625" 12.2831 - sodipodi:role="line" 12.2832 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2833 - id="tspan8456">combined into a single straight-line piece</tspan><tspan 12.2834 - y="-506.5929" 12.2835 - x="737.27625" 12.2836 - sodipodi:role="line" 12.2837 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2838 - id="tspan8458">of code.</tspan></text> 12.2839 - <path 12.2840 - sodipodi:nodetypes="cccc" 12.2841 - inkscape:connector-curvature="0" 12.2842 - id="path8466" 12.2843 - d="m 279.12967,-474.53026 -22.71235,36.22941 -0.21748,176.32874 29.26421,32.66347" 12.2844 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.2845 - <path 12.2846 - sodipodi:nodetypes="cc" 12.2847 - inkscape:connector-curvature="0" 12.2848 - id="path8468" 12.2849 - d="M 548.67838,-498.64159 808.48533,-608.65596" 12.2850 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 12.2851 - <text 12.2852 - sodipodi:linespacing="100%" 12.2853 - id="text8470" 12.2854 - y="-483.95343" 12.2855 - x="571.43005" 12.2856 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2857 - xml:space="preserve"><tspan 12.2858 - y="-483.95343" 12.2859 - x="571.43005" 12.2860 - sodipodi:role="line" 12.2861 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.2862 - id="tspan8472">No VPs</tspan><tspan 12.2863 - id="tspan8474" 12.2864 - y="-474.95343" 12.2865 - x="571.43005" 12.2866 - sodipodi:role="line" 12.2867 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> ready</tspan></text> 12.2868 - <text 12.2869 - sodipodi:linespacing="100%" 12.2870 - id="text8478" 12.2871 - y="86.04657" 12.2872 - x="531.43005" 12.2873 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2874 - xml:space="preserve" 12.2875 - inkscape:transform-center-x="-8.125"><tspan 12.2876 - y="86.04657" 12.2877 - x="531.43005" 12.2878 - sodipodi:role="line" 12.2879 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.2880 - id="tspan8538" /></text> 12.2881 - <flowRoot 12.2882 - xml:space="preserve" 12.2883 - id="flowRoot8540" 12.2884 - style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"><flowRegion 12.2885 - id="flowRegion8542"><rect 12.2886 - id="rect8544" 12.2887 - width="527.61902" 12.2888 - height="266.66666" 12.2889 - x="457.14285" 12.2890 - y="491.66666" 12.2891 - style="font-size:8px" /></flowRegion><flowPara 12.2892 - id="flowPara8546" /></flowRoot> <flowRoot 12.2893 - xml:space="preserve" 12.2894 - id="flowRoot8548" 12.2895 - style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" 12.2896 - transform="translate(-336.46922,-441.70658)"><flowRegion 12.2897 - id="flowRegion8550"><rect 12.2898 - id="rect8552" 12.2899 - width="539.04761" 12.2900 - height="272.38095" 12.2901 - x="447.61905" 12.2902 - y="487.85715" /></flowRegion><flowPara 12.2903 - style="font-size:8px" 12.2904 - id="flowPara8765">Local semantic Env holds the Q of ready work-units </flowPara><flowPara 12.2905 - style="font-size:8px" 12.2906 - id="flowPara8805">-] Msgs update the local semantic state, and put work-units into this Q</flowPara><flowPara 12.2907 - style="font-size:8px" 12.2908 - id="flowPara8767">-] Shared sem state is traditional VMS, except req hdlr and assigner are same Fn</flowPara><flowPara 12.2909 - style="font-size:8px" 12.2910 - id="flowPara8769">-] Shared sem has its own structs to decide which VP is ready, and switches to it at end of Assigner</flowPara><flowPara 12.2911 - style="font-size:8px" 12.2912 - id="flowPara8771">-] Which core a VP runs on is decided between req hdlr and assigner, based on shared structs that hold the VPs</flowPara><flowPara 12.2913 - style="font-size:8px" 12.2914 - id="flowPara8773">-] For local-only, VP is moved to the core it runs on -- assigner only moves VPs to diff cores and receives them</flowPara><flowPara 12.2915 - style="font-size:8px" 12.2916 - id="flowPara8775">-] For atomic tasks, the task-info is sent betwn cores.. for VPs, whole live portion of stack is sent.</flowPara><flowPara 12.2917 - style="font-size:8px" 12.2918 - id="flowPara8777" /><flowPara 12.2919 - style="font-size:8px" 12.2920 - id="flowPara8823">Okay, so this fits the standard VMS model -- except now the core-controller is gone, so the extra level of UCC is taken away. Now, the MasterVP is "reusing" whatever VP has suspended. -- in a way, the core-controller plu AnimationMaster are reduced to the assembly call that the WrapperLib (WL) makes to end the current work-unit, which suspends the VP. Inside that suspend call, is the opportunity to switch between different processes, call upon VMS-only helper services, and so on.</flowPara><flowPara 12.2921 - style="font-size:8px" 12.2922 - id="flowPara8825">So, the switch-over is a function call to a wrapp-lib, which then does an assembly Fn call -- the assembly saves the stack state (regs already saved when did the wrapper-lib call), and then puts localEnv into the param reg (for 64 bit convention) and jumps to the plugin-fn. Note, there are three different assembly calls, one for each kind of work-unit, to end it. Sometimes work-unit calls assembly directly, sometimes it calls a wrapper-lib that just does all the work right there, sometimes the wrapper lib calls the appropriate assembly Fn.</flowPara><flowPara 12.2923 - style="font-size:8px" 12.2924 - id="flowPara8827" /><flowPara 12.2925 - style="font-size:8px" 12.2926 - id="flowPara8793">Need to modify request structure, so abstraction can supply services via request -- and perhaps library Fns that perform some of services direct from app, and other Fns for use inside the plugins.. such as Malloc-Free, create VP, create atomic-Task.. some are pure wrapper-lib, others are combo.. seeing one version of malloc for wrapper-lib, different for plugin and msg-system use.The msg system is details of impl of Lang Animator -- so plugin is still "completing" the lang animator by adding semantics</flowPara><flowPara 12.2927 - style="font-size:8px" 12.2928 - id="flowPara8801">Core-controller was a second level beneath the runtime (Language Animator is the runtime).. The sched slots were virtual physical animators, and the masterVP was the Language Animator, which the AnimationMaster Fn and the plugin Fns supplied the behavior of. The coreCtlr switched between levels -- The MasterVP was "outside" the framework of the schedling slots -- in a way it was beside them (they took turns getting the actual phys animator, so same level) and in other way was above -- it controlled what went into the slots, so above them. I another way, the MasterVP was the Language Animator, while the slots were virtual physical, so they had no locial connection -- the slots were related to the same thing that animatored the language animator.. a very strange arrangement.</flowPara></flowRoot> <text 12.2929 - xml:space="preserve" 12.2930 - style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" 12.2931 - x="894.00696" 12.2932 - y="-182.42088" 12.2933 - id="text8833" 12.2934 - sodipodi:linespacing="125%"><tspan 12.2935 - sodipodi:role="line" 12.2936 - id="tspan8835" 12.2937 - x="894.00696" 12.2938 - y="-182.42088"> </tspan></text> 12.2939 - <g 12.2940 - id="g3490" 12.2941 - transform="translate(177.05331,-343.31973)"> 12.2942 - <text 12.2943 - sodipodi:linespacing="100%" 12.2944 - id="text3492" 12.2945 - y="285.39841" 12.2946 - x="222.37003" 12.2947 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2948 - xml:space="preserve"><tspan 12.2949 - y="285.39841" 12.2950 - x="222.37003" 12.2951 - sodipodi:role="line" 12.2952 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2953 - id="tspan3501">send work-</tspan><tspan 12.2954 - y="294.39841" 12.2955 - x="222.37003" 12.2956 - sodipodi:role="line" 12.2957 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2958 - id="tspan3511">push msg</tspan><tspan 12.2959 - y="303.39841" 12.2960 - x="223.72354" 12.2961 - sodipodi:role="line" 12.2962 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2963 - id="tspan3513">and start </tspan><tspan 12.2964 - y="312.39841" 12.2965 - x="222.37003" 12.2966 - sodipodi:role="line" 12.2967 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.2968 - id="tspan3515">timer for it.</tspan></text> 12.2969 - <rect 12.2970 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 12.2971 - id="rect3503" 12.2972 - width="57.486332" 12.2973 - height="63.639675" 12.2974 - x="193.78287" 12.2975 - y="274.77512" /> 12.2976 - </g> 12.2977 - <text 12.2978 - xml:space="preserve" 12.2979 - style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" 12.2980 - x="84.168976" 12.2981 - y="-681.48474" 12.2982 - id="text3537" 12.2983 - sodipodi:linespacing="125%"><tspan 12.2984 - sodipodi:role="line" 12.2985 - id="tspan3539" 12.2986 - x="84.168976" 12.2987 - y="-681.48474" 12.2988 - style="font-size:40px">Control Flow of Universal Proto-Runtime </tspan></text> 12.2989 - <g 12.2990 - transform="translate(237.05331,-404)" 12.2991 - id="g3541"> 12.2992 - <text 12.2993 - xml:space="preserve" 12.2994 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.2995 - x="222.25137" 12.2996 - y="285.36765" 12.2997 - id="text3543" 12.2998 - sodipodi:linespacing="100%"><tspan 12.2999 - id="tspan3547" 12.3000 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.3001 - sodipodi:role="line" 12.3002 - x="222.25137" 12.3003 - y="285.36765">Expired timer</tspan><tspan 12.3004 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 12.3005 - sodipodi:role="line" 12.3006 - x="222.25137" 12.3007 - y="294.36765" 12.3008 - id="tspan3553">handler</tspan></text> 12.3009 - <rect 12.3010 - y="274.77512" 12.3011 - x="193.78287" 12.3012 - height="25.544432" 12.3013 - width="57.486332" 12.3014 - id="rect3549" 12.3015 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 12.3016 - </g> 12.3017 - <path 12.3018 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 12.3019 - d="m 323.63077,-165.12086 131.74691,33.98134" 12.3020 - id="path3555" 12.3021 - inkscape:connector-curvature="0" 12.3022 - sodipodi:nodetypes="cc" /> 12.3023 - <text 12.3024 - xml:space="preserve" 12.3025 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.3026 - x="393.43005" 12.3027 - y="-151.95343" 12.3028 - id="text3557" 12.3029 - sodipodi:linespacing="100%"><tspan 12.3030 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.3031 - sodipodi:role="line" 12.3032 - x="393.43005" 12.3033 - y="-151.95343" 12.3034 - id="tspan3561"> Expired</tspan><tspan 12.3035 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 12.3036 - sodipodi:role="line" 12.3037 - x="393.43005" 12.3038 - y="-142.95343" 12.3039 - id="tspan3565"> timer</tspan></text> 12.3040 - <text 12.3041 - xml:space="preserve" 12.3042 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 12.3043 - x="449.27625" 12.3044 - y="-93.273193" 12.3045 - id="text3567" 12.3046 - sodipodi:linespacing="100%"><tspan 12.3047 - id="tspan3579" 12.3048 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.3049 - sodipodi:role="line" 12.3050 - x="449.27625" 12.3051 - y="-93.273193">When send work to other core,</tspan><tspan 12.3052 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.3053 - sodipodi:role="line" 12.3054 - x="449.27625" 12.3055 - y="-84.273193" 12.3056 - id="tspan3591">it may be sleeping. So when timer</tspan><tspan 12.3057 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.3058 - sodipodi:role="line" 12.3059 - x="449.27625" 12.3060 - y="-75.273193" 12.3061 - id="tspan3593">expires, do escrow, which is atomic</tspan><tspan 12.3062 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.3063 - sodipodi:role="line" 12.3064 - x="449.27625" 12.3065 - y="-66.273193" 12.3066 - id="tspan3595">check of whether work was received.</tspan><tspan 12.3067 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.3068 - sodipodi:role="line" 12.3069 - x="449.27625" 12.3070 - y="-57.273193" 12.3071 - id="tspan3597">If not, then check if dest core is </tspan><tspan 12.3072 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.3073 - sodipodi:role="line" 12.3074 - x="449.27625" 12.3075 - y="-48.273193" 12.3076 - id="tspan3599">sleeping -- if no, then take work</tspan><tspan 12.3077 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.3078 - sodipodi:role="line" 12.3079 - x="449.27625" 12.3080 - y="-39.273193" 12.3081 - id="tspan3611">back. If yes, do wakeup and set a </tspan><tspan 12.3082 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.3083 - sodipodi:role="line" 12.3084 - x="449.27625" 12.3085 - y="-30.273193" 12.3086 - id="tspan3609">new timer, which will do this</tspan><tspan 12.3087 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 12.3088 - sodipodi:role="line" 12.3089 - x="449.27625" 12.3090 - y="-21.273193" 12.3091 - id="tspan3617">handling again.</tspan></text> 12.3092 - </g> 12.3093 -</svg>
13.1 Binary file 0__Papers/VMS/Universal/figures/control_flow_big_page.pdf has changed
14.1 --- a/0__Papers/VMS/Universal/figures/control_flow_big_page.svg Fri Aug 17 19:01:07 2012 +0200 14.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 14.3 @@ -1,3090 +0,0 @@ 14.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?> 14.5 -<!-- Created with Inkscape (http://www.inkscape.org/) --> 14.6 - 14.7 -<svg 14.8 - xmlns:dc="http://purl.org/dc/elements/1.1/" 14.9 - xmlns:cc="http://creativecommons.org/ns#" 14.10 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 14.11 - xmlns:svg="http://www.w3.org/2000/svg" 14.12 - xmlns="http://www.w3.org/2000/svg" 14.13 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 14.14 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 14.15 - width="1488.189" 14.16 - height="1052.3622" 14.17 - id="svg2" 14.18 - sodipodi:version="0.32" 14.19 - inkscape:version="0.48.1 " 14.20 - sodipodi:docname="control_flow.svg" 14.21 - inkscape:output_extension="org.inkscape.output.svg.inkscape" 14.22 - version="1.1"> 14.23 - <defs 14.24 - id="defs4"> 14.25 - <marker 14.26 - inkscape:stockid="StopL" 14.27 - orient="auto" 14.28 - refY="0" 14.29 - refX="0" 14.30 - id="StopL" 14.31 - style="overflow:visible"> 14.32 - <path 14.33 - id="path10015" 14.34 - d="M 0,5.65 0,-5.65" 14.35 - style="fill:none;stroke:#000000;stroke-width:1pt" 14.36 - transform="scale(0.8,0.8)" 14.37 - inkscape:connector-curvature="0" /> 14.38 - </marker> 14.39 - <marker 14.40 - inkscape:stockid="TriangleOutL" 14.41 - orient="auto" 14.42 - refY="0" 14.43 - refX="0" 14.44 - id="TriangleOutL" 14.45 - style="overflow:visible"> 14.46 - <path 14.47 - id="path9988" 14.48 - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" 14.49 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 14.50 - transform="scale(0.8,0.8)" 14.51 - inkscape:connector-curvature="0" /> 14.52 - </marker> 14.53 - <marker 14.54 - inkscape:stockid="Arrow2Mstart" 14.55 - orient="auto" 14.56 - refY="0" 14.57 - refX="0" 14.58 - id="Arrow2Mstart" 14.59 - style="overflow:visible"> 14.60 - <path 14.61 - id="path5492" 14.62 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.63 - 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" 14.64 - transform="scale(0.6,0.6)" 14.65 - inkscape:connector-curvature="0" /> 14.66 - </marker> 14.67 - <marker 14.68 - inkscape:stockid="Arrow2Mend" 14.69 - orient="auto" 14.70 - refY="0" 14.71 - refX="0" 14.72 - id="Arrow2Mend" 14.73 - style="overflow:visible"> 14.74 - <path 14.75 - id="path3563" 14.76 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.77 - 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" 14.78 - transform="scale(-0.6,-0.6)" 14.79 - inkscape:connector-curvature="0" /> 14.80 - </marker> 14.81 - <marker 14.82 - inkscape:stockid="TriangleOutM" 14.83 - orient="auto" 14.84 - refY="0" 14.85 - refX="0" 14.86 - id="TriangleOutM" 14.87 - style="overflow:visible"> 14.88 - <path 14.89 - id="path3682" 14.90 - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" 14.91 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 14.92 - transform="scale(0.4,0.4)" 14.93 - inkscape:connector-curvature="0" /> 14.94 - </marker> 14.95 - <marker 14.96 - inkscape:stockid="Arrow2Lend" 14.97 - orient="auto" 14.98 - refY="0" 14.99 - refX="0" 14.100 - id="Arrow2Lend" 14.101 - style="overflow:visible"> 14.102 - <path 14.103 - id="path3557" 14.104 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.105 - 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" 14.106 - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" 14.107 - inkscape:connector-curvature="0" /> 14.108 - </marker> 14.109 - <marker 14.110 - inkscape:stockid="Arrow1Mstart" 14.111 - orient="auto" 14.112 - refY="0" 14.113 - refX="0" 14.114 - id="Arrow1Mstart" 14.115 - style="overflow:visible"> 14.116 - <path 14.117 - id="path3542" 14.118 - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" 14.119 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 14.120 - transform="matrix(0.4,0,0,0.4,4,0)" 14.121 - inkscape:connector-curvature="0" /> 14.122 - </marker> 14.123 - <marker 14.124 - inkscape:stockid="Arrow1Lend" 14.125 - orient="auto" 14.126 - refY="0" 14.127 - refX="0" 14.128 - id="Arrow1Lend" 14.129 - style="overflow:visible"> 14.130 - <path 14.131 - id="path3539" 14.132 - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" 14.133 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 14.134 - transform="matrix(-0.8,0,0,-0.8,-10,0)" 14.135 - inkscape:connector-curvature="0" /> 14.136 - </marker> 14.137 - <marker 14.138 - inkscape:stockid="Arrow1Lstart" 14.139 - orient="auto" 14.140 - refY="0" 14.141 - refX="0" 14.142 - id="Arrow1Lstart" 14.143 - style="overflow:visible"> 14.144 - <path 14.145 - id="path3536" 14.146 - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" 14.147 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 14.148 - transform="matrix(0.8,0,0,0.8,10,0)" 14.149 - inkscape:connector-curvature="0" /> 14.150 - </marker> 14.151 - <inkscape:perspective 14.152 - sodipodi:type="inkscape:persp3d" 14.153 - inkscape:vp_x="0 : 526.18109 : 1" 14.154 - inkscape:vp_y="0 : 1000 : 0" 14.155 - inkscape:vp_z="744.09448 : 526.18109 : 1" 14.156 - inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 14.157 - id="perspective10" /> 14.158 - <inkscape:perspective 14.159 - id="perspective4311" 14.160 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.161 - inkscape:vp_z="1 : 0.5 : 1" 14.162 - inkscape:vp_y="0 : 1000 : 0" 14.163 - inkscape:vp_x="0 : 0.5 : 1" 14.164 - sodipodi:type="inkscape:persp3d" /> 14.165 - <inkscape:perspective 14.166 - id="perspective4336" 14.167 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.168 - inkscape:vp_z="1 : 0.5 : 1" 14.169 - inkscape:vp_y="0 : 1000 : 0" 14.170 - inkscape:vp_x="0 : 0.5 : 1" 14.171 - sodipodi:type="inkscape:persp3d" /> 14.172 - <inkscape:perspective 14.173 - id="perspective4365" 14.174 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.175 - inkscape:vp_z="1 : 0.5 : 1" 14.176 - inkscape:vp_y="0 : 1000 : 0" 14.177 - inkscape:vp_x="0 : 0.5 : 1" 14.178 - sodipodi:type="inkscape:persp3d" /> 14.179 - <marker 14.180 - inkscape:stockid="Arrow2Mend" 14.181 - orient="auto" 14.182 - refY="0" 14.183 - refX="0" 14.184 - id="Arrow2Mend-9" 14.185 - style="overflow:visible"> 14.186 - <path 14.187 - id="path3563-4" 14.188 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.189 - 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" 14.190 - transform="scale(-0.6,-0.6)" 14.191 - inkscape:connector-curvature="0" /> 14.192 - </marker> 14.193 - <inkscape:perspective 14.194 - id="perspective4423" 14.195 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.196 - inkscape:vp_z="1 : 0.5 : 1" 14.197 - inkscape:vp_y="0 : 1000 : 0" 14.198 - inkscape:vp_x="0 : 0.5 : 1" 14.199 - sodipodi:type="inkscape:persp3d" /> 14.200 - <marker 14.201 - inkscape:stockid="Arrow2Mend" 14.202 - orient="auto" 14.203 - refY="0" 14.204 - refX="0" 14.205 - id="Arrow2Mend-8" 14.206 - style="overflow:visible"> 14.207 - <path 14.208 - id="path3563-2" 14.209 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.210 - 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" 14.211 - transform="scale(-0.6,-0.6)" 14.212 - inkscape:connector-curvature="0" /> 14.213 - </marker> 14.214 - <inkscape:perspective 14.215 - id="perspective4461" 14.216 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.217 - inkscape:vp_z="1 : 0.5 : 1" 14.218 - inkscape:vp_y="0 : 1000 : 0" 14.219 - inkscape:vp_x="0 : 0.5 : 1" 14.220 - sodipodi:type="inkscape:persp3d" /> 14.221 - <inkscape:perspective 14.222 - id="perspective14081" 14.223 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.224 - inkscape:vp_z="1 : 0.5 : 1" 14.225 - inkscape:vp_y="0 : 1000 : 0" 14.226 - inkscape:vp_x="0 : 0.5 : 1" 14.227 - sodipodi:type="inkscape:persp3d" /> 14.228 - <inkscape:perspective 14.229 - id="perspective14206" 14.230 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.231 - inkscape:vp_z="1 : 0.5 : 1" 14.232 - inkscape:vp_y="0 : 1000 : 0" 14.233 - inkscape:vp_x="0 : 0.5 : 1" 14.234 - sodipodi:type="inkscape:persp3d" /> 14.235 - <inkscape:perspective 14.236 - id="perspective14299" 14.237 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.238 - inkscape:vp_z="1 : 0.5 : 1" 14.239 - inkscape:vp_y="0 : 1000 : 0" 14.240 - inkscape:vp_x="0 : 0.5 : 1" 14.241 - sodipodi:type="inkscape:persp3d" /> 14.242 - <inkscape:perspective 14.243 - id="perspective16915" 14.244 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.245 - inkscape:vp_z="1 : 0.5 : 1" 14.246 - inkscape:vp_y="0 : 1000 : 0" 14.247 - inkscape:vp_x="0 : 0.5 : 1" 14.248 - sodipodi:type="inkscape:persp3d" /> 14.249 - <inkscape:perspective 14.250 - id="perspective16946" 14.251 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.252 - inkscape:vp_z="1 : 0.5 : 1" 14.253 - inkscape:vp_y="0 : 1000 : 0" 14.254 - inkscape:vp_x="0 : 0.5 : 1" 14.255 - sodipodi:type="inkscape:persp3d" /> 14.256 - <inkscape:perspective 14.257 - id="perspective17789" 14.258 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.259 - inkscape:vp_z="1 : 0.5 : 1" 14.260 - inkscape:vp_y="0 : 1000 : 0" 14.261 - inkscape:vp_x="0 : 0.5 : 1" 14.262 - sodipodi:type="inkscape:persp3d" /> 14.263 - <inkscape:perspective 14.264 - id="perspective17820" 14.265 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.266 - inkscape:vp_z="1 : 0.5 : 1" 14.267 - inkscape:vp_y="0 : 1000 : 0" 14.268 - inkscape:vp_x="0 : 0.5 : 1" 14.269 - sodipodi:type="inkscape:persp3d" /> 14.270 - <marker 14.271 - inkscape:stockid="Arrow2Mend" 14.272 - orient="auto" 14.273 - refY="0" 14.274 - refX="0" 14.275 - id="Arrow2Mend-8-2" 14.276 - style="overflow:visible"> 14.277 - <path 14.278 - id="path3563-2-3" 14.279 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.280 - 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" 14.281 - transform="scale(-0.6,-0.6)" 14.282 - inkscape:connector-curvature="0" /> 14.283 - </marker> 14.284 - <inkscape:perspective 14.285 - id="perspective17848" 14.286 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.287 - inkscape:vp_z="1 : 0.5 : 1" 14.288 - inkscape:vp_y="0 : 1000 : 0" 14.289 - inkscape:vp_x="0 : 0.5 : 1" 14.290 - sodipodi:type="inkscape:persp3d" /> 14.291 - <inkscape:perspective 14.292 - id="perspective17891" 14.293 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.294 - inkscape:vp_z="1 : 0.5 : 1" 14.295 - inkscape:vp_y="0 : 1000 : 0" 14.296 - inkscape:vp_x="0 : 0.5 : 1" 14.297 - sodipodi:type="inkscape:persp3d" /> 14.298 - <marker 14.299 - inkscape:stockid="Arrow2Mend" 14.300 - orient="auto" 14.301 - refY="0" 14.302 - refX="0" 14.303 - id="Arrow2Mend-8-7" 14.304 - style="overflow:visible"> 14.305 - <path 14.306 - id="path3563-2-8" 14.307 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.308 - 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" 14.309 - transform="scale(-0.6,-0.6)" 14.310 - inkscape:connector-curvature="0" /> 14.311 - </marker> 14.312 - <inkscape:perspective 14.313 - id="perspective17925" 14.314 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.315 - inkscape:vp_z="1 : 0.5 : 1" 14.316 - inkscape:vp_y="0 : 1000 : 0" 14.317 - inkscape:vp_x="0 : 0.5 : 1" 14.318 - sodipodi:type="inkscape:persp3d" /> 14.319 - <inkscape:perspective 14.320 - id="perspective17996" 14.321 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.322 - inkscape:vp_z="1 : 0.5 : 1" 14.323 - inkscape:vp_y="0 : 1000 : 0" 14.324 - inkscape:vp_x="0 : 0.5 : 1" 14.325 - sodipodi:type="inkscape:persp3d" /> 14.326 - <inkscape:perspective 14.327 - id="perspective18039" 14.328 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.329 - inkscape:vp_z="1 : 0.5 : 1" 14.330 - inkscape:vp_y="0 : 1000 : 0" 14.331 - inkscape:vp_x="0 : 0.5 : 1" 14.332 - sodipodi:type="inkscape:persp3d" /> 14.333 - <inkscape:perspective 14.334 - id="perspective18073" 14.335 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.336 - inkscape:vp_z="1 : 0.5 : 1" 14.337 - inkscape:vp_y="0 : 1000 : 0" 14.338 - inkscape:vp_x="0 : 0.5 : 1" 14.339 - sodipodi:type="inkscape:persp3d" /> 14.340 - <inkscape:perspective 14.341 - id="perspective4016" 14.342 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.343 - inkscape:vp_z="1 : 0.5 : 1" 14.344 - inkscape:vp_y="0 : 1000 : 0" 14.345 - inkscape:vp_x="0 : 0.5 : 1" 14.346 - sodipodi:type="inkscape:persp3d" /> 14.347 - <inkscape:perspective 14.348 - id="perspective4046" 14.349 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.350 - inkscape:vp_z="1 : 0.5 : 1" 14.351 - inkscape:vp_y="0 : 1000 : 0" 14.352 - inkscape:vp_x="0 : 0.5 : 1" 14.353 - sodipodi:type="inkscape:persp3d" /> 14.354 - <inkscape:perspective 14.355 - id="perspective4071" 14.356 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.357 - inkscape:vp_z="1 : 0.5 : 1" 14.358 - inkscape:vp_y="0 : 1000 : 0" 14.359 - inkscape:vp_x="0 : 0.5 : 1" 14.360 - sodipodi:type="inkscape:persp3d" /> 14.361 - <inkscape:perspective 14.362 - id="perspective4101" 14.363 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.364 - inkscape:vp_z="1 : 0.5 : 1" 14.365 - inkscape:vp_y="0 : 1000 : 0" 14.366 - inkscape:vp_x="0 : 0.5 : 1" 14.367 - sodipodi:type="inkscape:persp3d" /> 14.368 - <inkscape:perspective 14.369 - id="perspective5945" 14.370 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.371 - inkscape:vp_z="1 : 0.5 : 1" 14.372 - inkscape:vp_y="0 : 1000 : 0" 14.373 - inkscape:vp_x="0 : 0.5 : 1" 14.374 - sodipodi:type="inkscape:persp3d" /> 14.375 - <inkscape:perspective 14.376 - id="perspective4144" 14.377 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.378 - inkscape:vp_z="1 : 0.5 : 1" 14.379 - inkscape:vp_y="0 : 1000 : 0" 14.380 - inkscape:vp_x="0 : 0.5 : 1" 14.381 - sodipodi:type="inkscape:persp3d" /> 14.382 - <marker 14.383 - inkscape:stockid="Arrow2Mend" 14.384 - orient="auto" 14.385 - refY="0" 14.386 - refX="0" 14.387 - id="Arrow2Mend-8-7-1" 14.388 - style="overflow:visible"> 14.389 - <path 14.390 - id="path3563-2-8-7" 14.391 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.392 - 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" 14.393 - transform="scale(-0.6,-0.6)" 14.394 - inkscape:connector-curvature="0" /> 14.395 - </marker> 14.396 - <inkscape:perspective 14.397 - id="perspective4733" 14.398 - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 14.399 - inkscape:vp_z="1 : 0.5 : 1" 14.400 - inkscape:vp_y="0 : 1000 : 0" 14.401 - inkscape:vp_x="0 : 0.5 : 1" 14.402 - sodipodi:type="inkscape:persp3d" /> 14.403 - <marker 14.404 - inkscape:stockid="Arrow2Mend" 14.405 - orient="auto" 14.406 - refY="0" 14.407 - refX="0" 14.408 - id="Arrow2Mend-8-7-12" 14.409 - style="overflow:visible"> 14.410 - <path 14.411 - inkscape:connector-curvature="0" 14.412 - id="path3563-2-8-2" 14.413 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.414 - 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" 14.415 - transform="scale(-0.6,-0.6)" /> 14.416 - </marker> 14.417 - <marker 14.418 - inkscape:stockid="Arrow2Mend" 14.419 - orient="auto" 14.420 - refY="0" 14.421 - refX="0" 14.422 - id="marker8401" 14.423 - style="overflow:visible"> 14.424 - <path 14.425 - inkscape:connector-curvature="0" 14.426 - id="path8403" 14.427 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.428 - 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" 14.429 - transform="scale(-0.6,-0.6)" /> 14.430 - </marker> 14.431 - <marker 14.432 - inkscape:stockid="Arrow2Mend" 14.433 - orient="auto" 14.434 - refY="0" 14.435 - refX="0" 14.436 - id="marker8405" 14.437 - style="overflow:visible"> 14.438 - <path 14.439 - inkscape:connector-curvature="0" 14.440 - id="path8407" 14.441 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.442 - 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" 14.443 - transform="scale(-0.6,-0.6)" /> 14.444 - </marker> 14.445 - <marker 14.446 - inkscape:stockid="Arrow2Mend" 14.447 - orient="auto" 14.448 - refY="0" 14.449 - refX="0" 14.450 - id="marker8409" 14.451 - style="overflow:visible"> 14.452 - <path 14.453 - inkscape:connector-curvature="0" 14.454 - id="path8411" 14.455 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.456 - 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" 14.457 - transform="scale(-0.6,-0.6)" /> 14.458 - </marker> 14.459 - <marker 14.460 - inkscape:stockid="Arrow2Mend" 14.461 - orient="auto" 14.462 - refY="0" 14.463 - refX="0" 14.464 - id="marker8413" 14.465 - style="overflow:visible"> 14.466 - <path 14.467 - inkscape:connector-curvature="0" 14.468 - id="path8415" 14.469 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.470 - 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" 14.471 - transform="scale(-0.6,-0.6)" /> 14.472 - </marker> 14.473 - <marker 14.474 - inkscape:stockid="Arrow2Mend" 14.475 - orient="auto" 14.476 - refY="0" 14.477 - refX="0" 14.478 - id="marker8417" 14.479 - style="overflow:visible"> 14.480 - <path 14.481 - inkscape:connector-curvature="0" 14.482 - id="path8419" 14.483 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.484 - 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" 14.485 - transform="scale(-0.6,-0.6)" /> 14.486 - </marker> 14.487 - <marker 14.488 - inkscape:stockid="Arrow2Mend" 14.489 - orient="auto" 14.490 - refY="0" 14.491 - refX="0" 14.492 - id="Arrow2Mend-8-7-17" 14.493 - style="overflow:visible"> 14.494 - <path 14.495 - inkscape:connector-curvature="0" 14.496 - id="path3563-2-8-5" 14.497 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.498 - 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" 14.499 - transform="scale(-0.6,-0.6)" /> 14.500 - </marker> 14.501 - <marker 14.502 - inkscape:stockid="Arrow2Mend" 14.503 - orient="auto" 14.504 - refY="0" 14.505 - refX="0" 14.506 - id="Arrow2Mend-8-7-0" 14.507 - style="overflow:visible"> 14.508 - <path 14.509 - inkscape:connector-curvature="0" 14.510 - id="path3563-2-8-3" 14.511 - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 14.512 - 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" 14.513 - transform="scale(-0.6,-0.6)" /> 14.514 - </marker> 14.515 - </defs> 14.516 - <sodipodi:namedview 14.517 - id="base" 14.518 - pagecolor="#ffffff" 14.519 - bordercolor="#666666" 14.520 - borderopacity="1.0" 14.521 - gridtolerance="10000" 14.522 - guidetolerance="10" 14.523 - objecttolerance="10" 14.524 - inkscape:pageopacity="0.0" 14.525 - inkscape:pageshadow="2" 14.526 - inkscape:zoom="0.97968464" 14.527 - inkscape:cx="457.74508" 14.528 - inkscape:cy="680.01473" 14.529 - inkscape:document-units="px" 14.530 - inkscape:current-layer="layer1" 14.531 - showgrid="false" 14.532 - inkscape:window-width="1600" 14.533 - inkscape:window-height="848" 14.534 - inkscape:window-x="-8" 14.535 - inkscape:window-y="-8" 14.536 - inkscape:window-maximized="1" /> 14.537 - <metadata 14.538 - id="metadata7"> 14.539 - <rdf:RDF> 14.540 - <cc:Work 14.541 - rdf:about=""> 14.542 - <dc:format>image/svg+xml</dc:format> 14.543 - <dc:type 14.544 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 14.545 - <dc:title></dc:title> 14.546 - </cc:Work> 14.547 - </rdf:RDF> 14.548 - </metadata> 14.549 - <g 14.550 - inkscape:label="Layer 1" 14.551 - inkscape:groupmode="layer" 14.552 - id="layer1" 14.553 - transform="translate(-3.5307846,729.06884)"> 14.554 - <text 14.555 - xml:space="preserve" 14.556 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.557 - x="441.66748" 14.558 - y="344.66492" 14.559 - id="text8002" 14.560 - sodipodi:linespacing="100%"><tspan 14.561 - sodipodi:role="line" 14.562 - x="441.66748" 14.563 - y="344.66492" 14.564 - style="font-size:8px" 14.565 - id="tspan12172" /></text> 14.566 - <text 14.567 - xml:space="preserve" 14.568 - style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.569 - x="368.25397" 14.570 - y="345.27225" 14.571 - id="text5849"><tspan 14.572 - sodipodi:role="line" 14.573 - id="tspan5851" 14.574 - x="368.25397" 14.575 - y="345.27225" /></text> 14.576 - <g 14.577 - transform="translate(-22.94669,-784)" 14.578 - id="g8065"> 14.579 - <text 14.580 - xml:space="preserve" 14.581 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.582 - x="222.37003" 14.583 - y="285.39841" 14.584 - id="text8067" 14.585 - sodipodi:linespacing="100%"><tspan 14.586 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.587 - sodipodi:role="line" 14.588 - x="222.37003" 14.589 - y="285.39841" 14.590 - id="tspan11696">save VP</tspan><tspan 14.591 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.592 - sodipodi:role="line" 14.593 - x="222.37003" 14.594 - y="294.39841" 14.595 - id="tspan12201">context</tspan></text> 14.596 - <rect 14.597 - y="274.77512" 14.598 - x="193.78287" 14.599 - height="25.544432" 14.600 - width="57.486332" 14.601 - id="rect8073" 14.602 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.603 - </g> 14.604 - <g 14.605 - id="g11700" 14.606 - transform="translate(160,-40)"> 14.607 - <text 14.608 - xml:space="preserve" 14.609 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.610 - x="579.39252" 14.611 - y="-343.22998" 14.612 - id="text11476" 14.613 - sodipodi:linespacing="100%"><tspan 14.614 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.615 - sodipodi:role="line" 14.616 - x="579.39252" 14.617 - y="-343.22998" 14.618 - id="tspan11478">which</tspan><tspan 14.619 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.620 - sodipodi:role="line" 14.621 - x="579.39252" 14.622 - y="-334.22998" 14.623 - id="tspan12299">context</tspan><tspan 14.624 - id="tspan11480" 14.625 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.626 - sodipodi:role="line" 14.627 - x="579.39252" 14.628 - y="-325.22998">switch</tspan></text> 14.629 - <rect 14.630 - ry="0" 14.631 - transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 14.632 - y="93.582199" 14.633 - x="624.01776" 14.634 - height="36.457531" 14.635 - width="36.810017" 14.636 - id="rect11482" 14.637 - style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.638 - </g> 14.639 - <g 14.640 - transform="translate(177.05331,-664)" 14.641 - id="g8103"> 14.642 - <text 14.643 - xml:space="preserve" 14.644 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.645 - x="222.25137" 14.646 - y="285.36765" 14.647 - id="text8105" 14.648 - sodipodi:linespacing="100%"><tspan 14.649 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.650 - sodipodi:role="line" 14.651 - x="222.25137" 14.652 - y="285.36765" 14.653 - id="tspan8111">constraint</tspan><tspan 14.654 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.655 - sodipodi:role="line" 14.656 - x="222.25137" 14.657 - y="294.36765" 14.658 - id="tspan8115">update hdlr</tspan></text> 14.659 - <rect 14.660 - y="274.77512" 14.661 - x="193.78287" 14.662 - height="25.544432" 14.663 - width="57.486332" 14.664 - id="rect8109" 14.665 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.666 - </g> 14.667 - <g 14.668 - id="g8165" 14.669 - transform="translate(177.05331,-604)"> 14.670 - <text 14.671 - sodipodi:linespacing="100%" 14.672 - id="text8167" 14.673 - y="285.39841" 14.674 - x="222.37003" 14.675 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.676 - xml:space="preserve"><tspan 14.677 - id="tspan8169" 14.678 - y="285.39841" 14.679 - x="222.37003" 14.680 - sodipodi:role="line" 14.681 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Push work</tspan><tspan 14.682 - y="294.39841" 14.683 - x="222.37003" 14.684 - sodipodi:role="line" 14.685 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.686 - id="tspan11020">onto Q</tspan></text> 14.687 - <rect 14.688 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.689 - id="rect8171" 14.690 - width="57.486332" 14.691 - height="25.544432" 14.692 - x="193.78287" 14.693 - y="274.77512" /> 14.694 - </g> 14.695 - <g 14.696 - transform="translate(437.05331,-664)" 14.697 - id="g8173"> 14.698 - <text 14.699 - xml:space="preserve" 14.700 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.701 - x="222.37003" 14.702 - y="285.69943" 14.703 - id="text8175" 14.704 - sodipodi:linespacing="100%"><tspan 14.705 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.706 - sodipodi:role="line" 14.707 - x="222.37003" 14.708 - y="285.69943" 14.709 - id="tspan11014">Take work-</tspan><tspan 14.710 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.711 - sodipodi:role="line" 14.712 - x="222.37003" 14.713 - y="294.69943" 14.714 - id="tspan11018">unit from Q</tspan></text> 14.715 - <rect 14.716 - y="274.77512" 14.717 - x="193.78287" 14.718 - height="25.544432" 14.719 - width="57.486332" 14.720 - id="rect8179" 14.721 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.722 - </g> 14.723 - <path 14.724 - sodipodi:nodetypes="cc" 14.725 - inkscape:connector-curvature="0" 14.726 - id="path8510" 14.727 - d="m 30.09217,-376.20795 134.75175,0" 14.728 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" /> 14.729 - <text 14.730 - xml:space="preserve" 14.731 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.732 - x="95.276283" 14.733 - y="-377.95343" 14.734 - id="text8067-3" 14.735 - sodipodi:linespacing="100%"><tspan 14.736 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.737 - sodipodi:role="line" 14.738 - x="95.276283" 14.739 - y="-377.95343" 14.740 - id="tspan8071-6">Non-suspend end of work-unit</tspan></text> 14.741 - <path 14.742 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" 14.743 - d="m 30.09217,-496.20795 134.75175,0" 14.744 - id="path11002" 14.745 - inkscape:connector-curvature="0" 14.746 - sodipodi:nodetypes="cc" /> 14.747 - <text 14.748 - sodipodi:linespacing="100%" 14.749 - id="text11004" 14.750 - y="-497.95343" 14.751 - x="95.430077" 14.752 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.753 - xml:space="preserve"><tspan 14.754 - id="tspan11006" 14.755 - y="-497.95343" 14.756 - x="95.430077" 14.757 - sodipodi:role="line" 14.758 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Suspend at end of work-unit</tspan></text> 14.759 - <path 14.760 - sodipodi:nodetypes="cc" 14.761 - inkscape:connector-curvature="0" 14.762 - id="path11472" 14.763 - d="m 399.56974,-364.00562 0,34.68367" 14.764 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.765 - <path 14.766 - sodipodi:nodetypes="cc" 14.767 - inkscape:connector-curvature="0" 14.768 - id="path11484" 14.769 - d="m 688.09217,-376.20795 22.13646,0" 14.770 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.771 - <path 14.772 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 14.773 - d="m 768.09217,-376.20795 41.4633,0" 14.774 - id="path11518" 14.775 - inkscape:connector-curvature="0" 14.776 - sodipodi:nodetypes="cc" /> 14.777 - <text 14.778 - sodipodi:linespacing="100%" 14.779 - id="text11578" 14.780 - y="-387.95343" 14.781 - x="295.27628" 14.782 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.783 - xml:space="preserve"><tspan 14.784 - id="tspan11580" 14.785 - y="-387.95343" 14.786 - x="295.27628" 14.787 - sodipodi:role="line" 14.788 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" /></text> 14.789 - <text 14.790 - xml:space="preserve" 14.791 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.792 - x="729.43005" 14.793 - y="-341.95343" 14.794 - id="text11616" 14.795 - sodipodi:linespacing="100%"><tspan 14.796 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.797 - sodipodi:role="line" 14.798 - x="730.78357" 14.799 - y="-341.95343" 14.800 - id="tspan11618"> new </tspan><tspan 14.801 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.802 - sodipodi:role="line" 14.803 - x="729.43005" 14.804 - y="-332.95343" 14.805 - id="tspan12175"> work-unit</tspan><tspan 14.806 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.807 - sodipodi:role="line" 14.808 - x="729.43005" 14.809 - y="-323.95343" 14.810 - id="tspan11620"> is attached to</tspan><tspan 14.811 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.812 - sodipodi:role="line" 14.813 - x="729.43005" 14.814 - y="-314.95343" 14.815 - id="tspan11622"> a VP's context</tspan></text> 14.816 - <text 14.817 - sodipodi:linespacing="100%" 14.818 - id="text11624" 14.819 - y="-405.95343" 14.820 - x="787.43005" 14.821 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.822 - xml:space="preserve"><tspan 14.823 - id="tspan11626" 14.824 - y="-405.95343" 14.825 - x="787.43005" 14.826 - sodipodi:role="line" 14.827 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">new work-</tspan><tspan 14.828 - id="tspan11630" 14.829 - y="-396.95343" 14.830 - x="787.43005" 14.831 - sodipodi:role="line" 14.832 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">unit has</tspan><tspan 14.833 - y="-387.95343" 14.834 - x="787.43005" 14.835 - sodipodi:role="line" 14.836 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.837 - id="tspan12161">own local</tspan><tspan 14.838 - y="-378.95343" 14.839 - x="787.43005" 14.840 - sodipodi:role="line" 14.841 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.842 - id="tspan11634">context</tspan></text> 14.843 - <g 14.844 - transform="translate(617.05331,-683.31973)" 14.845 - id="g11656"> 14.846 - <text 14.847 - xml:space="preserve" 14.848 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.849 - x="222.37003" 14.850 - y="285.39841" 14.851 - id="text11658" 14.852 - sodipodi:linespacing="100%"><tspan 14.853 - id="tspan11668" 14.854 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.855 - sodipodi:role="line" 14.856 - x="222.37003" 14.857 - y="285.39841">load curr VP</tspan><tspan 14.858 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.859 - sodipodi:role="line" 14.860 - x="222.37003" 14.861 - y="294.39841" 14.862 - id="tspan11686">with context</tspan><tspan 14.863 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.864 - sodipodi:role="line" 14.865 - x="222.37003" 14.866 - y="303.39841" 14.867 - id="tspan11688">from new</tspan><tspan 14.868 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.869 - sodipodi:role="line" 14.870 - x="222.37003" 14.871 - y="312.39841" 14.872 - id="tspan11690">work-unit</tspan></text> 14.873 - <rect 14.874 - y="274.77512" 14.875 - x="193.78287" 14.876 - height="63.639675" 14.877 - width="57.486332" 14.878 - id="rect11670" 14.879 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.880 - </g> 14.881 - <text 14.882 - sodipodi:linespacing="100%" 14.883 - id="text11718" 14.884 - y="-367.95343" 14.885 - x="95.276283" 14.886 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.887 - xml:space="preserve"><tspan 14.888 - id="tspan11720" 14.889 - y="-367.95343" 14.890 - x="95.276283" 14.891 - sodipodi:role="line" 14.892 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">which has attached context</tspan></text> 14.893 - <path 14.894 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" 14.895 - d="m 30.09217,-296.20795 134.75175,0" 14.896 - id="path11742" 14.897 - inkscape:connector-curvature="0" 14.898 - sodipodi:nodetypes="cc" /> 14.899 - <text 14.900 - sodipodi:linespacing="100%" 14.901 - id="text11744" 14.902 - y="-297.95343" 14.903 - x="95.276283" 14.904 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.905 - xml:space="preserve"><tspan 14.906 - id="tspan11746" 14.907 - y="-297.95343" 14.908 - x="95.276283" 14.909 - sodipodi:role="line" 14.910 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Non-suspend end of work-unit</tspan></text> 14.911 - <text 14.912 - xml:space="preserve" 14.913 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.914 - x="95.276283" 14.915 - y="-287.95343" 14.916 - id="text11750" 14.917 - sodipodi:linespacing="100%"><tspan 14.918 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.919 - sodipodi:role="line" 14.920 - x="95.276283" 14.921 - y="-287.95343" 14.922 - id="tspan11752">purely local (no ctxt attached)</tspan></text> 14.923 - <g 14.924 - id="g11754" 14.925 - transform="translate(-22.94669,-664)"> 14.926 - <text 14.927 - sodipodi:linespacing="100%" 14.928 - id="text11756" 14.929 - y="285.39841" 14.930 - x="222.37003" 14.931 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.932 - xml:space="preserve"><tspan 14.933 - id="tspan11758" 14.934 - y="285.39841" 14.935 - x="222.37003" 14.936 - sodipodi:role="line" 14.937 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">save stack</tspan><tspan 14.938 - id="tspan11760" 14.939 - y="294.39841" 14.940 - x="222.37003" 14.941 - sodipodi:role="line" 14.942 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">& frame ptrs</tspan></text> 14.943 - <rect 14.944 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.945 - id="rect11762" 14.946 - width="57.486332" 14.947 - height="25.544432" 14.948 - x="193.78287" 14.949 - y="274.77512" /> 14.950 - </g> 14.951 - <text 14.952 - xml:space="preserve" 14.953 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.954 - x="29.276283" 14.955 - y="-349.95343" 14.956 - id="text11764" 14.957 - sodipodi:linespacing="100%"><tspan 14.958 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.959 - sodipodi:role="line" 14.960 - x="29.276283" 14.961 - y="-349.95343" 14.962 - id="tspan11766">CILK is example of this case,</tspan><tspan 14.963 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.964 - sodipodi:role="line" 14.965 - x="29.276283" 14.966 - y="-340.95343" 14.967 - id="tspan12203">when leaf child finishes</tspan></text> 14.968 - <text 14.969 - sodipodi:linespacing="100%" 14.970 - id="text11768" 14.971 - y="-269.95343" 14.972 - x="29.276283" 14.973 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.974 - xml:space="preserve"><tspan 14.975 - id="tspan11770" 14.976 - y="-269.95343" 14.977 - x="29.276283" 14.978 - sodipodi:role="line" 14.979 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">Dataflow is example of this case</tspan></text> 14.980 - <text 14.981 - sodipodi:linespacing="100%" 14.982 - id="text11772" 14.983 - y="-473.95343" 14.984 - x="29.276283" 14.985 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.986 - xml:space="preserve"><tspan 14.987 - id="tspan11774" 14.988 - y="-473.95343" 14.989 - x="29.276283" 14.990 - sodipodi:role="line" 14.991 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">pthread is example of this case,</tspan><tspan 14.992 - y="-464.95343" 14.993 - x="29.276283" 14.994 - sodipodi:role="line" 14.995 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.996 - id="tspan3625">as is Cilk when suspends on sync</tspan></text> 14.997 - <path 14.998 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 14.999 - d="m 170.33352,-296.29839 100.31543,-78.14797" 14.1000 - id="path11776" 14.1001 - inkscape:connector-curvature="0" 14.1002 - sodipodi:nodetypes="cc" /> 14.1003 - <path 14.1004 - sodipodi:nodetypes="cc" 14.1005 - inkscape:connector-curvature="0" 14.1006 - id="path12020" 14.1007 - d="m 228.09216,-376.20795 41.06088,0" 14.1008 - style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.1009 - <path 14.1010 - sodipodi:nodetypes="cc" 14.1011 - inkscape:connector-curvature="0" 14.1012 - id="path12086" 14.1013 - d="m 659.56974,-364.00562 0,24.4507" 14.1014 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.1015 - <text 14.1016 - xml:space="preserve" 14.1017 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1018 - x="661.43005" 14.1019 - y="-355.95343" 14.1020 - id="text12088" 14.1021 - sodipodi:linespacing="100%"><tspan 14.1022 - style="font-size:9px;text-align:start;text-anchor:start;fill:#008000;fill-opacity:1" 14.1023 - sodipodi:role="line" 14.1024 - x="661.43005" 14.1025 - y="-355.95343" 14.1026 - id="tspan12090">no work</tspan><tspan 14.1027 - style="font-size:9px;text-align:start;text-anchor:start;fill:#008000;fill-opacity:1" 14.1028 - sodipodi:role="line" 14.1029 - x="661.43005" 14.1030 - y="-346.95343" 14.1031 - id="tspan12092">in Q</tspan></text> 14.1032 - <path 14.1033 - sodipodi:nodetypes="cc" 14.1034 - inkscape:connector-curvature="0" 14.1035 - id="path12155" 14.1036 - d="m 737.20425,-353.48137 72.41226,56.50237" 14.1037 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.1038 - <path 14.1039 - sodipodi:nodetypes="cc" 14.1040 - inkscape:connector-curvature="0" 14.1041 - id="path12197" 14.1042 - d="m 688.33352,-316.29839 23.17876,-59.17839" 14.1043 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.1044 - <text 14.1045 - sodipodi:linespacing="100%" 14.1046 - id="text12205" 14.1047 - y="-412.5929" 14.1048 - x="369.27625" 14.1049 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1050 - xml:space="preserve"><tspan 14.1051 - id="tspan12209" 14.1052 - y="-412.5929" 14.1053 - x="369.27625" 14.1054 - sodipodi:role="line" 14.1055 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in CILK, counts</tspan><tspan 14.1056 - y="-403.5929" 14.1057 - x="369.27625" 14.1058 - sodipodi:role="line" 14.1059 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1060 - id="tspan12307"> child ends, and</tspan><tspan 14.1061 - y="-394.5929" 14.1062 - x="369.27625" 14.1063 - sodipodi:role="line" 14.1064 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1065 - id="tspan12313"> handles sync)</tspan></text> 14.1066 - <text 14.1067 - xml:space="preserve" 14.1068 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1069 - x="627.27625" 14.1070 - y="-411.95343" 14.1071 - id="text12213" 14.1072 - sodipodi:linespacing="100%"><tspan 14.1073 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1074 - sodipodi:role="line" 14.1075 - x="627.27625" 14.1076 - y="-411.95343" 14.1077 - id="tspan12221">(for CILK, Q</tspan><tspan 14.1078 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1079 - sodipodi:role="line" 14.1080 - x="627.27625" 14.1081 - y="-402.95343" 14.1082 - id="tspan12305"> filled by async</tspan><tspan 14.1083 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1084 - sodipodi:role="line" 14.1085 - x="627.27625" 14.1086 - y="-393.95343" 14.1087 - id="tspan12219"> spawns)</tspan></text> 14.1088 - <path 14.1089 - sodipodi:nodetypes="cc" 14.1090 - inkscape:connector-curvature="0" 14.1091 - id="path12275" 14.1092 - d="m 328.09217,-376.20795 41.44502,0" 14.1093 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.1094 - <g 14.1095 - id="g12277" 14.1096 - transform="translate(-280,-40)"> 14.1097 - <text 14.1098 - sodipodi:linespacing="100%" 14.1099 - id="text12279" 14.1100 - y="-339.22998" 14.1101 - x="579.39252" 14.1102 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1103 - xml:space="preserve"><tspan 14.1104 - id="tspan12281" 14.1105 - y="-339.22998" 14.1106 - x="579.39252" 14.1107 - sodipodi:role="line" 14.1108 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">time to</tspan><tspan 14.1109 - y="-330.22998" 14.1110 - x="579.39252" 14.1111 - sodipodi:role="line" 14.1112 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1113 - id="tspan12283">chk msgs?</tspan></text> 14.1114 - <rect 14.1115 - style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.1116 - id="rect12285" 14.1117 - width="36.810017" 14.1118 - height="36.457531" 14.1119 - x="624.01776" 14.1120 - y="93.582199" 14.1121 - transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 14.1122 - ry="0" /> 14.1123 - </g> 14.1124 - <path 14.1125 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 14.1126 - d="m 299.56974,-351.98903 0,122.09492" 14.1127 - id="path12297" 14.1128 - inkscape:connector-curvature="0" 14.1129 - sodipodi:nodetypes="cc" /> 14.1130 - <g 14.1131 - id="g12335" 14.1132 - transform="translate(77.05331,-503.31973)"> 14.1133 - <text 14.1134 - sodipodi:linespacing="100%" 14.1135 - id="text12337" 14.1136 - y="285.39841" 14.1137 - x="222.37003" 14.1138 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1139 - xml:space="preserve"><tspan 14.1140 - y="285.39841" 14.1141 - x="222.37003" 14.1142 - sodipodi:role="line" 14.1143 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1144 - id="tspan12339">scan for in-</tspan><tspan 14.1145 - y="294.39841" 14.1146 - x="222.37003" 14.1147 - sodipodi:role="line" 14.1148 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1149 - id="tspan12394">coming msgs,</tspan><tspan 14.1150 - id="tspan12343" 14.1151 - y="303.39841" 14.1152 - x="222.37003" 14.1153 - sodipodi:role="line" 14.1154 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">give to hdlrs.</tspan><tspan 14.1155 - y="312.39841" 14.1156 - x="222.37003" 14.1157 - sodipodi:role="line" 14.1158 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1159 - id="tspan12400">check timers,</tspan><tspan 14.1160 - y="321.39841" 14.1161 - x="222.37003" 14.1162 - sodipodi:role="line" 14.1163 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1164 - id="tspan3521">fire hdlr for</tspan><tspan 14.1165 - y="330.39841" 14.1166 - x="222.37003" 14.1167 - sodipodi:role="line" 14.1168 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1169 - id="tspan3523">expired ones</tspan></text> 14.1170 - <rect 14.1171 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.1172 - id="rect12347" 14.1173 - width="57.486332" 14.1174 - height="63.639675" 14.1175 - x="193.78287" 14.1176 - y="274.77512" /> 14.1177 - </g> 14.1178 - <g 14.1179 - id="g12349" 14.1180 - transform="translate(617.05331,-603.31973)"> 14.1181 - <text 14.1182 - sodipodi:linespacing="100%" 14.1183 - id="text12351" 14.1184 - y="285.39841" 14.1185 - x="222.37003" 14.1186 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1187 - xml:space="preserve"><tspan 14.1188 - id="tspan12359" 14.1189 - y="285.39841" 14.1190 - x="222.37003" 14.1191 - sodipodi:role="line" 14.1192 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">send curr VP</tspan><tspan 14.1193 - y="294.39841" 14.1194 - x="222.37003" 14.1195 - sodipodi:role="line" 14.1196 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1197 - id="tspan12386">to pool,</tspan><tspan 14.1198 - y="303.39841" 14.1199 - x="222.37003" 14.1200 - sodipodi:role="line" 14.1201 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1202 - id="tspan12388">switch to</tspan><tspan 14.1203 - y="312.39841" 14.1204 - x="222.37003" 14.1205 - sodipodi:role="line" 14.1206 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1207 - id="tspan12390">VP of new</tspan><tspan 14.1208 - y="321.39841" 14.1209 - x="222.37003" 14.1210 - sodipodi:role="line" 14.1211 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1212 - id="tspan12392">work-unit</tspan></text> 14.1213 - <rect 14.1214 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.1215 - id="rect12361" 14.1216 - width="57.486332" 14.1217 - height="63.639675" 14.1218 - x="193.78287" 14.1219 - y="274.77512" /> 14.1220 - </g> 14.1221 - <g 14.1222 - id="g12404" 14.1223 - transform="translate(17.05331,-404)"> 14.1224 - <text 14.1225 - sodipodi:linespacing="100%" 14.1226 - id="text12406" 14.1227 - y="285.36765" 14.1228 - x="222.25137" 14.1229 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1230 - xml:space="preserve"><tspan 14.1231 - id="tspan12410" 14.1232 - y="285.36765" 14.1233 - x="222.25137" 14.1234 - sodipodi:role="line" 14.1235 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">constraint</tspan><tspan 14.1236 - y="294.36765" 14.1237 - x="222.25137" 14.1238 - sodipodi:role="line" 14.1239 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1240 - id="tspan12416">msg handler</tspan></text> 14.1241 - <rect 14.1242 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.1243 - id="rect12412" 14.1244 - width="57.486332" 14.1245 - height="25.544432" 14.1246 - x="193.78287" 14.1247 - y="274.77512" /> 14.1248 - </g> 14.1249 - <g 14.1250 - transform="translate(97.05331,-344)" 14.1251 - id="g12418"> 14.1252 - <text 14.1253 - xml:space="preserve" 14.1254 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1255 - x="142.25137" 14.1256 - y="285.36765" 14.1257 - id="text12420" 14.1258 - sodipodi:linespacing="100%"><tspan 14.1259 - id="tspan12424" 14.1260 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1261 - sodipodi:role="line" 14.1262 - x="142.25137" 14.1263 - y="285.36765">Push Work</tspan><tspan 14.1264 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1265 - sodipodi:role="line" 14.1266 - x="142.25137" 14.1267 - y="294.36765" 14.1268 - id="tspan12548">onto Q</tspan></text> 14.1269 - <rect 14.1270 - y="274.77512" 14.1271 - x="113.78287" 14.1272 - height="25.544432" 14.1273 - width="57.486332" 14.1274 - id="rect12426" 14.1275 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.1276 - </g> 14.1277 - <path 14.1278 - sodipodi:nodetypes="cc" 14.1279 - inkscape:connector-curvature="0" 14.1280 - id="path12432" 14.1281 - d="m 239.56974,-104.00562 0,34.68367" 14.1282 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.1283 - <g 14.1284 - id="g12434" 14.1285 - transform="translate(-62.94669,-344)"> 14.1286 - <text 14.1287 - sodipodi:linespacing="100%" 14.1288 - id="text12436" 14.1289 - y="285.36765" 14.1290 - x="222.25137" 14.1291 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1292 - xml:space="preserve"><tspan 14.1293 - y="285.36765" 14.1294 - x="222.25137" 14.1295 - sodipodi:role="line" 14.1296 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1297 - id="tspan12438">send constr</tspan><tspan 14.1298 - y="294.36765" 14.1299 - x="222.25137" 14.1300 - sodipodi:role="line" 14.1301 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1302 - id="tspan12776">update msg</tspan></text> 14.1303 - <rect 14.1304 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.1305 - id="rect12440" 14.1306 - width="57.486332" 14.1307 - height="25.544432" 14.1308 - x="193.78287" 14.1309 - y="274.77512" /> 14.1310 - </g> 14.1311 - <text 14.1312 - xml:space="preserve" 14.1313 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1314 - x="273.27625" 14.1315 - y="6.7268219" 14.1316 - id="text12442" 14.1317 - sodipodi:linespacing="100%"><tspan 14.1318 - id="tspan12448" 14.1319 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1320 - sodipodi:role="line" 14.1321 - x="273.27625" 14.1322 - y="6.7268219">(in dataflow & CILK,</tspan><tspan 14.1323 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1324 - sodipodi:role="line" 14.1325 - x="273.27625" 14.1326 - y="15.726822" 14.1327 - id="tspan12454"> msgs from other cores</tspan><tspan 14.1328 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1329 - sodipodi:role="line" 14.1330 - x="273.27625" 14.1331 - y="24.726822" 14.1332 - id="tspan12482"> that ask for or push</tspan><tspan 14.1333 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1334 - sodipodi:role="line" 14.1335 - x="273.27625" 14.1336 - y="33.726822" 14.1337 - id="tspan3527"> work, go to assigner)</tspan></text> 14.1338 - <text 14.1339 - sodipodi:linespacing="100%" 14.1340 - id="text12460" 14.1341 - y="6.7268066" 14.1342 - x="369.27625" 14.1343 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1344 - xml:space="preserve"><tspan 14.1345 - id="tspan12466" 14.1346 - y="6.7268066" 14.1347 - x="369.27625" 14.1348 - sodipodi:role="line" 14.1349 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in dataflow & CILK,</tspan><tspan 14.1350 - y="15.726807" 14.1351 - x="369.27625" 14.1352 - sodipodi:role="line" 14.1353 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1354 - id="tspan12472"> push work to other</tspan><tspan 14.1355 - y="24.726807" 14.1356 - x="369.27625" 14.1357 - sodipodi:role="line" 14.1358 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1359 - id="tspan12488"> cores via msgs -- </tspan><tspan 14.1360 - y="33.726807" 14.1361 - x="369.27625" 14.1362 - sodipodi:role="line" 14.1363 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1364 - id="tspan3973"> remember </tspan><tspan 14.1365 - y="42.726807" 14.1366 - x="369.27625" 14.1367 - sodipodi:role="line" 14.1368 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1369 - id="tspan3977"> constraints that</tspan><tspan 14.1370 - y="51.726807" 14.1371 - x="369.27625" 14.1372 - sodipodi:role="line" 14.1373 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1374 - id="tspan12642"> cross cores)</tspan></text> 14.1375 - <path 14.1376 - sodipodi:nodetypes="cc" 14.1377 - inkscape:connector-curvature="0" 14.1378 - id="path12490" 14.1379 - d="m 328.33352,-203.17339 41.44797,-171.27297" 14.1380 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.1381 - <g 14.1382 - id="g12506" 14.1383 - transform="translate(97.05331,-404)"> 14.1384 - <text 14.1385 - sodipodi:linespacing="100%" 14.1386 - id="text12508" 14.1387 - y="285.36765" 14.1388 - x="222.25137" 14.1389 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1390 - xml:space="preserve"><tspan 14.1391 - y="285.36765" 14.1392 - x="222.25137" 14.1393 - sodipodi:role="line" 14.1394 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1395 - id="tspan12510">Assigner</tspan><tspan 14.1396 - y="294.36765" 14.1397 - x="222.25137" 14.1398 - sodipodi:role="line" 14.1399 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1400 - id="tspan12656">msg handler</tspan></text> 14.1401 - <rect 14.1402 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.1403 - id="rect12512" 14.1404 - width="57.486332" 14.1405 - height="25.544432" 14.1406 - x="193.78287" 14.1407 - y="274.77512" /> 14.1408 - </g> 14.1409 - <path 14.1410 - sodipodi:nodetypes="cc" 14.1411 - inkscape:connector-curvature="0" 14.1412 - id="path12534" 14.1413 - d="m 319.56974,-104.00562 0,34.68367" 14.1414 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.1415 - <path 14.1416 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 14.1417 - d="m 297.91051,-165.12086 -53.68184,35.65757" 14.1418 - id="path12544" 14.1419 - inkscape:connector-curvature="0" 14.1420 - sodipodi:nodetypes="cc" /> 14.1421 - <path 14.1422 - sodipodi:nodetypes="cc" 14.1423 - inkscape:connector-curvature="0" 14.1424 - id="path12550" 14.1425 - d="m 239.95132,-103.76032 -77.23827,34.97636" 14.1426 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.1427 - <g 14.1428 - transform="translate(257.05331,-604)" 14.1429 - id="g12552"> 14.1430 - <text 14.1431 - xml:space="preserve" 14.1432 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1433 - x="222.25137" 14.1434 - y="285.36765" 14.1435 - id="text12554" 14.1436 - sodipodi:linespacing="100%"><tspan 14.1437 - id="tspan12556" 14.1438 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1439 - sodipodi:role="line" 14.1440 - x="222.25137" 14.1441 - y="285.36765">send constr</tspan><tspan 14.1442 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1443 - sodipodi:role="line" 14.1444 - x="222.25137" 14.1445 - y="294.36765" 14.1446 - id="tspan12888">update msgs</tspan></text> 14.1447 - <rect 14.1448 - y="274.77512" 14.1449 - x="193.78287" 14.1450 - height="25.544432" 14.1451 - width="57.486332" 14.1452 - id="rect12558" 14.1453 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.1454 - </g> 14.1455 - <path 14.1456 - sodipodi:nodetypes="cc" 14.1457 - inkscape:connector-curvature="0" 14.1458 - id="path12562" 14.1459 - d="m 303.63081,-165.12086 14.66828,34.98156" 14.1460 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.1461 - <text 14.1462 - sodipodi:linespacing="100%" 14.1463 - id="text12564" 14.1464 - y="-351.95343" 14.1465 - x="371.43005" 14.1466 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1467 - xml:space="preserve"><tspan 14.1468 - id="tspan12568" 14.1469 - y="-351.95343" 14.1470 - x="371.43005" 14.1471 - sodipodi:role="line" 14.1472 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> done</tspan><tspan 14.1473 - y="-342.95343" 14.1474 - x="371.43005" 14.1475 - sodipodi:role="line" 14.1476 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1477 - id="tspan12598"> with</tspan><tspan 14.1478 - y="-333.95343" 14.1479 - x="371.43005" 14.1480 - sodipodi:role="line" 14.1481 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1482 - id="tspan12600">msgs</tspan></text> 14.1483 - <text 14.1484 - xml:space="preserve" 14.1485 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1486 - x="335.43005" 14.1487 - y="-379.95343" 14.1488 - id="text12572" 14.1489 - sodipodi:linespacing="100%"><tspan 14.1490 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1491 - sodipodi:role="line" 14.1492 - x="335.43005" 14.1493 - y="-379.95343" 14.1494 - id="tspan12574">no</tspan></text> 14.1495 - <text 14.1496 - sodipodi:linespacing="100%" 14.1497 - id="text12576" 14.1498 - y="-343.95343" 14.1499 - x="309.43005" 14.1500 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1501 - xml:space="preserve"><tspan 14.1502 - id="tspan12578" 14.1503 - y="-343.95343" 14.1504 - x="309.43005" 14.1505 - sodipodi:role="line" 14.1506 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan 14.1507 - y="-334.95343" 14.1508 - x="309.43005" 14.1509 - sodipodi:role="line" 14.1510 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1511 - id="tspan12580">chk</tspan></text> 14.1512 - <text 14.1513 - xml:space="preserve" 14.1514 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1515 - x="251.43005" 14.1516 - y="-151.95343" 14.1517 - id="text12582" 14.1518 - sodipodi:linespacing="100%"><tspan 14.1519 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1520 - sodipodi:role="line" 14.1521 - x="251.43005" 14.1522 - y="-151.95343" 14.1523 - id="tspan12584"> constraint</tspan><tspan 14.1524 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1525 - sodipodi:role="line" 14.1526 - x="251.43005" 14.1527 - y="-142.95343" 14.1528 - id="tspan12586">msgs</tspan></text> 14.1529 - <text 14.1530 - sodipodi:linespacing="100%" 14.1531 - id="text12592" 14.1532 - y="-151.95343" 14.1533 - x="323.43005" 14.1534 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1535 - xml:space="preserve"><tspan 14.1536 - id="tspan12594" 14.1537 - y="-151.95343" 14.1538 - x="323.43005" 14.1539 - sodipodi:role="line" 14.1540 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> Assigner</tspan><tspan 14.1541 - id="tspan12596" 14.1542 - y="-142.95343" 14.1543 - x="323.43005" 14.1544 - sodipodi:role="line" 14.1545 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">msgs</tspan></text> 14.1546 - <text 14.1547 - sodipodi:linespacing="100%" 14.1548 - id="text12602" 14.1549 - y="-29.273178" 14.1550 - x="129.27625" 14.1551 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1552 - xml:space="preserve"><tspan 14.1553 - id="tspan12606" 14.1554 - y="-29.273178" 14.1555 - x="129.27625" 14.1556 - sodipodi:role="line" 14.1557 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in CILK, completion of</tspan><tspan 14.1558 - y="-20.273178" 14.1559 - x="129.27625" 14.1560 - sodipodi:role="line" 14.1561 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1562 - id="tspan12614"> child on remote core</tspan><tspan 14.1563 - id="tspan12610" 14.1564 - y="-11.273178" 14.1565 - x="129.27625" 14.1566 - sodipodi:role="line" 14.1567 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"> notifies parent's core.</tspan><tspan 14.1568 - y="-2.2731781" 14.1569 - x="129.27625" 14.1570 - sodipodi:role="line" 14.1571 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1572 - id="tspan12624"> In dataflow, remote pro-</tspan><tspan 14.1573 - y="6.7268219" 14.1574 - x="129.27625" 14.1575 - sodipodi:role="line" 14.1576 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1577 - id="tspan12626"> pendent sends data to</tspan><tspan 14.1578 - y="15.726822" 14.1579 - x="129.27625" 14.1580 - sodipodi:role="line" 14.1581 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.1582 - id="tspan12634"> dependents' cores)</tspan></text> 14.1583 - <path 14.1584 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 14.1585 - d="m 401.6308,-363.12086 74.44669,32.98177" 14.1586 - id="path12658" 14.1587 - inkscape:connector-curvature="0" 14.1588 - sodipodi:nodetypes="cc" /> 14.1589 - <g 14.1590 - id="g12764" 14.1591 - transform="translate(437.05331,-484)"> 14.1592 - <text 14.1593 - sodipodi:linespacing="100%" 14.1594 - id="text12766" 14.1595 - y="285.36765" 14.1596 - x="222.25137" 14.1597 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1598 - xml:space="preserve"><tspan 14.1599 - y="285.36765" 14.1600 - x="222.25137" 14.1601 - sodipodi:role="line" 14.1602 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1603 - id="tspan12768">send "need</tspan><tspan 14.1604 - y="294.36765" 14.1605 - x="222.25137" 14.1606 - sodipodi:role="line" 14.1607 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1608 - id="tspan12774">work" msg</tspan></text> 14.1609 - <rect 14.1610 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.1611 - id="rect12770" 14.1612 - width="57.486332" 14.1613 - height="25.544432" 14.1614 - x="193.78287" 14.1615 - y="274.77512" /> 14.1616 - </g> 14.1617 - <text 14.1618 - xml:space="preserve" 14.1619 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1620 - x="299.43005" 14.1621 - y="-93.95343" 14.1622 - id="text12816" 14.1623 - sodipodi:linespacing="100%"><tspan 14.1624 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1625 - sodipodi:role="line" 14.1626 - x="299.43005" 14.1627 - y="-93.95343" 14.1628 - id="tspan12818"> receive</tspan><tspan 14.1629 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1630 - sodipodi:role="line" 14.1631 - x="300.78357" 14.1632 - y="-84.95343" 14.1633 - id="tspan12820">work-push </tspan><tspan 14.1634 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1635 - sodipodi:role="line" 14.1636 - x="299.43005" 14.1637 - y="-75.95343" 14.1638 - id="tspan12822"> msg</tspan></text> 14.1639 - <path 14.1640 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 14.1641 - d="m 321.6308,-103.12086 74.44669,32.98177" 14.1642 - id="path12824" 14.1643 - inkscape:connector-curvature="0" 14.1644 - sodipodi:nodetypes="cc" /> 14.1645 - <text 14.1646 - sodipodi:linespacing="100%" 14.1647 - id="text12826" 14.1648 - y="-93.95343" 14.1649 - x="379.43005" 14.1650 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1651 - xml:space="preserve"><tspan 14.1652 - id="tspan12828" 14.1653 - y="-93.95343" 14.1654 - x="379.43005" 14.1655 - sodipodi:role="line" 14.1656 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> receive need-work</tspan><tspan 14.1657 - id="tspan12832" 14.1658 - y="-84.95343" 14.1659 - x="379.43005" 14.1660 - sodipodi:role="line" 14.1661 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> msg & have work</tspan><tspan 14.1662 - y="-75.95343" 14.1663 - x="379.43005" 14.1664 - sodipodi:role="line" 14.1665 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1666 - id="tspan12836"> to give</tspan></text> 14.1667 - <text 14.1668 - sodipodi:linespacing="100%" 14.1669 - id="text12914" 14.1670 - y="-281.95343" 14.1671 - x="678.38245" 14.1672 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1673 - xml:space="preserve"><tspan 14.1674 - y="-281.95343" 14.1675 - x="678.38245" 14.1676 - sodipodi:role="line" 14.1677 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1678 - id="tspan12946">No work</tspan></text> 14.1679 - <g 14.1680 - id="g3699" 14.1681 - transform="translate(717.05331,-664)"> 14.1682 - <text 14.1683 - sodipodi:linespacing="100%" 14.1684 - id="text3701" 14.1685 - y="285.69943" 14.1686 - x="222.37003" 14.1687 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1688 - xml:space="preserve"><tspan 14.1689 - id="tspan3705" 14.1690 - y="285.69943" 14.1691 - x="222.37003" 14.1692 - sodipodi:role="line" 14.1693 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Jmp to new</tspan><tspan 14.1694 - y="294.69943" 14.1695 - x="222.37003" 14.1696 - sodipodi:role="line" 14.1697 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1698 - id="tspan3713">work-unit</tspan></text> 14.1699 - <rect 14.1700 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.1701 - id="rect3707" 14.1702 - width="57.486332" 14.1703 - height="25.544432" 14.1704 - x="193.78287" 14.1705 - y="274.77512" /> 14.1706 - </g> 14.1707 - <path 14.1708 - style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 14.1709 - d="m 868.0922,-376.20795 41.0608,0" 14.1710 - id="path3709" 14.1711 - inkscape:connector-curvature="0" 14.1712 - sodipodi:nodetypes="cc" /> 14.1713 - <path 14.1714 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 14.1715 - d="m 868.33356,-296.29838 40.86584,-76.648" 14.1716 - id="path3715" 14.1717 - inkscape:connector-curvature="0" 14.1718 - sodipodi:nodetypes="cc" /> 14.1719 - <path 14.1720 - sodipodi:nodetypes="cc" 14.1721 - inkscape:connector-curvature="0" 14.1722 - id="path3769" 14.1723 - d="m 428.86861,-376.20795 200.12395,0" 14.1724 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.1725 - <g 14.1726 - id="g3775" 14.1727 - transform="translate(297.05331,-784)"> 14.1728 - <text 14.1729 - sodipodi:linespacing="100%" 14.1730 - id="text3777" 14.1731 - y="285.36765" 14.1732 - x="222.25137" 14.1733 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1734 - xml:space="preserve"><tspan 14.1735 - id="tspan3781" 14.1736 - y="285.36765" 14.1737 - x="222.25137" 14.1738 - sodipodi:role="line" 14.1739 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Assigner</tspan></text> 14.1740 - <rect 14.1741 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.1742 - id="rect3783" 14.1743 - width="57.486332" 14.1744 - height="25.544432" 14.1745 - x="193.78287" 14.1746 - y="274.77512" /> 14.1747 - </g> 14.1748 - <g 14.1749 - id="g3789" 14.1750 - transform="translate(177.05331,-784)"> 14.1751 - <text 14.1752 - sodipodi:linespacing="100%" 14.1753 - id="text3791" 14.1754 - y="285.36765" 14.1755 - x="222.25137" 14.1756 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1757 - xml:space="preserve"><tspan 14.1758 - id="tspan3795" 14.1759 - y="285.36765" 14.1760 - x="222.25137" 14.1761 - sodipodi:role="line" 14.1762 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">request hdlr</tspan></text> 14.1763 - <rect 14.1764 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.1765 - id="rect3797" 14.1766 - width="57.486332" 14.1767 - height="25.544432" 14.1768 - x="193.78287" 14.1769 - y="274.77512" /> 14.1770 - </g> 14.1771 - <path 14.1772 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 14.1773 - d="m 428.09218,-496.20795 60.12116,0" 14.1774 - id="path3799" 14.1775 - inkscape:connector-curvature="0" 14.1776 - sodipodi:nodetypes="cc" /> 14.1777 - <g 14.1778 - transform="translate(-300,-160)" 14.1779 - id="g3801"> 14.1780 - <text 14.1781 - xml:space="preserve" 14.1782 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1783 - x="579.39252" 14.1784 - y="-339.22998" 14.1785 - id="text3803" 14.1786 - sodipodi:linespacing="100%"><tspan 14.1787 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1788 - sodipodi:role="line" 14.1789 - x="579.39252" 14.1790 - y="-339.22998" 14.1791 - id="tspan3805">time to</tspan><tspan 14.1792 - id="tspan3807" 14.1793 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1794 - sodipodi:role="line" 14.1795 - x="579.39252" 14.1796 - y="-330.22998">chk msgs?</tspan></text> 14.1797 - <rect 14.1798 - ry="0" 14.1799 - transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 14.1800 - y="93.582199" 14.1801 - x="624.01776" 14.1802 - height="36.457531" 14.1803 - width="36.810017" 14.1804 - id="rect3809" 14.1805 - style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.1806 - </g> 14.1807 - <path 14.1808 - style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 14.1809 - d="m 228.09216,-496.20795 21.72127,0" 14.1810 - id="path3811" 14.1811 - inkscape:connector-curvature="0" 14.1812 - sodipodi:nodetypes="cc" /> 14.1813 - <path 14.1814 - sodipodi:nodetypes="cc" 14.1815 - inkscape:connector-curvature="0" 14.1816 - id="path3813" 14.1817 - d="m 307.68401,-496.20795 61.46905,0" 14.1818 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.1819 - <text 14.1820 - xml:space="preserve" 14.1821 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1822 - x="289.43005" 14.1823 - y="-463.95343" 14.1824 - id="text3815" 14.1825 - sodipodi:linespacing="100%"><tspan 14.1826 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1827 - sodipodi:role="line" 14.1828 - x="289.43005" 14.1829 - y="-463.95343" 14.1830 - id="tspan3817">yes,</tspan><tspan 14.1831 - id="tspan3819" 14.1832 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1833 - sodipodi:role="line" 14.1834 - x="289.43005" 14.1835 - y="-454.95343">chk</tspan></text> 14.1836 - <path 14.1837 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 14.1838 - d="m 328.33352,-197.5484 41.44797,-295.744" 14.1839 - id="path3823" 14.1840 - inkscape:connector-curvature="0" 14.1841 - sodipodi:nodetypes="cc" /> 14.1842 - <text 14.1843 - sodipodi:linespacing="100%" 14.1844 - id="text3825" 14.1845 - y="-499.95343" 14.1846 - x="315.43005" 14.1847 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1848 - xml:space="preserve"><tspan 14.1849 - id="tspan3827" 14.1850 - y="-499.95343" 14.1851 - x="315.43005" 14.1852 - sodipodi:role="line" 14.1853 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">no</tspan></text> 14.1854 - <text 14.1855 - xml:space="preserve" 14.1856 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1857 - x="353.43005" 14.1858 - y="-473.95343" 14.1859 - id="text3829" 14.1860 - sodipodi:linespacing="100%"><tspan 14.1861 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1862 - sodipodi:role="line" 14.1863 - x="353.43005" 14.1864 - y="-473.95343" 14.1865 - id="tspan3831"> done</tspan><tspan 14.1866 - id="tspan3833" 14.1867 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1868 - sodipodi:role="line" 14.1869 - x="353.43005" 14.1870 - y="-464.95343"> with</tspan><tspan 14.1871 - id="tspan3835" 14.1872 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.1873 - sodipodi:role="line" 14.1874 - x="353.43005" 14.1875 - y="-455.95343">msgs</tspan></text> 14.1876 - <g 14.1877 - transform="translate(97.05331,-343.31973)" 14.1878 - id="g3837"> 14.1879 - <text 14.1880 - xml:space="preserve" 14.1881 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1882 - x="222.37003" 14.1883 - y="285.39841" 14.1884 - id="text3839" 14.1885 - sodipodi:linespacing="100%"><tspan 14.1886 - id="tspan3841" 14.1887 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1888 - sodipodi:role="line" 14.1889 - x="222.37003" 14.1890 - y="285.39841">push work</tspan><tspan 14.1891 - id="tspan3843" 14.1892 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1893 - sodipodi:role="line" 14.1894 - x="222.37003" 14.1895 - y="294.39841">onto Q, and</tspan><tspan 14.1896 - id="tspan3845" 14.1897 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1898 - sodipodi:role="line" 14.1899 - x="222.37003" 14.1900 - y="303.39841">send "cancel</tspan><tspan 14.1901 - id="tspan3847" 14.1902 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1903 - sodipodi:role="line" 14.1904 - x="222.37003" 14.1905 - y="312.39841">need work"</tspan></text> 14.1906 - <rect 14.1907 - y="274.77512" 14.1908 - x="193.78287" 14.1909 - height="63.639675" 14.1910 - width="57.486332" 14.1911 - id="rect3849" 14.1912 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.1913 - </g> 14.1914 - <g 14.1915 - id="g3851" 14.1916 - transform="translate(177.05331,-744)"> 14.1917 - <text 14.1918 - sodipodi:linespacing="100%" 14.1919 - id="text3853" 14.1920 - y="285.36765" 14.1921 - x="222.25137" 14.1922 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1923 - xml:space="preserve"><tspan 14.1924 - y="285.36765" 14.1925 - x="222.25137" 14.1926 - sodipodi:role="line" 14.1927 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1928 - id="tspan3855">send constr</tspan><tspan 14.1929 - id="tspan3857" 14.1930 - y="294.36765" 14.1931 - x="222.25137" 14.1932 - sodipodi:role="line" 14.1933 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">update msgs</tspan></text> 14.1934 - <rect 14.1935 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.1936 - id="rect3859" 14.1937 - width="57.486332" 14.1938 - height="25.544432" 14.1939 - x="193.78287" 14.1940 - y="274.77512" /> 14.1941 - </g> 14.1942 - <path 14.1943 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 14.1944 - d="m 399.56974,-484.00562 0,12.75587" 14.1945 - id="path3863" 14.1946 - inkscape:connector-curvature="0" 14.1947 - sodipodi:nodetypes="cc" /> 14.1948 - <g 14.1949 - transform="translate(257.05331,-744)" 14.1950 - id="g3865"> 14.1951 - <text 14.1952 - xml:space="preserve" 14.1953 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1954 - x="222.37003" 14.1955 - y="285.39841" 14.1956 - id="text3867" 14.1957 - sodipodi:linespacing="100%"><tspan 14.1958 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1959 - sodipodi:role="line" 14.1960 - x="222.37003" 14.1961 - y="285.39841" 14.1962 - id="tspan3869">Push work</tspan><tspan 14.1963 - id="tspan3871" 14.1964 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1965 - sodipodi:role="line" 14.1966 - x="222.37003" 14.1967 - y="294.39841">onto Q</tspan></text> 14.1968 - <rect 14.1969 - y="274.77512" 14.1970 - x="193.78287" 14.1971 - height="25.544432" 14.1972 - width="57.486332" 14.1973 - id="rect3873" 14.1974 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.1975 - </g> 14.1976 - <g 14.1977 - transform="translate(317.05331,-744)" 14.1978 - id="g3875"> 14.1979 - <text 14.1980 - xml:space="preserve" 14.1981 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.1982 - x="222.25137" 14.1983 - y="285.36765" 14.1984 - id="text3877" 14.1985 - sodipodi:linespacing="100%"><tspan 14.1986 - id="tspan3879" 14.1987 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1988 - sodipodi:role="line" 14.1989 - x="222.25137" 14.1990 - y="285.36765">send Assigner</tspan><tspan 14.1991 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.1992 - sodipodi:role="line" 14.1993 - x="222.25137" 14.1994 - y="294.36765" 14.1995 - id="tspan3881">messages</tspan></text> 14.1996 - <rect 14.1997 - y="274.77512" 14.1998 - x="193.78287" 14.1999 - height="25.544432" 14.2000 - width="57.486332" 14.2001 - id="rect3883" 14.2002 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.2003 - </g> 14.2004 - <path 14.2005 - sodipodi:nodetypes="cc" 14.2006 - inkscape:connector-curvature="0" 14.2007 - id="path3887" 14.2008 - d="m 519.99814,-483.12085 17.68767,13.95011" 14.2009 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.2010 - <path 14.2011 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 14.2012 - d="m 516.1523,-483.12085 -35.11392,13.95011" 14.2013 - id="path3889" 14.2014 - inkscape:connector-curvature="0" 14.2015 - sodipodi:nodetypes="cc" /> 14.2016 - <path 14.2017 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 14.2018 - d="m 548.6784,-495.12084 80.39811,116.64706" 14.2019 - id="path3891" 14.2020 - inkscape:connector-curvature="0" 14.2021 - sodipodi:nodetypes="cc" /> 14.2022 - <path 14.2023 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 14.2024 - d="m 737.20425,-398.67186 72.41226,-56.50237" 14.2025 - id="path3893" 14.2026 - inkscape:connector-curvature="0" 14.2027 - sodipodi:nodetypes="cc" /> 14.2028 - <g 14.2029 - id="g3895" 14.2030 - transform="translate(617.05331,-763.31973)"> 14.2031 - <text 14.2032 - sodipodi:linespacing="100%" 14.2033 - id="text3897" 14.2034 - y="285.39841" 14.2035 - x="222.37003" 14.2036 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2037 - xml:space="preserve"><tspan 14.2038 - y="285.39841" 14.2039 - x="222.37003" 14.2040 - sodipodi:role="line" 14.2041 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2042 - id="tspan3933">get VP from</tspan><tspan 14.2043 - y="294.39841" 14.2044 - x="222.37003" 14.2045 - sodipodi:role="line" 14.2046 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2047 - id="tspan3935">pool (make</tspan><tspan 14.2048 - y="303.39841" 14.2049 - x="222.37003" 14.2050 - sodipodi:role="line" 14.2051 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2052 - id="tspan3943">new if none).</tspan><tspan 14.2053 - id="tspan3901" 14.2054 - y="312.39841" 14.2055 - x="222.37003" 14.2056 - sodipodi:role="line" 14.2057 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Load it with</tspan><tspan 14.2058 - id="tspan3903" 14.2059 - y="321.39841" 14.2060 - x="222.37003" 14.2061 - sodipodi:role="line" 14.2062 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">context from</tspan><tspan 14.2063 - id="tspan3905" 14.2064 - y="330.39841" 14.2065 - x="222.37003" 14.2066 - sodipodi:role="line" 14.2067 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">new work-unit</tspan></text> 14.2068 - <rect 14.2069 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.2070 - id="rect3907" 14.2071 - width="57.486332" 14.2072 - height="63.639675" 14.2073 - x="193.78287" 14.2074 - y="274.77512" /> 14.2075 - </g> 14.2076 - <text 14.2077 - xml:space="preserve" 14.2078 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2079 - x="755.43005" 14.2080 - y="-449.95343" 14.2081 - id="text3909" 14.2082 - sodipodi:linespacing="100%"><tspan 14.2083 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2084 - sodipodi:role="line" 14.2085 - x="755.43005" 14.2086 - y="-449.95343" 14.2087 - id="tspan3913">new work-unit has own</tspan><tspan 14.2088 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2089 - sodipodi:role="line" 14.2090 - x="755.43005" 14.2091 - y="-440.95343" 14.2092 - id="tspan3927">local context, but</tspan><tspan 14.2093 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2094 - sodipodi:role="line" 14.2095 - x="756.78357" 14.2096 - y="-431.95343" 14.2097 - id="tspan3931">prev VP suspended </tspan></text> 14.2098 - <path 14.2099 - sodipodi:nodetypes="cc" 14.2100 - inkscape:connector-curvature="0" 14.2101 - id="path3953" 14.2102 - d="m 868.33356,-456.25901 40.86584,76.648" 14.2103 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.2104 - <text 14.2105 - xml:space="preserve" 14.2106 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2107 - x="357.27625" 14.2108 - y="-534.5929" 14.2109 - id="text3955" 14.2110 - sodipodi:linespacing="100%"><tspan 14.2111 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2112 - sodipodi:role="line" 14.2113 - x="357.27625" 14.2114 - y="-534.5929" 14.2115 - id="tspan3957">(in pthreads, checks</tspan><tspan 14.2116 - id="tspan3959" 14.2117 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2118 - sodipodi:role="line" 14.2119 - x="357.27625" 14.2120 - y="-525.5929"> mutex structures,</tspan><tspan 14.2121 - id="tspan3961" 14.2122 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2123 - sodipodi:role="line" 14.2124 - x="357.27625" 14.2125 - y="-516.5929"> cond var structs, etc)</tspan></text> 14.2126 - <text 14.2127 - xml:space="preserve" 14.2128 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2129 - x="459.43005" 14.2130 - y="-507.95343" 14.2131 - id="text3963" 14.2132 - sodipodi:linespacing="100%"><tspan 14.2133 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2134 - sodipodi:role="line" 14.2135 - x="459.43005" 14.2136 - y="-507.95343" 14.2137 - id="tspan3967">work-unit</tspan><tspan 14.2138 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2139 - sodipodi:role="line" 14.2140 - x="459.43005" 14.2141 - y="-498.95343" 14.2142 - id="tspan3971">state chgs</tspan></text> 14.2143 - <text 14.2144 - sodipodi:linespacing="100%" 14.2145 - id="text3981" 14.2146 - y="-195.95343" 14.2147 - x="415.43005" 14.2148 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2149 - xml:space="preserve" 14.2150 - inkscape:transform-center-x="-8.125"><tspan 14.2151 - y="-195.95343" 14.2152 - x="415.43005" 14.2153 - sodipodi:role="line" 14.2154 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2155 - id="tspan3987">done with msgs</tspan></text> 14.2156 - <path 14.2157 - sodipodi:nodetypes="cc" 14.2158 - inkscape:connector-curvature="0" 14.2159 - id="path3386" 14.2160 - d="m 30.09217,-616.20795 134.75175,0" 14.2161 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" /> 14.2162 - <text 14.2163 - xml:space="preserve" 14.2164 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2165 - x="95.430077" 14.2166 - y="-617.95343" 14.2167 - id="text3388" 14.2168 - sodipodi:linespacing="100%"><tspan 14.2169 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2170 - sodipodi:role="line" 14.2171 - x="95.430077" 14.2172 - y="-617.95343" 14.2173 - id="tspan3390">Suspend at end of work-unit</tspan></text> 14.2174 - <text 14.2175 - xml:space="preserve" 14.2176 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2177 - x="29.276283" 14.2178 - y="-593.95343" 14.2179 - id="text3392" 14.2180 - sodipodi:linespacing="100%"><tspan 14.2181 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2182 - sodipodi:role="line" 14.2183 - x="29.276283" 14.2184 - y="-593.95343" 14.2185 - id="tspan3394">pthread is example of this case,</tspan><tspan 14.2186 - id="tspan3396" 14.2187 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2188 - sodipodi:role="line" 14.2189 - x="29.276283" 14.2190 - y="-584.95343">as is Cilk when suspends on sync</tspan></text> 14.2191 - <g 14.2192 - transform="translate(297.05331,-904)" 14.2193 - id="g3398"> 14.2194 - <text 14.2195 - xml:space="preserve" 14.2196 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2197 - x="222.25137" 14.2198 - y="285.36765" 14.2199 - id="text3400" 14.2200 - sodipodi:linespacing="100%"><tspan 14.2201 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2202 - sodipodi:role="line" 14.2203 - x="222.25137" 14.2204 - y="285.36765" 14.2205 - id="tspan3402">Assigner</tspan></text> 14.2206 - <rect 14.2207 - y="274.77512" 14.2208 - x="193.78287" 14.2209 - height="25.544432" 14.2210 - width="57.486332" 14.2211 - id="rect3404" 14.2212 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.2213 - </g> 14.2214 - <g 14.2215 - transform="translate(177.05331,-904)" 14.2216 - id="g3406"> 14.2217 - <text 14.2218 - xml:space="preserve" 14.2219 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2220 - x="222.25137" 14.2221 - y="285.36765" 14.2222 - id="text3408" 14.2223 - sodipodi:linespacing="100%"><tspan 14.2224 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2225 - sodipodi:role="line" 14.2226 - x="222.25137" 14.2227 - y="285.36765" 14.2228 - id="tspan3412">request hdlr</tspan></text> 14.2229 - <rect 14.2230 - y="274.77512" 14.2231 - x="193.78287" 14.2232 - height="25.544432" 14.2233 - width="57.486332" 14.2234 - id="rect3414" 14.2235 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.2236 - </g> 14.2237 - <path 14.2238 - sodipodi:nodetypes="cc" 14.2239 - inkscape:connector-curvature="0" 14.2240 - id="path3416" 14.2241 - d="m 428.09218,-616.20795 60.12116,0" 14.2242 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.2243 - <g 14.2244 - id="g3418" 14.2245 - transform="translate(-300,-280)"> 14.2246 - <text 14.2247 - sodipodi:linespacing="100%" 14.2248 - id="text3420" 14.2249 - y="-339.22998" 14.2250 - x="579.39252" 14.2251 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2252 - xml:space="preserve"><tspan 14.2253 - id="tspan3422" 14.2254 - y="-339.22998" 14.2255 - x="579.39252" 14.2256 - sodipodi:role="line" 14.2257 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">time to</tspan><tspan 14.2258 - y="-330.22998" 14.2259 - x="579.39252" 14.2260 - sodipodi:role="line" 14.2261 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2262 - id="tspan3424">chk msgs?</tspan></text> 14.2263 - <rect 14.2264 - style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.2265 - id="rect3426" 14.2266 - width="36.810017" 14.2267 - height="36.457531" 14.2268 - x="624.01776" 14.2269 - y="93.582199" 14.2270 - transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 14.2271 - ry="0" /> 14.2272 - </g> 14.2273 - <path 14.2274 - sodipodi:nodetypes="cc" 14.2275 - inkscape:connector-curvature="0" 14.2276 - id="path3428" 14.2277 - d="m 228.09216,-616.20795 21.72127,0" 14.2278 - style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.2279 - <path 14.2280 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 14.2281 - d="m 307.68401,-616.20795 61.46905,0" 14.2282 - id="path3430" 14.2283 - inkscape:connector-curvature="0" 14.2284 - sodipodi:nodetypes="cc" /> 14.2285 - <text 14.2286 - sodipodi:linespacing="100%" 14.2287 - id="text3432" 14.2288 - y="-583.95343" 14.2289 - x="289.43005" 14.2290 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2291 - xml:space="preserve"><tspan 14.2292 - id="tspan3434" 14.2293 - y="-583.95343" 14.2294 - x="289.43005" 14.2295 - sodipodi:role="line" 14.2296 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan 14.2297 - y="-574.95343" 14.2298 - x="289.43005" 14.2299 - sodipodi:role="line" 14.2300 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2301 - id="tspan3436">chk</tspan></text> 14.2302 - <text 14.2303 - xml:space="preserve" 14.2304 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2305 - x="315.43005" 14.2306 - y="-619.95343" 14.2307 - id="text3438" 14.2308 - sodipodi:linespacing="100%"><tspan 14.2309 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2310 - sodipodi:role="line" 14.2311 - x="315.43005" 14.2312 - y="-619.95343" 14.2313 - id="tspan3440">no</tspan></text> 14.2314 - <text 14.2315 - sodipodi:linespacing="100%" 14.2316 - id="text3442" 14.2317 - y="-593.95343" 14.2318 - x="353.43005" 14.2319 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2320 - xml:space="preserve"><tspan 14.2321 - id="tspan3444" 14.2322 - y="-593.95343" 14.2323 - x="353.43005" 14.2324 - sodipodi:role="line" 14.2325 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> done</tspan><tspan 14.2326 - y="-584.95343" 14.2327 - x="353.43005" 14.2328 - sodipodi:role="line" 14.2329 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2330 - id="tspan3446"> with</tspan><tspan 14.2331 - y="-575.95343" 14.2332 - x="353.43005" 14.2333 - sodipodi:role="line" 14.2334 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2335 - id="tspan3448">msgs</tspan></text> 14.2336 - <g 14.2337 - transform="translate(177.05331,-864)" 14.2338 - id="g3450"> 14.2339 - <text 14.2340 - xml:space="preserve" 14.2341 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2342 - x="222.25137" 14.2343 - y="285.36765" 14.2344 - id="text3452" 14.2345 - sodipodi:linespacing="100%"><tspan 14.2346 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2347 - sodipodi:role="line" 14.2348 - x="222.25137" 14.2349 - y="285.36765" 14.2350 - id="tspan3456">get semEnv</tspan><tspan 14.2351 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2352 - sodipodi:role="line" 14.2353 - x="222.25137" 14.2354 - y="294.36765" 14.2355 - id="tspan3558">lock & update</tspan><tspan 14.2356 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2357 - sodipodi:role="line" 14.2358 - x="222.25137" 14.2359 - y="303.36765" 14.2360 - id="tspan3560">state of VP</tspan></text> 14.2361 - <rect 14.2362 - y="274.77512" 14.2363 - x="193.78287" 14.2364 - height="33.710323" 14.2365 - width="57.486332" 14.2366 - id="rect3458" 14.2367 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.2368 - </g> 14.2369 - <path 14.2370 - sodipodi:nodetypes="cc" 14.2371 - inkscape:connector-curvature="0" 14.2372 - id="path3460" 14.2373 - d="m 399.56974,-604.00562 0,12.75587" 14.2374 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.2375 - <g 14.2376 - id="g3472" 14.2377 - transform="translate(297.05331,-864)"> 14.2378 - <text 14.2379 - sodipodi:linespacing="100%" 14.2380 - id="text3474" 14.2381 - y="285.36765" 14.2382 - x="222.25137" 14.2383 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2384 - xml:space="preserve"><tspan 14.2385 - y="285.36765" 14.2386 - x="222.25137" 14.2387 - sodipodi:role="line" 14.2388 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2389 - id="tspan3476">get semEnv</tspan><tspan 14.2390 - id="tspan3478" 14.2391 - y="294.36765" 14.2392 - x="222.25137" 14.2393 - sodipodi:role="line" 14.2394 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">lock & pick a</tspan><tspan 14.2395 - y="303.36765" 14.2396 - x="222.25137" 14.2397 - sodipodi:role="line" 14.2398 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2399 - id="tspan3566">ready VP</tspan></text> 14.2400 - <rect 14.2401 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.2402 - id="rect3480" 14.2403 - width="57.486332" 14.2404 - height="33.710323" 14.2405 - x="193.78287" 14.2406 - y="274.77512" /> 14.2407 - </g> 14.2408 - <text 14.2409 - sodipodi:linespacing="100%" 14.2410 - id="text3486" 14.2411 - y="-654.5929" 14.2412 - x="357.27625" 14.2413 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2414 - xml:space="preserve"><tspan 14.2415 - id="tspan3488" 14.2416 - y="-654.5929" 14.2417 - x="357.27625" 14.2418 - sodipodi:role="line" 14.2419 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in pthreads, checks</tspan><tspan 14.2420 - y="-645.5929" 14.2421 - x="357.27625" 14.2422 - sodipodi:role="line" 14.2423 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2424 - id="tspan3490"> mutex structures,</tspan><tspan 14.2425 - y="-636.5929" 14.2426 - x="357.27625" 14.2427 - sodipodi:role="line" 14.2428 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2429 - id="tspan3492"> cond var structs, etc)</tspan></text> 14.2430 - <text 14.2431 - sodipodi:linespacing="100%" 14.2432 - id="text3494" 14.2433 - y="-627.95343" 14.2434 - x="459.43005" 14.2435 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2436 - xml:space="preserve"><tspan 14.2437 - id="tspan3496" 14.2438 - y="-627.95343" 14.2439 - x="459.43005" 14.2440 - sodipodi:role="line" 14.2441 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">work-unit</tspan><tspan 14.2442 - id="tspan3498" 14.2443 - y="-618.95343" 14.2444 - x="459.43005" 14.2445 - sodipodi:role="line" 14.2446 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">state chgs</tspan></text> 14.2447 - <path 14.2448 - sodipodi:nodetypes="cc" 14.2449 - inkscape:connector-curvature="0" 14.2450 - id="path3500" 14.2451 - d="m 548.67846,-615.848 261.45961,-0.0912" 14.2452 - style="fill:none;stroke:#000000;stroke-width:1.00000036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.2453 - <g 14.2454 - transform="translate(717.05331,-904)" 14.2455 - id="g3518"> 14.2456 - <text 14.2457 - xml:space="preserve" 14.2458 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2459 - x="222.37003" 14.2460 - y="285.69943" 14.2461 - id="text3520" 14.2462 - sodipodi:linespacing="100%"><tspan 14.2463 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2464 - sodipodi:role="line" 14.2465 - x="222.37003" 14.2466 - y="285.69943" 14.2467 - id="tspan3522">Jmp to new</tspan><tspan 14.2468 - id="tspan3524" 14.2469 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2470 - sodipodi:role="line" 14.2471 - x="222.37003" 14.2472 - y="294.69943">work-unit</tspan></text> 14.2473 - <rect 14.2474 - y="274.77512" 14.2475 - x="193.78287" 14.2476 - height="25.544432" 14.2477 - width="57.486332" 14.2478 - id="rect3526" 14.2479 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.2480 - </g> 14.2481 - <path 14.2482 - sodipodi:nodetypes="cc" 14.2483 - inkscape:connector-curvature="0" 14.2484 - id="path3528" 14.2485 - d="m 868.0922,-616.20795 41.0608,0" 14.2486 - style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.2487 - <path 14.2488 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 14.2489 - d="m 519.56974,-604.00562 0,12.75587" 14.2490 - id="path3568" 14.2491 - inkscape:connector-curvature="0" 14.2492 - sodipodi:nodetypes="cc" /> 14.2493 - <g 14.2494 - id="g3572" 14.2495 - transform="translate(617.05331,-904)"> 14.2496 - <text 14.2497 - sodipodi:linespacing="100%" 14.2498 - id="text3574" 14.2499 - y="285.69943" 14.2500 - x="222.37003" 14.2501 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2502 - xml:space="preserve"><tspan 14.2503 - y="285.69943" 14.2504 - x="222.37003" 14.2505 - sodipodi:role="line" 14.2506 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2507 - id="tspan3578">switch to</tspan><tspan 14.2508 - y="294.69943" 14.2509 - x="222.37003" 14.2510 - sodipodi:role="line" 14.2511 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2512 - id="tspan3584">ready VP</tspan></text> 14.2513 - <rect 14.2514 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.2515 - id="rect3580" 14.2516 - width="57.486332" 14.2517 - height="25.544432" 14.2518 - x="193.78287" 14.2519 - y="274.77512" /> 14.2520 - </g> 14.2521 - <path 14.2522 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 14.2523 - d="m 279.12967,-592.6255 -38.74926,53.74501 -0.37105,270.05417 35.3037,38.5653" 14.2524 - id="path3588" 14.2525 - inkscape:connector-curvature="0" 14.2526 - sodipodi:nodetypes="cccc" /> 14.2527 - <path 14.2528 - sodipodi:nodetypes="cc" 14.2529 - inkscape:connector-curvature="0" 14.2530 - id="path3590" 14.2531 - d="m 328.33352,-197.5484 41.44797,-413.82488" 14.2532 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.2533 - <g 14.2534 - id="g4716" 14.2535 - transform="translate(-22.94669,-904)"> 14.2536 - <text 14.2537 - sodipodi:linespacing="100%" 14.2538 - id="text4718" 14.2539 - y="285.39841" 14.2540 - x="222.37003" 14.2541 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2542 - xml:space="preserve"><tspan 14.2543 - id="tspan4720" 14.2544 - y="285.39841" 14.2545 - x="222.37003" 14.2546 - sodipodi:role="line" 14.2547 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">save VP</tspan><tspan 14.2548 - id="tspan4722" 14.2549 - y="294.39841" 14.2550 - x="222.37003" 14.2551 - sodipodi:role="line" 14.2552 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">context</tspan></text> 14.2553 - <rect 14.2554 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.2555 - id="rect4724" 14.2556 - width="57.486332" 14.2557 - height="25.544432" 14.2558 - x="193.78287" 14.2559 - y="274.77512" /> 14.2560 - </g> 14.2561 - <path 14.2562 - sodipodi:nodetypes="cc" 14.2563 - inkscape:connector-curvature="0" 14.2564 - id="path4726" 14.2565 - d="m 549.69914,-605.3604 79.38092,221.59022" 14.2566 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.2567 - <text 14.2568 - xml:space="preserve" 14.2569 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2570 - x="573.43005" 14.2571 - y="-583.95343" 14.2572 - id="text4728" 14.2573 - sodipodi:linespacing="100%"><tspan 14.2574 - id="tspan4732" 14.2575 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2576 - sodipodi:role="line" 14.2577 - x="573.43005" 14.2578 - y="-583.95343">No VPs</tspan><tspan 14.2579 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2580 - sodipodi:role="line" 14.2581 - x="573.43005" 14.2582 - y="-574.95343" 14.2583 - id="tspan4736">ready</tspan></text> 14.2584 - <text 14.2585 - inkscape:transform-center-x="-8.125" 14.2586 - xml:space="preserve" 14.2587 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2588 - x="451.43005" 14.2589 - y="-253.95343" 14.2590 - id="text4791" 14.2591 - sodipodi:linespacing="100%"><tspan 14.2592 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2593 - sodipodi:role="line" 14.2594 - x="451.43005" 14.2595 - y="-253.95343" 14.2596 - id="tspan4845">increase backoff each</tspan><tspan 14.2597 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2598 - sodipodi:role="line" 14.2599 - x="451.43005" 14.2600 - y="-244.95343" 14.2601 - id="tspan8389">repetition & update</tspan><tspan 14.2602 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2603 - sodipodi:role="line" 14.2604 - x="451.43005" 14.2605 - y="-235.95343" 14.2606 - id="tspan8385">backoff state</tspan><tspan 14.2607 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2608 - sodipodi:role="line" 14.2609 - x="451.43005" 14.2610 - y="-226.95343" 14.2611 - id="tspan8462">Try to make core enter</tspan><tspan 14.2612 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2613 - sodipodi:role="line" 14.2614 - x="451.43005" 14.2615 - y="-217.95343" 14.2616 - id="tspan8476">power-down idle state</tspan><tspan 14.2617 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2618 - sodipodi:role="line" 14.2619 - x="451.43005" 14.2620 - y="-208.95343" 14.2621 - id="tspan8464">while waiting</tspan></text> 14.2622 - <g 14.2623 - transform="translate(257.05331,-564)" 14.2624 - id="g4825"> 14.2625 - <text 14.2626 - xml:space="preserve" 14.2627 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2628 - x="222.37003" 14.2629 - y="285.39841" 14.2630 - id="text4827" 14.2631 - sodipodi:linespacing="100%"><tspan 14.2632 - id="tspan4831" 14.2633 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2634 - sodipodi:role="line" 14.2635 - x="222.37003" 14.2636 - y="285.39841">do Backoff</tspan><tspan 14.2637 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2638 - sodipodi:role="line" 14.2639 - x="222.37003" 14.2640 - y="294.39841" 14.2641 - id="tspan4837">wait</tspan></text> 14.2642 - <rect 14.2643 - y="274.77512" 14.2644 - x="193.78287" 14.2645 - height="25.544432" 14.2646 - width="57.486332" 14.2647 - id="rect4833" 14.2648 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.2649 - </g> 14.2650 - <path 14.2651 - sodipodi:nodetypes="cc" 14.2652 - inkscape:connector-curvature="0" 14.2653 - id="path4839" 14.2654 - d="m 449.58066,-276.19778 -135.75889,46.57393" 14.2655 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.2656 - <path 14.2657 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 14.2658 - d="m 328.29269,-192.89706 c 201.947,-1.19048 188.59077,6.60715 222.99693,-14.36012 65.59054,-39.97116 58.47949,-168.79464 107.66658,-129.80654" 14.2659 - id="path7449" 14.2660 - inkscape:connector-curvature="0" 14.2661 - sodipodi:nodetypes="csc" /> 14.2662 - <path 14.2663 - style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 14.2664 - d="m 659.56974,-233.52943 0,24.20748" 14.2665 - id="path8339" 14.2666 - inkscape:connector-curvature="0" 14.2667 - sodipodi:nodetypes="cc" /> 14.2668 - <g 14.2669 - transform="translate(80,80)" 14.2670 - id="g8347"> 14.2671 - <text 14.2672 - xml:space="preserve" 14.2673 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2674 - x="579.39252" 14.2675 - y="-335.22998" 14.2676 - id="text8349" 14.2677 - sodipodi:linespacing="100%"><tspan 14.2678 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2679 - sodipodi:role="line" 14.2680 - x="579.39252" 14.2681 - y="-335.22998" 14.2682 - id="tspan8359">send "need</tspan><tspan 14.2683 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2684 - sodipodi:role="line" 14.2685 - x="579.39252" 14.2686 - y="-326.22998" 14.2687 - id="tspan8412">work"?</tspan></text> 14.2688 - <rect 14.2689 - ry="0" 14.2690 - transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 14.2691 - y="93.582199" 14.2692 - x="624.01776" 14.2693 - height="36.457531" 14.2694 - width="36.810017" 14.2695 - id="rect8355" 14.2696 - style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.2697 - </g> 14.2698 - <text 14.2699 - xml:space="preserve" 14.2700 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2701 - x="681.43005" 14.2702 - y="-223.95343" 14.2703 - id="text8363" 14.2704 - sodipodi:linespacing="100%"><tspan 14.2705 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2706 - sodipodi:role="line" 14.2707 - x="681.43005" 14.2708 - y="-223.95343" 14.2709 - id="tspan8367">yes, send</tspan></text> 14.2710 - <path 14.2711 - sodipodi:nodetypes="cc" 14.2712 - inkscape:connector-curvature="0" 14.2713 - id="path8371" 14.2714 - d="M 630.69705,-196.1891 509.08787,-272.94486" 14.2715 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.2716 - <g 14.2717 - id="g8391" 14.2718 - transform="translate(80,20)"> 14.2719 - <text 14.2720 - sodipodi:linespacing="100%" 14.2721 - id="text8393" 14.2722 - y="-339.22998" 14.2723 - x="579.39252" 14.2724 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2725 - xml:space="preserve"><tspan 14.2726 - y="-339.22998" 14.2727 - x="579.39252" 14.2728 - sodipodi:role="line" 14.2729 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2730 - id="tspan8395">got</tspan><tspan 14.2731 - id="tspan8397" 14.2732 - y="-330.22998" 14.2733 - x="579.39252" 14.2734 - sodipodi:role="line" 14.2735 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">work?</tspan></text> 14.2736 - <rect 14.2737 - style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.2738 - id="rect8399" 14.2739 - width="36.810017" 14.2740 - height="36.457531" 14.2741 - x="624.01776" 14.2742 - y="93.582199" 14.2743 - transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)" 14.2744 - ry="0" /> 14.2745 - </g> 14.2746 - <path 14.2747 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" 14.2748 - d="m 659.56974,-292.00562 0,13.28746" 14.2749 - id="path8401" 14.2750 - inkscape:connector-curvature="0" 14.2751 - sodipodi:nodetypes="cc" /> 14.2752 - <text 14.2753 - xml:space="preserve" 14.2754 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2755 - x="625.43005" 14.2756 - y="-247.95343" 14.2757 - id="text8403" 14.2758 - sodipodi:linespacing="100%"><tspan 14.2759 - id="tspan8405" 14.2760 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2761 - sodipodi:role="line" 14.2762 - x="625.43005" 14.2763 - y="-247.95343">Don't</tspan><tspan 14.2764 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2765 - sodipodi:role="line" 14.2766 - x="625.43005" 14.2767 - y="-238.95343" 14.2768 - id="tspan8460">send</tspan></text> 14.2769 - <path 14.2770 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 14.2771 - d="M 632.60182,-256.1891 509.09908,-276.55267" 14.2772 - id="path8408" 14.2773 - inkscape:connector-curvature="0" 14.2774 - sodipodi:nodetypes="cc" /> 14.2775 - <text 14.2776 - sodipodi:linespacing="100%" 14.2777 - id="text8420" 14.2778 - y="-317.95343" 14.2779 - x="697.43005" 14.2780 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2781 - xml:space="preserve"><tspan 14.2782 - id="tspan8422" 14.2783 - y="-317.95343" 14.2784 - x="697.43005" 14.2785 - sodipodi:role="line" 14.2786 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan 14.2787 - y="-308.95343" 14.2788 - x="697.43005" 14.2789 - sodipodi:role="line" 14.2790 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2791 - id="tspan8424">got</tspan><tspan 14.2792 - y="-299.95343" 14.2793 - x="697.43005" 14.2794 - sodipodi:role="line" 14.2795 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2796 - id="tspan8426">work</tspan></text> 14.2797 - <text 14.2798 - sodipodi:linespacing="100%" 14.2799 - id="text8428" 14.2800 - y="-560.5929" 14.2801 - x="737.27625" 14.2802 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2803 - xml:space="preserve"><tspan 14.2804 - y="-560.5929" 14.2805 - x="737.27625" 14.2806 - sodipodi:role="line" 14.2807 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2808 - id="tspan8434">The difference between top two paths</tspan><tspan 14.2809 - y="-551.5929" 14.2810 - x="737.27625" 14.2811 - sodipodi:role="line" 14.2812 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2813 - id="tspan8440">is the way the request hdlr+assigner has</tspan><tspan 14.2814 - y="-542.5929" 14.2815 - x="737.27625" 14.2816 - sodipodi:role="line" 14.2817 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2818 - id="tspan8442">been implemented -- use shared state on</tspan><tspan 14.2819 - y="-533.5929" 14.2820 - x="737.27625" 14.2821 - sodipodi:role="line" 14.2822 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2823 - id="tspan8450">top path, but only local on the second.</tspan><tspan 14.2824 - y="-524.5929" 14.2825 - x="737.27625" 14.2826 - sodipodi:role="line" 14.2827 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2828 - id="tspan8454">NOTE: the request hdlr and assigner are</tspan><tspan 14.2829 - y="-515.5929" 14.2830 - x="737.27625" 14.2831 - sodipodi:role="line" 14.2832 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2833 - id="tspan8456">combined into a single straight-line piece</tspan><tspan 14.2834 - y="-506.5929" 14.2835 - x="737.27625" 14.2836 - sodipodi:role="line" 14.2837 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2838 - id="tspan8458">of code.</tspan></text> 14.2839 - <path 14.2840 - sodipodi:nodetypes="cccc" 14.2841 - inkscape:connector-curvature="0" 14.2842 - id="path8466" 14.2843 - d="m 279.12967,-474.53026 -22.71235,36.22941 -0.21748,176.32874 29.26421,32.66347" 14.2844 - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.2845 - <path 14.2846 - sodipodi:nodetypes="cc" 14.2847 - inkscape:connector-curvature="0" 14.2848 - id="path8468" 14.2849 - d="M 548.67838,-498.64159 808.48533,-608.65596" 14.2850 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" /> 14.2851 - <text 14.2852 - sodipodi:linespacing="100%" 14.2853 - id="text8470" 14.2854 - y="-483.95343" 14.2855 - x="571.43005" 14.2856 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2857 - xml:space="preserve"><tspan 14.2858 - y="-483.95343" 14.2859 - x="571.43005" 14.2860 - sodipodi:role="line" 14.2861 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.2862 - id="tspan8472">No VPs</tspan><tspan 14.2863 - id="tspan8474" 14.2864 - y="-474.95343" 14.2865 - x="571.43005" 14.2866 - sodipodi:role="line" 14.2867 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"> ready</tspan></text> 14.2868 - <text 14.2869 - sodipodi:linespacing="100%" 14.2870 - id="text8478" 14.2871 - y="86.04657" 14.2872 - x="531.43005" 14.2873 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2874 - xml:space="preserve" 14.2875 - inkscape:transform-center-x="-8.125"><tspan 14.2876 - y="86.04657" 14.2877 - x="531.43005" 14.2878 - sodipodi:role="line" 14.2879 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.2880 - id="tspan8538" /></text> 14.2881 - <flowRoot 14.2882 - xml:space="preserve" 14.2883 - id="flowRoot8540" 14.2884 - style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"><flowRegion 14.2885 - id="flowRegion8542"><rect 14.2886 - id="rect8544" 14.2887 - width="527.61902" 14.2888 - height="266.66666" 14.2889 - x="457.14285" 14.2890 - y="491.66666" 14.2891 - style="font-size:8px" /></flowRegion><flowPara 14.2892 - id="flowPara8546" /></flowRoot> <flowRoot 14.2893 - xml:space="preserve" 14.2894 - id="flowRoot8548" 14.2895 - style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" 14.2896 - transform="translate(-336.46922,-441.70658)"><flowRegion 14.2897 - id="flowRegion8550"><rect 14.2898 - id="rect8552" 14.2899 - width="539.04761" 14.2900 - height="272.38095" 14.2901 - x="447.61905" 14.2902 - y="487.85715" /></flowRegion><flowPara 14.2903 - style="font-size:8px" 14.2904 - id="flowPara8765">Local semantic Env holds the Q of ready work-units </flowPara><flowPara 14.2905 - style="font-size:8px" 14.2906 - id="flowPara8805">-] Msgs update the local semantic state, and put work-units into this Q</flowPara><flowPara 14.2907 - style="font-size:8px" 14.2908 - id="flowPara8767">-] Shared sem state is traditional VMS, except req hdlr and assigner are same Fn</flowPara><flowPara 14.2909 - style="font-size:8px" 14.2910 - id="flowPara8769">-] Shared sem has its own structs to decide which VP is ready, and switches to it at end of Assigner</flowPara><flowPara 14.2911 - style="font-size:8px" 14.2912 - id="flowPara8771">-] Which core a VP runs on is decided between req hdlr and assigner, based on shared structs that hold the VPs</flowPara><flowPara 14.2913 - style="font-size:8px" 14.2914 - id="flowPara8773">-] For local-only, VP is moved to the core it runs on -- assigner only moves VPs to diff cores and receives them</flowPara><flowPara 14.2915 - style="font-size:8px" 14.2916 - id="flowPara8775">-] For atomic tasks, the task-info is sent betwn cores.. for VPs, whole live portion of stack is sent.</flowPara><flowPara 14.2917 - style="font-size:8px" 14.2918 - id="flowPara8777" /><flowPara 14.2919 - style="font-size:8px" 14.2920 - id="flowPara8823">Okay, so this fits the standard VMS model -- except now the core-controller is gone, so the extra level of UCC is taken away. Now, the MasterVP is "reusing" whatever VP has suspended. -- in a way, the core-controller plu AnimationMaster are reduced to the assembly call that the WrapperLib (WL) makes to end the current work-unit, which suspends the VP. Inside that suspend call, is the opportunity to switch between different processes, call upon VMS-only helper services, and so on.</flowPara><flowPara 14.2921 - style="font-size:8px" 14.2922 - id="flowPara8825">So, the switch-over is a function call to a wrapp-lib, which then does an assembly Fn call -- the assembly saves the stack state (regs already saved when did the wrapper-lib call), and then puts localEnv into the param reg (for 64 bit convention) and jumps to the plugin-fn. Note, there are three different assembly calls, one for each kind of work-unit, to end it. Sometimes work-unit calls assembly directly, sometimes it calls a wrapper-lib that just does all the work right there, sometimes the wrapper lib calls the appropriate assembly Fn.</flowPara><flowPara 14.2923 - style="font-size:8px" 14.2924 - id="flowPara8827" /><flowPara 14.2925 - style="font-size:8px" 14.2926 - id="flowPara8793">Need to modify request structure, so abstraction can supply services via request -- and perhaps library Fns that perform some of services direct from app, and other Fns for use inside the plugins.. such as Malloc-Free, create VP, create atomic-Task.. some are pure wrapper-lib, others are combo.. seeing one version of malloc for wrapper-lib, different for plugin and msg-system use.The msg system is details of impl of Lang Animator -- so plugin is still "completing" the lang animator by adding semantics</flowPara><flowPara 14.2927 - style="font-size:8px" 14.2928 - id="flowPara8801">Core-controller was a second level beneath the runtime (Language Animator is the runtime).. The sched slots were virtual physical animators, and the masterVP was the Language Animator, which the AnimationMaster Fn and the plugin Fns supplied the behavior of. The coreCtlr switched between levels -- The MasterVP was "outside" the framework of the schedling slots -- in a way it was beside them (they took turns getting the actual phys animator, so same level) and in other way was above -- it controlled what went into the slots, so above them. I another way, the MasterVP was the Language Animator, while the slots were virtual physical, so they had no locial connection -- the slots were related to the same thing that animatored the language animator.. a very strange arrangement.</flowPara></flowRoot> <text 14.2929 - xml:space="preserve" 14.2930 - style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" 14.2931 - x="894.00696" 14.2932 - y="-182.42088" 14.2933 - id="text8833" 14.2934 - sodipodi:linespacing="125%"><tspan 14.2935 - sodipodi:role="line" 14.2936 - id="tspan8835" 14.2937 - x="894.00696" 14.2938 - y="-182.42088"> </tspan></text> 14.2939 - <g 14.2940 - id="g3490" 14.2941 - transform="translate(177.05331,-343.31973)"> 14.2942 - <text 14.2943 - sodipodi:linespacing="100%" 14.2944 - id="text3492" 14.2945 - y="285.39841" 14.2946 - x="222.37003" 14.2947 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2948 - xml:space="preserve"><tspan 14.2949 - y="285.39841" 14.2950 - x="222.37003" 14.2951 - sodipodi:role="line" 14.2952 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2953 - id="tspan3501">send work-</tspan><tspan 14.2954 - y="294.39841" 14.2955 - x="222.37003" 14.2956 - sodipodi:role="line" 14.2957 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2958 - id="tspan3511">push msg</tspan><tspan 14.2959 - y="303.39841" 14.2960 - x="223.72354" 14.2961 - sodipodi:role="line" 14.2962 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2963 - id="tspan3513">and start </tspan><tspan 14.2964 - y="312.39841" 14.2965 - x="222.37003" 14.2966 - sodipodi:role="line" 14.2967 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.2968 - id="tspan3515">timer for it.</tspan></text> 14.2969 - <rect 14.2970 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 14.2971 - id="rect3503" 14.2972 - width="57.486332" 14.2973 - height="63.639675" 14.2974 - x="193.78287" 14.2975 - y="274.77512" /> 14.2976 - </g> 14.2977 - <text 14.2978 - xml:space="preserve" 14.2979 - style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" 14.2980 - x="84.168976" 14.2981 - y="-681.48474" 14.2982 - id="text3537" 14.2983 - sodipodi:linespacing="125%"><tspan 14.2984 - sodipodi:role="line" 14.2985 - id="tspan3539" 14.2986 - x="84.168976" 14.2987 - y="-681.48474" 14.2988 - style="font-size:40px">Control Flow of Universal Proto-Runtime </tspan></text> 14.2989 - <g 14.2990 - transform="translate(237.05331,-404)" 14.2991 - id="g3541"> 14.2992 - <text 14.2993 - xml:space="preserve" 14.2994 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.2995 - x="222.25137" 14.2996 - y="285.36765" 14.2997 - id="text3543" 14.2998 - sodipodi:linespacing="100%"><tspan 14.2999 - id="tspan3547" 14.3000 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.3001 - sodipodi:role="line" 14.3002 - x="222.25137" 14.3003 - y="285.36765">Expired timer</tspan><tspan 14.3004 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" 14.3005 - sodipodi:role="line" 14.3006 - x="222.25137" 14.3007 - y="294.36765" 14.3008 - id="tspan3553">handler</tspan></text> 14.3009 - <rect 14.3010 - y="274.77512" 14.3011 - x="193.78287" 14.3012 - height="25.544432" 14.3013 - width="57.486332" 14.3014 - id="rect3549" 14.3015 - style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 14.3016 - </g> 14.3017 - <path 14.3018 - style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" 14.3019 - d="m 323.63077,-165.12086 131.74691,33.98134" 14.3020 - id="path3555" 14.3021 - inkscape:connector-curvature="0" 14.3022 - sodipodi:nodetypes="cc" /> 14.3023 - <text 14.3024 - xml:space="preserve" 14.3025 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.3026 - x="393.43005" 14.3027 - y="-151.95343" 14.3028 - id="text3557" 14.3029 - sodipodi:linespacing="100%"><tspan 14.3030 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.3031 - sodipodi:role="line" 14.3032 - x="393.43005" 14.3033 - y="-151.95343" 14.3034 - id="tspan3561"> Expired</tspan><tspan 14.3035 - style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1" 14.3036 - sodipodi:role="line" 14.3037 - x="393.43005" 14.3038 - y="-142.95343" 14.3039 - id="tspan3565"> timer</tspan></text> 14.3040 - <text 14.3041 - xml:space="preserve" 14.3042 - style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 14.3043 - x="449.27625" 14.3044 - y="-93.273193" 14.3045 - id="text3567" 14.3046 - sodipodi:linespacing="100%"><tspan 14.3047 - id="tspan3579" 14.3048 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.3049 - sodipodi:role="line" 14.3050 - x="449.27625" 14.3051 - y="-93.273193">When send work to other core,</tspan><tspan 14.3052 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.3053 - sodipodi:role="line" 14.3054 - x="449.27625" 14.3055 - y="-84.273193" 14.3056 - id="tspan3591">it may be sleeping. So when timer</tspan><tspan 14.3057 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.3058 - sodipodi:role="line" 14.3059 - x="449.27625" 14.3060 - y="-75.273193" 14.3061 - id="tspan3593">expires, do escrow, which is atomic</tspan><tspan 14.3062 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.3063 - sodipodi:role="line" 14.3064 - x="449.27625" 14.3065 - y="-66.273193" 14.3066 - id="tspan3595">check of whether work was received.</tspan><tspan 14.3067 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.3068 - sodipodi:role="line" 14.3069 - x="449.27625" 14.3070 - y="-57.273193" 14.3071 - id="tspan3597">If not, then check if dest core is </tspan><tspan 14.3072 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.3073 - sodipodi:role="line" 14.3074 - x="449.27625" 14.3075 - y="-48.273193" 14.3076 - id="tspan3599">sleeping -- if no, then take work</tspan><tspan 14.3077 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.3078 - sodipodi:role="line" 14.3079 - x="449.27625" 14.3080 - y="-39.273193" 14.3081 - id="tspan3611">back. If yes, do wakeup and set a </tspan><tspan 14.3082 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.3083 - sodipodi:role="line" 14.3084 - x="449.27625" 14.3085 - y="-30.273193" 14.3086 - id="tspan3609">new timer, which will do this</tspan><tspan 14.3087 - style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1" 14.3088 - sodipodi:role="line" 14.3089 - x="449.27625" 14.3090 - y="-21.273193" 14.3091 - id="tspan3617">handling again.</tspan></text> 14.3092 - </g> 14.3093 -</svg>
15.1 --- a/0__Papers/VMS/Universal/latex/VMS_universal.tex Fri Aug 17 19:01:07 2012 +0200 15.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 15.3 @@ -1,281 +0,0 @@ 15.4 -%&latex 15.5 -%% Derived from: `accept.tex' (from acmconf.dtx), 15.6 - 15.7 -\documentclass[box,accept]{acmconf} 15.8 - 15.9 -\CopyrightText{\copyright ACM 2000, ....., used with the \texttt{box} option.} 15.10 -\IfFileExists{graphicx.sty}{\usepackage{graphicx}}{} 15.11 -\ConferenceName{1. Conference on Designing a \LaTeX2e Class for 15.12 - Typesetting ACM Papers, Hawaii 2000} 15.13 -\ConferenceShortName{CONF-2000} 15.14 - 15.15 -\def\XX{More text should follow, but keep in mind that a limit of 6 15.16 - pages has been set, including figures and references. More text 15.17 - should follow, but keep in mind that a limit of 6 pages has been 15.18 - set, including figures and references. More text should follow, but 15.19 - keep in mind that a limit of 6 pages has been set, including figures 15.20 - and references. More text should follow, but keep in mind that a 15.21 - limit of 6 pages has been set, including figures and references. 15.22 - \par 15.23 -} 15.24 - 15.25 -\begin{document} 15.26 - 15.27 -%+Title 15.28 -\date{31. December 1999} 15.29 -\title{A Universal Proto-Runtime for Domain Specific Parallel Languages} 15.30 -\author{\Author{Sean Halle}\\ 15.31 - \Address{Open Source Research Institute}\\ 15.32 - \Email{Sean.Halle@OpenSourceResearchInstitute.org} 15.33 - } 15.34 -\maketitle 15.35 -%-Title 15.36 - 15.37 -%+Abstract 15.38 -\begin{abstract} 15.39 -Software has not been keeping up with parallel hardware, which slows the economy and retards adoption of new hardware. The gap is due in part to the disruption caused by moving to parallel languages, and in part to the prohibitive effort of porting parallel code across platforms. A leading idea for solving this is domain-specific parallel languages, where custom constructs are made to match features of the problem. However, such languages have a small number of users, which can't support the currently large effort to create such languages and port them across hardware platforms. 15.40 - 15.41 -To simplify creation of domain-specific languages, we propose a "proto" runtime, which provides the cross-language portion of runtime behavior. This includes handling the concurrency issues within the runtime itself. A given language only provides sequential implementations of its constructs. 15.42 - 15.43 - 15.44 - 15.45 -We explain the practical usage and theory, and show measurements of implementation time of three simple languages and one domain-specific language for hardware simulation. We also give runtime overhead measurements, which are orders of magnitude better than pthreads and OpenMP. 15.46 -\end{abstract} 15.47 -%-Abstract 15.48 - 15.49 - 15.50 -\section{Introduction} 15.51 -Current parallel languages, such as pthreads, TBB, OpenMP, and MPI, require programmers to learn new, complex mental models. Sequential programmers have to be retrained to using the parallel languages, and a new set of programming practices must be adopted for them. Such retraining generates a large disruption in the application-software companies that attempt to start using these parallel languages. 15.52 - 15.53 -Further, after learning the new language and adopting the new programming practices, the companies still have to hand-tune each application for each target hardware platform. Not only that, but customers have to acquire a new binary when they upgrade hardware. Both effects are costly, and tend to retard adoption of new hardware, despite potential performance gains. 15.54 - 15.55 -The net result is that software lags behind hardware, and the potential advantages across the economy of new hardware designs are lost. What is needed is a way to ease the transition from sequential programming to parallel programming, and to reduce the amount of hand-tuning done to get efficient performance on new hardware. 15.56 - 15.57 - 15.58 -Domain-specific languages promise to deliver both easier transition and efficiency across hardware[]. They do this by providing custom constructs that match to patterns in the application. Thus, they are natural for the sequential programmer to use. The custom constructs ``hide'' parallelism inside themselves, letting the runtime or toolchain handle it, freeing the programmer, and putting performance inside the tools. This makes coding easier and reduces hand-tuning. 15.59 - 15.60 -To illustrate the concept, we briefly cover one such language, which is used for describing the behavior of hardware, called HWSim. It has a straight-forward means for describing hardware, and then extracts parallelism from the description. The extracted parallelism is then efficiently exploited on a variety of target platforms. 15.61 - 15.62 -One blockage to wide-spread adoption of such domain-specific languages is the cost of developing them. Currently, a toolchain is created, including an optimizer and back end for each target platform. This is expensive. 15.63 - 15.64 -An alternative approach is so-called embedded languages, in which the new constructs are viewed as library calls made from a base language, such as C. This relies on the runtime system to provide efficient execution on a given target platform. It avoids the expense of creating a toolchain for each target, by instead creating a runtime for each target that is tuned to the hardware. 15.65 - 15.66 -This is a step forward, but such runtimes are still expensive to create. A technology to simplify the runtime creation would be helpful. 15.67 - 15.68 -In this paper, we present a means to reduce runtime creation, by not only reducing the complexity, but also by making reuse of runtime code in new languages more practical. It essentially breaks a runtime into two pieces: a part that implements the semantic behavior of the custom constructs, and a part that is the same for every language. 15.69 - 15.70 - A nice happenstance is that most of the complicated concurrency issues that come up inside current runtime implementations can be collected inside the part that stays the same across languages. This means the language only need supply a sequential implementation of its constructs' behavior. The cross-language part handles low-level synchronization and communication between cores, exporting a simple interface. 15.71 - 15.72 -Another nice happenstance is that the interface between the two parts of the runtime modularizes the runtime code. This, by itself, speeds development of new runtimes. In addition, it makes sharing between languages practical, especially for the portion that chooses where to perform work, and in which order. 15.73 - 15.74 - This placement-choosing portion handles data affinity and the shape of the dependency graph, which are largely responsible for the resulting performance. However, it can be written to contain few language-specific portions, making it practical to share between languages, for a given target platform. This saves a non-trivial amount of development work. 15.75 - 15.76 -While runtimes built without our contribution are still free to share such code, they have no equivalent interface between the runtime pieces. This makes isolating this portion of code more time consuming, and forces more effort to fit code from one runtime into the one of a different language. 15.77 - 15.78 -We call our contribution Universal Proto-Runtime (UPR) in order to capture the idea that we supply a partial runtime that must be completed by the language. Unlike a thread package, our contribution cannot be used directly by application code. Rather, a \emph{plugin} that contains the language-specific portions must be supplied. 15.79 -The application then uses the combination. 15.80 - 15.81 - 15.82 -Organization of paper 15.83 - 15.84 -\section{Background and Related Work} 15.85 - 15.86 -The current method of creating a runtime for a new domain-specific language is either writing one from scratch, normally on top of pthreads, or else modifying an existing runtime. LibGomp, the runtime for OpenMP, is a popular starting point. 15.87 - 15.88 -From anecdotal evidence, talking with 5 groups that have created domain specific languages, development of bare functionality of the runtime takes anywhere from one to several months. Perhaps a majority of the time is spent on multi-threading design and debugging. That is just for basic functionality; if they want low overhead, they expect another three to six months of performance tuning. 15.89 - 15.90 -One group was interviewed, which used libGomp as the base upon which to build a streaming dataflow language. 15.91 - 15.92 -UPR is designed to shorten that development time. 15.93 - 15.94 - 15.95 -UPR differs from pthreads, TBB, and other thread packages in that it provides a mental model that is specific to runtime creation. Pthreads and TBB are programming languages in their own right, but UPR is not. It has no semantics usable in application code, because it's only a \emph{part} of a runtime. It is geared exclusively to runtime creation. 15.96 - 15.97 -? 15.98 - 15.99 - 15.100 - 15.101 -\section{The Story Begins\ldots} 15.102 -A real article is supposed to have some deep results and good 15.103 -explanations. That, however, is your job and not mine so you should 15.104 -replace this text with something more appropriate\footnote{Another a 15.105 - footnote}.. 15.106 - 15.107 -\section{Some often used \LaTeX\ commands} 15.108 - 15.109 -\subsection{\texttt{emph}, etc.} 15.110 -Text may be set as \emph{emph}.\\ 15.111 -Text may be set as \texttt{texttt}.\\ 15.112 -Text may be set as \underline{unterline}.\\ 15.113 -Text may be set as \textbf{textbf}.\\ 15.114 -Text may be set as \textrm{textrm}.\\ 15.115 -Text may be set as {\tiny tiny}.\\ 15.116 -Text may be set as {\scriptsize scriptsize}.\\ 15.117 -Text may be set as {\footnotesize footnotesize}.\\ 15.118 -Text may be set as {\normalfont normalsize}.\\ 15.119 -Text may be set as {\large large}.\\ 15.120 -Text may be set as {\Large Large}.\\ 15.121 -Text may be set as {\LARGE LARGE}.\\ 15.122 -Text may be set as {\huge huge}.\\ 15.123 -Text may be set as {\Huge Huge}.\\ 15.124 -Text may have$^{\textrm{super}}$ and$_{\textrm{sub}}$scripts. 15.125 - 15.126 -\subsection{\texttt{itemize}} 15.127 -\begin{itemize} 15.128 -\item More text should follow, but keep in mind that a limit of 6 15.129 - pages has been set, including figures and references. More text 15.130 - should follow, but keep in mind that a limit of 6 pages has been 15.131 - set, including figures and references. 15.132 -\item More text should follow, but keep in mind that a limit of 6 15.133 - pages has been set, including figures and references. More text 15.134 - should follow, but keep in mind that a limit of 6 pages has been 15.135 - set, including figures and references. 15.136 -\end{itemize} 15.137 - 15.138 -\subsection{\texttt{enumerate}} 15.139 -\begin{enumerate} 15.140 -\item More text should follow, but keep in mind that a limit of 6 15.141 - pages has been set, including figures and references. More text 15.142 - should follow, but keep in mind that a limit of 6 pages has been 15.143 - set, including figures and references. 15.144 -\item More text should follow, but keep in mind that a limit of 6 15.145 - pages has been set, including figures and references. More text 15.146 - should follow, but keep in mind that a limit of 6 pages has been 15.147 - set, including figures and references. 15.148 -\end{enumerate} 15.149 - 15.150 -\subsection{\texttt{description}} 15.151 -\begin{description} 15.152 -\item[Foo] More text should follow, but keep in mind that a limit of 6 15.153 - pages has been set, including figures and references. More text 15.154 - should follow, but keep in mind that a limit of 6 pages has been 15.155 - set, including figures and references. 15.156 -\item[Bar] More text should follow, but keep in mind that a limit of 6 15.157 - pages has been set, including figures and references. More text 15.158 - should follow, but keep in mind that a limit of 6 pages has been 15.159 - set, including figures and references. 15.160 -\end{description} 15.161 - 15.162 -\subsection{\texttt{center} and \texttt{tabular}} 15.163 -\begin{center} 15.164 -\begin{tabular}{|l|c|r|}\hline 15.165 -left & center & right \\\hline\hline 15.166 -AAAAAAAA & BBBBBBBB & CCCCCCCC \\ 15.167 -AAAAAAAA & BBBBBBBB & CCCCCCCC \\\cline{3-3} 15.168 -AAAAAAAA & BBBBBBBB & CCCCCCCC \\\cline{2-2} 15.169 -AAAAAAAA & BBBBBBBB & CCCCCCCC \\\cline{1-2} 15.170 -AAAAAAAA & BBBBBBBB & CCCCCCCC \\\hline 15.171 -AAAAAAAA & BBBBBBBB & CCCCCCCC \\\hline 15.172 -1 & \multicolumn{2}{|c|}{2} \\\hline 15.173 -\end{tabular} 15.174 -\end{center} 15.175 - 15.176 -\subsection{\texttt{figure} and Postscript pictures} 15.177 -Have a look to to figure~\ref{fig-1} and~\ref{fig-2}. 15.178 - 15.179 -\begin{figure} 15.180 -\hrule 15.181 -Nice Postscript, isn't it? 15.182 -\begin{center} 15.183 -\IfFileExists{graphicx.sty}{ 15.184 - \includegraphics{body.eps} 15.185 -}{ 15.186 - Sorry, package \texttt{graphicx} not present. 15.187 -} 15.188 -\end{center} 15.189 - 15.190 -Same, a little bit smaller: 15.191 -\begin{center} 15.192 -\IfFileExists{graphicx.sty}{ 15.193 - \includegraphics[scale=.5]{body.eps} 15.194 - }{ 15.195 - Sorry, package \texttt{graphicx} not present. 15.196 -} 15.197 -\end{center} 15.198 -\caption{\label{fig-1}This is a nice floating figure} 15.199 -\hrule 15.200 -\end{figure} 15.201 - 15.202 -\begin{figure*} 15.203 -\hrule 15.204 -This figure uses both columns, using \texttt{figure*} 15.205 -\begin{center} 15.206 -\IfFileExists{graphicx.sty}{ 15.207 - \includegraphics[scale=.5]{body.eps} 15.208 - \hspace{1cm} 15.209 - \includegraphics[scale=.5]{body.eps} 15.210 -}{ 15.211 - Sorry, package \texttt{graphicx} not present. 15.212 -} 15.213 -\end{center} 15.214 -\caption{\label{fig-2}This is a nice floating figure} 15.215 -\hrule 15.216 -\end{figure*} 15.217 - 15.218 -\section{The Story Continues 1} 15.219 - 15.220 -This is a \verb+\section+. 15.221 - 15.222 -\XX\XX 15.223 - 15.224 -\subsection{The Story Continues 2} 15.225 - 15.226 -This is a \verb+\subsection+. 15.227 - 15.228 -\XX\XX 15.229 - 15.230 -\subsubsection{The Story Continues 3} 15.231 - 15.232 -This is a \verb+\subsubsection+. 15.233 - 15.234 -\XX\XX 15.235 - 15.236 -\subsubsubsection{The Story Continues 4} 15.237 - 15.238 -This is a \verb+\subsubsubsection+. 15.239 - 15.240 -\XX\XX 15.241 - 15.242 -\subsubsubsubsection{The Story Continues 5} 15.243 - 15.244 -This is a \verb+\subsubsubsubsection+. 15.245 - 15.246 -\XX\XX 15.247 - 15.248 -\paragraph{The Story Continues 6} 15.249 - 15.250 -This is a \verb+\paragraph+. 15.251 -\XX\XX 15.252 - 15.253 -\subparagraph{The Story Continues 7} 15.254 -This is a \verb+\subparagraph+. 15.255 -\XX\XX\XX 15.256 - 15.257 -\section{Conclusion} 15.258 -The end, at last! In this example there really are no results or 15.259 -points to summarize but I trust your article has more food for though 15.260 -and thus will need a conclusion. 15.261 - 15.262 -\appendix 15.263 -\section{Appendices} 15.264 -If you have any, appendices might go here. Note that appendices 15.265 -should not be used to circumvent the word count limit. 15.266 - 15.267 -This is "doing it by hand" --- you might be better off using BibTeX. 15.268 - 15.269 -%+Bibliography 15.270 -\begin{thebibliography}{X} 15.271 -\bibitem[1]{Lam94} Leslie Lamport: {\em \LaTeX, A Document 15.272 - Preparation System,} Addison Wesley~1994. 15.273 -\end{thebibliography} 15.274 -%-Bibliography 15.275 - 15.276 -\IfPrepare{ 15.277 - \tableofcontents 15.278 - \listoffigures 15.279 - \listoftables 15.280 -}{} 15.281 - 15.282 -\end{document} 15.283 - 15.284 -
16.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 16.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/latex/VMS__Full_conf_paper_2_Sep14.tex Mon Oct 08 23:03:26 2012 -0700 16.3 @@ -0,0 +1,1022 @@ 16.4 +%----------------------------------------------------------------------------- 16.5 +% 16.6 +% Template for sigplanconf LaTeX Class 16.7 +% 16.8 +% Name: sigplanconf-template.tex 16.9 +% 16.10 +% Purpose: A template for sigplanconf.cls, which is a LaTeX 2e class 16.11 +% file for SIGPLAN conference proceedings. 16.12 +% 16.13 +% Guide: Refer to "Author's Guide to the ACM SIGPLAN Class," 16.14 +% sigplanconf-guide.pdf 16.15 +% 16.16 +% Author: Paul C. Anagnostopoulos 16.17 +% Windfall Software 16.18 +% 978 371-2316 16.19 +% paul@windfall.com 16.20 +% 16.21 +% Created: 15 February 2005 16.22 +% 16.23 +%----------------------------------------------------------------------------- 16.24 + 16.25 + 16.26 +\documentclass[preprint]{sigplanconf} 16.27 + 16.28 +% The following \documentclass options may be useful: 16.29 +% 16.30 +% 10pt To set in 10-point type instead of 9-point. 16.31 +% 11pt To set in 11-point type instead of 9-point. 16.32 +% authoryear To obtain author/year citation style instead of numeric. 16.33 +\usepackage{amssymb,graphicx,calc,ifthen,subfig,dblfloatfix,fixltx2e} 16.34 + 16.35 + 16.36 +% correct bad hyphenation here 16.37 +\hyphenation{op-tical net-works semi-conduc-tor} 16.38 + 16.39 +\usepackage{wasysym} 16.40 + 16.41 +\begin{document} 16.42 + 16.43 +\bibliographystyle{plain} 16.44 +% 16.45 + 16.46 +\conferenceinfo{WXYZ '05}{date, City.} 16.47 +\copyrightyear{2005} 16.48 +\copyrightdata{[to be supplied]} 16.49 + 16.50 +\titlebanner{banner above paper title} % These are ignored unless 16.51 +\preprintfooter{short descripti0on of paper} % 'preprint' option specified. 16.52 + 16.53 + 16.54 +\title{A Proto-Runtime Approach to Domain Specific Languages} 16.55 + 16.56 + 16.57 +\authorinfo{Sean Halle} 16.58 + {Open Source Research Institute} 16.59 + {Email1} 16.60 +\authorinfo{Merten Sach} 16.61 + {TU Berlin} 16.62 + {msach@mailbox.tu-berlin.de} 16.63 +\authorinfo{Ben Juurlink} 16.64 + {TU Berlin} 16.65 + {b.juurlink@tu-berlin.de} 16.66 +\authorinfo{Albert Cohen} 16.67 + {Ecole Normal Supereur, and INRIA} 16.68 + {albert.cohen@inria.fr} 16.69 + 16.70 +\maketitle 16.71 + 16.72 + 16.73 +\begin{abstract} 16.74 + Domain Specific Languages that are embedded into a base language have promise to solve the productivity, disruption, mental model, and porting problems of parallel software. However such languages have too few users to support the large effort required to create them, resulting in low adoption. 16.75 + 16.76 +To solve this, we introduce a proto-runtime approach, which reduces the effort to create and port domain specific languages in multiple ways. It modularizes the creation of runtime systems and the parallelism constructs they implement, separating the language-construct logic, and scheduling logic away from the low-level runtime details of concurrency, memory consistency, and runtime-performance related code. 16.77 + 16.78 +As a result, new parallel constructs are written using sequential reasoning, and are easily reused across languages, and scheduling of work onto hardware is under language and application control, without interference from an underlying thread package scheduler, which enables high application performance. 16.79 + 16.80 +We present measurements of the time to develop new languages, as well as time to re-implement existing ones, which reduces to a matter of hours. In addition, we measure performance of proto-runtime based implementations going head-to-head with the standard distributions of Cilk, OpenMP, StarSs (OMPSs), and posix threads, showing that the proto-runtime outperforms on large servers in all cases. 16.81 +\end{abstract} 16.82 + 16.83 + 16.84 + 16.85 + 16.86 + 16.87 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16.88 +\section{Introduction} 16.89 +\label{sec:intro} 16.90 + 16.91 +Programming in the past has been overwhelmingly sequential, with the applications being run on sequential hardware. But the laws of physics have forced the hardware to become parallel, even down to embedded devices such as smart phones. The trend is unstoppable, forcing essentially all future programming to become parallel programming. The only reason sequential programming remains the dominant approach is the difficulty of the traditional parallel programming approaches. 16.92 + 16.93 +These difficulties with parallel programming fall into three main categories: 1) a difficult mental model, 2) having to rewrite the code for each hardware target to get acceptable performance and 3) disruption to existing practices, including steep learning curve, changes to the tools used, and changes in design practices. Many believe that these can all be overcome with the use of Domain-Specific Languages. But such languages have been costly to create and port across hardware targets, which makes them impractical given the small number of users of each language, and so have not caught on. 16.94 + 16.95 +We propose that a method that makes Domain Specific Languages (DSLs) low cost to produce as well as to port across hardware targets will allow them to fulfill their promise, and we introduce what we call a proto-runtime to help with this . A proto-runtime is a normal, full, runtime, but with two key pieces replaced by an interface. One piece is the logic of language constructs, the other is the logic for choosing which core to assign work to. The remaining portion is the proto-runtime, which comprises low-level details of internal runtime communication between cores and protection of shared runtime state during concurrent accesses performed by the plugged-in pieces. 16.96 + 16.97 +The decomposition into a proto-runtime and plugged-in language behaviors modularizes the construction of runtimes. The proto-runtime is one module, which embodies runtime internals, which are hardware oriented and independent of language. The plugged-in portions form the two other modules, which are language specific. The interface between them occurs at a natural boundary, which separates the hardware oriented portion of a runtime from the language oriented portion. 16.98 + 16.99 +We claim the following benefits of the proto-runtime approach, each of which is supported in the indicated section of the paper: 16.100 + 16.101 +\begin{itemize} 16.102 +\item The proto-runtime approach modularizes the runtime (\S\ ). 16.103 + 16.104 +\item The modularization is consistent with patterns that, appear to be, fundamental to parallel computation and runtimes (\S\ ). 16.105 + 16.106 +\item The modularization cleanly separates hardware oriented runtime internals from the logic of the language (\S). 16.107 + 16.108 +\item Those who use the proto-runtime approach can rely upon it to apply to future languages and hardware because the patterns it is based on appear to be fundamental and so should apply equally well to as yet undiscovered languages and architectures (\S\ ). 16.109 + 16.110 + 16.111 +\item The modularization results in reduced time to implement a new language's behavior, and in reduced time to port a language to new hardware (\S\ ). 16.112 + 16.113 +\begin{itemize} 16.114 +\item Part of the time reduction is due to reuse of the runtime's internal hardware-oriented portion by all languages (\S \ref{sec:intro}). 16.115 + 16.116 + 16.117 +\item Part of the time reduction is due to all languages inheriting the effort of performance tuning the runtime internals, so such tuning is done only once per hardware target (\S\ ). 16.118 + 16.119 +\item Part of the time reduction is due to allowing the use of sequential thinking when implementing the language logic. This is possible because the internal portion provides protection of shared internal runtime state, and exports an interface that presents a sequential model (\S\ ). 16.120 + 16.121 +\item Part of the time reduction is due to the modularization making it practical to reuse language logic from one language to another (\S\ ). 16.122 + 16.123 +\item Part of the time reduction is due to the proto-runtime providing a centralized location for services, making them available to all languages to use, so the language doesn't have to provide them separately. Such services include debugging facilities, automated verification, concurrency handling, hardware performance information gathering, etc (\S\ ). 16.124 + 16.125 +\end{itemize} 16.126 + 16.127 +\item 16.128 + 16.129 +The modularization gives the language low level control over hardware. This allows application information and language semantic information to be used in decisions of which core a given unit of work executes on. This can result in reduced communication between cores and increased performance (\S\ ). 16.130 + 16.131 +\begin{itemize} 16.132 + 16.133 +\item Similar control over hardware is not possible when building a language on top of a layer that has its own hardware assignment, such as a package like Posix threads or TBB (\S\ ). 16.134 + 16.135 +\end{itemize} 16.136 + 16.137 +\item Modularization with similar benefits is not possible when using a package such as Posix threads or TBB, unless the package is modified to conform to a proto-runtime interface or used according to the proto-runtime pattern (\S\ ). 16.138 + 16.139 +\end{itemize} 16.140 + 16.141 +The paper is organized as follows: In 16.142 +\S \ref{sec:DSLHypothesis}we expand on our hypothesis that embedded style DSLs (eDSL) provide high programmer productivity, with a low learning curve. Further, when an application is written in an eDSL, porting it to new hardware is simplified because only the language needs to be ported. That is because the elements of the problem being solved that require large amounts of computation have been pulled into the language. Lastly, we hypothesize that switching from sequential programming to using an eDSL is low disruption because the base language remains the same, along with the development tools and practices. 16.143 + 16.144 +? 16.145 + 16.146 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.147 + 16.148 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.149 + 16.150 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.151 + 16.152 + 16.153 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.154 + 16.155 + 16.156 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16.157 +\section{The Problem} 16.158 +\label{sec:problem} 16.159 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.160 + 16.161 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.162 + 16.163 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.164 + 16.165 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.166 + 16.167 + 16.168 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.169 + 16.170 +While talking about the problems encountered by Domain Specific Languages (DSLs), we focus on implications for the runtime system, due to its central role in the claims. At the same time we will support the hypothesis that embedded-style DSLs are high-productivity for application programmers, have a low learning curve, and cause low disruption to current programming practices. While doing this we set the ground work for the next section, where we show that the main effort of implementing embedded-style DSLs is creating the runtime, and that when using the proto-runtime approach, embedded-style DSLs are low-effort to create and port and move the effort of porting for high performance out of the application and into the language. 16.171 + 16.172 +To give the needed depth, we'll first talk about a way to classify parallel languages according to the structure of their runtime (subsection \ref{subsec:ClassifyingLangs}). Then we'll talk about the sub-class of domain specific parallel languages, what sets them apart, and the implications for their runtime implementations (subsection \ref{subsec:DomSpecLangs}). That segues into the embedded style of language, and how the work of implementing them is mainly the work of implementing their runtime (subsection \ref{subsec:EmbeddedDSLs}). 16.173 + 16.174 +Once that reduction from parallel languages in general to embedded style domain specific ones in particular is done, we'll give more on what embedded style DSLs look like from an application programmer's view (subsection \ref{subsec:AppProgViewOfDSL}). We will include depth on a particular embedded-style language, showing sample code that uses the constructs, then delving into needs within the implementation of that language, and behavior of the constructs during a run (subsection []). 16.175 + 16.176 +The main implications for runtime systems, which were uncovered within the section, are summarized at the end (subsection []). 16.177 + 16.178 +\subsection{Classifying parallel languages by virtual processor based vs task based} 16.179 +\label{subsec:ClassifyingLangs} 16.180 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.181 + 16.182 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.183 + 16.184 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.185 + 16.186 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.187 + 16.188 + 16.189 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.190 + 16.191 +One major axis for classifying parallel languages is whether they are virtual processor based or task based, which has implications for the structure of the runtime. 16.192 + 16.193 +A virtual processor is long-lived, and has a context that persists across suspend and resume, while a task has no preceding context to fit into and leaves no implied context when done. Posix threads is a standard example of a virtual processor based parallel language, as are UPC, Charm, TBB, and so forth. All of these create virtual processors (aka threads), which suspend when they invoke synchronizations and other parallel-language constructs then resume after the construct completes. Such virtual processors have their own private stack to save the information that is needed upon resume. 16.194 + 16.195 +In contrast, dataflow is a standard example of a task based language, as is CnC. For these languages, a task is passed all the information it needs at the point of creation, and is expected to run to completion. If a task needs to invoke a parallelism construct, that invocation normally ends the task, while information needed by following tasks is saved explicitly in shared variables, or passed to the runtime as a continuation that is then handed to the task created when the construct completes. 16.196 + 16.197 +Hybrids of the two also exist, such as OpenMP which implies thread creation, via the parallel-pragma, but also creates tasks via the for-pragma. As well, StarSs (OMPSs) mixes the two, with a main thread that creates meta-tasks that have to resolve their dependencies before being turned into executable tasks. Those tasks are also able to invoke barriers and other synchronization constructs, then resume. 16.198 + 16.199 +The runtime implementations of the two different types of execution model differ markedly. Virtual processor (VP) based runtimes have to create a stack for each VP created, and manage the interleaving of the CPU's hardware stack. They also require a mechanism to suspend and resume the VPs, and save them in internal structures while suspended. 16.200 + 16.201 +In contrast, task based runtimes need ultra-fast creation of tasks, and fast linkage from the end of one to the start of the next. They tend to keep the task-structures in a queue and discard them when complete. 16.202 + 16.203 +Hence, VP based runtimes revolve around storing suspended VPs inside structures that embody the constraints on when the VP can resume. But task based runtimes revolve around the conditions upon which to create new tasks, and the organization of the inputs to them. The runtimes for hybrid languages have characteristics of both. 16.204 + 16.205 + 16.206 +\subsection{Domain specific parallel languages} 16.207 +\label{subsec:DomSpecLangs} 16.208 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.209 + 16.210 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.211 + 16.212 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.213 + 16.214 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.215 + 16.216 + 16.217 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.218 + 16.219 +Now we'll talk about the sub-class of Domain Specific Languages (DSLs): what sets them apart from other parallel languages, how they potentially solve the issues with parallel programming, and the implications for their runtime implementations. 16.220 + 16.221 +DSLs can be any of the three basic language types (VP based, task-based or hybrid), but they are distinguished by having constructs that correspond to features of one narrow domain of applications. For example, we have implemented a DSL that is just for use in building hardware simulators [cite the HWSim wiki]. Its constructs embody the structure of simulators, and make building one fast and even simpler than when using a sequential language, as will be shown in Subsection []. The programmer doesn't think about concurrency, nor even about control flow, they simply define behavior of individual hardware elements and connect them to each other. 16.222 + 16.223 +It is this fit between language constructs and the mental model of the application that makes DSLs highly productive and easy to learn, at the same time, it is also what makes applications written in them more portable. Application patterns that have strong impact on parallel performance are captured as language constructs. The rest of the source code has less impact on parallel performance, so just porting the language is enough to get high performance on each hardware target. 16.224 + 16.225 +In practice, designing such a language is an art, and for some hardware targets, the language can become intrusive. For example, for porting to GPGPUs, their performance is driven by decomposition into many small, simple, kernels, which access memory in contiguous chunks. Fitting into this pattern forces rearrangement of the base sequential code, and even constrains choice of algorithm. Hence, a DSL that is portable to standard architectures as well as GPUs would place the GPU restrictions onto code for all machines. However, much excellent work [polyhedral, others] is being done on automated tools to transform standard code to GPU form, which would lift the restrictions. Also, constructs such as the DKU pattern [] map well onto GPUs as well as standard hardware. 16.226 + 16.227 +\subsection{The embedded style of DSL} 16.228 +\label{subsec:EmbeddedDSLs} 16.229 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.230 + 16.231 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.232 + 16.233 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.234 + 16.235 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.236 + 16.237 + 16.238 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.239 + 16.240 +We segue now into the embedded style of language, and show how the work of implementing them is mainly the work of implementing their runtime plus their complex domain constructs. We focus on embedded style domain specific languages because it is the least effort-to-create form of DSL, and making DSLs practical requires it to be low effort to create them and port them to various hardware targets. 16.241 + 16.242 + 16.243 +An embedded-style language is one that uses the syntax of a base language, like C or Java, and adds constructs that are specific to the domain. An added construct may be expressed in custom syntax that is translated to into a library call, or else directly invoked by making a library call, as illustrated in Figure \ref{fig:EmbeddedEx}. Inside the library call, a primitive is used to escape the base language and enter the embedded language's runtime, which then performs the behavior of the construct. 16.244 + 16.245 + 16.246 +\begin{figure}[h!tb] 16.247 +{\noindent 16.248 +{\footnotesize 16.249 +{\normalsize Creating a new virtual processor (VP):} 16.250 +\begin{verbatim} 16.251 +newVP = SSR__create_VP( &top_VP_fn, paramsPtr, animatingVP ); 16.252 +\end{verbatim} 16.253 + 16.254 +{\noindent {\normalsize sending a message between VPs:}} 16.255 +\begin{verbatim} 16.256 +SSR__send_from_to( messagePtr, sendingVP, receivingVP ); 16.257 +\end{verbatim} 16.258 + 16.259 +{\noindent {\normalsize receiving the message (executed in a different VP):}} 16.260 +\begin{verbatim} 16.261 +messagePtr = SSR__receive_from_to( sendingVP, receivingVP ); 16.262 +\end{verbatim} 16.263 +} 16.264 +} 16.265 + 16.266 +\caption 16.267 +{Examples of invoking embedded-style constructs. 16.268 +} 16.269 +\label{fig:EmbeddedEx} 16.270 +\end{figure} 16.271 +An embedded-style language differs from a library in that it has a runtime system, and a way to switch from the behavior of the base language to the behavior inside the runtime. In contrast, libraries never leave the base language. Notice that this means, for example, that a posix threads library is not a library at all, but an embedded language. 16.272 + 16.273 +As a practical matter, embedded-style constructs normally have a thin wrapper that invokes the runtime. However, some DSLs perform significant effort inside the library before switching to the runtime, or else after returning from the runtime. These look more like traditional libraries, but still involve an escape from the base language and more importantly are designed to work in concert with the parallel aspects of the language. They concentrate key performance-critical aspects of the application inside the language, such as dividing work up, or, for example, implementing a solver for differential equations that accepts structures created by the divider. 16.274 + 16.275 +It is the appearance of constructs being library calls that brings the low-disruption benefit of embedded-style DSLs. The syntax is that of the base language, so the existing development tools and work flows remain intact when moving to an embedded style DSL. In addition, the fit between domain concepts and language constructs minimizes mental-model disruption when switching and makes the learning curve to adopt the DSL very low. 16.276 + 16.277 +\subsection{Application programmer's view of embedded-style DSLs} 16.278 +\label{subsec:AppProgViewOfDSL} 16.279 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.280 + 16.281 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.282 + 16.283 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.284 + 16.285 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.286 + 16.287 + 16.288 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.289 + 16.290 +Well designed DSLs have very few constructs, yet capture the most performance-critical domain patterns, in a way that feels natural to the application programmer. This often means that data structures and usage patterns are part of the language. 16.291 + 16.292 +For example, a linear-equation-solving language would define a standard data structure for the coefficients of the equations, and supply a construct by which the language is asked to perform the work of solving them. This feels very much like a library, but the runtime system dynamically performs division of work according to the hardware, and implements communication between cores and a scheduler that load balances and tries to take advantage of data affinity and even computational accelerators. All of which puts performance in the hands of the runtime and is simple to use. 16.293 + 16.294 +An example of a DSL that we created using the proto-runtime approach is HWSim [], which is designed to be used for writing architectural simulators. 16.295 + 16.296 +When using HWSim, a simulator application is composed of just three things: netlist, behavior functions and timing functions. These are all sequential code that call HWSim constructs at boundaries, such as the end of behavior, and use HWSim supplied data structures. To use HWSim, one creates a netlist composed of elements and communication paths that connect them. A communication path connects an outport of the sending element to an inport of the receiving element. An action is then attached to the inport. The action is triggered when a communication arrives. The action has a behavior function, which changes the state of the element, and a timing function which calculates how much simulated time the behavior takes. 16.297 + 16.298 +The language itself consists of only a few standard data structures, such as \texttt{Netlist}, \texttt{Inport}, \texttt{Outport}, and a small number of constructs, such as \texttt{send\_comm} and \texttt{end\_behavior}. The advancement of simulated time is performed by a triggered action, and so is implied. The parallelism is also implied, by the only constraints on order of execution of actions being consistency. 16.299 + 16.300 +The only parallelism-related restriction is that a behavior function may only use data local to the element it is attached to. Parallel work is created within the system by outports that connect to multiple destination inports which means one output triggers multiple actions, and by behavior functions that generate multiple output communications each. 16.301 + 16.302 +Overall, simulator writers have fewer issues to deal with because time-related code has been brought inside the language, where it is reused across simulators, and because parallelism issues reduce to simply being restricted to data local to the attached element. Both these increase productivity of simulator writers, despite using a parallel language. The language has so few commands that it takes only a matter of days to become proficient (as demonstrated informally by new users of HWSim). Also, parallelism related constructs in the language are generic across hardware, eliminating the need to modify application code when porting to new hardware (if the language is used according to the recommended coding style). 16.303 + 16.304 +\subsection{Implementation of Embedded-style DSLs} 16.305 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.306 + 16.307 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.308 + 16.309 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.310 + 16.311 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.312 + 16.313 + 16.314 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.315 + 16.316 +When it comes to implementing an embedded-style of DSL, the bulk of the effort is in the runtime and the more complex domain specific constructs. 16.317 + 16.318 +Examples of constructs implemented for DSLs include Abstract Data Types (ADTs), like linked lists, hash tables, and priority queues. Also, full algorithms, like solvers for systems of equations, or even linear algebra operations on matrices. It will be seen in subsection[] that the proto-runtime approach causes the implementation for such constructs to be reused, with high performance, across all the hardware targets in a hardware class such as the class of shared-memory multi-core platforms. 16.319 + 16.320 +In addition, embedded style DSLs rely heavily on data types that are part of the language. These are often domain-specific such as \texttt{Netlist}, \texttt{Inport}, and \texttt{Outport} in HWSim, or \texttt{Protein} in a bio-informatics DSL, but can also be common such as \texttt{SparseMatrix} in domains like data mining and scientific applications. 16.321 + 16.322 + 16.323 + During language design, common patterns that consume significant development time or computation are placed into the language. Also, any patterns that expose hardware configuration, such as the number and size of pieces of work should be pulled into the language to aid portability. 16.324 + 16.325 +If such design is successful then porting the application reduces to just porting the language. When the language has successfully captured the main computational patterns of the domain, then the application code encapsulates only a small portion of the performance, so it does not need to be tuned. Further, when patterns that expose hardware-motivated choices or hardware-specific commands are in the language, then the application code has nothing that needs to change when the hardware changes. 16.326 + 16.327 +For example, HWSim pulls hardware-specific patterns inside the language by handling all inter-core communications inside the language, and also by aggregating multiple elements together on the same core to tune work-unit size. 16.328 + 16.329 +The advantage of placing these into the language, instead of application code, is portability and productivity. 16.330 + 16.331 + 16.332 +\subsection{Implementation Details of Embedded-style DSLs} 16.333 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.334 + 16.335 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.336 + 16.337 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.338 + 16.339 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.340 + 16.341 + 16.342 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.343 + 16.344 +? 16.345 + 16.346 +Figure [] shows\ the implementation of the wrapper library for HWSim's send\_and\_idle construct, which sends a communication on the specified outport, and then causes the sending element to go idle. Of note is the packaging of information for the runtime. It is placing into the HWSimSemReq data structure, and then the application work is ended by switching to the runtime. The switch is via the send\_and\_suspend call, which is a primitive implemented in assembly that jumps out of the base C language and into the runtime. 16.347 + 16.348 +The switch to the runtime can be done in multiple ways. Our proto-runtime uses assembly to manipulate the stack and registers. For posix threads language, when implemented in Linux, the hardware trap instruction is used to switch from application to the OS. The OS serves as the runtime that implements the thread behavior. 16.349 + 16.350 +The core is used by the construct implementation differently for VP based languages vs for task based languages. 16.351 + 16.352 +For VP based languages, once inside the runtime, a synchronization construct performs the behavior shown abstractly in Figure []. In essence, a synchronization construct is a variable length delay, which waits for activities outside the calling code to cause specific conditions to become true. These activities could be actions taken by other pieces of application code, such as releasing a lock, or they could be hardware related, such as waiting for a DMA transfer to complete. 16.353 + 16.354 +While one piece of application code (in a VP) is suspended, waiting, other pieces can use the core to perform their work, as long as the conditions for those other pieces are satisfied. Hence, the runtime's construct implementation checks if conditions are met, and if not stores the suspended piece (VP). If the construct can change conditions for others, it updates them. For example, the lock-release construct updates state for VPs waiting for the lock. Separately, for VPs whose conditions have been met, when a core becomes available, the runtime chooses which VP to assign to which core. 16.355 + 16.356 +These are the two behaviors a construct performs inside the runtime: managing conditions on which work is free, and managing assignment of free work onto cores. 16.357 + 16.358 +For task based languages, a task runs to completion then always switches to the runtime at the end. Hence, no suspend and resume exists. Once inside, the runtime's job is to track conditions on which tasks are ready to run, or which to create. For example, in dataflow, a task is created only once all conditions for starting it are met. Hence, the only language constructs are "instantiate a task-creator", "connect a task creator to others", and "end a task". During a run, all of the runtime behavior takes place inside the "end a task" construct, where the runtime sends outputs from the ending task to the inputs of connected task-creators. The "send" action modifies internal runtime state, which represents the order of inputs to a creator on all of its input ports. When all inputs are ready, it creates a new task, then when hardware is ready, assigns the task to a core. 16.359 +120 is parent 16.360 +9e0 is 0 16.361 +750 is 1 16.362 +? 16.363 + 16.364 +One survey[] discusses DSLs for a variety of domains, and this list of DSLs was copied from their paper: 16.365 +\begin{itemize} 16.366 +\item In Software Engineering: Financial products [12, 22, 24], behavior control and coordination [9, 10], software architectures [54], and databases [39]. 16.367 +\item Systems Software: Description and analysis of abstract syntax trees [77, 19, 51], video device driver specifications [76], cache coherence protocols [15], data structures in C [72], and operating system specialization [63]. 16.368 +\item Multi-Media: Web computing [14, 35, 4, 33], image manipulation [73], 3D animation [29], and drawing [44]. 16.369 +\item Telecommunications: String and tree languages for model checking [48], communication protocols [6], telecommunication switches [50], and signature computing [11]. 16.370 +\item Miscellaneous: Simulation [2, 13], mobile agents [36], robot control [61], solving partial differential equations [26], and digital hardware design [41]. 16.371 +\end{itemize} 16.372 + 16.373 +\subsection{Summary of Section} 16.374 + [[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.375 + 16.376 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.377 + 16.378 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.379 + 16.380 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.381 + 16.382 + 16.383 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.384 + 16.385 +This section illustrated the promise of DSLs for solving the issues with parallel programming. The HWSim example showed that well designed parallel DSLs can actually improve productivity, and have a low learning curve, as well as reduce the need for touching application code when moving to new target hardware. The section showed that the effort of implementing an embedded style DSL is mainly that of implementing its runtime and complex domain constructs, and that a well-designed DSL captures most of the performance-critical aspects of an application inside the DSL constructs. Hence, porting effort reduces to just performance-tuning the language (with caveats for some hardware). This effort is, in turn, reused by all the applications that use the DSL. 16.386 + 16.387 +The stumbling point of DSLs is the small number of users, after all, how many people write hardware simulators? Perhaps a few thousand people a year write or modify applications suitable for HWSim. That means the effort to implement HWSim has to be so low as to make it no more effort than writing a library, effectively a small percentage of a simulator project. 16.388 + 16.389 +The runtime is a major piece of the DSL implementation, so reducing the effort of implementing the runtime goes a long way to reducing the effort of implementing a new DSL. 16.390 + 16.391 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16.392 +\section{Description} 16.393 +\label{sec:idea} 16.394 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.395 + 16.396 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.397 + 16.398 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.399 + 16.400 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.401 + 16.402 + 16.403 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.404 + 16.405 +? 16.406 + 16.407 + 16.408 +Now that we have made the case that embedded style DSLs have potential to solve many parallel programming issues, and that a major obstacle to uptake of them is their implementation effort, we describe the proto-runtime concept and show how it addresses this obstacle to DSLs. As shown, embedded style DSL implementation effort and porting effort is mainly that of creating the runtime and implementing the more complex language constructs. We show here that the proto-runtime approach dramatically reduces the effort of creating a DSL runtime, through a number of features. 16.409 + 16.410 + 16.411 +\begin{figure}[ht] 16.412 + \centering 16.413 + \includegraphics[width = 2in, height = 1.8in]{../figures/PR_three_pieces.pdf} 16.414 + \caption{Shows how the proto-runtime approach modularizes the implementation of a runtime. The three pieces are the proto-runtime implementation, an implementation of the language construct behaviors, and an implementation of the portion of a scheduler that chooses which work is assigned to which processor. } 16.415 + \label{fig:PR_three_pieces} 16.416 +\end{figure} 16.417 + 16.418 + 16.419 +The main feature is the proto-runtime's approach to modularizing the runtime code. As shown in Fig \ref{fig:PR_three_pieces}, it breaks the runtime into three pieces: a cross-language piece, which is the proto-runtime implementation, a piece that implements the language's constructs and plugs into the proto-runtime, and a piece that assigns work onto hardware and also plugs into the proto-runtime. 16.420 + 16.421 +The modularization appears to remain valid across parallel languages and execution models, and we present underlying patterns that support this observation. We analyze the basic structure of a synchronization construct, and point out how the proto-runtime modularization is consistent with it. 16.422 + 16.423 +\subsection{Creating an eDSL} 16.424 + 16.425 + 16.426 +\begin{figure}[ht] 16.427 + \centering 16.428 + \includegraphics[width = 2in, height = 1.8in]{../figures/eDSL_two_pieces.pdf} 16.429 + \caption{An embedded style DSL consists of two parts: a runtime and a wrapper library that invokes the runtime} 16.430 + \label{fig:eDSL_two_pieces} 16.431 +\end{figure} 16.432 + 16.433 +As shown in Fix \ref{fig:eDSL_two_pieces}, to create an embedded style DSL (eDSL), do two things: create the runtime and create a wrapper-library that invokes the runtime and also implements the more complex language constructs. 16.434 + 16.435 +As seen in Fig X, a library call that invokes a language construct is normally a thin wrapper that only communicates to the runtime. It places information to be sent to the runtime into a carrier, then invokes the runtime by suspending the base language execution and switching the processor over to the runtime code. 16.436 + 16.437 +\subsection{The Proto-Runtime Modularization} 16.438 + 16.439 +\subsubsection{Dispatch pattern} 16.440 +-- standardizes runtime code 16.441 +-- makes familiar going from one lang to another 16.442 +-- makes reuse realistic, as demonstrated by VSs taking SSR constructs 16.443 + 16.444 +-- show the enums, and the switch table 16.445 + 16.446 +-- point out how the handler receives critical info -- the semEnv, req struct and calling slave 16.447 + 16.448 +\subsubsection{The Request Handler} 16.449 +-- cover what a request handler does.. connect it to the wrapper lib, and the info loaded into a request struct. 16.450 + 16.451 +-- give code of a request handler.. within on-going example of implementing pthreads, or possibly HWSim, or pick a new DSL 16.452 + 16.453 +\subsection{Exporting a performance-oriented machine view } 16.454 +The proto-runtime interface exports a view of the machine that shows performance-critical aspects. Machines that share the same architectural approach have the same performance-critical aspects, and differ only in the values. 16.455 + 16.456 +For example, cache-coherent shared-memory architectures can be modelled as a collection of memory pools connected by networks. The essential variations among processor-chips are the sizes of the pools, the connections between them, such as which cores share the same L2 cache, and the latency and bandwidth between them. 16.457 + 16.458 +Hence, a single plugin can be written that gathers this information from the proto-runtime and uses it when deciding which work to assign to which core. Such a plugin will then be efficient across all machines that share the same basic architecture. 16.459 + 16.460 +This saves significant effort by allowing the same plugin to be reused for all the machines in the category. 16.461 + 16.462 +\subsection{Services Provided by the Proto-runtime} 16.463 + 16.464 +-- Put services into the low-level piece.. plugins have those available, and inherit lang independent such as debugging, perf counters.. provides effort reduction because lang doesn't have to implement these services. 16.465 + 16.466 +-- -- examples of iherited lang services inside current proto-runtime: debugging and perf-tuning.. verification, playback have been started (?) 16.467 + 16.468 +-- -- examples of plugin services: creation of base VP, the switch primitives, the dispatch pattern (which reduces effort by cleanly separating code for each construct), handling consistency model (?), handling concurrency 16.469 + 16.470 +\subsection{eDSLs talking to each other} 16.471 +-- show how VSs is example of three different DSLs, and H264 code is three different languages interacting (pthreads, OpenMP, StarSs) 16.472 + 16.473 +-- make case that proto-runtime is what makes this practical ! Their point of interaction is the common proto-runtime innards, which provides the interaction services.. they all use the same proto-runtime, and all have common proto-runtime objects, which is how the interaction becomes possible. 16.474 + 16.475 +\subsection{The Proto-runtime Approach Within the Big Picture} 16.476 + 16.477 +-- Give background on industry-wide, how have langs times machines.. 16.478 +-- say that proto-runtime has synergistic advantages within this context. -- repeat that eDSLs talk to each other. 16.479 +-- give subsubsection on MetaBorg for rewriting eDSL syntax into base lang syntax. 16.480 +-- bring up the tools issue with custom syntax -- compiling is covered by metaborg re-writing.. can address debugging with eclipse.. should be possible in straight forward way that covers ALL eDSLs.. their custom syntax being stepped through in one window, and stepping through what they generate in separate window (by integrating generation step into eclipse).. even adding eclipse understanding of proto-runtime.. so tracks the sequence of scheduling units.. and shows the request handling in action in third window.. 16.481 + 16.482 +Preview idea that many players will contribute, and will get people that specialize in creating new eDSLs (such as one of authors).. 16.483 +-- For them, code-reuse is reality, as supported by VSs example, 16.484 +-- and the uniformity of the pattern becomes familiar, also speeding up development, as also supported by VSs, HWSim, VOMP, and DKU examples. 16.485 +-- for those who only create a single eDSL, the pattern becomes a lowering of the learning curve, aiding adoption 16.486 + 16.487 +-- Restate and summarize the points below (covered above), showing how they combine to shrink the wide-spot where all the runtimes are. 16.488 + 16.489 +-- The low-level part implemented on each machine, exports a view of the machine that shows performance-critical aspects 16.490 + 16.491 +-- Collect machines into groups, based on performance critical aspects of hardware.. provides reduction in effort because only one plugin for entire group. 16.492 + 16.493 +-- Put services into the low-level piece.. plugins have those available, and inherit lang independent such as debugging.. provides effort reduction because lang doesn't have to implement these services. 16.494 + 16.495 + 16.496 +\section{(outline and notes)} 16.497 + 16.498 +-- What a plugin looks like: 16.499 + 16.500 +-- -- pattern of parallel constructs.. ideas of Timeline, tie-point, animation, suspension, VP states, constraints, causality, work-units, meta-units, updates in constraint states attached to the meta-units 16.501 + 16.502 +-- -- a sych construct is something that creates a tie between two work-units. So, the logic of the construct simply establishes causality -- the ending of one work-unit causes the freedom to start animation of another. 16.503 + 16.504 +-- -- -- Examples: mutex is end of work-unit that frees lock causes freedom to start work-unit that gets the lock. They are causally tied. The semantics of the construct is the particular conditions existing inside the runtime (in this case ownership condition of a mutex), and what changes those conditions (in this case releasing lock removes one from owner, plus acquire-lock sets one as wanting the lock), and how freedom to be animated is affected by the changes in conditions (in this case, removal of ownership must precede gaining ownership) on what makes a work-unit free (in this case, being given ownership of the mutex), 16.505 + 16.506 +-- Hence, precisely, the parallelism model of the language defines constraints, which are implemented as state inside the runtime. Constructs provided do a number of things: signal bringing a set of constraints into existence (create a mutex), signal update to the state of those constraints (release mutex, state desire to acquire), and trigger the runtime to propagate those changes, which results in additional changes to states, including marking meta-units as free to be animated. cause creation of meta-units (explicitly as in VSs, or via creating entities that trigger creation as in dataflow, or via creating entities that consist of consecutive work-units as in pthreads). 16.507 + 16.508 + 16.509 +-- Recipe for how to make the language plugin: time reduction is part due to simplifying the parallelism construct logic.. 16.510 + 16.511 + 16.512 + 16.513 + 16.514 +\subsection{The Cross-language Patterns Behind the Proto-runtime} 16.515 + 16.516 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.517 + 16.518 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.519 + 16.520 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.521 + 16.522 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.523 + 16.524 + 16.525 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.526 + 16.527 +An application switches to the runtime, which does scheduling work then switches back to application code. 16.528 + 16.529 + 16.530 +\subsection{Some Definitions} 16.531 + 16.532 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.533 + 16.534 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.535 + 16.536 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.537 + 16.538 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.539 + 16.540 + 16.541 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.542 + 16.543 +We adopt the concepts of work-unit, virtual processor (VP), animation, and tie-point as discussed in a previous paper []. A work-unit is the trace of instructions executed between two successive switches to the runtime, along with the data consumed and produced during that trace. A Virtual Processor is defined as being able to animate either the code of a work-unit or else another VP, and has state that it uses during animation, organized as a stack. Animation is definedd as causing time of a virtual processor to advance, which is equivalent to causing state changes according to instructions, while suspension halts animation, and consequently causes the end of a work-unit (a more complete definition of animation can be found in the dissertation of Halle[]). A tie-point connects the end of one work-unit to the beginning of one in a different VP, so a tie-point represents a causal relationship between two work-units, and establishes an ordering between those work-units, effectively tying the time-line of the VP animating one to the time-line of the VP animating the other work-unit. 16.544 + 16.545 +In addition, we introduce a definition of the word task, which is a single work-unit coupled to a virtual-processor that comes into existence to animate the work-unit and dissipates at completion of the work-unit. By definition of work-unit, a task cannot suspend, but rather runs to completion. If the language defines an entity that has a timeline that can be suspended by switching to the runtime, then such an entity is not a task. Pure Dataflow[] specifies tasks that fit our definition. 16.546 + 16.547 +\subsection{Handling Memory Consistency Models} 16.548 + 16.549 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.550 + 16.551 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.552 + 16.553 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.554 + 16.555 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.556 + 16.557 + 16.558 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.559 + 16.560 +Weak memory models can cause undesired behavior when work-units on different cores communicate through shared variables. Specifically, the receiving work-unit can see memory operations complete in a different order than the code of the sending work-unit specifies. 16.561 + 16.562 +For example, consider a proto-runtime implemented on shared memory hardware that has a weak consistency model, along with a language that implements a traditional mutex lock. All memory operations performed in the VP that releases the lock should be seen as complete by the VP that next acquires the lock. 16.563 + 16.564 +It is up to the proto-runtime to enforce this, using hardware primitives. It has to ensure that all memory operations performed, by a task or VP, before switching to the runtime are completed before any dependent task or VP is switched into from the runtime. More precisely, the proto-runtime has to ensure that all memory operations performed by a work-unit are visible in program order to any tied work-units. In some cases the language plugin has to alert the proto-runtime of the causality between work-units. 16.565 + 16.566 + 16.567 +The proto-runtime does not, however, protect application code that attempts to communicate between VPs or tasks directly, without using a parallelism construct to protect the communication. 16.568 + 16.569 + 16.570 + 16.571 +======= 16.572 + 16.573 + I plan to explain VMS as a universal pattern that exists in all runtimes: that is, that the application switches to runtime, which does a scheduling decision and then switches back. I'll explain it first with just master and slaves, leaving out the core\_loop. Explain it as a normal runtime that has had two key pieces removed and replaced with interfaces. The language supplies the missing pieces. Then, introduce the core\_loop stuff as a performance enhancement used when lock acquisition dominates (as it does on the 4 socket 40 core machine). 16.574 + Next, give HWSim as an example of a real domain specific (it's working, ref manual attached), and focus on how the modularity allowed pulling constructs from other languages (singleton and atomic), and a breakdown of implementation time vs design time, and so on. Highlight how VMS's features for productivity and encapsulation solve the practical problems for domain-specific languages. 16.575 + Finally, show that VMS performance is good enough, by going head-to-head with pthreads and OpenMP (doing a VMS OpenMP implementation now). And also StarSs if I have time. I'll run overhead-measuring on them, and also regular benchmarks. 16.576 + 16.577 +================= 16.578 + 16.579 +\subsection{The patterns} 16.580 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.581 + 16.582 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.583 + 16.584 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.585 + 16.586 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.587 + 16.588 + 16.589 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.590 + 16.591 + 16.592 +Soln: modularize runtime, to reduce part have to mess with, hide part that has low-level details, reuse low-level tuning effort, and reuse lang-spec parts. 16.593 + 16.594 +Benefits: lang impl doesn't have to touch low-level details, inherit centralized services, can reuse code from other languages to add features. 16.595 + 16.596 +Performance must be high, or the labor savings don't matter. By isolating the low-level details inside the proto-runtime, they can be intensively tuned, then all the languages inherit the effort. 16.597 + 16.598 +Part of what makes this so easy is the dispatch pattern.. adding a construct reduces to adding into switch and writing handler.. borrow constructs by taking the handler from the other lang. 16.599 + 16.600 +By isolating the low-level details inside the proto-runtime, they can be intensively tuned, then all the languages inherit the effort. Compare that to current practices, where the runtime code is monolithic.. each language has to separately modify the runtime, understanding and dealing with the concurrency, and then on a new machine, each language has to re-tune the low-level details, worrying about the consistency model on that machine, how its particular fence and atomic instructions work, and so on. 16.601 +We spent 2 months performance tuning the current version, but only 18 hours implementing VSs on top of it, and VSs inherited the benefit from all that effort. So did VOMP, and SSR, and VCilk, and so on.. each time we improved the proto-runtime, all the languages improved, with no effort on the part of the language creator. 16.602 + 16.603 + 16.604 +\subsubsection{Views of synchronization constructs} 16.605 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.606 + 16.607 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.608 + 16.609 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.610 + 16.611 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.612 + 16.613 + 16.614 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.615 + 16.616 +One view of sync constructs is that they are variable-length calls. The 16.617 +basic hardware does this by stalling the pipeline. 16.618 + 16.619 +Another view is that they mark the boundary of a communication made via shared read/write. A load or store of a single location has a precise boundary enforced by the hardware, but if a pipeline desires to load, modify, then write a single location it has to have additional hardware. It has to make the multiple primitive load/store operations appear as a single operation. 16.620 + 16.621 +Moving up to the application level, the same pattern exists: an operation the application wants to do may involve many loads and stores, but it wants the collection to appear as a single indivisible operation. So the application-level equivalent of a load or store involves multiple memory locations but is to be treated as a single indivisible operation. This requires the application-level equivalent of the hardware that made the read-modify-write into a single indivisible operation. That equivalent is what a synchronization construct is. The reason a sync construct takes a variable amount of time is that it waits until all other indivisible operations that might conflict have completed. 16.622 + 16.623 +Another way to think of the sync construct is that it enforces sharp communication boundaries. The multiple read and write operations are treated as a single communication with the shared-state. If any other part of the application sees only part of the communication, it sees something inconsistent and thus wrong. So the sync constructs ensure that communications are complete, so the parts of the application only see complete communications from other parts. 16.624 + 16.625 +\subsubsection{Universal Runtime Patterns} 16.626 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.627 + 16.628 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.629 + 16.630 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.631 + 16.632 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.633 + 16.634 + 16.635 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.636 + 16.637 +Unified pattern within parallel languages: create multiple timelines, then control relative progress of them, and control location each chunk of progress takes place. 16.638 + 16.639 +Another universal pattern: code runs, switches to runtime, some point later switches back to code, making application run be a collection of trace segments bounded by runtime calls. 16.640 +The runtime tracks constraints (dependencies) among units, creates and destroys units, and assigns ready units to hardware. 16.641 + 16.642 +Units have a life-line, which is fundamental to parallel computation, as demonstrated in a paper by some of the authors []. 16.643 + 16.644 +Every unit has a meta-unit that represents it in the runtime. A unit is defined as the trace of application code that exists between two scheduling decisions. Looking at this in more detail, every runtime has some form of internal bookkeeping state for a unit, used to track constraints on it and make decisions about when and where to execute. This exists even if that state is just a pointer to a function that sits in a queue. We call this bookkeeping state for a unit the meta-unit. 16.645 + 16.646 +Each unit also has a life-line, which progresses so: creation of the meta-unit \pointer , state updates that affect constraints on the unit \pointer, the decision is made to animate the unit \pointer, movement of the meta-unit plus data to physical resources that do the animation \pointer , animation of the unit, which does the work \pointer, communication of state-update, that unit has completed, and hardware is free \pointer , constraint updates within runtime, possibly causing new meta-unit creations or freeing other meta-units to be chosen for animation. This repeats for each unit. Each step is part of the model. 16.647 + 16.648 +Note a few implications: first, many activities internal to the runtime are part of a unit's life-line, and take place when only the meta-unit exists, before or after the work of the actual unit; second, communication that is internal to the runtime is part of the unit life-line, such as state updates; third, creation may be implied, such as in pthreads, or triggered such as in dataflow, or be by explicit command such as in StarSs, and once created, a meta-unit may languish before the unit it represents is free to be animated. 16.649 + 16.650 +\subsubsection{Putting synchronization constructs together with universal runtime patterns} 16.651 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.652 + 16.653 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.654 + 16.655 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.656 + 16.657 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.658 + 16.659 + 16.660 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.661 + 16.662 +Putting these together, gives us that any parallelism construct that has a synchronization behavior causes the end of a work-unit, and a switch to the runtime. The code following the construct is a different work-unit that will begin after the constraint implied by the construct is satisfied. 16.663 + 16.664 +The runtime is made up of the infrastructure for the constraints and assignment, such as communicating bookkeeping state between cores, and protecting internal runtime updates of shared information. Plus, the logic of the constructs and logic of choosing an assignment of work to cores. 16.665 + 16.666 +For large machines, the infrastructure dominates the time to execute a parallelism construct, while for smaller machines, like single-socket, the logic of constructs and assignments has a chance to be significant. 16.667 + 16.668 +\begin{figure}[ht] 16.669 + \centering 16.670 + \includegraphics[width = 2in, height = 1.8in]{../figures/SCG_stylized_for_expl.pdf} 16.671 + \caption{Something to help understanding} 16.672 + \label{fig:SCG_expl} 16.673 +\end{figure} 16.674 + 16.675 + 16.676 + 16.677 + 16.678 +%%%%%%%%%%%%%%%%%%%%% 16.679 +\section{The Details} 16.680 +[[Hypothesis: Embedded-style DSLs -> high productivity + low learning curve + low disruption + low app-port AND quick time to create + low effort to lang-port + high perf across targets]] 16.681 +[[Claims: modularize runtime, mod is fund patterns, mod sep lang logic from RT internals, mod makes internal reusable & lang inherit internal perf tune & inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.682 + 16.683 +The interfaces between lang logic and proto-runtime. 16.684 + 16.685 +Demonstrate: modular runtime, how reduces part have to mess with, hides part that has low-level details, reuses low-level tuning effort, and reuses lang-spec parts. 16.686 + 16.687 +Demonstrate Benefits: lang impl doesn't touch low-level details, inherits centralized services (debug support), reuses code from other languages to add features. 16.688 + 16.689 +\subsection{Reuse of Language Logic} 16.690 +[[Hypothesis: Embedded-style DSLs -\textgreater\ high productivity + low learning curve + low app-port + low disruption]] 16.691 + 16.692 +[[Bridge: Few users-\textgreater\ must be quick time to create + low effort to lang-port + high perf across targets]] 16.693 + 16.694 +[[Bridge: effort to create = runtime + effort port = runtime + perf on new target = runtime]] 16.695 + 16.696 +[[Bridge: big picture = langs * runtimes -\textgreater runtime effort critical]] 16.697 + 16.698 + 16.699 +[[Claims: given big picture, runtime effort minimized -\textgreater modularize runtime, mod works across langs bec. fund patterns, mod sep lang logic from RT internals, mod makes internal reusable + lang inherit internal perf tune +inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.700 + 16.701 +Demonstrate reuse of language logic: 16.702 +All the languages have copied singleton, atomic, critical section and transaction. In VOMP, took the task code from VSS, in VSS, took the send and receive code from SSR.. for DKU, took the code almost verbatim from earlier incarnation of these ideas, and welded it into SSR, and took VSs tasks and put into SSR. Thus, circle completes.. VSs took from SSR, now SSR takes from VSs.. pieces and parts are being borrowed all over the place and welded in where they're needed. 16.703 + 16.704 +Part of what makes this so easy is the dispatch pattern.. adding a construct reduces to adding into switch and writing handler.. borrow constructs by taking the handler from the other lang. 16.705 + 16.706 +Another part is that code for the constructs is isolated from concurrency details, which are inside the proto-runtime. All the dynamic system issues, and best way to impl locks, and need for fences, and so on is isolated from the construct logic. This isolation is also how porting effort is lowered (or in many cases eliminated), and is how runtime performance is kept high. 16.707 + 16.708 +? 16.709 + 16.710 +Performance must be high, or the labor savings don't matter. By isolating the low-level details inside the proto-runtime, they can be intensively tuned, then all the languages inherit the effort. Compare that to current practices, where the runtime code is monolithic.. each language has to separately modify the runtime, understanding and dealing with the concurrency, and then on a new machine, each language has to re-tune the low-level details, worrying about the consistency model on that machine, how its particular fence and atomic instructions work, and so on. 16.711 +We spent 2 months performance tuning the current version, but only 18 hours implementing VSs on top of it, and VSs inherited the benefit from all that effort. So did VOMP, and SSR, and VCilk, and so on.. each time we improved the proto-runtime, all the languages improved, with no effort on the part of the language creator. 16.712 + 16.713 +? 16.714 + 16.715 +In addition to runtime performance, application level performance must be high. The runtime's performance only affects overhead, and so is only a factor for small work-unit (task) sizes. But data affinity affects performance for all work. 16.716 + 16.717 +The proto-runtime approach partially addresses this by giving the language the opportunity to directly control placement of work. This isn't possible when building on top of threads, because the scheduling is in a separate, lower-level, layer where assignment of work to core is made in isolation, blind to language constructs and 16.718 +other application features. 16.719 + 16.720 + 16.721 + 16.722 + 16.723 +%%%%%%%%%%%%%%%%%%%%% 16.724 +\section{Measurements} 16.725 + 16.726 +\subsection{Implementation time} 16.727 +Summarized in Table \ref{tabPersonHoursLang}, we measured the time it took us to design, code, and get an initial version working for each of the languages we created. They are shown in the same order we created them, with SSR the first. As we gained experience, design and coding became more efficient. Not shown is the 7 hours required to take the send-receive code from SSR and adapt it to work with tasks in VSs. In addition, 11 hours was spent importing the DKU constructs into VSs. These are hours spent on the computer, and don't include think time during other activities in the day. 16.728 + 16.729 +\ 16.730 + 16.731 +\begin{centering} 16.732 +\begin{tabular}{|l|r|r|r|r|r|r|} 16.733 + \cline{2-7} 16.734 + \multicolumn{1}{r|}{} & SSR & Vthread & VCilk & HWSim & VOMP & VSs\\ 16.735 + \cline{2-7} 16.736 + \noalign{\vskip2pt} 16.737 + \hline 16.738 + Design & 19 & 6 & 3 & 52 & 11& 6\\ 16.739 + Code & 13 & 3 & 3& 32 & 9& 12\\ 16.740 + Test & 7 & 2 & 2& 12 & 8& 5\\ 16.741 + L.O.C. & 470 & 290 & 310& 3000 & 690 & 780\\ 16.742 + \hline 16.743 +\end{tabular} 16.744 +\caption 16.745 +{Hours to design, code, and 16.746 + test each embedded language. L.O.C. is lines of (original) C code, 16.747 + excluding libraries and comments. 16.748 +} 16.749 +\end{centering} 16.750 +\label{tabPersonHoursLang} 16.751 + 16.752 + 16.753 +\subsection{Runtime and Application Performance} 16.754 + 16.755 +For runtime performance: 16.756 + 16.757 +-- Vthread vs pthread: laptop and server on exe vs task (and fibonacci?) 16.758 + 16.759 +-- VCilk vs Cil: laptop and server on fibonacci (from Albert) 16.760 + 16.761 +-- VOMP vs OpenMP: laptop and server on exe vs task and fibonacci 16.762 + 16.763 +-- VSs vs OMPSs: laptop and server on fibonacci and jpeg 16.764 + 16.765 +\begin{tabular}{|c|c|c|c|c|c|c|}\hline 16.766 +a & a & a & a & a & a & a \\\hline 16.767 +a & a & a & a & a & a & a \\\hline 16.768 +a & a & a & a & a & a & a \\\hline 16.769 +a & a & a & a & a & a & a \\\hline 16.770 +\end{tabular} 16.771 +\caption{} 16.772 +\label{tab} 16.773 + 16.774 +As seen, we didn't include application performance because we have not yet taken advantage of the opportunity to use language information to predict locality. That research is in progress and will be reported in future papers. 16.775 + 16.776 +%%%%%%%%%%%%%%%%%%%%% 16.777 +\section{Related Work} 16.778 +Now we compare the proto-runtime approach to other approaches for implementing domain specific languages. The criteria are: level of effort to implement the DSL, effort to port the DSL, runtime performance, and support for application performance. The main alternative methods are: posix threads, user-level threads, TBB, modifying libGomp, and using hardware primitives to make a custom runtime. 16.779 + 16.780 +We talk about each of these approachs, then summarize the conclusions in Table \ref{tab:CriteriaVsApproach}. 16.781 + 16.782 +The first three methods involve building the DSL runtime on top of OS threads, user threads, or TBB, all of which are languages in their own right. So the DSL runtime runs on top of the runtime for that lower-level language. This places control of work placement inside the lower-level runtime, blocking the DSL runtime, which hurts application-code performance, due to inability to use data locality. In addition, OS threads have operating system overhead and OS-imposed fairness requirements, which keeps runtime performance poor. 16.783 + 16.784 +All three also force the DSL implementation to manage concurrency explicitly, using language primitives like locks. TBB may have a slight advantage due to its task-scheduling commands, but only for task-based languages. Hence, implementation effort is poor for these approaches. 16.785 + 16.786 +For the same reason, for these three, the runtime code needs to be rewritten and tuned for each hardware platform, or else some form of hardware-abstraction placed into the runtime. But putting in a hardware abstraction is essentially an alternative way of implementing half of the proto-runtime approach, but without the centralization, reuse, and modularization benefits. 16.787 + 16.788 +libGomp is used by many language researchers (based on informal discussions) because it has a very simple structure, making it relatively easy to modify, especially for simple languages. However, it provides no services such as debugging or performance tuning, and it has no modularization or reuse across languages benefits. As the price of the simplicity, performance suffers, as seen in the experiments []. Also, re-writes of the DSL runtime are required for each platform in order to tune it to hardware characteristics. 16.789 + 16.790 +However, because the runtime is directly modified, the language has control over placement of work. That lets the language use semantic information about communication between work-units to gain predictability about where input data may reside. That in turn enables scheduling algorithms that use the data locality predictions to reduce communication, for good application performance. 16.791 + 16.792 +The last alternative is to write a custom runtime from scratch, using hardware primitives like the Compare And Swap (CAS) instruction, or similar atomic read-modify-write instructions. This approach requires the highest degree of implementation effort, and the worst portability across hardware. However, if sufficient effort is expended on tuning, it can achieve the best runtime performance and equal the best performance of application code. So far, the gap has proven small between highly tuned language-specific custom runtime performance and that of our proto-runtime, but we only have the CILK implementation as a comparison point. 16.793 + 16.794 +Putting this all together, Table \ref{tab:CriteriaVsApproach} shows that only the proto-runtime approach makes initial language implementation fast, as well as reduces porting effort, while keeping runtime performance high and enabling high application performance. 16.795 + 16.796 +\begin{center} 16.797 +\begin{tabular}{|c|c|c|c|c|}\hline 16.798 + & \textbf{impl.}& \textbf{porting} & \textbf{runtime} & \textbf{application} \\ 16.799 +\textbf{} & \textbf{effort} & \textbf{effort} & \textbf{perf.} & \textbf{perf.}\\\hline 16.800 +\textbf{OS Threads} & poor & poor & poor & poor \\\hline 16.801 +\textbf{User Threads} & poor& poor & medium & poor \\\hline 16.802 +\textbf{TBB} & poor & poor & medium & poor \\\hline 16.803 +\textbf{libGomp} & medium & poor & medium & good \\\hline 16.804 +\textbf{HW primitives} & poor & poor & good & good \\\hline 16.805 +\textbf{Proto-runtime} & good & good & good & good \\\hline 16.806 +\end{tabular} 16.807 +\end{center} 16.808 +\caption{Level of achievement for each approach to creating DSL runtimes} 16.809 +\label{tab:CriteriaVsApproach} 16.810 + 16.811 + 16.812 + 16.813 +%%%%%%%%%%%%%%%%%%%%% 16.814 +\section{Conclusion and Future Work} 16.815 +\label{sec:conclusion} 16.816 +[[Hypothesis: Embedded-style DSLs -> high productivity + low learning curve + low disruption + low app-port AND quick time to create + low effort to lang-port + high perf across targets]] 16.817 +[[Claims: modularize runtime, mod is fund patterns, mod sep lang logic from RT internals, mod makes internal reusable & lang inherit internal perf tune & inherit centralized serv, mod makes lang logic sequential, mod makes constructs reusable one lang to next, mod causes lang assigner to own HW]] 16.818 + 16.819 +We have shown how the proto-runtime approach modularizes runtime code, allowing the low-level hardware-intensive portion to be inherited by all languages built on top of it. This modularization reduces the effort of implementing a new language, especially an embedded-style one, by simplifying the language-specific portion, reducing it, and reusing it, as demonstrated in practice. While reducing the effort, the proto-runtime approach also maintains high runtime performance, by separating out the tuning-intensive part, so the tuning effort is amortized over all the languages, which inherit the improved runtime performance without any effort by the language creators. 16.820 + 16.821 +We have demonstrated the benefits of centralized services inherited by the languages, such as debugging facilities, automated verification, concurrency handling, hardware performance information gathering, and so on. By genericizing these 16.822 + 16.823 +We have also demonstrated how application features and language features gain access to the decision-making for which core work is assigned to. This provides the language with the opportunity to directly control placement of work, for higher performance of application code. 16.824 + 16.825 +Work on the proto-runtime approach is in its infancy, and much remains to be done, including: 16.826 +\begin{itemize} 16.827 +\item Creating related interfaces for use with distributed memory hardware, and interfaces for hierarchical runtimes, to improve performance on many-level hardware such as high-performance computing, and to tie together runtimes for different types of architecture, to cover heterogeneous architectures and machines. 16.828 +\item Extending the proto-runtime interface to present hardware information that a work-assigner will need, but in a generic way that remains constant across many hardware configurations yet exposes all relevant information. 16.829 +\item Exploring work assignment implementations that take advantage of language and application knowledge to improve placement of work to gain higher application performance. 16.830 +\item Applying the proto-runtime approach to support a portability software stack, and supplying OS services to applications via the proto-runtime, to further increase application-code portability. 16.831 +\end{itemize} 16.832 + 16.833 + 16.834 +\end{document} 16.835 + 16.836 +Here is an example of netlist creation: 16.837 + 16.838 +The circuit has two elements, each with one input port, one output port, and a single activity-type. The elements are cross-coupled, so output port of one connects to input port of the other. The input port has the activity-type attached as its trigger. The activity is empty, and just sends a NULL message on the output port. The activity's duration in simulated time and the resulting communication's flight duration in simulated time are both constants. 16.839 + 16.840 + Note that HWSimElem data type is generic. An elem is specialized by declaring inports and outports, and by connecting activity types to in-ports. Behavior is attached to an element by attaching activity types to in-ports of the element. 16.841 + 16.842 +First, here is the top-level function that creates and returns the netlist structure: 16.843 + 16.844 +To use HWSim, one creates a netlist composed of elements and communication paths connecting them. An element has a number of in-ports and outports, and a communication path connects an outport of the source element to an inport of the destination elements. The inport has an action attached, which in turn has a behavior function and a timing function, both of which are triggered by the arrival of a communication. The behavior function has local persistent state of the element available to use, and can generate out-going communications. The timing function calculates how much Guest (simulated) time the behavior spanned. In addition, communication paths have an attached function that calculates time from being sent until arrival of the communication. Both the behavior and timing function are application-programmer provided. The entire simulator application is composed of those three things: netlist, behavior functions and timing functions, and all are sequential code. 16.845 + 16.846 +The embedded DSL consists of standard data structures, such as netlist, inport, outport, that the application must use in the language-defined way, and a small number of language calls, such as send_comm and end_behavior. The advancement of simulated time is implied, and the parallelism is implied. The only parallelism-related restriction is that a behavior function may only use data local to the element it is attached to. If state in the hardware is shared, such as registers or memory, then other elements access that state by sending communications to the element that contains the state. Parallelism is created within the system by outports that connect to muliple destination inports, and by behavior functions that generate multiple output communications each. 16.847 + 16.848 + 16.849 +\begin{small}\begin{verbatim} 16.850 +HWSimNetlist * 16.851 +createPingPongNetlist() 16.852 + { HWSimNetlist *netlist; 16.853 + HWSimElem **elems; 16.854 + HWSimActivityType **activityTypes; 16.855 + HWSimCommPath **commPaths; 16.856 + int32 numElems, numActivityTypes, numCommPaths; 16.857 +\end{verbatim}\end{small} 16.858 + 16.859 +The first thing to do is create the netlist structure, which holds three things: element structs, activity type structs, and communication path structs. It also has two collections of pointers to the traces collected during the run, but these are handled internally by HWSim. 16.860 +\begin{small}\begin{verbatim} 16.861 + netlist = malloc( sizeof(HWSimNetlist) ); 16.862 + 16.863 + numElems = 2; 16.864 + elems = malloc( numElems * sizeof(HWSimElem *) ); 16.865 + 16.866 + numCommPaths = 2; 16.867 + commPaths = malloc( numCommPaths * sizeof(HWSimCommPath *) ); 16.868 + 16.869 + numActivityTypes = 1; 16.870 + activityTypes = malloc( numActivityTypes * sizeof(HWSimActivityType *) ); 16.871 + 16.872 + netlist->numElems = numElems; 16.873 + netlist->elems = elems; 16.874 + netlist->numCommPaths = numCommPaths; 16.875 + netlist->commPaths = commPaths; 16.876 + netlist->numActivityTypes = numActivityTypes; 16.877 + netlist->activityTypes = activityTypes; 16.878 +\end{verbatim}\end{small} 16.879 + 16.880 +Now, create the activity types. During the run, an activity instance is created each time a communication arrives on an in-port. The activity instance is a data structure that points to the activity type. The activity type holds the pointers to the behavior and timing functions. 16.881 +\begin{small}\begin{verbatim} 16.882 + //have to create activity types before create elements 16.883 + //PING_PONG_ACTIVITY is just a #define for readability 16.884 + netlist->activityTypes[PING_PONG_ACTIVITY] = createPingPongActivityType(); 16.885 +\end{verbatim}\end{small} 16.886 + 16.887 +Next, create the elements, and pass the netlist structure to the creator. It will take pointers to activity types out of the netlist and place them into the in-ports of the elements. 16.888 +\begin{small}\begin{verbatim} 16.889 + elems[0] = createAPingPongElem( netlist ); //use activity types from netlist 16.890 + elems[1] = createAPingPongElem( netlist ); 16.891 +\end{verbatim}\end{small} 16.892 + 16.893 +Now, the reset in-port of one of the elements has to be set up to trigger an activity. Every element has a reset in-port, but normally they are set to NULL activity type. Here, we want only one of the two elements to have an activity triggered when the reset signal is sent to start the simulation. 16.894 + 16.895 +Note that during initialization, all the elements become active, each with its own timeline, but unless an activity is triggered in them they remain idle, with their timeline suspended and not making progress. Only ones that have an activity type attached to their reset in-port will begin to do something in simulated time when simulation starts. 16.896 +\begin{small}\begin{verbatim} 16.897 + //make reset trigger an action on one of the elements 16.898 + elems[1]->inPorts[-1].triggeredActivityType = 16.899 + netlist->activityTypes[PING_PONG_ACTIVITY]; 16.900 +\end{verbatim}\end{small} 16.901 + 16.902 +Now, connect the elements together by creating commPath structures. A comm path connects the out-port of one element to the in-port of another. A given port may have many comm paths attached. However, an in-port has only one kind of activity type attached, and all incoming communications fire that same activity. There are multiple kinds of activity, including kinds that have no timing, and so can act as a dispatcher. These end themselves with a continuation activity, which is chosen according to the code in the behavior function. So, a commPath only connects an out port to an in port. 16.903 + 16.904 +This code sets fixed timing on the comm paths. It also uses a macro for setting the connections. The format is: sending elem-index, out-port, dest elem-index, in-port: 16.905 +\begin{small}\begin{verbatim} 16.906 + //elem 0, out-port 0 to elem 1, in-port 0 16.907 + commPaths[0]= malloc(sizeof(HWSimCommPath)); 16.908 + setCommPathValuesTo(commPaths[0],0,0,1,0); 16.909 + commPaths[0]->hasFixedTiming = TRUE; 16.910 + commPaths[0]->fixedFlightTime = 10; //all time is stated in (integer) units 16.911 + 16.912 + //elem 1, out-port 0 to elem 0, in-port 0 16.913 + commPaths[1]= malloc(sizeof(HWSimCommPath)); 16.914 + setCommPathValuesTo(commPaths[1], 1,0,0,0); 16.915 + commPaths[1]->hasFixedTiming = TRUE; 16.916 + commPaths[1]->fixedFlightTime = 10; //all time is stated in (integer) units 16.917 +\end{verbatim}\end{small} 16.918 + 16.919 +done building netlist, return it 16.920 +\begin{small}\begin{verbatim} 16.921 + return netlist; 16.922 + } 16.923 +\end{verbatim}\end{small} 16.924 + 16.925 +The macro that sets the connections inside a comm path struct 16.926 +\begin{small}\begin{verbatim} 16.927 +#define setCommPathValuesTo( commPath, fromElIdx, outPort, toElIdx, inPort)\ 16.928 +do{\ 16.929 + commPath->idxOfFromElem = fromElIdx; \ 16.930 + commPath->idxOfFromOutPort = outPort; \ 16.931 + commPath->idxOfToElem = toElIdx; \ 16.932 + commPath->idxOfToInPort = inPort; \ 16.933 + }while(0); //macro magic for namespace 16.934 +\end{verbatim}\end{small} 16.935 + 16.936 +Creating an element involves creating arrays for the in-ports and out-ports, then configuring the in-ports. The out-ports are automatically filled in during simulation start-up, by HWSim. The most interesting feature is that each in-port is assigned an activity type, which all arriving communications trigger. During the simulation, each incoming communication creates an activity instance, which points to this triggered activity type. The behavior and timing of the instance are calculated by the behavior and timing functions in the activity type. Notice that the activity type pointers are taken from the netlist, so they have to be created before creating the elements. 16.937 +\begin{small}\begin{verbatim} 16.938 +HWSimElem * 16.939 +createAPingPongElem( HWSimNetlist *netlist ) 16.940 + { HWSimElem *elem; 16.941 + elem = malloc( sizeof(HWSimElem) ); 16.942 + elem->numInPorts = 1; 16.943 + elem->numOutPorts = 1; 16.944 + elem->inPorts = HWSim_ext__make_inPortsArray( elem->numInPorts ); 16.945 + elem->inPorts[-1].triggeredActivityType = IDLE_SPAN; //reset port 16.946 + elem->inPorts[0].triggeredActivityType = netlist->activityTypes[PING_PONG_ACTIVITY]; 16.947 + return elem; 16.948 + } 16.949 +\end{verbatim}\end{small} 16.950 + 16.951 +Creating an activity type involves setting the pointers to the behavior and timing functions, which are defined inside a separate directory where all the behavior and timing functions are defined. An activity may have behavior set to NULL, or timing set to NULL, and may have fixed timing. The structure has flags to state the combination. 16.952 +\begin{small}\begin{verbatim} 16.953 +HWSimActivityType * 16.954 +createPingPongActivityType( ) 16.955 + { HWSimActivityType *pingPongActivityType; 16.956 + pingPongActivityType = malloc( sizeof(HWSimActivityType) ); 16.957 + 16.958 + pingPongActivityType->hasBehavior = TRUE; 16.959 + pingPongActivityType->hasTiming = TRUE; 16.960 + pingPongActivityType->timingIsFixed = TRUE; 16.961 + pingPongActivityType->fixedTime = 10; 16.962 + pingPongActivityType->behaviorFn = &pingPongElem_PingActivity_behavior; 16.963 + return pingPongActivityType; 16.964 + } 16.965 +\end{verbatim} \end{small} 16.966 + 16.967 + 16.968 +========= 16.969 + 16.970 +All behavior functions take a ptr to the activity instance they are executing the behavior of. The instance contains a pointer to the elem, and most behaviors will use the element's elemState field. It holds all the persistent state of the element, which remains between activities. 16.971 + 16.972 +Here is the behavior function from the ping-pong example: 16.973 +\begin{small}\begin{verbatim} 16.974 +void 16.975 +pingPongElem_PingActivity_behavior( HWSimActivityInst *activityInst ) 16.976 + { //NO_MSG is #define'd to NULL, and PORT0 to 0 16.977 + HWSim__send_comm_on_port_and_idle( NO_MSG, PORT0, activityInst ); 16.978 + } 16.979 +\end{verbatim}\end{small} 16.980 + 16.981 +There are four ways a behavior can end: 16.982 +\begin{description} 16.983 +\item end, no continuation: 16.984 +\begin{small}\begin{verbatim} HWSim__end_activity_then_idle( HWSimActivityInst *endingActivityInstance )\end{verbatim}\end{small} 16.985 +\item end, with continuation: 16.986 +\begin{small}\begin{verbatim} HWSim__end_activity_then_cont( HWSimActivityInst *endingActivityInstance, 16.987 + HWSimActivityType *continuationActivityType)\end{verbatim}\end{small} 16.988 +\item end by sending a communication, with no continuation: 16.989 +\begin{small}\begin{verbatim} HWSim__send_comm_on_port_then_idle( void *msg, int32 outPort, 16.990 + HWSimActivityInst *endingActivityInstance)\end{verbatim}\end{small} 16.991 +\item end by sending a communication, with continuation: 16.992 +\begin{small}\begin{verbatim} HWSim__send_comm_on_port_then_cont( void *msg, int32 outPort, 16.993 + HWSimActivityInst *endingActivityInstance 16.994 + HWSimActivityType *continuationActivityType)\end{verbatim}\end{small} 16.995 + 16.996 + 16.997 +============= 16.998 + 16.999 + 16.1000 +\subsection{Activity Timing Functions} 16.1001 +All activity timing functions take a ptr to the activity instance they are calculating the timing of. The instance contains a pointer to the element the activity is in. The behavior function is free to communicate to the timing function by leaving special data inside the element state. The timing function might also simply depend on the current state of the element. 16.1002 + 16.1003 +Here's an example: 16.1004 +\begin{small}\begin{verbatim} 16.1005 +HWSimTimeSpan 16.1006 +sampleElem_sampleActivity_timing( HWSimActivityInst *activityInst ) 16.1007 + { 16.1008 + return doSomethingWithStateOfElem( sendingActivity->elem->elemState ); 16.1009 + } 16.1010 +\end{verbatim}\end{small} 16.1011 + 16.1012 +\subsection{Calculating the time-in-flight of a communication path} 16.1013 + 16.1014 +The timing function for a communication path is similar to that of an activity. Except, the timing might also depend on configuration data or state stored inside the comm path struct, so that is passed to the timing function as well. 16.1015 + 16.1016 +\begin{small}\begin{verbatim} 16.1017 +HWSimTimeSpan 16.1018 +commPath_TimeSpanCalc( HWSimCommPath *commPath, HWSimActivityInst *sendingActivity ) 16.1019 + { return doSomethingWithStateOfPathAndElem( commPath, sendingActivity->elem->elemState ); 16.1020 + } 16.1021 +\end{verbatim}\end{small} 16.1022 + 16.1023 + 16.1024 + 16.1025 +
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 17.2 +++ b/0__Papers/bib_for_papers.bib Mon Oct 08 23:03:26 2012 -0700 17.3 @@ -0,0 +1,984 @@ 17.4 +@article{DSLLandscape, 17.5 +author = "Andrew Fall and Joseph Fall", 17.6 +title = "A domain-specific language for models of landscape dynamics", 17.7 +journal = "Ecological Modelling", 17.8 +volume = "141", 17.9 +number = "1–3", 17.10 +pages = "1 - 18", 17.11 +year = "2001", 17.12 +keywords = "Cellular automata", 17.13 +keywords = "Landscape ecology", 17.14 +keywords = "Modelling languages", 17.15 +keywords = "Spatio-temporal simulation" 17.16 +} 17.17 +@misc{PerfToolVTune, 17.18 + author = {Intel}, 17.19 + howpublished = {http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/}, 17.20 + title = {{Intel VTune Amplifier XE Performance Analyzer}}, 17.21 + year = {2011} 17.22 +} 17.23 +@ARTICLE{PerfToolVampir, 17.24 + author = {W. E. Nagel and A. Arnold and M. Weber and H.-Ch. Hoppe and K. Solchenbach}, 17.25 + title = {{VAMPIR: Visualization and Analysis of MPI Resources}}, 17.26 + journal = {Supercomputer}, 17.27 + year = {1996}, 17.28 + volume = {12}, 17.29 + pages = {69--80} 17.30 +} 17.31 +@TECHREPORT{PerfToolParaver, 17.32 + author = {Vincent Pillet and Vincent Pillet and Jesús Labarta and Toni Cortes and Toni Cortes and Sergi Girona and Sergi Girona and Departament D'arquitectura De Computadors}, 17.33 + title = {PARAVER: A Tool to Visualize and Analyze Parallel Code}, 17.34 + institution = {In WoTUG-18}, 17.35 + year = {1995} 17.36 +} 17.37 +@Misc{MPI, 17.38 + author = {Message Passing Interface Forum}, 17.39 + howpublished = {http://www.mpi-forum.org}, 17.40 + title = {{MPI}: A Message-Passing Interface Standard Version 2.2}, 17.41 + year = 2009 17.42 +} 17.43 +@Article{StarSs, 17.44 + author = {Planas, J. and Badia, R.M. and Ayguad{\'e}, E. and Labarta, J.}, 17.45 + title = {Hierarchical task-based programming with {StarSs}}, 17.46 + journal = {International Journal of High Performance Computing Applications}, 17.47 + year = 2009, 17.48 + volume = 23, 17.49 + number = 3, 17.50 + pages = {284--299} 17.51 +} 17.52 +@InBook{PerfToolPoem, 17.53 + title = {The Blind Men and the Elephant}, 17.54 + author = {John Godfrey Saxe}, 17.55 + publisher = {The Poems of John Godfrey Saxe, Complete edition. Boston: James R. Osgood and Company}, 17.56 + year = 1873, 17.57 + pages = {77-78} 17.58 +} 17.59 +@Article{PerfToolTau, 17.60 + author = {Shende, Sameer S. and Malony, Allen D.}, 17.61 + title = {The {TAU} Parallel Performance System}, 17.62 + volume = 20, 17.63 + number = 2, 17.64 + pages = {287-311}, 17.65 + year = {Summer 2006}, 17.66 + journal = {International Journal of High Performance Computing Applications} 17.67 +} 17.68 +@Article{PerfToolParadyn, 17.69 + author = {Miller, B.P. and Callaghan, M.D. and Cargille, J.M. and Hollingsworth, J.K. and Irvin, R.B. and Karavanic, K.L. and Kunchithapadam, K. and Newhall, T.}, 17.70 + journal = {Computer}, 17.71 + title = {The {Paradyn} parallel performance measurement tool}, 17.72 + year = 1995, 17.73 + month = {nov}, 17.74 + volume = 28, 17.75 + number = 11, 17.76 + pages = {37 -46} 17.77 +} 17.78 +@Article{PerfToolParagraph, 17.79 + author = {Heath, M.T. and Etheridge, J.A.}, 17.80 + journal = {Software, IEEE}, 17.81 + title = {Visualizing the performance of parallel programs}, 17.82 + year = 1991, 17.83 + month = {sept. }, 17.84 + volume = 8, 17.85 + number = 5, 17.86 + pages = {29 -39} 17.87 +} 17.88 +@Article{PerfToolStarSs, 17.89 + author = {Steffen Brinkmann and Jos{\'e} Gracia and Christoph Niethammer and Rainer Keller}, 17.90 + title = {{TEMANEJO} - a debugger for task based parallel programming models}, 17.91 + journal = {CoRR}, 17.92 + volume = {abs/1112.4604}, 17.93 + year = 2011 17.94 +} 17.95 +@techrep{SyncConstr_impl_w_distr_coherence_HW_Utah_96, 17.96 + author = {Carter, J. B. and Kuo, C.-C. and Kuramkote, R.}, 17.97 + title = { A comparison of software and hardware synchronization mechanisms for distributed shared memory multiprocessors}, 17.98 + institution = {University of Utah, Salt Lake City, UT}, 17.99 + year = 1996, 17.100 + url = {http://www.cs.utah.edu/research/techreports/1996/pdf/UUCS-96-011.pdf}, 17.101 + number = {UUCS-96-011} 17.102 +} 17.103 +@Article{SWCoherence_Hill_SW_for_shared_coherence_w_HW_support_93, 17.104 + author = {Hill, Mark D. and Larus, James R. and Reinhardt, Steven K. and Wood, David A.}, 17.105 + title = {Cooperative shared memory: software and hardware for scalable multiprocessors}, 17.106 + journal = {ACM Trans. Comput. Syst.}, 17.107 + volume = 11, 17.108 + number = 4, 17.109 + year = 1993, 17.110 + pages = {300--318} 17.111 +} 17.112 +@InProceedings{SWCache_MIT_embedSW_manages_cache_w_HW_supp, 17.113 + author = {Chiou, Derek and Jain, Prabhat and Rudolph, Larry and Devadas, Srinivas}, 17.114 + title = {Application-specific memory management for embedded systems using software-controlled caches}, 17.115 + booktitle = {DAC}, 17.116 + year = 2000, 17.117 + pages = {416--419} 17.118 +} 17.119 +@InProceedings{SWCache_instr_trig_HW_supp_04, 17.120 + author = {Janapsatya, Andhi and Parameswaran, Sri and Ignjatovic, A.}, 17.121 + title = {Hardware/software managed scratchpad memory for embedded system}, 17.122 + booktitle = {Proceedings of the 2004 IEEE/ACM International conference on Computer-aided design}, 17.123 + series = {ICCAD '04}, 17.124 + year = 2004, 17.125 + pages = {370--377} 17.126 +} 17.127 +@InProceedings{SWCache_arch_supp_OS_policy_06, 17.128 + author = {Rafique, Nauman and Lim, Won-Taek and Thottethodi, Mithuna}, 17.129 + title = {Architectural support for operating system-driven CMP cache management}, 17.130 + booktitle = {Proceedings of the 15th international conference on Parallel architectures and compilation techniques}, 17.131 + series = {PACT '06}, 17.132 + year = 2006, 17.133 + pages = {2--12} 17.134 +} 17.135 +@InProceedings{SWCoherence_on_Distr_Mem_90, 17.136 + author = {Bennett, J.K. and Carter, J.B. and Zwaenepoel, W.}, 17.137 + booktitle = {Computer Architecture, 1990. Proceedings., 17th Annual International Symposium on}, 17.138 + title = {Adaptive software cache management for distributed shared memory architectures}, 17.139 + year = 1990, 17.140 + pages = {125 -134} 17.141 +} 17.142 +@InProceedings{Charm_runtime_opt_10, 17.143 + author = {Mei, Chao and Zheng, Gengbin and Gioachin, Filippo and Kal{\'e}, Laxmikant V.}, 17.144 + title = {Optimizing a parallel runtime system for multicore clusters: a case study}, 17.145 + booktitle = {The 2010 TeraGrid Conference}, 17.146 + year = 2010, 17.147 + pages = {12:1--12:8} 17.148 +} 17.149 +@InProceedings{TCC_Hammond_ISCA_04, 17.150 + author = {Hammond, Lance and al, et}, 17.151 + title = {Transactional Memory Coherence and Consistency}, 17.152 + series = {ISCA '04}, 17.153 + pages = {102--}, 17.154 + booktitle = {}, 17.155 + year = {} 17.156 +} 17.157 +@Misc{WorkTableHome, 17.158 + author = {Halle, Sean}, 17.159 + note = {http://musictwodotoh.com/worktable/content/refman.pdf}, 17.160 + title = {The WorkTable Language Reference Manual}, 17.161 + year = 2012 17.162 +} 17.163 +@Misc{HWSimHome, 17.164 + author = {Halle, Sean and Hausers, Stefan}, 17.165 + note = {http://musictwodotoh.com/hwsim/content/refman.pdf}, 17.166 + title = {The HWSim Language Reference Manual}, 17.167 + year = 2012 17.168 +} 17.169 +@Article{Lamport78, 17.170 + author = {Lamport, Leslie}, 17.171 + title = {Time, clocks, and the ordering of events in a distributed system}, 17.172 + journal = {Commun. ACM}, 17.173 + volume = 21, 17.174 + issue = 7, 17.175 + year = 1978, 17.176 + pages = {558--565} 17.177 +} 17.178 +@Article{Lamport87, 17.179 + author = {Lamport, Leslie}, 17.180 + title = {A fast mutual exclusion algorithm}, 17.181 + journal = {ACM Trans. Comput. Syst.}, 17.182 + volume = 5, 17.183 + issue = 1, 17.184 + year = 1987, 17.185 + pages = {1--11} 17.186 +} 17.187 +@InProceedings{Dijkstra67, 17.188 + author = {Dijkstra, Edsger W.}, 17.189 + title = {The structure of the "{THE}"-multiprogramming system}, 17.190 + booktitle = {Proceedings of the first ACM symposium on Operating System Principles}, 17.191 + series = {SOSP '67}, 17.192 + year = 1967, 17.193 + pages = {10.1--10.6} 17.194 +} 17.195 +@Article{Conway63, 17.196 + author = {Conway, Melvin E.}, 17.197 + title = {Design of a separable transition-diagram compiler}, 17.198 + journal = {Commun. ACM}, 17.199 + volume = 6, 17.200 + issue = 7, 17.201 + year = 1963, 17.202 + pages = {396--408} 17.203 +} 17.204 +@Book{ComponentModel00, 17.205 + author = {G Leavens and M Sitaraman (eds)}, 17.206 + title = {Foundations of Component-Based Systems}, 17.207 + publisher = {Cambridge University Press}, 17.208 + year = 2000 17.209 +} 17.210 +@Misc{Hewitt10, 17.211 + author = {Carl Hewitt}, 17.212 + title = {Actor Model of Computation}, 17.213 + year = 2010, 17.214 + note = {http://arxiv.org/abs/1008.1459} 17.215 +} 17.216 +@Article{Actors97, 17.217 + author = {Agha,G. and Mason,I. and Smith,S. and Talcott,C.}, 17.218 + title = {A foundation for actor computation}, 17.219 + journal = {Journal of Functional Programming}, 17.220 + volume = 7, 17.221 + number = 01, 17.222 + pages = {1-72}, 17.223 + year = 1997 17.224 +} 17.225 +@Article{SchedActivations, 17.226 + author = {Anderson, Thomas E. and Bershad, Brian N. and Lazowska, Edward D. and Levy, Henry M.}, 17.227 + title = {Scheduler activations: effective kernel support for the user-level management of parallelism}, 17.228 + journal = {ACM Trans. Comput. Syst.}, 17.229 + volume = 10, 17.230 + issue = 1, 17.231 + month = {February}, 17.232 + year = 1992, 17.233 + pages = {53--79} 17.234 +} 17.235 +@InProceedings{BOMinManticore, 17.236 + author = {Fluet, Matthew and Rainey, Mike and Reppy, John and Shaw, Adam and Xiao, Yingqi}, 17.237 + title = {Manticore: a heterogeneous parallel language}, 17.238 + booktitle = {Proceedings of the 2007 workshop on Declarative aspects of multicore programming}, 17.239 + series = {DAMP '07}, 17.240 + year = 2007, 17.241 + pages = {37--44}, 17.242 + numpages = 8 17.243 +} 17.244 +@TechReport{GainFromChaos_Halle_92, 17.245 + author = {Halle, K.S. and Chua, Leon O. and Anishchenko, V.S. and Safonova, M.A.}, 17.246 + title = {Signal Amplification via Chaos: Experimental Evidence}, 17.247 + institution = {EECS Department, University of California, Berkeley}, 17.248 + year = 1992, 17.249 + url = {http://www.eecs.berkeley.edu/Pubs/TechRpts/1992/2223.html}, 17.250 + number = {UCB/ERL M92/130} 17.251 +} 17.252 +@InProceedings{HotPar10_w_BLIS, 17.253 + author = {Sean Halle and Albert Cohen}, 17.254 + booktitle = {HOTPAR '10: USENIX Workshop on Hot Topics in Parallelism}, 17.255 + month = {June}, 17.256 + title = {Leveraging Semantics Attached to Function Calls to Isolate Applications from Hardware}, 17.257 + year = 2010 17.258 +} 17.259 +@InProceedings{HotPar11_w_Stack, 17.260 + author = {Sean Halle and Albert Cohen}, 17.261 + booktitle = {HOTPAR '11: USENIX Workshop on Hot Topics in Parallelism}, 17.262 + month = {May}, 17.263 + title = {}, 17.264 + year = 2011 17.265 +} 17.266 +@Article{VMS_LCPC_11, 17.267 + author = {Sean Halle and Albert Cohen}, 17.268 + title = {A Mutable Hardware Abstraction to Replace Threads}, 17.269 + journal = {24th International Workshop on Languages and Compilers for Parallel Languages (LCPC11)}, 17.270 + year = 2011 17.271 +} 17.272 +@Misc{StackTechRep_10, 17.273 + author = {Halle, Sean and Nadezhkin, Dmitry and Cohen, Albert}, 17.274 + note = {http://www.soe.ucsc.edu/share/technical-reports/2010/ucsc-soe-10-02.pdf}, 17.275 + title = {A Framework to Support Research on Portable High Performance Parallelism}, 17.276 + year = 2010 17.277 +} 17.278 +@Misc{CTBigStepSemTechRep_06, 17.279 + author = {Halle, Sean}, 17.280 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-11.pdf}, 17.281 + title = {The Big-Step Operational Semantics of CodeTime Circuits}, 17.282 + year = 2006 17.283 +} 17.284 +@Misc{MentalFrameworkTechRep_06, 17.285 + author = {Halle, Sean}, 17.286 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-12.pdf}, 17.287 + title = {A Mental Framework for use in Creating Hardware Independent Parallel Languages}, 17.288 + year = 2006 17.289 +} 17.290 +@Misc{DKUTechRep_09, 17.291 + author = {Halle, Sean and Cohen, Albert}, 17.292 + note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-06.pdf}, 17.293 + title = {DKU Pattern for Performance Portable Parallel Software}, 17.294 + year = 2009 17.295 +} 17.296 +@Misc{EQNLangTechRep, 17.297 + author = {Halle, Sean}, 17.298 + note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-16.pdf}, 17.299 + title = {An Extensible Parallel Language}, 17.300 + year = 2009 17.301 +} 17.302 +@Misc{CTOSTechRep, 17.303 + author = {Halle, Sean}, 17.304 + note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-15.pdf}, 17.305 + title = {A Hardware-Independent Parallel Operating System Abstraction LayerParallelism}, 17.306 + year = 2009 17.307 +} 17.308 +@Misc{SideEffectsTechRep, 17.309 + author = {Halle, Sean and Cohen, Albert}, 17.310 + note = {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-14.pdf}, 17.311 + title = {Parallel Language Extensions for Side Effects}, 17.312 + year = 2009 17.313 +} 17.314 +@Misc{BaCTiLTechRep, 17.315 + author = {Halle, Sean}, 17.316 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-08.pdf}, 17.317 + title = {BaCTiL: Base CodeTime Language}, 17.318 + year = 2006 17.319 +} 17.320 +@Misc{CTPlatformTechRep, 17.321 + author = {Halle, Sean}, 17.322 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-09.pdf}, 17.323 + title = {The Elements of the CodeTime Software Platform}, 17.324 + year = 2006 17.325 +} 17.326 +@Misc{CTRTTechRep, 17.327 + author = {Halle, Sean}, 17.328 + note = {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-10.pdf}, 17.329 + title = {A Scalable and Efficient Peer-to-Peer Run-Time System for a Hardware Independent Software Platform}, 17.330 + year = 2006 17.331 +} 17.332 +@Misc{CIPTechRep, 17.333 + author = {Halle, Sean}, 17.334 + note = {http://www.soe.ucsc.edu/share/technical-reports/2005/ucsc-crl-05-05.pdf}, 17.335 + title = {The Case for an Integrated Software Platform for HEC Illustrated Using the CodeTime Platform}, 17.336 + year = 2005 17.337 +} 17.338 +@Misc{Halle2008, 17.339 + author = {Sean Halle and Albert Cohen}, 17.340 + note = {http://omp.musictwodotoh.com}, 17.341 + title = {{DKU} infrastructure server} 17.342 +} 17.343 +@Misc{DKUSourceForge, 17.344 + author = {Sean Halle and Albert Cohen}, 17.345 + month = {November}, 17.346 + note = {http://dku.sourceforge.net}, 17.347 + title = {{DKU} website}, 17.348 + year = 2008 17.349 +} 17.350 +@Misc{BLISHome, 17.351 + author = {Sean Halle and Albert Cohen}, 17.352 + month = {November}, 17.353 + note = {http://blisplatform.sourceforge.net}, 17.354 + title = {{BLIS} website}, 17.355 + year = 2008 17.356 +} 17.357 +@Misc{VMSHome, 17.358 + author = {Sean Halle and Merten Sach and Ben Juurlink and Albert Cohen}, 17.359 + note = {http://virtualizedmasterslave.org}, 17.360 + title = {{VMS} Home Page}, 17.361 + year = 2010 17.362 +} 17.363 +@Misc{PStackHome, 17.364 + author = {Sean Halle}, 17.365 + note = {http://pstack.sourceforge.net}, 17.366 + title = {{PStack} Home Page}, 17.367 + year = 2012 17.368 +} 17.369 +@Misc{DeblockingCode, 17.370 + note = {http://dku.svn.sourceforge.net/viewvc/dku/branches/DKU\_C\_\_Deblocking\_\_orig/}, 17.371 + title = {{DKU-ized Deblocking Filter} code} 17.372 +} 17.373 +@Misc{SampleBLISCode, 17.374 + note = {http://dku.sourceforge.net/SampleCode.htm}, 17.375 + title = {{Sample BLIS Code}} 17.376 +} 17.377 +@Misc{OMPHome, 17.378 + note = {http://www.openmediaplatform.eu/}, 17.379 + title = {{Open Media Platform} homepage} 17.380 +} 17.381 +@Misc{MapReduceHome, 17.382 + author = {Google Corp.}, 17.383 + note = {http://labs.google.com/papers/mapreduce.html}, 17.384 + title = {{MapReduce} Home page} 17.385 +} 17.386 +@Misc{TBBHome, 17.387 + author = {Intel Corp.}, 17.388 + note = {http://www.threadingbuildingblocks.org}, 17.389 + title = {{TBB} Home page} 17.390 +} 17.391 +@Misc{HPFWikipedia, 17.392 + author = {Wikipedia}, 17.393 + note = {http://en.wikipedia.org/wiki/High_Performance_Fortran}, 17.394 + title = {{HPF} wikipedia page} 17.395 +} 17.396 +@Misc{OpenMPHome, 17.397 + author = {{OpenMP} organization}, 17.398 + note = {http://www.openmp.org}, 17.399 + title = {{OpenMP} Home page} 17.400 +} 17.401 +@Misc{MPIHome, 17.402 + author = {open-mpi organization}, 17.403 + note = {http://www.open-mpi.org}, 17.404 + title = {{Open MPI} Home page} 17.405 +} 17.406 +@Misc{OpenCLHome, 17.407 + author = {Kronos Group}, 17.408 + note = {http://www.khronos.org/opencl}, 17.409 + title = {{OpenCL} Home page} 17.410 +} 17.411 +@Misc{CILKHome, 17.412 + author = {Cilk group at MIT}, 17.413 + note = {http://supertech.csail.mit.edu/cilk/}, 17.414 + title = {{CILK} homepage} 17.415 +} 17.416 +@InProceedings{Fri98, 17.417 + author = {M. Frigo and C. E. Leiserson and K. H. Randall}, 17.418 + title = {The Implementation of the Cilk-5 Multithreaded Language}, 17.419 + booktitle = {PLDI '98: Proceedings of the 1998 ACM SIGPLAN conference on Programming language design and implementation}, 17.420 + pages = {212--223}, 17.421 + year = 1998, 17.422 + address = {Montreal, Quebec}, 17.423 + month = jun 17.424 +} 17.425 +@Misc{TitaniumHome, 17.426 + note = {http://titanium.cs.berkeley.edu}, 17.427 + title = {{Titanium} homepage} 17.428 +} 17.429 +@InProceedings{CnCInHotPar, 17.430 + author = {Knobe, Kathleen}, 17.431 + booktitle = {HOTPAR '09: USENIX Workshop on Hot Topics in Parallelism}, 17.432 + title = {Ease of Use with Concurrent Collections {(CnC)}}, 17.433 + year = 2009 17.434 +} 17.435 +@Misc{CnCHome, 17.436 + author = {Intel Corp.}, 17.437 + note = {http://software.intel.com/en-us/articles/intel-concurrent-collections-for-cc/}, 17.438 + title = {{CnC} homepage} 17.439 +} 17.440 +@Misc{SpiralHome, 17.441 + author = {Spiral Group at CMU}, 17.442 + note = {http://www.spiral.net}, 17.443 + title = {{Spiral} homepage} 17.444 +} 17.445 +@Misc{ScalaHome, 17.446 + author = {Scala organization}, 17.447 + note = {http://www.scala-lang.org/}, 17.448 + title = {{Scala} homepage} 17.449 +} 17.450 +@Misc{UPCHome, 17.451 + author = {UPC group at UC Berkeley}, 17.452 + note = {http://upc.lbl.gov/}, 17.453 + title = {{Unified Parallel C} homepage} 17.454 +} 17.455 +@Misc{SuifHome, 17.456 + note = {http://suif.stanford.edu}, 17.457 + title = {{Suif} Parallelizing compiler homepage} 17.458 +} 17.459 +@Article{SEJITS, 17.460 + author = {B. Catanzaro and S. Kamil and Y. Lee and K. Asanovic and J. Demmel and K. Keutzer and J. Shalf and K. Yelick and A. Fox}, 17.461 + title = {SEJITS: Getting Productivity AND Performance With Selective Embedded JIT Specialization}, 17.462 + journal = {First Workshop on Programmable Models for Emerging Architecture at the 18th International Conference on Parallel Architectures and Compilation Techniques }, 17.463 + year = 2009 17.464 +} 17.465 +@InProceedings{Arnaldo3D, 17.466 + author = {Azevedo, Arnaldo and Meenderinck, Cor and Juurlink, Ben and Terechko, Andrei and Hoogerbrugge, Jan and Alvarez, Mauricio and Ramirez, Alex}, 17.467 + title = {Parallel H.264 Decoding on an Embedded Multicore Processor}, 17.468 + booktitle = {HiPEAC '09: Proceedings of the 4th International Conference on High Performance Embedded Architectures and Compilers}, 17.469 + year = 2009, 17.470 + pages = {404--418} 17.471 +} 17.472 +@Article{NarayananGPUSched, 17.473 + author = {Narayanan Sundaram and Anand Raghunathan and Srimat T. Chakradhar}, 17.474 + title = {A framework for efficient and scalable execution of domain-specific templates on GPUs}, 17.475 + journal = {International Parallel and Distributed Processing Symposium {(IPDPS)}}, 17.476 + year = 2009, 17.477 + pages = {1-12} 17.478 +} 17.479 +@InProceedings{PolyForGPU, 17.480 + author = {Baskaran, Muthu Manikandan and Bondhugula, Uday and Krishnamoorthy, Sriram and Ramanujam, J. and Rountev, Atanas and Sadayappan, P.}, 17.481 + title = {A compiler framework for optimization of affine loop nests for gpgpus}, 17.482 + booktitle = {ICS '08: Proceedings of the 22nd annual international conference on Supercomputing}, 17.483 + year = 2008, 17.484 + pages = {225--234} 17.485 +} 17.486 +@InProceedings{Loulou08, 17.487 + author = {Pouchet, Louis-No\"{e}l and Bastoul, C\'{e}dric and Cohen, Albert and Cavazos, John}, 17.488 + title = {Iterative optimization in the polyhedral model: part ii, multidimensional time}, 17.489 + booktitle = {ACM SIGPLAN conference on Programming language design and implementation {(PLDI)} }, 17.490 + year = 2008, 17.491 + pages = {90--100} 17.492 +} 17.493 +@InProceedings{MergeInHotPar, 17.494 + author = {Michael D. Linderman and James Balfour and Teresa H. Meng and William J. Dally}, 17.495 + booktitle = {HOTPAR '09: USENIX Workshop on Hot Topics in Parallelism}, 17.496 + month = {March}, 17.497 + title = {Embracing Heterogeneity \- Parallel Programming for Changing Hardware}, 17.498 + year = 2009 17.499 +} 17.500 +@InProceedings{GaloisRef, 17.501 + author = {Kulkarni, Milind and Pingali, Keshav and Walter, Bruce and Ramanarayanan, Ganesh and Bala, Kavita and Chew, L. Paul}, 17.502 + title = {Optimistic parallelism requires abstractions}, 17.503 + booktitle = {PLDI '07: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation}, 17.504 + year = 2007, 17.505 + pages = {211--222} 17.506 +} 17.507 +@Book{Allen2002, 17.508 + author = {Kennedy, Ken and Allen, John R.}, 17.509 + title = {Optimizing compilers for modern architectures: a dependence-based approach}, 17.510 + year = 2002, 17.511 + publisher = {Morgan Kaufmann Publishers Inc.} 17.512 +} 17.513 +@Misc{Stephens95, 17.514 + author = {R. Stephens}, 17.515 + title = {A Survey Of Stream Processing}, 17.516 + year = 1995 17.517 +} 17.518 +@InProceedings{Palatin06, 17.519 + author = {P Palatin and Y Lhuillier and O Temam}, 17.520 + title = {CAPSULE: Hardware-assisted parallel execution of componentbased programs}, 17.521 + booktitle = {In Proceedings of the 39th Annual International Symposium on Microarchitecture}, 17.522 + year = 2006, 17.523 + pages = {247--258} 17.524 +} 17.525 +@InProceedings{Sequioa06, 17.526 + author = {Fatahalian,, Kayvon and Horn,, Daniel Reiter and Knight,, Timothy J. and Leem,, Larkhoon and Houston,, Mike and Park,, Ji Young and Erez,, Mattan and Ren,, Manman and Aiken,, Alex and Dally,, William J. and Hanrahan,, Pat}, 17.527 + title = {Sequoia: programming the memory hierarchy}, 17.528 + booktitle = {SC '06: Proceedings of the 2006 ACM/IEEE conference on Supercomputing}, 17.529 + year = 2006, 17.530 + pages = 83 17.531 +} 17.532 +@Book{Cole89, 17.533 + author = {M Cole}, 17.534 + title = {Algorithmic skeletons: Structured management of parallel computation}, 17.535 + publisher = {Pitman}, 17.536 + year = 1989 17.537 +} 17.538 +@InProceedings{Ginhac98, 17.539 + author = {Dominique Ginhac and Jocelyn Serot and Jean Pierre Derutin}, 17.540 + title = {Fast prototyping of image processing applications using functional skeletons on a MIMD-DM architecture}, 17.541 + booktitle = {In IAPR Workshop on Machine Vision and Applications}, 17.542 + year = 1998, 17.543 + pages = {468--471} 17.544 +} 17.545 +@InProceedings{Serot08MetaParallel, 17.546 + author = {Serot, Jocelyn and Falcou, Joel}, 17.547 + title = {Functional Meta-programming for Parallel Skeletons}, 17.548 + booktitle = {ICCS '08: Proceedings of the 8th international conference on Computational Science, Part I}, 17.549 + year = 2008, 17.550 + pages = {154--163} 17.551 +} 17.552 +@InProceedings{Darlington93, 17.553 + author = {J. Darlington and A. J. Field and P. G. Harrison and P. H. J. Kelly and D. W. N. Sharp and Q. Wu}, 17.554 + title = {Parallel programming using skeleton functions}, 17.555 + booktitle = {}, 17.556 + year = 1993, 17.557 + pages = {146--160}, 17.558 + publisher = {Springer-Verlag} 17.559 +} 17.560 +@Article{Asanovic06BerkeleyView, 17.561 + title = {{The landscape of parallel computing research: A view from berkeley}}, 17.562 + author = {Asanovic, K. and Bodik, R. and Catanzaro, B.C. and Gebis, J.J. and Husbands, P. and Keutzer, K. and Patterson, D.A. and Plishker, W.L. and Shalf, J. and Williams, S.W. and others}, 17.563 + journal = {Electrical Engineering and Computer Sciences, University of California at Berkeley, Technical Report No. UCB/EECS-2006-183, December}, 17.564 + volume = 18, 17.565 + number = {2006-183}, 17.566 + pages = 19, 17.567 + year = 2006 17.568 +} 17.569 +@Misc{BerkeleyPattLang, 17.570 + note = {http://parlab.eecs.berkeley.edu/wiki/patterns}, 17.571 + title = {{Berkeley Pattern Language}} 17.572 +} 17.573 +@Book{Mattson04Patterns, 17.574 + title = {{Patterns for parallel programming}}, 17.575 + author = {Mattson, T. and Sanders, B. and Massingill, B.}, 17.576 + year = 2004, 17.577 + publisher = {Addison-Wesley Professional} 17.578 +} 17.579 +@Article{Skillicorn98, 17.580 + title = {{Models and languages for parallel computation}}, 17.581 + author = {Skillicorn, D.B. and Talia, D.}, 17.582 + journal = {ACM Computing Surveys (CSUR)}, 17.583 + volume = 30, 17.584 + number = 2, 17.585 + pages = {123--169}, 17.586 + year = 1998 17.587 +} 17.588 +@Conference{Blelloch93NESL, 17.589 + title = {{Implementation of a portable nested data-parallel language}}, 17.590 + author = {Blelloch, G.E. and Hardwick, J.C. and Chatterjee, S. and Sipelstein, J. and Zagha, M.}, 17.591 + booktitle = {Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming}, 17.592 + pages = {102--111}, 17.593 + year = 1993, 17.594 + organization = {ACM New York, NY, USA} 17.595 +} 17.596 +@Article{McgrawSisal, 17.597 + title = {{SISAL: Streams and iteration in a single assignment language: Reference manual version 1.2}}, 17.598 + author = {McGraw, J. and Skedzielewski, SK and Allan, SJ and Oldehoeft, RR and Glauert, J. and Kirkham, C. and Noyce, B. and Thomas, R.}, 17.599 + journal = {Manual M-146, Rev}, 17.600 + volume = 1 17.601 +} 17.602 +@Article{Gelernter85Linda, 17.603 + title = {{Generative communication in Linda}}, 17.604 + author = {Gelernter, D.}, 17.605 + journal = {ACM Transactions on Programming Languages and Systems (TOPLAS)}, 17.606 + volume = 7, 17.607 + number = 1, 17.608 + pages = {80--112}, 17.609 + year = 1985 17.610 +} 17.611 +@Article{Lin94ZPL, 17.612 + title = {{ZPL: An array sublanguage}}, 17.613 + author = {Lin, C. and Snyder, L.}, 17.614 + journal = {Lecture Notes in Computer Science}, 17.615 + volume = 768, 17.616 + pages = {96--114}, 17.617 + year = 1994 17.618 +} 17.619 +@Article{baecker97, 17.620 + author = {Ron Baecker and Chris DiGiano and Aaron Marcus}, 17.621 + title = {Software visualization for debugging}, 17.622 + journal = {Communications of the ACM}, 17.623 + volume = 40, 17.624 + number = 4, 17.625 + year = 1997, 17.626 + issn = {0001-0782}, 17.627 + pages = {44--54}, 17.628 + publisher = {ACM Press} 17.629 +} 17.630 +@Article{ball96, 17.631 + author = {T. A. Ball and S. G. Eick}, 17.632 + title = {Software Visualization in the Large}, 17.633 + journal = {IEEE Computer}, 17.634 + volume = 29, 17.635 + number = 4, 17.636 + year = 1996, 17.637 + month = {apr}, 17.638 + pages = {33--43} 17.639 +} 17.640 +@Book{berry89, 17.641 + title = {{The chemical abstract machine}}, 17.642 + author = {Berry, G. and Boudol, G.}, 17.643 + year = 1989, 17.644 + publisher = {ACM Press} 17.645 +} 17.646 +@Article{blumofe95, 17.647 + author = {Robert D. Blumofe and Christopher F. Joerg and Bradley C. Kuszmaul and Charles E. Leiserson and Keith H. Randall and Yuli Zhou}, 17.648 + title = {Cilk: an efficient multithreaded runtime system}, 17.649 + journal = {SIGPLAN Not.}, 17.650 + volume = 30, 17.651 + number = 8, 17.652 + year = 1995, 17.653 + pages = {207--216} 17.654 +} 17.655 +@Article{burch90, 17.656 + title = {{Symbolic model checking: 10^{20} states and beyond}}, 17.657 + author = {Burch, JR and Clarke, EM and McMillan, KL and Dill, DL and Hwang, LJ}, 17.658 + journal = {Logic in Computer Science, 1990. LICS'90, Proceedings}, 17.659 + pages = {428--439}, 17.660 + year = 1990 17.661 +} 17.662 +@Article{chamberlain98, 17.663 + author = {B. Chamberlain and S. Choi and E. Lewis and C. Lin and L. Snyder and W. Weathersby}, 17.664 + title = {ZPL's WYSIWYG Performance Model}, 17.665 + journal = {hips}, 17.666 + volume = 00, 17.667 + year = 1998, 17.668 + isbn = {0-8186-8412-7}, 17.669 + pages = 50 17.670 +} 17.671 +@Article{church41, 17.672 + author = {A. Church}, 17.673 + title = {The Calculi of Lambda-Conversion}, 17.674 + journal = {Annals of Mathematics Studies}, 17.675 + number = 6, 17.676 + year = 1941, 17.677 + publisher = {Princeton University} 17.678 +} 17.679 +@Misc{CodeTimeSite, 17.680 + author = {Sean Halle}, 17.681 + key = {CodeTime}, 17.682 + title = {Homepage for The CodeTime Parallel Software Platform}, 17.683 + note = {{\ttfamily http://codetime.sourceforge.net}} 17.684 +} 17.685 +@Misc{CodeTimePlatform, 17.686 + author = {Sean Halle}, 17.687 + key = {CodeTime}, 17.688 + title = {The CodeTime Parallel Software Platform}, 17.689 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Platform.pdf}} 17.690 +} 17.691 +@Misc{CodeTimeVS, 17.692 + author = {Sean Halle}, 17.693 + key = {CodeTime}, 17.694 + title = {The Specification of the CodeTime Platform's Virtual Server}, 17.695 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Virtual\_Server.pdf}} 17.696 +} 17.697 +@Misc{CodeTimeOS, 17.698 + author = {Sean Halle}, 17.699 + key = {CodeTime}, 17.700 + title = {A Hardware Independent OS}, 17.701 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_OS.pdf}} 17.702 +} 17.703 +@Misc{CodeTimeSem, 17.704 + author = {Sean Halle}, 17.705 + key = {CodeTime}, 17.706 + title = {The Big-Step Operational Semantics of the CodeTime Computational Model}, 17.707 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Semantics.pdf}} 17.708 +} 17.709 +@Misc{CodeTimeTh, 17.710 + author = {Sean Halle}, 17.711 + key = {CodeTime}, 17.712 + title = {A Mental Framework for Use in Creating Hardware-Independent Parallel Languages}, 17.713 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTiime\_Theoretical\_Framework.pdf}} 17.714 +} 17.715 +@Misc{CodeTimeTh1, 17.716 + author = {Sean Halle}, 17.717 + key = {CodeTime}, 17.718 + title = {The CodeTime Parallel Software Platform}, 17.719 + note = {{\ttfamily http://codetime.sourceforge.net}} 17.720 +} 17.721 +@Misc{CodeTimeTh2, 17.722 + author = {Sean Halle}, 17.723 + key = {CodeTime}, 17.724 + title = {The CodeTime Parallel Software Platform}, 17.725 + note = {{\ttfamily http://codetime.sourceforge.net}} 17.726 +} 17.727 +@Misc{CodeTimeRT, 17.728 + author = {Sean Halle}, 17.729 + key = {CodeTime}, 17.730 + title = {The CodeTime Parallel Software Platform}, 17.731 + note = {{\ttfamily http://codetime.sourceforge.net}} 17.732 +} 17.733 +@Misc{CodeTimeWebSite, 17.734 + author = {Sean Halle}, 17.735 + key = {CodeTime}, 17.736 + title = {The CodeTime Parallel Software Platform}, 17.737 + note = {{\ttfamily http://codetime.sourceforge.net}} 17.738 +} 17.739 +@Misc{CodeTimeBaCTiL, 17.740 + author = {Sean Halle}, 17.741 + key = {CodeTime}, 17.742 + title = {The Base CodeTime Language}, 17.743 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_BaCTiL.pdf}} 17.744 +} 17.745 +@Misc{CodeTimeCert, 17.746 + author = {Sean Halle}, 17.747 + key = {CodeTime}, 17.748 + title = {The CodeTime Certification Strategy}, 17.749 + note = {{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Certification.pdf}} 17.750 +} 17.751 +@InProceedings{ducournau94, 17.752 + author = {R. Ducournau and M. Habib and M. Huchard and M. L. Mugnier}, 17.753 + title = {Proposal for a monotonic multiple inheritance linearization}, 17.754 + booktitle = {OOPSLA '94: Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications}, 17.755 + year = 1994, 17.756 + pages = {164--175}, 17.757 + publisher = {ACM Press} 17.758 +} 17.759 +@Article{emerson91, 17.760 + title = {{Tree automata, mu-calculus and determinacy}}, 17.761 + author = {Emerson, EA and Jutla, CS}, 17.762 + journal = {Proceedings of the 32nd Symposium on Foundations of Computer Science}, 17.763 + pages = {368--377}, 17.764 + year = 1991 17.765 +} 17.766 +@Article{fortune78, 17.767 + title = {{Parallelism in random access machines}}, 17.768 + author = {Fortune, S. and Wyllie, J.}, 17.769 + journal = {STOC '78: Proceedings of the tenth annual ACM symposium on Theory of computing}, 17.770 + pages = {114--118}, 17.771 + year = 1978, 17.772 + publisher = {ACM Press New York, NY, USA} 17.773 +} 17.774 +@Book{goldberg83, 17.775 + title = {{Smalltalk-80: the language and its implementation}}, 17.776 + author = {Goldberg, A. and Robson, D.}, 17.777 + year = 1983, 17.778 + publisher = {Addison-Wesley} 17.779 +} 17.780 +@InProceedings{goldschlager78, 17.781 + author = {Leslie M. Goldschlager}, 17.782 + title = {A unified approach to models of synchronous parallel machines}, 17.783 + booktitle = {STOC '78: Proceedings of the tenth annual ACM symposium on Theory of computing}, 17.784 + year = 1978, 17.785 + pages = {89--94}, 17.786 + location = {San Diego, California, United States}, 17.787 + doi = {http://doi.acm.org/10.1145/800133.804336}, 17.788 + publisher = {ACM Press} 17.789 +} 17.790 +@Book{gosling96, 17.791 + author = {J. Gosling and B. Joy and G. Steele and G. Bracha}, 17.792 + title = {The Java Language Specification}, 17.793 + publisher = {Addison-Wesley}, 17.794 + year = 1996 17.795 +} 17.796 +@Article{hasselbring00, 17.797 + author = {Wilhelm Hasselbring}, 17.798 + title = {Programming languages and systems for prototyping concurrent applications}, 17.799 + journal = {ACM Comput. Surv.}, 17.800 + volume = 32, 17.801 + number = 1, 17.802 + year = 2000, 17.803 + issn = {0360-0300}, 17.804 + pages = {43--79}, 17.805 + doi = {http://doi.acm.org/10.1145/349194.349199}, 17.806 + publisher = {ACM Press}, 17.807 + address = {New York, NY, USA} 17.808 +} 17.809 +@Article{hoare78, 17.810 + author = {C. A. R. Hoare}, 17.811 + title = {Communicating Sequential Processes}, 17.812 + journal = {Communications of the ACM}, 17.813 + year = 1978, 17.814 + volume = 21, 17.815 + number = 8, 17.816 + pages = {666-677} 17.817 +} 17.818 +@Article{huth, 17.819 + title = {{A Unifying Framework for Model Checking Labeled Kripke Structures, Modal Transition Systems, and Interval Transition Systems}}, 17.820 + author = {Huth, M.}, 17.821 + journal = {Proceedings of the 19th International Conference on the Foundations of Software Technology \& Theoretical Computer Science, Lecture Notes in Computer Science}, 17.822 + pages = {369--380}, 17.823 + publisher = {Springer-Verlag} 17.824 +} 17.825 +@Article{johnston04, 17.826 + author = {Wesley M. Johnston and J. R. Paul Hanna and Richard J. Millar}, 17.827 + title = {Advances in dataflow programming languages}, 17.828 + journal = {ACM Comput. Surv.}, 17.829 + volume = 36, 17.830 + number = 1, 17.831 + year = 2004, 17.832 + issn = {0360-0300}, 17.833 + pages = {1--34}, 17.834 + doi = {http://doi.acm.org/10.1145/1013208.1013209}, 17.835 + publisher = {ACM Press}, 17.836 + address = {New York, NY, USA} 17.837 +} 17.838 +@Book{koelbel93, 17.839 + author = {C. H. Koelbel and D. Loveman and R. Schreiber and G. Steele Jr}, 17.840 + title = {High Performance Fortran Handbook}, 17.841 + year = 1993, 17.842 + publisher = {MIT Press} 17.843 +} 17.844 +@Article{kozen83, 17.845 + title = {{Results on the Propositional mu-Calculus}}, 17.846 + author = {Kozen, D.}, 17.847 + journal = {TCS}, 17.848 + volume = 27, 17.849 + pages = {333--354}, 17.850 + year = 1983 17.851 +} 17.852 +@Article{kripke63, 17.853 + title = {{Semantical analysis of modal logic}}, 17.854 + author = {Kripke, S.}, 17.855 + journal = {Zeitschrift fur Mathematische Logik und Grundlagen der Mathematik}, 17.856 + volume = 9, 17.857 + pages = {67--96}, 17.858 + year = 1963 17.859 +} 17.860 +@Book{mcGraw85, 17.861 + author = {J McGraw and S. Skedzielewski and S. Allan and R Odefoeft}, 17.862 + title = {SISAL: Streams and Iteration in a Single-Assignment Language: Reference Manual Version 1.2}, 17.863 + note = {Manual M-146 Rev. 1}, 17.864 + publisher = {Lawrence Livermore National Laboratory}, 17.865 + year = 1985 17.866 +} 17.867 +@Book{milner80, 17.868 + title = {{A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science}}, 17.869 + author = {Milner, R.}, 17.870 + year = 1980, 17.871 + publisher = {Springer-Verlag} 17.872 +} 17.873 +@Article{milner92, 17.874 + title = {{A calculus of mobile processes, parts I and II}}, 17.875 + author = {Milner, R. and Parrow, J. and Walker, D.}, 17.876 + journal = {Information and Computation}, 17.877 + volume = 100, 17.878 + number = 1, 17.879 + pages = {1--40 and 41--77}, 17.880 + year = 1992, 17.881 + publisher = {Academic Press} 17.882 +} 17.883 +@Book{milner99, 17.884 + author = {Robin Milner}, 17.885 + title = {Communicating and Mobile Systems: The pi-Calculus}, 17.886 + publisher = {Cambridge University Press}, 17.887 + year = 1999 17.888 +} 17.889 +@Book{MPIForum94, 17.890 + author = {M. P. I. Forum}, 17.891 + title = {MPI: A Message-Passing Interface Standard}, 17.892 + year = 1994 17.893 +} 17.894 +@Article{petri62, 17.895 + title = {{Fundamentals of a theory of asynchronous information flow}}, 17.896 + author = {Petri, C.A.}, 17.897 + journal = {Proc. IFIP Congress}, 17.898 + volume = 62, 17.899 + pages = {386--390}, 17.900 + year = 1962 17.901 +} 17.902 +@Book{pierce02, 17.903 + title = {Types and Programming Languages}, 17.904 + author = {Pierce, B. C.}, 17.905 + year = 2002, 17.906 + publisher = {MIT Press} 17.907 +} 17.908 +@Article{price, 17.909 + author = {B. A. Price and R. M. Baecker and L. S. Small}, 17.910 + title = {A Principled Taxonomy of Software Visualization}, 17.911 + journal = {Journal of Visual Languages and Computing}, 17.912 + volume = 4, 17.913 + number = 3, 17.914 + pages = {211--266} 17.915 +} 17.916 +@Misc{pythonWebSite, 17.917 + key = {Python}, 17.918 + title = {The Python Software Foundation Mission Statement}, 17.919 + note = {{\ttfamily http://www.python.org/psf/mission.html}} 17.920 +} 17.921 +@Unpublished{reed03, 17.922 + editor = {Daniel A. Reed}, 17.923 + title = {Workshop on The Roadmap for the Revitalization of High-End Computing}, 17.924 + day = {16--18}, 17.925 + month = {jun}, 17.926 + year = 2003, 17.927 + note = {Available at {\ttfamily http://www.cra.org/reports/supercomputing.web.pdf}} 17.928 +} 17.929 +@Article{reeves84, 17.930 + author = {A. P. Reeves}, 17.931 + title = {Parallel Pascal -- An Extended Pascal for Parallel Computers}, 17.932 + journal = {Journal of Parallel and Distributed Computing}, 17.933 + volume = 1, 17.934 + number = {}, 17.935 + year = 1984, 17.936 + month = {aug}, 17.937 + pages = {64--80} 17.938 +} 17.939 +@Article{skillicorn98, 17.940 + author = {David B. Skillicorn and Domenico Talia}, 17.941 + title = {Models and languages for parallel computation}, 17.942 + journal = {ACM Comput. Surv.}, 17.943 + volume = 30, 17.944 + number = 2, 17.945 + year = 1998, 17.946 + issn = {0360-0300}, 17.947 + pages = {123--169}, 17.948 + doi = {http://doi.acm.org/10.1145/280277.280278}, 17.949 + publisher = {ACM Press}, 17.950 + address = {New York, NY, USA} 17.951 +} 17.952 +@Article{stefik86, 17.953 + title = {Object Oriented Programming: Themes and Variations}, 17.954 + author = {Stefik, M. and Bobrow, D. G.}, 17.955 + journal = {The AI Magazine}, 17.956 + volume = 6, 17.957 + number = 4, 17.958 + year = 1986 17.959 +} 17.960 +@Book{stirling92, 17.961 + title = {{Modal and Temporal Logics}}, 17.962 + author = {Stirling, C.}, 17.963 + year = 1992, 17.964 + publisher = {University of Edinburgh, Department of Computer Science} 17.965 +} 17.966 +@Misc{TitaniumWebSite, 17.967 + author = {Paul Hilfinger and et. al.}, 17.968 + title = {The Titanium Project Home Page}, 17.969 + note = {{\ttfamily http://www.cs.berkeley.edu/projects/titanium}} 17.970 +} 17.971 +@Misc{turing38, 17.972 + author = {A. Turing}, 17.973 + note = {http://www.turingarchive.org/intro/, and http://www.turing.org.uk/sources/biblio4.html, and http://web.comlab.ox.ac.uk/oucl/research/areas/ieg/e-library/sources/tp2-ie.pdf}, 17.974 + year = 1938 17.975 +} 17.976 +@Book{vonNeumann45, 17.977 + title = {First Draft of a Report on the EDVAC}, 17.978 + author = {J. von Neumann}, 17.979 + year = 1945, 17.980 + publisher = {United States Army Ordnance Department} 17.981 +} 17.982 +@Book{winskel93, 17.983 + title = {{The Formal Semantics of Programming Languages}}, 17.984 + author = {Winskel, G.}, 17.985 + year = 1993, 17.986 + publisher = {MIT Press} 17.987 +}
18.1 Binary file 1__Presentations/12__Amsterdam_interview/Amsterdam_Interview.odp has changed
19.1 Binary file 1__Presentations/12__Amsterdam_interview/Amsterdam_Interview.pdf has changed
20.1 Binary file 1__Presentations/12__Amsterdam_interview/figures/software_stack.pdf has changed
21.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 21.2 +++ b/1__Presentations/12__Amsterdam_interview/figures/software_stack.svg Mon Oct 08 23:03:26 2012 -0700 21.3 @@ -0,0 +1,2854 @@ 21.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 21.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 21.6 + 21.7 +<svg 21.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 21.9 + xmlns:cc="http://creativecommons.org/ns#" 21.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 21.11 + xmlns:svg="http://www.w3.org/2000/svg" 21.12 + xmlns="http://www.w3.org/2000/svg" 21.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 21.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 21.15 + width="744.09448819" 21.16 + height="1052.3622047" 21.17 + id="svg2" 21.18 + version="1.1" 21.19 + inkscape:version="0.48.1 " 21.20 + sodipodi:docname="software_stack.svg"> 21.21 + <defs 21.22 + id="defs4"> 21.23 + <marker 21.24 + inkscape:stockid="Arrow2Mend" 21.25 + orient="auto" 21.26 + refY="0.0" 21.27 + refX="0.0" 21.28 + id="Arrow2Mend" 21.29 + style="overflow:visible;"> 21.30 + <path 21.31 + id="path12287" 21.32 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 21.33 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 21.34 + transform="scale(0.6) rotate(180) translate(0,0)" /> 21.35 + </marker> 21.36 + <marker 21.37 + inkscape:stockid="Arrow1Mend" 21.38 + orient="auto" 21.39 + refY="0.0" 21.40 + refX="0.0" 21.41 + id="Arrow1Mend" 21.42 + style="overflow:visible;"> 21.43 + <path 21.44 + id="path12269" 21.45 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 21.46 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 21.47 + transform="scale(0.4) rotate(180) translate(10,0)" /> 21.48 + </marker> 21.49 + </defs> 21.50 + <sodipodi:namedview 21.51 + id="base" 21.52 + pagecolor="#ffffff" 21.53 + bordercolor="#666666" 21.54 + borderopacity="1.0" 21.55 + inkscape:pageopacity="0.0" 21.56 + inkscape:pageshadow="2" 21.57 + inkscape:zoom="1.89" 21.58 + inkscape:cx="389.21587" 21.59 + inkscape:cy="538.12457" 21.60 + inkscape:document-units="px" 21.61 + inkscape:current-layer="g11409" 21.62 + showgrid="false" 21.63 + inkscape:window-width="1600" 21.64 + inkscape:window-height="848" 21.65 + inkscape:window-x="-8" 21.66 + inkscape:window-y="-8" 21.67 + inkscape:window-maximized="1" 21.68 + showguides="true" 21.69 + inkscape:guide-bbox="true" /> 21.70 + <metadata 21.71 + id="metadata7"> 21.72 + <rdf:RDF> 21.73 + <cc:Work 21.74 + rdf:about=""> 21.75 + <dc:format>image/svg+xml</dc:format> 21.76 + <dc:type 21.77 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 21.78 + <dc:title /> 21.79 + </cc:Work> 21.80 + </rdf:RDF> 21.81 + </metadata> 21.82 + <g 21.83 + inkscape:label="Layer 1" 21.84 + inkscape:groupmode="layer" 21.85 + id="layer1"> 21.86 + <path 21.87 + inkscape:connector-curvature="0" 21.88 + id="5" 21.89 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.90 + d="m 302.22417,590.2936 0,0 c 0,-0.0904 0.0242,-0.16282 0.0727,-0.2352 0.0485,-0.0723 0.12123,-0.1267 0.21821,-0.16284 0.097,-0.0362 0.19399,-0.0543 0.31522,-0.0543 l 0,0 0,0.45232 -0.60618,0 z" /> 21.91 + <path 21.92 + inkscape:connector-curvature="0" 21.93 + id="6" 21.94 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.95 + d="m 302.83035,589.84127 59.40509,0 0,0.45233 0,0.47042 -59.40509,0 0,-0.47042 0,-0.45233 z" /> 21.96 + <path 21.97 + inkscape:connector-curvature="0" 21.98 + id="7" 21.99 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.100 + d="m 362.23544,589.84127 0,0 c 0.12124,0 0.21823,0.0181 0.31521,0.0544 0.097,0.0362 0.16973,0.0905 0.21823,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63042,0 0,-0.45233 z" /> 21.101 + <path 21.102 + inkscape:connector-curvature="0" 21.103 + id="8" 21.104 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.105 + d="m 362.86586,590.2936 0,23.26755 -0.63042,0 -0.58192,0 0,-23.26755 0.58192,0 0.63042,0 z" /> 21.106 + <path 21.107 + inkscape:connector-curvature="0" 21.108 + id="9" 21.109 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.110 + d="m 362.86586,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12123,0.1267 -0.21823,0.16285 -0.097,0.0362 -0.19397,0.0723 -0.31521,0.0723 l 0,0 0,-0.47041 0.63042,0 z" /> 21.111 + <path 21.112 + inkscape:connector-curvature="0" 21.113 + id="10" 21.114 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.115 + d="m 362.23544,614.03156 -59.40509,0 0,-0.47041 0,-0.45234 59.40509,0 0,0.45234 0,0.47041 z" /> 21.116 + <path 21.117 + inkscape:connector-curvature="0" 21.118 + id="11" 21.119 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.120 + d="m 302.83035,614.03156 0,0 c -0.12123,0 -0.21822,-0.0361 -0.31522,-0.0723 -0.097,-0.0362 -0.16971,-0.0905 -0.21821,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23519 l 0,0 0.60618,0 0,0.4704 z" /> 21.121 + <path 21.122 + inkscape:connector-curvature="0" 21.123 + id="12" 21.124 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.125 + d="m 302.22417,613.56115 0,-23.26755 0.60618,0 0.63042,0 0,23.26755 -0.63042,0 -0.60618,0 z" /> 21.126 + <path 21.127 + inkscape:connector-curvature="0" 21.128 + id="13" 21.129 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.130 + d="m 320.06994,612.6384 0,-2.24352 -1.81851,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.81851,0 0,-1.86358 0.58193,0 0,4.64989 -0.58193,0 z" /> 21.131 + <path 21.132 + inkscape:connector-curvature="0" 21.133 + id="14" 21.134 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.135 + d="m 323.2463,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -1.01836,0.45232 l 0,0 0,0 c -0.24249,0 -0.4607,-0.10858 -0.63044,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.26671,-0.23519 0.63043,-0.34375 1.04261,-0.34375 l 0,0 0,0 c 0.12125,0 0.26673,0.0181 0.41222,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21824,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60618,0.0905 -0.80015,0.30758 l 0,0 -0.21823,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.4122,-0.23522 l 0,0 0,0 c 0.19397,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.4607,0 0.80015,0.10858 0.96988,0.34378 l 0,0 0,0 c 0.19397,0.23522 0.31522,0.59706 0.31522,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24246,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.24246,0 -0.41219,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.12122,-0.0723 -0.19397,-0.19902 -0.21822,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16974,-0.0362 -0.29097,-0.0723 -0.36372,-0.0723 l 0,0 0,0 c -0.29095,0 -0.50918,0.0904 -0.67891,0.2352 l 0,0 0,0 c -0.19397,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.16973,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29097,0 0.53343,-0.14473 0.75167,-0.43422 l 0,-0.81419 z" /> 21.136 + <path 21.137 + inkscape:connector-curvature="0" 21.138 + id="15" 21.139 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.140 + d="m 326.25293,609.834 0,0 0,0 c -0.12124,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.16974,0 -0.33947,0.0905 -0.48494,0.28949 l 0,0 0,0 c -0.14548,0.19901 -0.21823,0.43423 -0.21823,0.72372 l 0,0 0,1.93594 -0.55768,0 0,-3.40146 0.55768,0 0,0.54277 0,0 0,0 c 0.19398,-0.41615 0.50918,-0.61517 0.8729,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.43643,0.0544 l -0.24246,0.61517 z" /> 21.141 + <path 21.142 + inkscape:connector-curvature="0" 21.143 + id="16" 21.144 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.145 + d="m 328.84735,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.19396,0.21709 -0.4607,0.30757 -0.82438,0.30757 l 0,0 0,0 c -0.38796,0 -0.70316,-0.14474 -0.94565,-0.45232 l 0,0 0,0 c -0.24246,-0.30758 -0.3637,-0.70562 -0.3637,-1.21223 l 0,0 0,0 c 0,-0.5066 0.12124,-0.94084 0.4122,-1.3027 l 0,0 0,0 c 0.26672,-0.37996 0.60617,-0.56089 0.99413,-0.56089 l 0,0 0,0 c 0.3152,0 0.55769,0.0905 0.7274,0.25331 l 0,0 0,-1.5741 0.55768,0 0,4.79465 -0.55768,0 z m 0,-2.60538 0,0 0,0 c -0.12123,-0.23522 -0.3152,-0.34377 -0.55768,-0.34377 l 0,0 0,0 c -0.3152,0 -0.53343,0.1267 -0.7274,0.36186 l 0,0 0,0 c -0.19398,0.2352 -0.26671,0.54279 -0.26671,0.92274 l 0,0 0,0 c 0,0.81418 0.33945,1.23031 1.01836,1.23031 l 0,0 0,0 c 0.0727,0 0.19398,-0.0362 0.31522,-0.0905 l 0,0 0,0 c 0.12123,-0.0723 0.19398,-0.1267 0.21821,-0.19902 l 0,-1.88167 z" /> 21.146 + <path 21.147 + inkscape:connector-curvature="0" 21.148 + id="17" 21.149 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.150 + d="m 333.04208,612.71077 -0.14547,0 -0.89715,-2.31589 -0.89715,2.31589 -0.14546,0 -1.11537,-3.49194 0.60617,0 0.65466,2.24354 0.80017,-2.24354 0.14548,0 0.84865,2.24354 0.7274,-2.24354 0.53343,0 -1.11536,3.49194 z" /> 21.151 + <path 21.152 + inkscape:connector-curvature="0" 21.153 + id="18" 21.154 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.155 + d="m 336.36392,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -1.01838,0.45232 l 0,0 0,0 c -0.24247,0 -0.46069,-0.10858 -0.63042,-0.28948 l 0,0 0,0 c -0.19398,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.12123,-0.63324 0.41219,-0.88655 l 0,0 0,0 c 0.26672,-0.23519 0.63044,-0.34375 1.04262,-0.34375 l 0,0 0,0 c 0.12123,0 0.26673,0.0181 0.41221,0.0723 l 0,0 0,0 c 0,-0.5428 -0.24248,-0.81418 -0.67891,-0.81418 l 0,0 0,0 c -0.33947,0 -0.60618,0.0905 -0.80017,0.30758 l 0,0 -0.24246,-0.52469 0,0 0,0 c 0.12123,-0.0905 0.26671,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.19396,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.46068,0 0.77591,0.10858 0.99413,0.34378 l 0,0 0,0 c 0.19397,0.23522 0.3152,0.59706 0.3152,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24248,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.24248,0 -0.41221,-0.0181 -0.5092,-0.0905 l 0,0 0,0 c -0.12123,-0.0723 -0.19396,-0.19902 -0.24246,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29098,-0.0723 -0.36371,-0.0723 l 0,0 0,0 c -0.29095,0 -0.50918,0.0904 -0.70317,0.2352 l 0,0 0,0 c -0.16971,0.16284 -0.24246,0.34378 -0.24246,0.56088 l 0,0 0,0 c 0,0.36187 0.16973,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29097,0 0.53343,-0.14473 0.75166,-0.43422 l 0,-0.81419 z" /> 21.156 + <path 21.157 + inkscape:connector-curvature="0" 21.158 + id="19" 21.159 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.160 + d="m 339.39479,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24246,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19398,0 -0.36371,0.0905 -0.50919,0.28949 l 0,0 0,0 c -0.14547,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.53343,0 0,-3.40146 0.53343,0 0,0.54277 0,0 0,0 c 0.19398,-0.41615 0.50918,-0.61517 0.89713,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.43645,0.0544 l -0.24247,0.61517 z" /> 21.161 + <path 21.162 + inkscape:connector-curvature="0" 21.163 + id="20" 21.164 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.165 + d="m 342.64389,611.01003 0,0 -2.25497,0 0,0 0,0 c 0,0.39805 0.12124,0.68753 0.3152,0.90466 l 0,0 0,0 c 0.16974,0.18091 0.38797,0.28947 0.67892,0.28947 l 0,0 0,0 c 0.31521,0 0.58193,-0.10857 0.7759,-0.30755 l 0,0 0.24248,0.43421 0,0 0,0 c -0.0727,0.0905 -0.21823,0.18093 -0.38795,0.23522 l 0,0 0,0 c -0.21823,0.0904 -0.4607,0.14473 -0.75166,0.14473 l 0,0 0,0 c -0.38795,0 -0.70315,-0.14473 -0.99414,-0.43424 l 0,0 0,0 c -0.29094,-0.32566 -0.46068,-0.7599 -0.46068,-1.28459 l 0,0 0,0 c 0,-0.56088 0.16974,-1.0132 0.48493,-1.37507 l 0,0 0,0 c 0.26674,-0.30757 0.60619,-0.45233 0.99414,-0.45233 l 0,0 0,0 c 0.43644,0 0.77589,0.14476 1.04261,0.41615 l 0,0 0,0 c 0.24248,0.2714 0.36372,0.61517 0.36372,1.04939 l 0,0 0,0 c 0,0.14474 -0.0242,0.25332 -0.0485,0.37995 z m -1.33358,-1.32078 0,0 0,0 c -0.24247,0 -0.4607,0.0905 -0.63044,0.25328 l 0,0 0,0 c -0.14546,0.18095 -0.24246,0.37998 -0.2667,0.61517 l 0,0 1.72153,0 0,0 0,0 c 0,-0.23519 -0.0727,-0.43422 -0.21821,-0.59706 l 0,0 0,0 c -0.14549,-0.18093 -0.33947,-0.27139 -0.60618,-0.27139 z" /> 21.166 + <path 21.167 + inkscape:connector-curvature="0" 21.168 + id="21" 21.169 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.170 + d="m 344.85036,612.6384 0,0 0,-0.12669 1.33358,-2.22544 0,0 0,0 c 0.26672,-0.4704 0.4122,-0.88655 0.4122,-1.21223 l 0,0 0,0 c 0,-0.41611 -0.21823,-0.63325 -0.67891,-0.63325 l 0,0 0,0 c -0.14549,0 -0.29097,0.0362 -0.43645,0.12669 l 0,0 0,0 c -0.12123,0.0905 -0.24247,0.19902 -0.29097,0.34377 l 0,0 -0.38795,-0.34377 0,0 0,0 c 0.0728,-0.19902 0.19399,-0.36186 0.38795,-0.48851 l 0,0 0,0 c 0.19399,-0.12669 0.43645,-0.18093 0.70317,-0.18093 l 0,0 0,0 c 0.4122,0 0.72741,0.10858 0.96988,0.30758 l 0,0 0,0 c 0.21821,0.19902 0.33946,0.50661 0.33946,0.86847 l 0,0 0,0 c 0,0.36187 -0.1455,0.81418 -0.46069,1.33888 l 0,0 -0.94564,1.66455 1.67305,0 0,0.56088 -2.61868,0 z" /> 21.171 + <path 21.172 + inkscape:connector-curvature="0" 21.173 + id="22" 21.174 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.175 + d="m 303.36378,606.39634 58.36248,0.34376 0,0.43423 0,0.43423 -58.36248,-0.34378 0,-0.43423 0,-0.43421 z" /> 21.176 + <path 21.177 + inkscape:connector-curvature="0" 21.178 + id="23" 21.179 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.180 + d="m 217.38401,539.83236 0,0 0,0 c 0,-0.74179 0.19397,-1.37506 0.53343,-1.88165 l 0,0 0,0 c 0.33945,-0.50662 0.80015,-0.75991 1.38207,-0.75991 l 0,0 0,0 c 0.65468,0 1.16386,0.23521 1.52756,0.70562 l 0,0 0,0 c 0.3637,0.47043 0.53343,1.12177 0.53343,1.93594 l 0,0 0,0 c 0,0.86846 -0.16973,1.53792 -0.53343,2.02642 l 0,0 0,0 c -0.3637,0.47042 -0.87288,0.72371 -1.52756,0.72371 l 0,0 0,0 c -0.60617,0 -1.04262,-0.25329 -1.40632,-0.778 l 0,0 0,0 c -0.33946,-0.50661 -0.50918,-1.15794 -0.50918,-1.97213 z m 0.70315,0 0,0 0,0 c 0,0.59708 0.097,1.10368 0.29096,1.50172 l 0,0 0,0 c 0.21822,0.39804 0.53344,0.59706 0.92139,0.59706 l 0,0 0,0 c 0.43644,0 0.77591,-0.18091 1.01838,-0.54278 l 0,0 0,0 c 0.24246,-0.36186 0.3637,-0.88656 0.3637,-1.556 l 0,0 0,0 c 0,-1.32077 -0.46069,-1.99021 -1.38208,-1.99021 l 0,0 0,0 c -0.4122,0 -0.70317,0.18092 -0.92139,0.54278 l 0,0 0,0 c -0.19398,0.36186 -0.29096,0.85037 -0.29096,1.44743 z" /> 21.181 + <path 21.182 + inkscape:connector-curvature="0" 21.183 + id="24" 21.184 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.185 + d="m 222.69408,542.27492 0,0 0,1.71883 -0.63041,0 0,-5.30125 0.63041,0 0,0.30758 0,0 0,0 c 0.21823,-0.25329 0.50918,-0.37995 0.84865,-0.37995 l 0,0 0,0 c 0.48495,0 0.84865,0.16284 1.13961,0.50661 l 0,0 0,0 c 0.26672,0.34376 0.4122,0.81418 0.4122,1.46555 l 0,0 0,0 c 0,0.57897 -0.14548,1.04937 -0.4122,1.41123 l 0,0 0,0 c -0.29096,0.37996 -0.67891,0.56089 -1.1881,0.56089 l 0,0 0,0 c -0.14548,0 -0.31521,-0.0362 -0.48494,-0.0904 l 0,0 0,0 c -0.16974,-0.0542 -0.26672,-0.1267 -0.31522,-0.19901 z m 0,-2.76823 0,0 0,2.20734 0,0 0,0 c 0.0242,0.0723 0.12125,0.1267 0.24248,0.19902 l 0,0 0,0 c 0.12124,0.0544 0.24247,0.0723 0.3637,0.0723 l 0,0 0,0 c 0.7759,0 1.13962,-0.47041 1.13962,-1.41123 l 0,0 0,0 c 0,-0.48853 -0.097,-0.83228 -0.24247,-1.04939 l 0,0 0,0 c -0.19398,-0.21713 -0.48495,-0.32569 -0.89715,-0.32569 l 0,0 0,0 c -0.0728,0 -0.19398,0.0181 -0.31521,0.0905 l 0,0 0,0 c -0.12124,0.0723 -0.21822,0.14475 -0.29097,0.21712 z" /> 21.186 + <path 21.187 + inkscape:connector-curvature="0" 21.188 + id="25" 21.189 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.190 + d="m 228.70733,540.64655 0,0 -2.52167,0 0,0 0,0 c 0,0.45231 0.12123,0.79609 0.33944,1.03131 l 0,0 0,0 c 0.19399,0.2171 0.4607,0.30756 0.7759,0.30756 l 0,0 0,0 c 0.33947,0 0.65468,-0.10858 0.8729,-0.32566 l 0,0 0.26672,0.48851 0,0 0,0 c -0.097,0.0905 -0.24247,0.18093 -0.43645,0.27138 l 0,0 0,0 c -0.24247,0.0905 -0.53343,0.14476 -0.82438,0.14476 l 0,0 0,0 c -0.43645,0 -0.8244,-0.16285 -1.11538,-0.48851 l 0,0 0,0 c -0.36369,-0.36187 -0.53342,-0.85038 -0.53342,-1.44744 l 0,0 0,0 c 0,-0.63326 0.19397,-1.12177 0.53342,-1.50172 l 0,0 0,0 c 0.31523,-0.34377 0.67893,-0.50661 1.11538,-0.50661 l 0,0 0,0 c 0.50918,0 0.89713,0.14475 1.16384,0.45232 l 0,0 0,0 c 0.29097,0.30761 0.4122,0.66945 0.4122,1.15797 l 0,0 0,0 c 0,0.16282 0,0.28947 -0.0485,0.41613 z m -1.50331,-1.44745 0,0 0,0 c -0.26672,0 -0.50918,0.0905 -0.67892,0.2895 l 0,0 0,0 c -0.19396,0.18092 -0.29095,0.39804 -0.3152,0.66945 l 0,0 1.93975,0 0,0 0,0 c 0,-0.27141 -0.0727,-0.48853 -0.24247,-0.66945 l 0,0 0,0 c -0.16971,-0.19902 -0.41219,-0.2895 -0.70316,-0.2895 z" /> 21.191 + <path 21.192 + inkscape:connector-curvature="0" 21.193 + id="26" 21.194 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.195 + d="m 231.54423,542.49203 0,0 0,-2.22544 0,0 0,0 c 0,-0.39803 -0.0485,-0.66943 -0.16972,-0.83227 l 0,0 0,0 c -0.097,-0.16282 -0.29097,-0.23522 -0.55768,-0.23522 l 0,0 0,0 c -0.14549,0 -0.29097,0.0362 -0.43645,0.1267 l 0,0 0,0 c -0.14548,0.0905 -0.26672,0.21711 -0.33947,0.34375 l 0,0 0,2.82251 -0.63041,0 0,-3.79953 0.43645,0 0.19396,0.48851 0,0 0,0 c 0.19399,-0.37995 0.5092,-0.56088 0.96988,-0.56088 l 0,0 0,0 c 0.77592,0 1.16387,0.50661 1.16387,1.50172 l 0,0 0,2.37018 -0.63043,0 z" /> 21.196 + <path 21.197 + inkscape:connector-curvature="0" 21.198 + id="27" 21.199 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.200 + d="m 236.6846,542.49203 -0.53344,-3.32909 -1.04263,3.40147 -0.16973,0 -1.0911,-3.40147 -0.53343,3.32909 -0.63043,0 0.89713,-5.21078 0.29098,0 1.1396,3.79954 1.06686,-3.79954 0.26672,0 0.96988,5.21078 -0.63041,0 z" /> 21.201 + <path 21.202 + inkscape:connector-curvature="0" 21.203 + id="28" 21.204 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.205 + d="m 238.47886,540.48371 0,0 0,2.00832 -0.65467,0 0,-5.21078 0,0 0,0 c 0.5092,-0.0181 0.80017,-0.0362 0.89715,-0.0362 l 0,0 0,0 c 1.40633,0 2.08525,0.5066 2.08525,1.51979 l 0,0 0,0 c 0,1.15796 -0.60619,1.75502 -1.84278,1.75502 l 0,0 0,0 c -0.0727,0 -0.21822,-0.0181 -0.48495,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.29098,0.0362 0.43646,0.0362 0.43646,0.0362 l 0,0 0,0 c 0.82439,0 1.2366,-0.32567 1.2366,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43646,-0.95893 -1.30935,-0.95893 l 0,0 0,0 c -0.097,0 -0.19398,0 -0.36371,0.0362 z" /> 21.206 + <path 21.207 + inkscape:connector-curvature="0" 21.208 + id="29" 21.209 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.210 + d="m 243.06155,539.97712 1.13961,0 0,0.50659 -1.13961,0 0,1.23032 -0.4607,0 0,-1.23032 -1.11535,0 0,-0.50659 1.11535,0 0,-1.21224 0.4607,0 0,1.21224 z" /> 21.211 + <path 21.212 + inkscape:connector-curvature="0" 21.213 + id="30" 21.214 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.215 + d="m 245.72872,540.48371 0,0 0,2.00832 -0.65466,0 0,-5.21078 0,0 0,0 c 0.48493,-0.0181 0.80013,-0.0362 0.89713,-0.0362 l 0,0 0,0 c 1.35783,0 2.06098,0.5066 2.06098,1.51979 l 0,0 0,0 c 0,1.15796 -0.63042,1.75502 -1.84276,1.75502 l 0,0 0,0 c -0.0727,0 -0.21822,-0.0181 -0.46069,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.2667,0.0362 0.38795,0.0362 0.41219,0.0362 l 0,0 0,0 c 0.80016,0 1.21234,-0.32567 1.21234,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43643,-0.95893 -1.26083,-0.95893 l 0,0 0,0 c -0.097,0 -0.21823,0 -0.3637,0.0362 z" /> 21.216 + <path 21.217 + inkscape:connector-curvature="0" 21.218 + id="31" 21.219 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.220 + d="m 224.73083,547.77517 0,0 0,1.99023 -0.63042,0 0,-5.19268 0,0 0,0 c 0.46068,-0.0181 0.75166,-0.0362 0.8729,-0.0362 l 0,0 0,0 c 1.38208,0 2.08524,0.50661 2.08524,1.51981 l 0,0 0,0 c 0,1.17605 -0.63043,1.75502 -1.84278,1.75502 l 0,0 0,0 c -0.0727,0 -0.24246,0 -0.48494,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.26673,0.0181 0.41219,0.0362 0.43644,0.0362 l 0,0 0,0 c 0.80015,0 1.21237,-0.34377 1.21237,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43647,-0.95892 -1.30935,-0.95892 l 0,0 0,0 c -0.0727,0 -0.19398,0.0181 -0.33946,0.0362 z" /> 21.221 + <path 21.222 + inkscape:connector-curvature="0" 21.223 + id="32" 21.224 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.225 + d="m 227.8102,548.71599 0,0 0,-4.30612 0.63042,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.14548,0.48851 l 0,0 0,0 c 0.12123,0.10858 0.26672,0.16283 0.43645,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.80015,0 -1.21235,-0.37995 -1.21235,-1.12177 z" /> 21.226 + <path 21.227 + inkscape:connector-curvature="0" 21.228 + id="33" 21.229 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.230 + d="m 230.30764,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.21822,0.86847 0.70315,0.86847 l 0,0 0,0 c 0.19399,0 0.38795,-0.0723 0.55769,-0.18092 l 0,0 0,0 c 0.16973,-0.1267 0.29096,-0.2714 0.33946,-0.43424 l 0,0 0,-2.69584 0.63042,0 0,3.79952 -0.63042,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.21823,0.2895 -0.4122,0.41614 l 0,0 0,0 c -0.21821,0.1267 -0.43645,0.18093 -0.63043,0.18093 l 0,0 0,0 c -0.38793,0 -0.65466,-0.10857 -0.84863,-0.34376 l 0,0 0,0 c -0.21822,-0.25331 -0.31522,-0.57897 -0.31522,-1.0132 l 0,0 0,-2.51492 0.60618,0 z" /> 21.231 + <path 21.232 + inkscape:connector-curvature="0" 21.233 + id="34" 21.234 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.235 + d="m 233.24152,550.81479 0,0 0.33945,-0.54279 0,0 0,0 c 0.36372,0.2714 0.70317,0.39804 1.01838,0.39804 l 0,0 0,0 c 0.26672,0 0.48493,-0.0542 0.65467,-0.16284 l 0,0 0,0 c 0.16973,-0.0905 0.24248,-0.2352 0.24248,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.19398,-0.47044 -0.60618,-0.47044 l 0,0 0,0 c -0.0728,0 -0.19397,0.0181 -0.38795,0.0544 l 0,0 0,0 c -0.19398,0.0361 -0.31522,0.0542 -0.43645,0.0542 l 0,0 0,0 c -0.48495,0 -0.72742,-0.19902 -0.72742,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0485,-0.21711 0.16974,-0.32567 l 0,0 0,0 c 0.12123,-0.0905 0.26671,-0.16284 0.43645,-0.2171 l 0,0 0,0 c -0.50919,-0.25332 -0.75165,-0.68754 -0.75165,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12123,-0.74182 0.38793,-0.99513 l 0,0 0,0 c 0.26673,-0.27138 0.58193,-0.39802 0.94565,-0.39802 l 0,0 0,0 c 0.33945,0 0.60616,0.0723 0.80015,0.2171 l 0,0 0.3152,-0.39805 0.41221,0.41615 -0.38796,0.30758 0,0 0,0 c 0.16973,0.21712 0.24248,0.5247 0.24248,0.88656 l 0,0 0,0 c 0,0.37996 -0.097,0.70562 -0.31522,0.95893 l 0,0 0,0 c -0.21821,0.27138 -0.5092,0.41612 -0.8729,0.45231 l 0,0 -0.50918,0.0544 0,0 0,0 c -0.0727,0.0181 -0.14548,0.0361 -0.24246,0.0905 l 0,0 0,0 c -0.12124,0.0362 -0.16974,0.0905 -0.16974,0.16283 l 0,0 0,0 c 0,0.0723 0.12124,0.1267 0.33945,0.1267 l 0,0 0,0 c 0.0727,0 0.21823,-0.0181 0.43645,-0.0544 l 0,0 0,0 c 0.19398,-0.0362 0.33947,-0.0362 0.43645,-0.0362 l 0,0 0,0 c 0.33947,0 0.60617,0.0723 0.80015,0.25329 l 0,0 0,0 c 0.19398,0.18094 0.29096,0.43424 0.29096,0.74182 l 0,0 0,0 c 0,0.36185 -0.14548,0.63326 -0.43644,0.85036 l 0,0 0,0 c -0.29095,0.21712 -0.65467,0.32567 -1.09112,0.32567 l 0,0 0,0 c -0.21822,0 -0.46068,-0.0362 -0.7274,-0.12669 l 0,0 0,0 c -0.24248,-0.0905 -0.43645,-0.19904 -0.60618,-0.32568 z m 1.33358,-4.3604 0,0 0,0 c -0.21822,0 -0.38795,0.0723 -0.53343,0.2352 l 0,0 0,0 c -0.14548,0.18093 -0.19397,0.37995 -0.19397,0.61517 l 0,0 0,0 c 0,0.27139 0.0485,0.48851 0.19397,0.66944 l 0,0 0,0 c 0.12123,0.16284 0.29097,0.25328 0.53343,0.25328 l 0,0 0,0 c 0.21823,0 0.38795,-0.0905 0.50918,-0.25328 l 0,0 0,0 c 0.12125,-0.16285 0.19399,-0.39805 0.19399,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.21822,-0.61517 l 0,0 0,0 c -0.12125,-0.16283 -0.29097,-0.2352 -0.48495,-0.2352 z" /> 21.236 + <path 21.237 + inkscape:connector-curvature="0" 21.238 + id="35" 21.239 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.240 + d="m 237.36351,544.53653 0,0 0,0 c 0.097,0 0.19397,0.0362 0.26672,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.12123,0.18093 0.12123,0.30758 l 0,0 0,0 c 0,0.10858 -0.0485,0.21712 -0.12123,0.2895 l 0,0 0,0 c -0.0728,0.0905 -0.16974,0.12669 -0.26672,0.12669 l 0,0 0,0 c -0.12123,0 -0.19398,-0.0362 -0.26672,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.12123,-0.18093 -0.12123,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0485,-0.21711 0.12123,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.14549,-0.10857 0.26672,-0.10857 z m -0.33946,5.22887 0,0 0,-3.22055 -0.48494,0 0,-0.57897 1.09112,0 0,3.79952 -0.60618,0 z" /> 21.241 + <path 21.242 + inkscape:connector-curvature="0" 21.243 + id="36" 21.244 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.245 + d="m 240.78234,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0485,-0.68752 -0.16974,-0.85037 l 0,0 0,0 c -0.12123,-0.16284 -0.29096,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14548,0 -0.29096,0.0542 -0.46068,0.14473 l 0,0 0,0 c -0.14548,0.0905 -0.26673,0.19904 -0.33947,0.34378 l 0,0 0,2.80441 -0.63041,0 0,-3.79952 0.43643,0 0.19398,0.5066 0,0 0,0 c 0.19399,-0.37995 0.53344,-0.56088 0.99413,-0.56088 l 0,0 0,0 c 0.7759,0 1.16385,0.50659 1.16385,1.5198 l 0,0 0,2.334 -0.63041,0 z" /> 21.246 + <path 21.247 + inkscape:connector-curvature="0" 21.248 + id="38" 21.249 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.250 + d="m 213.3105,532.19714 39.06189,0 0,0.45232 0,0.47042 -39.06189,0 0,-0.47042 0,-0.45232 z" /> 21.251 + <path 21.252 + inkscape:connector-curvature="0" 21.253 + id="39" 21.254 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.255 + d="m 252.37239,532.19714 0,0 c 0.12123,0 0.21822,0.0181 0.31522,0.0542 0.097,0.0362 0.16971,0.0905 0.21821,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63042,0 0,-0.45231 z" /> 21.256 + <path 21.257 + inkscape:connector-curvature="0" 21.258 + id="40" 21.259 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.260 + d="m 253.00281,532.64946 0,23.24944 -0.63042,0 -0.60618,0 0,-23.24944 0.60618,0 0.63042,0 z" /> 21.261 + <path 21.262 + inkscape:connector-curvature="0" 21.263 + id="41" 21.264 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.265 + d="m 253.00281,555.8989 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12123,0.12669 -0.21821,0.16285 -0.097,0.0362 -0.19399,0.0723 -0.31522,0.0723 l 0,0 0,-0.47044 0.63042,0 z" /> 21.266 + <path 21.267 + inkscape:connector-curvature="0" 21.268 + id="42" 21.269 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.270 + d="m 252.37239,556.36933 -39.06189,0 0,-0.47043 0,-0.45232 39.06189,0 0,0.45232 0,0.47043 z" /> 21.271 + <path 21.272 + inkscape:connector-curvature="0" 21.273 + id="45" 21.274 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.275 + d="m 287.28804,542.49203 -0.58193,-3.32909 -1.04262,3.40147 -0.16973,0 -1.04261,-3.40147 -0.53344,3.32909 -0.63043,0 0.8729,-5.21078 0.31522,0 1.11534,3.79954 1.04263,-3.79954 0.29095,0 0.9699,5.21078 -0.60618,0 z" /> 21.276 + <path 21.277 + inkscape:connector-curvature="0" 21.278 + id="46" 21.279 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.280 + d="m 289.08232,540.48371 0,0 0,2.00832 -0.65467,0 0,-5.21078 0,0 0,0 c 0.48493,-0.0181 0.80015,-0.0362 0.89713,-0.0362 l 0,0 0,0 c 1.35783,0 2.061,0.5066 2.061,1.51979 l 0,0 0,0 c 0,1.15796 -0.63042,1.75502 -1.81853,1.75502 l 0,0 0,0 c -0.0727,0 -0.24247,-0.0181 -0.48493,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.26671,0.0362 0.4122,0.0362 0.43643,0.0362 l 0,0 0,0 c 0.77591,0 1.18811,-0.32567 1.18811,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43645,-0.95893 -1.26084,-0.95893 l 0,0 0,0 c -0.097,0 -0.21822,0 -0.3637,0.0362 z" /> 21.281 + <path 21.282 + inkscape:connector-curvature="0" 21.283 + id="47" 21.284 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.285 + d="m 292.25866,542.49203 0,-5.21078 0.65468,0 0,5.21078 -0.65468,0 z" /> 21.286 + <path 21.287 + inkscape:connector-curvature="0" 21.288 + id="48" 21.289 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.290 + d="m 295.53202,539.97712 1.11535,0 0,0.50659 -1.11535,0 0,1.23032 -0.48495,0 0,-1.23032 -1.11536,0 0,-0.50659 1.11536,0 0,-1.21224 0.48495,0 0,1.21224 z" /> 21.291 + <path 21.292 + inkscape:connector-curvature="0" 21.293 + id="49" 21.294 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.295 + d="m 298.15068,540.48371 0,0 0,2.00832 -0.65467,0 0,-5.21078 0,0 0,0 c 0.50919,-0.0181 0.80015,-0.0362 0.89715,-0.0362 l 0,0 0,0 c 1.40631,0 2.10948,0.5066 2.10948,1.51979 l 0,0 0,0 c 0,1.15796 -0.63042,1.75502 -1.86703,1.75502 l 0,0 0,0 c -0.0727,0 -0.21822,-0.0181 -0.48493,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.29096,0.0362 0.43645,0.0362 0.4607,0.0362 l 0,0 0,0 c 0.80015,0 1.21234,-0.32567 1.21234,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43644,-0.95893 -1.30934,-0.95893 l 0,0 0,0 c -0.0727,0 -0.19397,0 -0.3637,0.0362 z" /> 21.296 + <path 21.297 + inkscape:connector-curvature="0" 21.298 + id="50" 21.299 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.300 + d="m 284.03893,547.77517 0,0 0,1.99023 -0.65467,0 0,-5.19268 0,0 0,0 c 0.48495,-0.0181 0.75167,-0.0362 0.8729,-0.0362 l 0,0 0,0 c 1.35783,0 2.061,0.50661 2.061,1.51981 l 0,0 0,0 c 0,1.17605 -0.63042,1.75502 -1.81852,1.75502 l 0,0 0,0 c -0.0727,0 -0.24248,0 -0.46071,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.24248,0.0181 0.38797,0.0362 0.41222,0.0362 l 0,0 0,0 c 0.77589,0 1.18809,-0.34377 1.18809,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43645,-0.95892 -1.28509,-0.95892 l 0,0 0,0 c -0.0727,0 -0.19397,0.0181 -0.31522,0.0362 z" /> 21.301 + <path 21.302 + inkscape:connector-curvature="0" 21.303 + id="51" 21.304 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.305 + d="m 287.06982,548.71599 0,0 0,-4.30612 0.63042,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.14548,0.48851 l 0,0 0,0 c 0.12123,0.10858 0.26672,0.16283 0.43643,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.80015,0 -1.21233,-0.37995 -1.21233,-1.12177 z" /> 21.306 + <path 21.307 + inkscape:connector-curvature="0" 21.308 + id="52" 21.309 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.310 + d="m 289.5915,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.21822,0.86847 0.67891,0.86847 l 0,0 0,0 c 0.19399,0 0.38795,-0.0723 0.55769,-0.18092 l 0,0 0,0 c 0.16971,-0.1267 0.29096,-0.2714 0.33945,-0.43424 l 0,0 0,-2.69584 0.60618,0 0,3.79952 -0.60618,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.21822,0.2895 -0.43644,0.41614 l 0,0 0,0 c -0.19398,0.1267 -0.41221,0.18093 -0.60618,0.18093 l 0,0 0,0 c -0.3637,0 -0.65466,-0.10857 -0.84863,-0.34376 l 0,0 0,0 c -0.21823,-0.25331 -0.31523,-0.57897 -0.31523,-1.0132 l 0,0 0,-2.51492 0.63043,0 z" /> 21.311 + <path 21.312 + inkscape:connector-curvature="0" 21.313 + id="53" 21.314 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.315 + d="m 292.50114,550.81479 0,0 0.33945,-0.54279 0,0 0,0 c 0.3637,0.2714 0.70317,0.39804 0.99413,0.39804 l 0,0 0,0 c 0.29097,0 0.50918,-0.0542 0.67892,-0.16284 l 0,0 0,0 c 0.16973,-0.0905 0.24246,-0.2352 0.24246,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.21821,-0.47044 -0.60616,-0.47044 l 0,0 0,0 c -0.0728,0 -0.21823,0.0181 -0.38797,0.0544 l 0,0 0,0 c -0.19396,0.0361 -0.33945,0.0542 -0.43643,0.0542 l 0,0 0,0 c -0.48495,0 -0.75166,-0.19902 -0.75166,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0728,-0.21711 0.19398,-0.32567 l 0,0 0,0 c 0.12123,-0.0905 0.24246,-0.16284 0.43643,-0.2171 l 0,0 0,0 c -0.50918,-0.25332 -0.75165,-0.68754 -0.75165,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12124,-0.74182 0.38795,-0.99513 l 0,0 0,0 c 0.24247,-0.27138 0.55768,-0.39802 0.94563,-0.39802 l 0,0 0,0 c 0.33947,0 0.60618,0.0723 0.80015,0.2171 l 0,0 0.31522,-0.39805 0.4122,0.41615 -0.38795,0.30758 0,0 0,0 c 0.16971,0.21712 0.24246,0.5247 0.24246,0.88656 l 0,0 0,0 c 0,0.37996 -0.097,0.70562 -0.3152,0.95893 l 0,0 0,0 c -0.24248,0.27138 -0.5092,0.41612 -0.87289,0.45231 l 0,0 -0.50919,0.0544 0,0 0,0 c -0.0727,0.0181 -0.14548,0.0361 -0.24248,0.0905 l 0,0 0,0 c -0.12123,0.0362 -0.16973,0.0905 -0.16973,0.16283 l 0,0 0,0 c 0,0.0723 0.12125,0.1267 0.31521,0.1267 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43645,-0.0544 l 0,0 0,0 c 0.21823,-0.0362 0.36372,-0.0362 0.4607,-0.0362 l 0,0 0,0 c 0.33945,0 0.60617,0.0723 0.80015,0.25329 l 0,0 0,0 c 0.19397,0.18094 0.29097,0.43424 0.29097,0.74182 l 0,0 0,0 c 0,0.36185 -0.14549,0.63326 -0.43645,0.85036 l 0,0 0,0 c -0.29097,0.21712 -0.65467,0.32567 -1.09112,0.32567 l 0,0 0,0 c -0.24246,0 -0.4607,-0.0362 -0.72741,-0.12669 l 0,0 0,0 c -0.24247,-0.0905 -0.43644,-0.19904 -0.60617,-0.32568 z m 1.33358,-4.3604 0,0 0,0 c -0.21823,0 -0.4122,0.0723 -0.53343,0.2352 l 0,0 0,0 c -0.14548,0.18093 -0.21823,0.37995 -0.21823,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.21823,0.66944 l 0,0 0,0 c 0.12123,0.16284 0.29097,0.25328 0.53343,0.25328 l 0,0 0,0 c 0.21822,0 0.38795,-0.0905 0.50918,-0.25328 l 0,0 0,0 c 0.12124,-0.16285 0.19399,-0.39805 0.19399,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.21824,-0.61517 l 0,0 0,0 c -0.12123,-0.16283 -0.29095,-0.2352 -0.48493,-0.2352 z" /> 21.316 + <path 21.317 + inkscape:connector-curvature="0" 21.318 + id="54" 21.319 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.320 + d="m 296.62312,544.53653 0,0 0,0 c 0.097,0 0.19398,0.0362 0.26673,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.12123,0.18093 0.12123,0.30758 l 0,0 0,0 c 0,0.10858 -0.0485,0.21712 -0.12123,0.2895 l 0,0 0,0 c -0.0728,0.0905 -0.16973,0.12669 -0.26673,0.12669 l 0,0 0,0 c -0.12124,0 -0.19397,-0.0362 -0.26672,-0.12669 l 0,0 0,0 c -0.097,-0.0723 -0.12122,-0.18093 -0.12122,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0242,-0.21711 0.097,-0.30758 l 0,0 0,0 c 0.097,-0.0723 0.16971,-0.10857 0.29095,-0.10857 z m -0.33945,5.22887 0,0 0,-3.22055 -0.4607,0 0,-0.57897 1.06688,0 0,3.79952 -0.60618,0 z" /> 21.321 + <path 21.322 + inkscape:connector-curvature="0" 21.323 + id="55" 21.324 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.325 + d="m 300.04194,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0485,-0.68752 -0.16972,-0.85037 l 0,0 0,0 c -0.12123,-0.16284 -0.29096,-0.2533 -0.55769,-0.2533 l 0,0 0,0 c -0.14547,0 -0.29095,0.0542 -0.46069,0.14473 l 0,0 0,0 c -0.14548,0.0905 -0.26671,0.19904 -0.33946,0.34378 l 0,0 0,2.80441 -0.63042,0 0,-3.79952 0.43645,0 0.19397,0.5066 0,0 0,0 c 0.19398,-0.37995 0.53345,-0.56088 0.99413,-0.56088 l 0,0 0,0 c 0.77591,0 1.16386,0.50659 1.16386,1.5198 l 0,0 0,2.334 -0.63043,0 z" /> 21.326 + <path 21.327 + inkscape:connector-curvature="0" 21.328 + id="56" 21.329 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.330 + d="m 272.01244,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0727,-0.23519 0.0242,-0.0723 0.097,-0.1267 0.19398,-0.16285 0.097,-0.0362 0.19396,-0.0542 0.31521,-0.0542 l 0,0 0,0.45231 -0.58193,0 z" /> 21.331 + <path 21.332 + inkscape:connector-curvature="0" 21.333 + id="57" 21.334 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.335 + d="m 272.59437,532.19714 39.06188,0 0,0.45232 0,0.47042 -39.06188,0 0,-0.47042 0,-0.45232 z" /> 21.336 + <path 21.337 + inkscape:connector-curvature="0" 21.338 + id="58" 21.339 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.340 + d="m 311.65625,532.19714 0,0 c 0.12123,0 0.21823,0.0181 0.31521,0.0542 0.097,0.0362 0.16973,0.0905 0.21822,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63043,0 0,-0.45231 z" /> 21.341 + <path 21.342 + inkscape:connector-curvature="0" 21.343 + id="59" 21.344 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.345 + d="m 312.28668,532.64946 0,23.24944 -0.63043,0 -0.60619,0 0,-23.24944 0.60619,0 0.63043,0 z" /> 21.346 + <path 21.347 + inkscape:connector-curvature="0" 21.348 + id="60" 21.349 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.350 + d="m 312.28668,555.8989 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12124,0.12669 -0.21822,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47044 0.63043,0 z" /> 21.351 + <path 21.352 + inkscape:connector-curvature="0" 21.353 + id="61" 21.354 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.355 + d="m 311.65625,556.36933 -39.06188,0 0,-0.47043 0,-0.45232 39.06188,0 0,0.45232 0,0.47043 z" /> 21.356 + <path 21.357 + inkscape:connector-curvature="0" 21.358 + id="62" 21.359 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.360 + d="m 272.59437,556.36933 0,0 c -0.12125,0 -0.21823,-0.0362 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.19398,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23521 l 0,0 0.58193,0 0,0.47043 z" /> 21.361 + <path 21.362 + inkscape:connector-curvature="0" 21.363 + id="63" 21.364 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.365 + d="m 272.01244,555.8989 0,-23.24944 0.58193,0 0.63042,0 0,23.24944 -0.63042,0 -0.58193,0 z" /> 21.366 + <path 21.367 + inkscape:connector-curvature="0" 21.368 + id="64" 21.369 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.370 + d="m 337.84298,542.56441 -2.47319,-3.79953 0,3.72715 -0.60617,0 0,-5.21078 0.26672,0 2.40044,3.60052 0,-3.60052 0.60618,0 0,5.28316 -0.19398,0 z" /> 21.371 + <path 21.372 + inkscape:connector-curvature="0" 21.373 + id="65" 21.374 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.375 + d="m 341.91649,540.64655 0,0 -2.5217,0 0,0 0,0 c 0,0.45231 0.097,0.79609 0.33947,1.03131 l 0,0 0,0 c 0.19397,0.2171 0.43643,0.30756 0.75165,0.30756 l 0,0 0,0 c 0.3637,0 0.65466,-0.10858 0.89713,-0.32566 l 0,0 0.26671,0.48851 0,0 0,0 c -0.097,0.0905 -0.24246,0.18093 -0.43643,0.27138 l 0,0 0,0 c -0.26673,0.0905 -0.53345,0.14476 -0.84865,0.14476 l 0,0 0,0 c -0.43644,0 -0.80014,-0.16285 -1.11536,-0.48851 l 0,0 0,0 c -0.33947,-0.36187 -0.5092,-0.85038 -0.5092,-1.44744 l 0,0 0,0 c 0,-0.63326 0.16973,-1.12177 0.53345,-1.50172 l 0,0 0,0 c 0.3152,-0.34377 0.67892,-0.50661 1.11536,-0.50661 l 0,0 0,0 c 0.48494,0 0.87289,0.14475 1.16385,0.45232 l 0,0 0,0 c 0.26672,0.30761 0.4122,0.66945 0.4122,1.15797 l 0,0 0,0 c 0,0.16282 -0.0242,0.28947 -0.0485,0.41613 z m -1.50332,-1.44745 0,0 0,0 c -0.29098,0 -0.50919,0.0905 -0.70316,0.2895 l 0,0 0,0 c -0.16973,0.18092 -0.29098,0.39804 -0.31522,0.66945 l 0,0 1.93977,0 0,0 0,0 c 0,-0.27141 -0.0727,-0.48853 -0.21824,-0.66945 l 0,0 0,0 c -0.16973,-0.19902 -0.4122,-0.2895 -0.70315,-0.2895 z" /> 21.376 + <path 21.377 + inkscape:connector-curvature="0" 21.378 + id="66" 21.379 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.380 + d="m 345.82024,542.56441 -0.14548,0 -1.04261,-2.60541 -0.99413,2.60541 -0.16974,0 -1.23659,-3.88999 0.65466,0 0.75167,2.49684 0.89713,-2.49684 0.16973,0 0.96988,2.49684 0.80015,-2.49684 0.60616,0 -1.26083,3.88999 z" /> 21.381 + <path 21.382 + inkscape:connector-curvature="0" 21.383 + id="67" 21.384 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.385 + d="m 347.61452,542.49203 0,-5.21078 0.65467,0 0,4.55943 2.15798,0 0,0.65135 -2.81265,0 z" /> 21.386 + <path 21.387 + inkscape:connector-curvature="0" 21.388 + id="68" 21.389 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.390 + d="m 352.92461,542.05781 0,0 0,0 c -0.24248,0.34375 -0.63041,0.5066 -1.13961,0.5066 l 0,0 0,0 c -0.29097,0 -0.50919,-0.10857 -0.72742,-0.32568 l 0,0 0,0 c -0.19396,-0.21712 -0.29095,-0.4885 -0.29095,-0.81419 l 0,0 0,0 c 0,-0.37994 0.14549,-0.70563 0.46068,-0.97701 l 0,0 0,0 c 0.31522,-0.27139 0.70317,-0.39804 1.1881,-0.39804 l 0,0 0,0 c 0.12123,0 0.29097,0.0181 0.43645,0.0905 l 0,0 0,0 c 0,-0.59707 -0.24247,-0.92274 -0.75165,-0.92274 l 0,0 0,0 c -0.38795,0 -0.67891,0.12669 -0.89715,0.34377 l 0,0 -0.26671,-0.5609 0,0 0,0 c 0.12123,-0.10857 0.29096,-0.19902 0.48495,-0.27138 l 0,0 0,0 c 0.21821,-0.0723 0.4122,-0.10858 0.60616,-0.10858 l 0,0 0,0 c 0.50918,0 0.8729,0.1267 1.11537,0.37995 l 0,0 0,0 c 0.21821,0.25331 0.33946,0.65134 0.33946,1.17606 l 0,0 0,1.37506 0,0 0,0 c 0,0.32565 0.097,0.56087 0.26672,0.66943 l 0,0 0,0.34378 0,0 0,0 c -0.24247,0 -0.43645,-0.0362 -0.55768,-0.1267 l 0,0 0,0 c -0.12124,-0.0723 -0.21822,-0.19902 -0.26672,-0.37993 z m -0.0727,-1.44744 0,0 0,0 c -0.19397,-0.0362 -0.31522,-0.0723 -0.4122,-0.0723 l 0,0 0,0 c -0.3152,0 -0.55768,0.0904 -0.75165,0.27138 l 0,0 0,0 c -0.19398,0.18093 -0.31521,0.37997 -0.31521,0.61516 l 0,0 0,0 c 0,0.39805 0.21823,0.59707 0.65466,0.59707 l 0,0 0,0 c 0.31522,0 0.58193,-0.16284 0.8244,-0.48851 l 0,-0.92274 z" /> 21.391 + <path 21.392 + inkscape:connector-curvature="0" 21.393 + id="69" 21.394 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.395 + d="m 356.5859,542.49203 0,0 0,-2.22544 0,0 0,0 c 0,-0.39803 -0.0485,-0.66943 -0.16973,-0.83227 l 0,0 0,0 c -0.097,-0.16282 -0.29096,-0.23522 -0.55768,-0.23522 l 0,0 0,0 c -0.12124,0 -0.26672,0.0362 -0.4122,0.1267 l 0,0 0,0 c -0.16974,0.0905 -0.29097,0.21711 -0.3637,0.34375 l 0,0 0,2.82251 -0.63042,0 0,-3.79953 0.43644,0 0.19398,0.48851 0,0 0,0 c 0.19396,-0.37995 0.53343,-0.56088 0.96988,-0.56088 l 0,0 0,0 c 0.7759,0 1.16385,0.50661 1.16385,1.50172 l 0,0 0,2.37018 -0.63042,0 z" /> 21.396 + <path 21.397 + inkscape:connector-curvature="0" 21.398 + id="70" 21.399 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.400 + d="m 357.96797,543.54142 0,0 0.33946,-0.5428 0,0 0,0 c 0.36371,0.25331 0.70317,0.39807 0.99413,0.39807 l 0,0 0,0 c 0.29097,0 0.50918,-0.0544 0.67891,-0.16285 l 0,0 0,0 c 0.16973,-0.10858 0.24248,-0.23522 0.24248,-0.39804 l 0,0 0,0 c 0,-0.30758 -0.21823,-0.47042 -0.60617,-0.47042 l 0,0 0,0 c -0.0727,0 -0.21823,0.0362 -0.38796,0.0723 l 0,0 0,0 c -0.19398,0.0362 -0.33946,0.0543 -0.43645,0.0543 l 0,0 0,0 c -0.48494,0 -0.75165,-0.21711 -0.75165,-0.61518 l 0,0 0,0 c 0,-0.12655 0.0727,-0.23519 0.19398,-0.34375 l 0,0 0,0 c 0.097,-0.10857 0.24246,-0.18093 0.43644,-0.21711 l 0,0 0,0 c -0.50919,-0.25329 -0.75165,-0.68753 -0.75165,-1.32079 l 0,0 0,0 c 0,-0.37995 0.12123,-0.70562 0.38794,-0.97701 l 0,0 0,0 c 0.24248,-0.2714 0.55769,-0.39805 0.94564,-0.39805 l 0,0 0,0 c 0.33946,0 0.60617,0.0723 0.80015,0.23521 l 0,0 0.31521,-0.41613 0.4122,0.41613 -0.38795,0.30759 0,0 0,0 c 0.16972,0.2352 0.24247,0.52469 0.24247,0.86846 l 0,0 0,0 c 0,0.37995 -0.097,0.70562 -0.31522,0.97702 l 0,0 0,0 c -0.24246,0.2533 -0.50919,0.41612 -0.87288,0.45232 l 0,0 -0.50919,0.0542 0,0 0,0 c -0.0727,0 -0.14549,0.0362 -0.26672,0.0723 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.10858 -0.14548,0.18095 l 0,0 0,0 c 0,0.0905 0.12123,0.14473 0.31521,0.14473 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43645,-0.0542 l 0,0 0,0 c 0.21821,-0.0362 0.3637,-0.0544 0.46069,-0.0544 l 0,0 0,0 c 0.33946,0 0.60617,0.0723 0.80014,0.25333 l 0,0 0,0 c 0.19398,0.18091 0.29097,0.43422 0.29097,0.75988 l 0,0 0,0 c 0,0.34378 -0.14548,0.63326 -0.43644,0.85037 l 0,0 0,0 c -0.29097,0.21713 -0.65467,0.32569 -1.09112,0.32569 l 0,0 0,0 c -0.24247,0 -0.48494,-0.0544 -0.72741,-0.14475 l 0,0 0,0 c -0.24247,-0.0723 -0.46069,-0.18094 -0.60618,-0.30758 z m 1.33359,-4.37848 0,0 0,0 c -0.21822,0 -0.4122,0.0904 -0.53343,0.25329 l 0,0 0,0 c -0.14549,0.16285 -0.21822,0.34377 -0.21822,0.57897 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.19397,0.66945 l 0,0 0,0 c 0.14548,0.18092 0.31521,0.2533 0.55768,0.2533 l 0,0 0,0 c 0.21822,0 0.38795,-0.0723 0.50918,-0.2533 l 0,0 0,0 c 0.12124,-0.16285 0.19398,-0.37995 0.19398,-0.66945 l 0,0 0,0 c 0,-0.2352 -0.0727,-0.41612 -0.21822,-0.57897 l 0,0 0,0 c -0.12124,-0.16284 -0.29097,-0.25329 -0.48494,-0.25329 z" /> 21.401 + <path 21.402 + inkscape:connector-curvature="0" 21.403 + id="71" 21.404 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.405 + d="m 362.96286,539.97712 1.1396,0 0,0.50659 -1.1396,0 0,1.23032 -0.46069,0 0,-1.23032 -1.09112,0 0,-0.50659 1.09112,0 0,-1.21224 0.46069,0 0,1.21224 z" /> 21.406 + <path 21.407 + inkscape:connector-curvature="0" 21.408 + id="72" 21.409 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.410 + d="m 365.63002,540.48371 0,0 0,2.00832 -0.65467,0 0,-5.21078 0,0 0,0 c 0.50919,-0.0181 0.80015,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.40632,0 2.061,0.5066 2.061,1.51979 l 0,0 0,0 c 0,1.15796 -0.58193,1.75502 -1.81853,1.75502 l 0,0 0,0 c -0.0727,0 -0.21822,-0.0181 -0.48494,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.29096,0.0362 0.43645,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.8244,0 1.23659,-0.32567 1.23659,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43644,-0.95893 -1.30933,-0.95893 l 0,0 0,0 c -0.097,0 -0.19398,0 -0.36371,0.0362 z" /> 21.411 + <path 21.412 + inkscape:connector-curvature="0" 21.413 + id="73" 21.414 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.415 + d="m 343.27432,547.77517 0,0 0,1.99023 -0.63043,0 0,-5.19268 0,0 0,0 c 0.48494,-0.0181 0.77589,-0.0362 0.87289,-0.0362 l 0,0 0,0 c 1.38207,0 2.08523,0.50661 2.08523,1.51981 l 0,0 0,0 c 0,1.17605 -0.63041,1.75502 -1.84276,1.75502 l 0,0 0,0 c -0.0727,0 -0.21823,0 -0.48493,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.29095,0.0181 0.43643,0.0362 0.46068,0.0362 l 0,0 0,0 c 0.7759,0 1.1881,-0.34377 1.1881,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43644,-0.95892 -1.28508,-0.95892 l 0,0 0,0 c -0.0727,0 -0.19399,0.0181 -0.3637,0.0362 z" /> 21.416 + <path 21.417 + inkscape:connector-curvature="0" 21.418 + id="74" 21.419 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.420 + d="m 346.35368,548.71599 0,0 0,-4.30612 0.60616,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0728,0.37995 0.16973,0.48851 l 0,0 0,0 c 0.12124,0.10858 0.24249,0.16283 0.43645,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.82439,0 -1.21234,-0.37995 -1.21234,-1.12177 z" /> 21.421 + <path 21.422 + inkscape:connector-curvature="0" 21.423 + id="75" 21.424 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.425 + d="m 348.87537,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.21822,0.86847 0.70315,0.86847 l 0,0 0,0 c 0.19398,0 0.36371,-0.0723 0.53345,-0.18092 l 0,0 0,0 c 0.16971,-0.1267 0.2667,-0.2714 0.33945,-0.43424 l 0,0 0,-2.69584 0.60616,0 0,3.79952 -0.60616,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.21822,0.2895 -0.43645,0.41614 l 0,0 0,0 c -0.19399,0.1267 -0.38795,0.18093 -0.58192,0.18093 l 0,0 0,0 c -0.38796,0 -0.67891,-0.10857 -0.8729,-0.34376 l 0,0 0,0 c -0.21823,-0.25331 -0.31521,-0.57897 -0.31521,-1.0132 l 0,0 0,-2.51492 0.63043,0 z" /> 21.426 + <path 21.427 + inkscape:connector-curvature="0" 21.428 + id="76" 21.429 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.430 + d="m 351.785,550.81479 0,0 0.33946,-0.54279 0,0 0,0 c 0.3637,0.2714 0.70317,0.39804 0.99412,0.39804 l 0,0 0,0 c 0.29096,0 0.5092,-0.0542 0.67891,-0.16284 l 0,0 0,0 c 0.14548,-0.0905 0.24247,-0.2352 0.24247,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.21822,-0.47044 -0.63042,-0.47044 l 0,0 0,0 c -0.0485,0 -0.19398,0.0181 -0.3637,0.0544 l 0,0 0,0 c -0.19398,0.0361 -0.33946,0.0542 -0.43645,0.0542 l 0,0 0,0 c -0.48493,0 -0.75166,-0.19902 -0.75166,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0727,-0.21711 0.19398,-0.32567 l 0,0 0,0 c 0.097,-0.0905 0.24249,-0.16284 0.4122,-0.2171 l 0,0 0,0 c -0.48493,-0.25332 -0.72741,-0.68754 -0.72741,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12123,-0.74182 0.38796,-0.99513 l 0,0 0,0 c 0.24247,-0.27138 0.55767,-0.39802 0.94563,-0.39802 l 0,0 0,0 c 0.33945,0 0.60617,0.0723 0.80015,0.2171 l 0,0 0.31522,-0.39805 0.41218,0.41615 -0.38795,0.30758 0,0 0,0 c 0.16973,0.21712 0.24248,0.5247 0.24248,0.88656 l 0,0 0,0 c 0,0.37996 -0.097,0.70562 -0.33946,0.95893 l 0,0 0,0 c -0.21824,0.27138 -0.50918,0.41612 -0.84865,0.45231 l 0,0 -0.50918,0.0544 0,0 0,0 c -0.0728,0.0181 -0.14549,0.0361 -0.26672,0.0905 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.0905 -0.14548,0.16283 l 0,0 0,0 c 0,0.0723 0.097,0.1267 0.31521,0.1267 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43644,-0.0544 l 0,0 0,0 c 0.21823,-0.0362 0.36371,-0.0362 0.4607,-0.0362 l 0,0 0,0 c 0.33944,0 0.60618,0.0723 0.80014,0.25329 l 0,0 0,0 c 0.19399,0.18094 0.29097,0.43424 0.29097,0.74182 l 0,0 0,0 c 0,0.36185 -0.14548,0.63326 -0.43645,0.85036 l 0,0 0,0 c -0.29097,0.21712 -0.65466,0.32567 -1.09111,0.32567 l 0,0 0,0 c -0.24247,0 -0.48494,-0.0362 -0.7274,-0.12669 l 0,0 0,0 c -0.24247,-0.0905 -0.4607,-0.19904 -0.60618,-0.32568 z m 1.33358,-4.3604 0,0 0,0 c -0.21822,0 -0.4122,0.0723 -0.53344,0.2352 l 0,0 0,0 c -0.14548,0.18093 -0.21821,0.37995 -0.21821,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.19396,0.66944 l 0,0 0,0 c 0.14549,0.16284 0.31522,0.25328 0.55769,0.25328 l 0,0 0,0 c 0.21823,0 0.38796,-0.0905 0.5092,-0.25328 l 0,0 0,0 c 0.12123,-0.16285 0.19396,-0.39805 0.19396,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.21821,-0.61517 l 0,0 0,0 c -0.12124,-0.16283 -0.29097,-0.2352 -0.48495,-0.2352 z" /> 21.431 + <path 21.432 + inkscape:connector-curvature="0" 21.433 + id="77" 21.434 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.435 + d="m 355.90699,544.53653 0,0 0,0 c 0.097,0 0.19396,0.0362 0.26671,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.097,0.18093 0.097,0.30758 l 0,0 0,0 c 0,0.10858 -0.0242,0.21712 -0.097,0.2895 l 0,0 0,0 c -0.0727,0.0905 -0.16973,0.12669 -0.26671,0.12669 l 0,0 0,0 c -0.12124,0 -0.19397,-0.0362 -0.26672,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.097,-0.18093 -0.097,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0242,-0.21711 0.097,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.14548,-0.10857 0.26672,-0.10857 z m -0.33947,5.22887 0,0 0,-3.22055 -0.46068,0 0,-0.57897 1.06686,0 0,3.79952 -0.60618,0 z" /> 21.436 + <path 21.437 + inkscape:connector-curvature="0" 21.438 + id="78" 21.439 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.440 + d="m 359.3258,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0727,-0.68752 -0.16972,-0.85037 l 0,0 0,0 c -0.12124,-0.16284 -0.31521,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14549,0 -0.29097,0.0542 -0.4607,0.14473 l 0,0 0,0 c -0.14548,0.0905 -0.26671,0.19904 -0.3637,0.34378 l 0,0 0,2.80441 -0.60617,0 0,-3.79952 0.4122,0 0.19397,0.5066 0,0 0,0 c 0.21822,-0.37995 0.55768,-0.56088 1.01837,-0.56088 l 0,0 0,0 c 0.77591,0 1.13961,0.50659 1.13961,1.5198 l 0,0 0,2.334 -0.60618,0 z" /> 21.441 + <path 21.442 + inkscape:connector-curvature="0" 21.443 + id="79" 21.444 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.445 + d="m 331.27205,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0728,-0.23519 0.0485,-0.0723 0.12123,-0.1267 0.21821,-0.16285 0.097,-0.0362 0.19399,-0.0542 0.29097,-0.0542 l 0,0 0,0.45231 -0.58193,0 z" /> 21.446 + <path 21.447 + inkscape:connector-curvature="0" 21.448 + id="80" 21.449 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.450 + d="m 331.85398,532.19714 39.06188,0 0,0.45232 0,0.47042 -39.06188,0 0,-0.47042 0,-0.45232 z" /> 21.451 + <path 21.452 + inkscape:connector-curvature="0" 21.453 + id="81" 21.454 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.455 + d="m 370.91586,532.19714 0,0 c 0.12123,0 0.21823,0.0181 0.31521,0.0542 0.097,0.0362 0.16973,0.0905 0.21823,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63042,0 0,-0.45231 z" /> 21.456 + <path 21.457 + inkscape:connector-curvature="0" 21.458 + id="82" 21.459 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.460 + d="m 371.54628,532.64946 0,23.17707 -0.63042,0 -0.60617,0 0,-23.17707 0.60617,0 0.63042,0 z" /> 21.461 + <path 21.462 + inkscape:connector-curvature="0" 21.463 + id="83" 21.464 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.465 + d="m 371.54628,555.82653 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12123,0.12669 -0.21823,0.16282 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47043 0.63042,0 z" /> 21.466 + <path 21.467 + inkscape:connector-curvature="0" 21.468 + id="84" 21.469 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.470 + d="m 370.91586,556.29697 -39.06188,0 0,-0.47044 0,-0.45233 39.06188,0 0,0.45233 0,0.47044 z" /> 21.471 + <path 21.472 + inkscape:connector-curvature="0" 21.473 + id="85" 21.474 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.475 + d="m 331.85398,556.29697 0,0 c -0.097,0 -0.19397,-0.0362 -0.29097,-0.0723 -0.097,-0.0362 -0.16971,-0.0905 -0.21821,-0.16283 -0.0485,-0.0723 -0.0728,-0.14476 -0.0728,-0.23521 l 0,0 0.58193,0 0,0.47043 z" /> 21.476 + <path 21.477 + inkscape:connector-curvature="0" 21.478 + id="86" 21.479 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.480 + d="m 331.27205,555.82653 0,-23.17707 0.58193,0 0.63041,0 0,23.17707 -0.63041,0 -0.58193,0 z" /> 21.481 + <path 21.482 + inkscape:connector-curvature="0" 21.483 + id="87" 21.484 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.485 + d="m 422.36795,539.83236 0,0 0,0 c 0,-0.74179 0.16973,-1.37506 0.50919,-1.88165 l 0,0 0,0 c 0.3637,-0.50662 0.82439,-0.75991 1.40632,-0.75991 l 0,0 0,0 c 0.67892,0 1.1881,0.23521 1.55181,0.70562 l 0,0 0,0 c 0.33946,0.47043 0.50919,1.12177 0.50919,1.93594 l 0,0 0,0 c 0,0.86846 -0.16973,1.53792 -0.53344,2.02642 l 0,0 0,0 c -0.33946,0.47042 -0.84864,0.72371 -1.52756,0.72371 l 0,0 0,0 c -0.58193,0 -1.06687,-0.25329 -1.40632,-0.778 l 0,0 0,0 c -0.33946,-0.50661 -0.50919,-1.15794 -0.50919,-1.97213 z m 0.67891,0 0,0 0,0 c 0,0.59708 0.12124,1.10368 0.33946,1.50172 l 0,0 0,0 c 0.21823,0.39804 0.50919,0.59706 0.89714,0.59706 l 0,0 0,0 c 0.46069,0 0.80015,-0.18091 1.04262,-0.54278 l 0,0 0,0 c 0.21823,-0.36186 0.33946,-0.88656 0.33946,-1.556 l 0,0 0,0 c 0,-1.32077 -0.46069,-1.99021 -1.38208,-1.99021 l 0,0 0,0 c -0.38795,0 -0.70316,0.18092 -0.92139,0.54278 l 0,0 0,0 c -0.19397,0.36186 -0.31521,0.85037 -0.31521,1.44743 z" /> 21.486 + <path 21.487 + inkscape:connector-curvature="0" 21.488 + id="88" 21.489 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.490 + d="m 427.65379,542.27492 0,0 0,1.71883 -0.60617,0 0,-5.30125 0.60617,0 0,0.30758 0,0 0,0 c 0.24247,-0.25329 0.53344,-0.37995 0.84864,-0.37995 l 0,0 0,0 c 0.50919,0 0.89715,0.16284 1.16386,0.50661 l 0,0 0,0 c 0.29097,0.34376 0.4122,0.81418 0.4122,1.46555 l 0,0 0,0 c 0,0.57897 -0.12123,1.04937 -0.4122,1.41123 l 0,0 0,0 c -0.26671,0.37996 -0.67892,0.56089 -1.21235,0.56089 l 0,0 0,0 c -0.14548,0 -0.29096,-0.0362 -0.46069,-0.0904 l 0,0 0,0 c -0.16973,-0.0542 -0.29096,-0.1267 -0.33946,-0.19901 z m 0,-2.76823 0,0 0,2.20734 0,0 0,0 c 0.0485,0.0723 0.12123,0.1267 0.24247,0.19902 l 0,0 0,0 c 0.14548,0.0544 0.26672,0.0723 0.38795,0.0723 l 0,0 0,0 c 0.75166,0 1.13961,-0.47041 1.13961,-1.41123 l 0,0 0,0 c 0,-0.48853 -0.0727,-0.83228 -0.26672,-1.04939 l 0,0 0,0 c -0.19397,-0.21713 -0.48494,-0.32569 -0.87289,-0.32569 l 0,0 0,0 c -0.097,0 -0.19397,0.0181 -0.31521,0.0905 l 0,0 0,0 c -0.14548,0.0723 -0.24247,0.14475 -0.31521,0.21712 z" /> 21.491 + <path 21.492 + inkscape:connector-curvature="0" 21.493 + id="89" 21.494 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.495 + d="m 433.69129,540.64655 0,0 -2.49744,0 0,0 0,0 c 0,0.45231 0.097,0.79609 0.33946,1.03131 l 0,0 0,0 c 0.19397,0.2171 0.43645,0.30756 0.75166,0.30756 l 0,0 0,0 c 0.3637,0 0.65466,-0.10858 0.89714,-0.32566 l 0,0 0.24246,0.48851 0,0 0,0 c -0.0727,0.0905 -0.21822,0.18093 -0.41219,0.27138 l 0,0 0,0 c -0.26672,0.0905 -0.53344,0.14476 -0.84865,0.14476 l 0,0 0,0 c -0.43645,0 -0.80015,-0.16285 -1.11536,-0.48851 l 0,0 0,0 c -0.33946,-0.36187 -0.50919,-0.85038 -0.50919,-1.44744 l 0,0 0,0 c 0,-0.63326 0.16973,-1.12177 0.53343,-1.50172 l 0,0 0,0 c 0.31521,-0.34377 0.67892,-0.50661 1.11537,-0.50661 l 0,0 0,0 c 0.48494,0 0.87289,0.14475 1.16385,0.45232 l 0,0 0,0 c 0.24247,0.30761 0.38795,0.66945 0.38795,1.15797 l 0,0 0,0 c 0,0.16282 -0.0242,0.28947 -0.0485,0.41613 z m -1.47907,-1.44745 0,0 0,0 c -0.29096,0 -0.50919,0.0905 -0.70316,0.2895 l 0,0 0,0 c -0.16973,0.18092 -0.29096,0.39804 -0.31521,0.66945 l 0,0 1.93976,0 0,0 0,0 c 0,-0.27141 -0.0727,-0.48853 -0.21823,-0.66945 l 0,0 0,0 c -0.16972,-0.19902 -0.41219,-0.2895 -0.70316,-0.2895 z" /> 21.496 + <path 21.497 + inkscape:connector-curvature="0" 21.498 + id="90" 21.499 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.500 + d="m 436.55243,542.49203 0,0 0,-2.22544 0,0 0,0 c 0,-0.39803 -0.0727,-0.66943 -0.16972,-0.83227 l 0,0 0,0 c -0.12124,-0.16282 -0.31521,-0.23522 -0.55769,-0.23522 l 0,0 0,0 c -0.14548,0 -0.29096,0.0362 -0.46069,0.1267 l 0,0 0,0 c -0.14548,0.0905 -0.26672,0.21711 -0.3637,0.34375 l 0,0 0,2.82251 -0.60617,0 0,-3.79953 0.41219,0 0.19398,0.48851 0,0 0,0 c 0.21822,-0.37995 0.55768,-0.56088 1.01837,-0.56088 l 0,0 0,0 c 0.7759,0 1.13961,0.50661 1.13961,1.50172 l 0,0 0,2.37018 -0.60618,0 z" /> 21.501 + <path 21.502 + inkscape:connector-curvature="0" 21.503 + id="91" 21.504 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.505 + d="m 441.66855,542.49203 -0.58193,-3.32909 -1.04262,3.40147 -0.16973,0 -1.01838,-3.40147 -0.55767,3.32909 -0.63043,0 0.89714,-5.21078 0.31521,0 1.09112,3.79954 1.04262,-3.79954 0.29096,0 0.96988,5.21078 -0.60617,0 z" /> 21.506 + <path 21.507 + inkscape:connector-curvature="0" 21.508 + id="92" 21.509 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.510 + d="m 443.46282,540.48371 0,0 0,2.00832 -0.65467,0 0,-5.21078 0,0 0,0 c 0.48494,-0.0181 0.80015,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.38208,0 2.061,0.5066 2.061,1.51979 l 0,0 0,0 c 0,1.15796 -0.58193,1.75502 -1.81853,1.75502 l 0,0 0,0 c -0.0727,0 -0.24247,-0.0181 -0.48494,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.26672,0.0362 0.4122,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.80015,0 1.21234,-0.32567 1.21234,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43644,-0.95893 -1.28508,-0.95893 l 0,0 0,0 c -0.097,0 -0.21823,0 -0.36371,0.0362 z" /> 21.511 + <path 21.512 + inkscape:connector-curvature="0" 21.513 + id="93" 21.514 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.515 + d="m 448.02125,539.97712 1.13962,0 0,0.50659 -1.13962,0 0,1.23032 -0.46069,0 0,-1.23032 -1.1396,0 0,-0.50659 1.1396,0 0,-1.21224 0.46069,0 0,1.21224 z" /> 21.516 + <path 21.517 + inkscape:connector-curvature="0" 21.518 + id="94" 21.519 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.520 + d="m 450.68843,540.48371 0,0 0,2.00832 -0.65468,0 0,-5.21078 0,0 0,0 c 0.50919,-0.0181 0.80015,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.38208,0 2.06099,0.5066 2.06099,1.51979 l 0,0 0,0 c 0,1.15796 -0.60617,1.75502 -1.81852,1.75502 l 0,0 0,0 c -0.0727,0 -0.21822,-0.0181 -0.48493,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.29096,0.0362 0.43644,0.0362 0.43644,0.0362 l 0,0 0,0 c 0.80014,0 1.21235,-0.32567 1.21235,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43645,-0.95893 -1.2851,-0.95893 l 0,0 0,0 c -0.097,0 -0.19397,0 -0.36369,0.0362 z" /> 21.521 + <path 21.522 + inkscape:connector-curvature="0" 21.523 + id="95" 21.524 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.525 + d="m 429.71478,547.77517 0,0 0,1.99023 -0.65466,0 0,-5.19268 0,0 0,0 c 0.50918,-0.0181 0.80014,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.40632,0 2.08523,0.50661 2.08523,1.51981 l 0,0 0,0 c 0,1.17605 -0.60617,1.75502 -1.84277,1.75502 l 0,0 0,0 c -0.0727,0 -0.24246,0 -0.48494,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.29097,0.0181 0.43645,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.8244,0 1.23659,-0.34377 1.23659,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43644,-0.95892 -1.30933,-0.95892 l 0,0 0,0 c -0.097,0 -0.21823,0.0181 -0.36371,0.0362 z" /> 21.526 + <path 21.527 + inkscape:connector-curvature="0" 21.528 + id="96" 21.529 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.530 + d="m 432.8184,548.71599 0,0 0,-4.30612 0.58192,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.16973,0.48851 l 0,0 0,0 c 0.097,0.10858 0.24247,0.16283 0.4122,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.7759,0 -1.16385,-0.37995 -1.16385,-1.12177 z" /> 21.531 + <path 21.532 + inkscape:connector-curvature="0" 21.533 + id="97" 21.534 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.535 + d="m 435.29159,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.24247,0.86847 0.70316,0.86847 l 0,0 0,0 c 0.21823,0 0.4122,-0.0723 0.58193,-0.18092 l 0,0 0,0 c 0.16973,-0.1267 0.26672,-0.2714 0.31521,-0.43424 l 0,0 0,-2.69584 0.63042,0 0,3.79952 -0.63042,0 0,-0.52471 0,0 0,0 c -0.0485,0.16285 -0.19398,0.2895 -0.4122,0.41614 l 0,0 0,0 c -0.21822,0.1267 -0.41219,0.18093 -0.60617,0.18093 l 0,0 0,0 c -0.38795,0 -0.67892,-0.10857 -0.89714,-0.34376 l 0,0 0,0 c -0.19398,-0.25331 -0.29096,-0.57897 -0.29096,-1.0132 l 0,0 0,-2.51492 0.60617,0 z" /> 21.536 + <path 21.537 + inkscape:connector-curvature="0" 21.538 + id="98" 21.539 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.540 + d="m 438.24972,550.81479 0,0 0.33946,-0.54279 0,0 0,0 c 0.36371,0.2714 0.65467,0.39804 0.94563,0.39804 l 0,0 0,0 c 0.29097,0 0.50919,-0.0542 0.67891,-0.16284 l 0,0 0,0 c 0.14549,-0.0905 0.24248,-0.2352 0.24248,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.21823,-0.47044 -0.63042,-0.47044 l 0,0 0,0 c -0.0727,0 -0.19398,0.0181 -0.36371,0.0544 l 0,0 0,0 c -0.16973,0.0361 -0.31521,0.0542 -0.4122,0.0542 l 0,0 0,0 c -0.48494,0 -0.72741,-0.19902 -0.72741,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0727,-0.21711 0.16973,-0.32567 l 0,0 0,0 c 0.12124,-0.0905 0.26672,-0.16284 0.43645,-0.2171 l 0,0 0,0 c -0.48494,-0.25332 -0.72741,-0.68754 -0.72741,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12123,-0.74182 0.38795,-0.99513 l 0,0 0,0 c 0.24247,-0.27138 0.53344,-0.39802 0.89714,-0.39802 l 0,0 0,0 c 0.33946,0 0.60617,0.0723 0.80015,0.2171 l 0,0 0.31521,-0.39805 0.38795,0.41615 -0.3637,0.30758 0,0 0,0 c 0.16973,0.21712 0.24246,0.5247 0.24246,0.88656 l 0,0 0,0 c 0,0.37996 -0.12123,0.70562 -0.33946,0.95893 l 0,0 0,0 c -0.21821,0.27138 -0.50918,0.41612 -0.87288,0.45231 l 0,0 -0.48495,0.0544 0,0 0,0 c -0.0485,0.0181 -0.14548,0.0361 -0.21821,0.0905 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.0905 -0.14548,0.16283 l 0,0 0,0 c 0,0.0723 0.097,0.1267 0.29096,0.1267 l 0,0 0,0 c 0.097,0 0.24246,-0.0181 0.41219,-0.0544 l 0,0 0,0 c 0.19398,-0.0362 0.33946,-0.0362 0.43645,-0.0362 l 0,0 0,0 c 0.36371,0 0.63042,0.0723 0.8244,0.25329 l 0,0 0,0 c 0.19397,0.18094 0.29096,0.43424 0.29096,0.74182 l 0,0 0,0 c 0,0.36185 -0.14548,0.63326 -0.43644,0.85036 l 0,0 0,0 c -0.29096,0.21712 -0.65467,0.32567 -1.11537,0.32567 l 0,0 0,0 c -0.19397,0 -0.43644,-0.0362 -0.65467,-0.12669 l 0,0 0,0 c -0.24246,-0.0905 -0.46069,-0.19904 -0.60617,-0.32568 z m 1.26084,-4.3604 0,0 0,0 c -0.19397,0 -0.3637,0.0723 -0.50919,0.2352 l 0,0 0,0 c -0.097,0.18093 -0.16972,0.37995 -0.16972,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.16972,0.66944 l 0,0 0,0 c 0.14549,0.16284 0.31522,0.25328 0.50919,0.25328 l 0,0 0,0 c 0.21823,0 0.38795,-0.0905 0.53344,-0.25328 l 0,0 0,0 c 0.12124,-0.16285 0.16972,-0.39805 0.16972,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.19397,-0.61517 l 0,0 0,0 c -0.14548,-0.16283 -0.29096,-0.2352 -0.50919,-0.2352 z" /> 21.541 + <path 21.542 + inkscape:connector-curvature="0" 21.543 + id="99" 21.544 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.545 + d="m 442.32322,544.53653 0,0 0,0 c 0.12123,0 0.19397,0.0362 0.29096,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.097,0.18093 0.097,0.30758 l 0,0 0,0 c 0,0.10858 -0.0242,0.21712 -0.097,0.2895 l 0,0 0,0 c -0.097,0.0905 -0.16973,0.12669 -0.29096,0.12669 l 0,0 0,0 c -0.097,0 -0.19398,-0.0362 -0.26673,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.12123,-0.18093 -0.12123,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0485,-0.21711 0.12123,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.16973,-0.10857 0.26673,-0.10857 z m -0.33946,5.22887 0,0 0,-3.22055 -0.48494,0 0,-0.57897 1.11536,0 0,3.79952 -0.63042,0 z" /> 21.546 + <path 21.547 + inkscape:connector-curvature="0" 21.548 + id="100" 21.549 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.550 + d="m 445.74204,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0727,-0.68752 -0.16973,-0.85037 l 0,0 0,0 c -0.12124,-0.16284 -0.29097,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14548,0 -0.29096,0.0542 -0.43644,0.14473 l 0,0 0,0 c -0.14549,0.0905 -0.26673,0.19904 -0.36371,0.34378 l 0,0 0,2.80441 -0.60618,0 0,-3.79952 0.4122,0 0.19398,0.5066 0,0 0,0 c 0.21822,-0.37995 0.55767,-0.56088 1.01837,-0.56088 l 0,0 0,0 c 0.72741,0 1.11536,0.50659 1.11536,1.5198 l 0,0 0,2.334 -0.60617,0 z" /> 21.551 + <path 21.552 + inkscape:connector-curvature="0" 21.553 + id="101" 21.554 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.555 + d="m 417.71253,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0727,-0.23519 0.0485,-0.0723 0.12124,-0.1267 0.21823,-0.16285 0.097,-0.0362 0.19397,-0.0542 0.3152,-0.0542 l 0,0 0,0.45231 -0.60617,0 z" /> 21.556 + <path 21.557 + inkscape:connector-curvature="0" 21.558 + id="102" 21.559 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.560 + d="m 418.3187,532.19714 39.0134,0 0,0.45232 0,0.47042 -39.0134,0 0,-0.47042 0,-0.45232 z" /> 21.561 + <path 21.562 + inkscape:connector-curvature="0" 21.563 + id="103" 21.564 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.565 + d="m 457.3321,532.19714 0,0 c 0.12123,0 0.21821,0.0181 0.31521,0.0542 0.097,0.0362 0.16973,0.0905 0.21821,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63042,0 0,-0.45231 z" /> 21.566 + <path 21.567 + inkscape:connector-curvature="0" 21.568 + id="104" 21.569 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.570 + d="m 457.96252,532.64946 0,23.24944 -0.63042,0 -0.58193,0 0,-23.24944 0.58193,0 0.63042,0 z" /> 21.571 + <path 21.572 + inkscape:connector-curvature="0" 21.573 + id="105" 21.574 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.575 + d="m 457.96252,555.8989 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12123,0.12669 -0.21821,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47044 0.63042,0 z" /> 21.576 + <path 21.577 + inkscape:connector-curvature="0" 21.578 + id="106" 21.579 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.580 + d="m 457.3321,556.36933 -39.0134,0 0,-0.47043 0,-0.45232 39.0134,0 0,0.45232 0,0.47043 z" /> 21.581 + <path 21.582 + inkscape:connector-curvature="0" 21.583 + id="107" 21.584 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.585 + d="m 418.3187,556.36933 0,0 c -0.12123,0 -0.21822,-0.0362 -0.3152,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21823,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23521 l 0,0 0.60617,0 0,0.47043 z" /> 21.586 + <path 21.587 + inkscape:connector-curvature="0" 21.588 + id="108" 21.589 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.590 + d="m 417.71253,555.8989 0,-23.24944 0.60617,0 0.63042,0 0,23.24944 -0.63042,0 -0.60617,0 z" /> 21.591 + <path 21.592 + inkscape:connector-curvature="0" 21.593 + id="109" 21.594 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.595 + d="m 492.27199,542.49203 -0.55768,-3.32909 -1.04262,3.40147 -0.16973,0 -1.09111,-3.40147 -0.53344,3.32909 -0.63042,0 0.89714,-5.21078 0.29097,0 1.1396,3.79954 1.06687,-3.79954 0.29096,0 0.96988,5.21078 -0.63042,0 z" /> 21.596 + <path 21.597 + inkscape:connector-curvature="0" 21.598 + id="110" 21.599 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.600 + d="m 494.04201,540.48371 0,0 0,2.00832 -0.65466,0 0,-5.21078 0,0 0,0 c 0.50918,-0.0181 0.80015,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.40632,0 2.08524,0.5066 2.08524,1.51979 l 0,0 0,0 c 0,1.15796 -0.60618,1.75502 -1.84277,1.75502 l 0,0 0,0 c -0.0727,0 -0.21822,-0.0181 -0.48495,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.29097,0.0362 0.43645,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.8244,0 1.2366,-0.32567 1.2366,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43645,-0.95893 -1.30934,-0.95893 l 0,0 0,0 c -0.097,0 -0.19398,0 -0.36371,0.0362 z" /> 21.601 + <path 21.602 + inkscape:connector-curvature="0" 21.603 + id="111" 21.604 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.605 + d="m 497.24262,542.49203 0,-5.21078 0.65467,0 0,5.21078 -0.65467,0 z" /> 21.606 + <path 21.607 + inkscape:connector-curvature="0" 21.608 + id="112" 21.609 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.610 + d="m 500.49172,539.97712 1.1396,0 0,0.50659 -1.1396,0 0,1.23032 -0.4607,0 0,-1.23032 -1.11536,0 0,-0.50659 1.11536,0 0,-1.21224 0.4607,0 0,1.21224 z" /> 21.611 + <path 21.612 + inkscape:connector-curvature="0" 21.613 + id="113" 21.614 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.615 + d="m 503.15888,540.48371 0,0 0,2.00832 -0.65466,0 0,-5.21078 0,0 0,0 c 0.48493,-0.0181 0.80014,-0.0362 0.89713,-0.0362 l 0,0 0,0 c 1.38208,0 2.06099,0.5066 2.06099,1.51979 l 0,0 0,0 c 0,1.15796 -0.58192,1.75502 -1.81852,1.75502 l 0,0 0,0 c -0.0727,0 -0.24247,-0.0181 -0.48494,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.26672,0.0362 0.4122,0.0362 0.43644,0.0362 l 0,0 0,0 c 0.80016,0 1.21235,-0.32567 1.21235,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43644,-0.95893 -1.28508,-0.95893 l 0,0 0,0 c -0.097,0 -0.21823,0 -0.36371,0.0362 z" /> 21.616 + <path 21.617 + inkscape:connector-curvature="0" 21.618 + id="114" 21.619 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.620 + d="m 488.9744,547.77517 0,0 0,1.99023 -0.65467,0 0,-5.19268 0,0 0,0 c 0.50919,-0.0181 0.80015,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.38208,0 2.08524,0.50661 2.08524,1.51981 l 0,0 0,0 c 0,1.17605 -0.60618,1.75502 -1.84278,1.75502 l 0,0 0,0 c -0.0727,0 -0.24246,0 -0.48493,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.29097,0.0181 0.43645,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.82439,0 1.21235,-0.34377 1.21235,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.41221,-0.95892 -1.2851,-0.95892 l 0,0 0,0 c -0.097,0 -0.21822,0.0181 -0.3637,0.0362 z" /> 21.621 + <path 21.622 + inkscape:connector-curvature="0" 21.623 + id="115" 21.624 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.625 + d="m 492.05376,548.71599 0,0 0,-4.30612 0.63042,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.16973,0.48851 l 0,0 0,0 c 0.097,0.10858 0.24248,0.16283 0.38796,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.7759,0 -1.18811,-0.37995 -1.18811,-1.12177 z" /> 21.626 + <path 21.627 + inkscape:connector-curvature="0" 21.628 + id="116" 21.629 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.630 + d="m 494.5512,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.24247,0.86847 0.70316,0.86847 l 0,0 0,0 c 0.21823,0 0.38796,-0.0723 0.55769,-0.18092 l 0,0 0,0 c 0.16973,-0.1267 0.29096,-0.2714 0.33946,-0.43424 l 0,0 0,-2.69584 0.63041,0 0,3.79952 -0.63041,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.19398,0.2895 -0.4122,0.41614 l 0,0 0,0 c -0.21823,0.1267 -0.4122,0.18093 -0.60618,0.18093 l 0,0 0,0 c -0.38795,0 -0.67891,-0.10857 -0.89714,-0.34376 l 0,0 0,0 c -0.19398,-0.25331 -0.29096,-0.57897 -0.29096,-1.0132 l 0,0 0,-2.51492 0.60617,0 z" /> 21.631 + <path 21.632 + inkscape:connector-curvature="0" 21.633 + id="117" 21.634 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.635 + d="m 497.50934,550.81479 0,0 0.33945,-0.54279 0,0 0,0 c 0.36371,0.2714 0.67892,0.39804 0.99413,0.39804 l 0,0 0,0 c 0.26672,0 0.48494,-0.0542 0.63043,-0.16284 l 0,0 0,0 c 0.16972,-0.0905 0.24246,-0.2352 0.24246,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.19398,-0.47044 -0.60617,-0.47044 l 0,0 0,0 c -0.0485,0 -0.16973,0.0181 -0.36371,0.0544 l 0,0 0,0 c -0.16973,0.0361 -0.31521,0.0542 -0.4122,0.0542 l 0,0 0,0 c -0.50919,0 -0.75165,-0.19902 -0.75165,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0485,-0.21711 0.16973,-0.32567 l 0,0 0,0 c 0.12123,-0.0905 0.26671,-0.16284 0.43644,-0.2171 l 0,0 0,0 c -0.48494,-0.25332 -0.72741,-0.68754 -0.72741,-1.3027 l 0,0 0,0 c 0,-0.39805 0.12124,-0.74182 0.3637,-0.99513 l 0,0 0,0 c 0.26673,-0.27138 0.58194,-0.39802 0.94564,-0.39802 l 0,0 0,0 c 0.33946,0 0.60617,0.0723 0.80015,0.2171 l 0,0 0.31521,-0.39805 0.38795,0.41615 -0.3637,0.30758 0,0 0,0 c 0.14548,0.21712 0.24247,0.5247 0.24247,0.88656 l 0,0 0,0 c 0,0.37996 -0.12124,0.70562 -0.33946,0.95893 l 0,0 0,0 c -0.21822,0.27138 -0.50918,0.41612 -0.84864,0.45231 l 0,0 -0.50919,0.0544 0,0 0,0 c -0.0485,0.0181 -0.14549,0.0361 -0.24247,0.0905 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.0905 -0.14548,0.16283 l 0,0 0,0 c 0,0.0723 0.097,0.1267 0.31521,0.1267 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43644,-0.0544 l 0,0 0,0 c 0.19398,-0.0362 0.31522,-0.0362 0.4122,-0.0362 l 0,0 0,0 c 0.33946,0 0.63042,0.0723 0.80015,0.25329 l 0,0 0,0 c 0.19398,0.18094 0.29097,0.43424 0.29097,0.74182 l 0,0 0,0 c 0,0.36185 -0.14549,0.63326 -0.4122,0.85036 l 0,0 0,0 c -0.29096,0.21712 -0.65467,0.32567 -1.09112,0.32567 l 0,0 0,0 c -0.21822,0 -0.46069,-0.0362 -0.70315,-0.12669 l 0,0 0,0 c -0.26673,-0.0905 -0.4607,-0.19904 -0.60618,-0.32568 z m 1.30933,-4.3604 0,0 0,0 c -0.21822,0 -0.38795,0.0723 -0.53343,0.2352 l 0,0 0,0 c -0.12124,0.18093 -0.19397,0.37995 -0.19397,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.19397,0.66944 l 0,0 0,0 c 0.14548,0.16284 0.31521,0.25328 0.53343,0.25328 l 0,0 0,0 c 0.21822,0 0.36371,-0.0905 0.48495,-0.25328 l 0,0 0,0 c 0.14548,-0.16285 0.19397,-0.39805 0.19397,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.19397,-0.61517 l 0,0 0,0 c -0.14549,-0.16283 -0.29097,-0.2352 -0.48495,-0.2352 z" /> 21.636 + <path 21.637 + inkscape:connector-curvature="0" 21.638 + id="118" 21.639 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.640 + d="m 501.60707,544.53653 0,0 0,0 c 0.12124,0 0.19398,0.0362 0.26672,0.10857 l 0,0 0,0 c 0.097,0.0905 0.12124,0.18093 0.12124,0.30758 l 0,0 0,0 c 0,0.10858 -0.0242,0.21712 -0.12124,0.2895 l 0,0 0,0 c -0.0727,0.0905 -0.14548,0.12669 -0.26672,0.12669 l 0,0 0,0 c -0.097,0 -0.19397,-0.0362 -0.26671,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.12124,-0.18093 -0.12124,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0485,-0.21711 0.12124,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.16973,-0.10857 0.26671,-0.10857 z m -0.33945,5.22887 0,0 0,-3.22055 -0.48494,0 0,-0.57897 1.11536,0 0,3.79952 -0.63042,0 z" /> 21.641 + <path 21.642 + inkscape:connector-curvature="0" 21.643 + id="119" 21.644 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.645 + d="m 505.0259,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0485,-0.68752 -0.16973,-0.85037 l 0,0 0,0 c -0.097,-0.16284 -0.29096,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14548,0 -0.29096,0.0542 -0.43644,0.14473 l 0,0 0,0 c -0.16973,0.0905 -0.26673,0.19904 -0.36371,0.34378 l 0,0 0,2.80441 -0.63042,0 0,-3.79952 0.43644,0 0.19398,0.5066 0,0 0,0 c 0.21823,-0.37995 0.53344,-0.56088 1.01837,-0.56088 l 0,0 0,0 c 0.72742,0 1.11536,0.50659 1.11536,1.5198 l 0,0 0,2.334 -0.60617,0 z" /> 21.646 + <path 21.647 + inkscape:connector-curvature="0" 21.648 + id="120" 21.649 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.650 + d="m 476.97215,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0727,-0.23519 0.0485,-0.0723 0.12123,-0.1267 0.21822,-0.16285 0.097,-0.0362 0.19397,-0.0542 0.31521,-0.0542 l 0,0 0,0.45231 -0.60617,0 z" /> 21.651 + <path 21.652 + inkscape:connector-curvature="0" 21.653 + id="121" 21.654 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.655 + d="m 477.57832,532.19714 39.03764,0 0,0.45232 0,0.47042 -39.03764,0 0,-0.47042 0,-0.45232 z" /> 21.656 + <path 21.657 + inkscape:connector-curvature="0" 21.658 + id="122" 21.659 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.660 + d="m 516.61596,532.19714 0,0 c 0.12123,0 0.21821,0.0181 0.31521,0.0542 0.0727,0.0362 0.14548,0.0905 0.19397,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.60617,0 0,-0.45231 z" /> 21.661 + <path 21.662 + inkscape:connector-curvature="0" 21.663 + id="123" 21.664 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.665 + d="m 517.22213,532.64946 0,23.24944 -0.60617,0 -0.60618,0 0,-23.24944 0.60618,0 0.60617,0 z" /> 21.666 + <path 21.667 + inkscape:connector-curvature="0" 21.668 + id="124" 21.669 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.670 + d="m 517.22213,555.8989 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12124,0.12669 -0.19397,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47044 0.60617,0 z" /> 21.671 + <path 21.672 + inkscape:connector-curvature="0" 21.673 + id="125" 21.674 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.675 + d="m 516.61596,556.36933 -39.03764,0 0,-0.47043 0,-0.45232 39.03764,0 0,0.45232 0,0.47043 z" /> 21.676 + <path 21.677 + inkscape:connector-curvature="0" 21.678 + id="126" 21.679 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.680 + d="m 477.57832,556.36933 0,0 c -0.12124,0 -0.21822,-0.0362 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21822,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23521 l 0,0 0.60617,0 0,0.47043 z" /> 21.681 + <path 21.682 + inkscape:connector-curvature="0" 21.683 + id="127" 21.684 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.685 + d="m 476.97215,555.8989 0,-23.24944 0.60617,0 0.63042,0 0,23.24944 -0.63042,0 -0.60617,0 z" /> 21.686 + <path 21.687 + inkscape:connector-curvature="0" 21.688 + id="128" 21.689 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.690 + d="m 542.82693,542.56441 -2.44894,-3.79953 0,3.72715 -0.63041,0 0,-5.21078 0.26671,0 2.40045,3.60052 0,-3.60052 0.60617,0 0,5.28316 -0.19398,0 z" /> 21.691 + <path 21.692 + inkscape:connector-curvature="0" 21.693 + id="129" 21.694 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.695 + d="m 546.87619,540.64655 0,0 -2.49745,0 0,0 0,0 c 0,0.45231 0.12124,0.79609 0.33946,1.03131 l 0,0 0,0 c 0.19398,0.2171 0.4607,0.30756 0.77591,0.30756 l 0,0 0,0 c 0.33946,0 0.65467,-0.10858 0.87289,-0.32566 l 0,0 0.26671,0.48851 0,0 0,0 c -0.097,0.0905 -0.24247,0.18093 -0.43644,0.27138 l 0,0 0,0 c -0.24247,0.0905 -0.53343,0.14476 -0.8244,0.14476 l 0,0 0,0 c -0.43644,0 -0.8244,-0.16285 -1.11536,-0.48851 l 0,0 0,0 c -0.36371,-0.36187 -0.53344,-0.85038 -0.53344,-1.44744 l 0,0 0,0 c 0,-0.63326 0.19398,-1.12177 0.53344,-1.50172 l 0,0 0,0 c 0.31521,-0.34377 0.67892,-0.50661 1.11536,-0.50661 l 0,0 0,0 c 0.50918,0 0.89714,0.14475 1.1881,0.45232 l 0,0 0,0 c 0.26672,0.30761 0.38795,0.66945 0.38795,1.15797 l 0,0 0,0 c 0,0.16282 -0.0242,0.28947 -0.0727,0.41613 z m -1.47907,-1.44745 0,0 0,0 c -0.26672,0 -0.50919,0.0905 -0.67892,0.2895 l 0,0 0,0 c -0.19398,0.18092 -0.29096,0.39804 -0.31521,0.66945 l 0,0 1.93976,0 0,0 0,0 c 0,-0.27141 -0.0727,-0.48853 -0.24247,-0.66945 l 0,0 0,0 c -0.16973,-0.19902 -0.38795,-0.2895 -0.70316,-0.2895 z" /> 21.696 + <path 21.697 + inkscape:connector-curvature="0" 21.698 + id="130" 21.699 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.700 + d="m 550.82844,542.56441 -0.16973,0 -1.01837,-2.60541 -1.01838,2.60541 -0.16973,0 -1.26083,-3.88999 0.67891,0 0.7274,2.49684 0.94564,-2.49684 0.16973,0 0.94563,2.49684 0.80016,-2.49684 0.63041,0 -1.26084,3.88999 z" /> 21.701 + <path 21.702 + inkscape:connector-curvature="0" 21.703 + id="131" 21.704 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.705 + d="m 552.62272,542.49203 0,-5.21078 0.63042,0 0,4.55943 2.13373,0 0,0.65135 -2.76415,0 z" /> 21.706 + <path 21.707 + inkscape:connector-curvature="0" 21.708 + id="132" 21.709 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.710 + d="m 557.88431,542.05781 0,0 0,0 c -0.24247,0.34375 -0.63042,0.5066 -1.13961,0.5066 l 0,0 0,0 c -0.26671,0 -0.50919,-0.10857 -0.70316,-0.32568 l 0,0 0,0 c -0.21822,-0.21712 -0.31521,-0.4885 -0.31521,-0.81419 l 0,0 0,0 c 0,-0.37994 0.16972,-0.70563 0.48494,-0.97701 l 0,0 0,0 c 0.29096,-0.27139 0.70316,-0.39804 1.1881,-0.39804 l 0,0 0,0 c 0.12124,0 0.26672,0.0181 0.43645,0.0905 l 0,0 0,0 c 0,-0.59707 -0.26672,-0.92274 -0.75166,-0.92274 l 0,0 0,0 c -0.38795,0 -0.70316,0.12669 -0.89714,0.34377 l 0,0 -0.26672,-0.5609 0,0 0,0 c 0.12124,-0.10857 0.26672,-0.19902 0.48494,-0.27138 l 0,0 0,0 c 0.21823,-0.0723 0.4122,-0.10858 0.60618,-0.10858 l 0,0 0,0 c 0.50919,0 0.87289,0.1267 1.09112,0.37995 l 0,0 0,0 c 0.24246,0.25331 0.3637,0.65134 0.3637,1.17606 l 0,0 0,1.37506 0,0 0,0 c 0,0.32565 0.0727,0.56087 0.26672,0.66943 l 0,0 0,0.34378 0,0 0,0 c -0.26672,0 -0.43645,-0.0362 -0.58193,-0.1267 l 0,0 0,0 c -0.12124,-0.0723 -0.19398,-0.19902 -0.26672,-0.37993 z m -0.0485,-1.44744 0,0 0,0 c -0.19398,-0.0362 -0.33946,-0.0723 -0.41221,-0.0723 l 0,0 0,0 c -0.3152,0 -0.58192,0.0904 -0.7759,0.27138 l 0,0 0,0 c -0.19397,0.18093 -0.29096,0.37997 -0.29096,0.61516 l 0,0 0,0 c 0,0.39805 0.21822,0.59707 0.63042,0.59707 l 0,0 0,0 c 0.31521,0 0.60618,-0.16284 0.84865,-0.48851 l 0,-0.92274 z" /> 21.711 + <path 21.712 + inkscape:connector-curvature="0" 21.713 + id="133" 21.714 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.715 + d="m 561.56985,542.49203 0,0 0,-2.22544 0,0 0,0 c 0,-0.39803 -0.0727,-0.66943 -0.16973,-0.83227 l 0,0 0,0 c -0.12123,-0.16282 -0.31521,-0.23522 -0.55768,-0.23522 l 0,0 0,0 c -0.14548,0 -0.29096,0.0362 -0.46069,0.1267 l 0,0 0,0 c -0.14548,0.0905 -0.26671,0.21711 -0.36371,0.34375 l 0,0 0,2.82251 -0.60617,0 0,-3.79953 0.4122,0 0.19397,0.48851 0,0 0,0 c 0.21823,-0.37995 0.55769,-0.56088 1.01838,-0.56088 l 0,0 0,0 c 0.77591,0 1.13961,0.50661 1.13961,1.50172 l 0,0 0,2.37018 -0.60618,0 z" /> 21.716 + <path 21.717 + inkscape:connector-curvature="0" 21.718 + id="134" 21.719 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.720 + d="m 562.95193,543.54142 0,0 0.33946,-0.5428 0,0 0,0 c 0.3637,0.25331 0.67891,0.39807 0.99412,0.39807 l 0,0 0,0 c 0.26672,0 0.48494,-0.0544 0.63042,-0.16285 l 0,0 0,0 c 0.16973,-0.10858 0.24248,-0.23522 0.24248,-0.39804 l 0,0 0,0 c 0,-0.30758 -0.19398,-0.47042 -0.58194,-0.47042 l 0,0 0,0 c -0.0727,0 -0.19396,0.0362 -0.38794,0.0723 l 0,0 0,0 c -0.16973,0.0362 -0.31521,0.0543 -0.4122,0.0543 l 0,0 0,0 c -0.50919,0 -0.75166,-0.21711 -0.75166,-0.61518 l 0,0 0,0 c 0,-0.12655 0.0485,-0.23519 0.16973,-0.34375 l 0,0 0,0 c 0.12124,-0.10857 0.26672,-0.18093 0.43645,-0.21711 l 0,0 0,0 c -0.48494,-0.25329 -0.72742,-0.68753 -0.72742,-1.32079 l 0,0 0,0 c 0,-0.37995 0.12124,-0.70562 0.36371,-0.97701 l 0,0 0,0 c 0.26672,-0.2714 0.58193,-0.39805 0.94564,-0.39805 l 0,0 0,0 c 0.36369,0 0.60617,0.0723 0.80014,0.23521 l 0,0 0.29097,-0.41613 0.4122,0.41613 -0.36371,0.30759 0,0 0,0 c 0.14548,0.2352 0.24247,0.52469 0.24247,0.86846 l 0,0 0,0 c 0,0.37995 -0.12124,0.70562 -0.33946,0.97702 l 0,0 0,0 c -0.21822,0.2533 -0.48494,0.41612 -0.84865,0.45232 l 0,0 -0.50918,0.0542 0,0 0,0 c -0.0485,0 -0.14548,0.0362 -0.24247,0.0723 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.10858 -0.14548,0.18095 l 0,0 0,0 c 0,0.0905 0.097,0.14473 0.31521,0.14473 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43644,-0.0542 l 0,0 0,0 c 0.19398,-0.0362 0.33946,-0.0544 0.43645,-0.0544 l 0,0 0,0 c 0.31521,0 0.58193,0.0723 0.7759,0.25333 l 0,0 0,0 c 0.19398,0.18091 0.29097,0.43422 0.29097,0.75988 l 0,0 0,0 c 0,0.34378 -0.14549,0.63326 -0.43645,0.85037 l 0,0 0,0 c -0.26671,0.21713 -0.63042,0.32569 -1.06687,0.32569 l 0,0 0,0 c -0.21821,0 -0.46069,-0.0544 -0.70316,-0.14475 l 0,0 0,0 c -0.26671,-0.0723 -0.46069,-0.18094 -0.60617,-0.30758 z m 1.30933,-4.37848 0,0 0,0 c -0.21821,0 -0.38794,0.0904 -0.53343,0.25329 l 0,0 0,0 c -0.12123,0.16285 -0.19397,0.34377 -0.19397,0.57897 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.19397,0.66945 l 0,0 0,0 c 0.12124,0.18092 0.31522,0.2533 0.53343,0.2533 l 0,0 0,0 c 0.21823,0 0.38796,-0.0723 0.50919,-0.2533 l 0,0 0,0 c 0.12124,-0.16285 0.16973,-0.37995 0.16973,-0.66945 l 0,0 0,0 c 0,-0.2352 -0.0727,-0.41612 -0.16973,-0.57897 l 0,0 0,0 c -0.14548,-0.16284 -0.31521,-0.25329 -0.50919,-0.25329 z" /> 21.721 + <path 21.722 + inkscape:connector-curvature="0" 21.723 + id="135" 21.724 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.725 + d="m 567.97105,539.97712 1.13961,0 0,0.50659 -1.13961,0 0,1.23032 -0.46069,0 0,-1.23032 -1.13961,0 0,-0.50659 1.13961,0 0,-1.21224 0.46069,0 0,1.21224 z" /> 21.726 + <path 21.727 + inkscape:connector-curvature="0" 21.728 + id="136" 21.729 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.730 + d="m 570.63822,540.48371 0,0 0,2.00832 -0.65466,0 0,-5.21078 0,0 0,0 c 0.48494,-0.0181 0.7759,-0.0362 0.87288,-0.0362 l 0,0 0,0 c 1.38208,0 2.08524,0.5066 2.08524,1.51979 l 0,0 0,0 c 0,1.15796 -0.63042,1.75502 -1.84277,1.75502 l 0,0 0,0 c -0.0727,0 -0.24247,-0.0181 -0.46069,-0.0362 z m 0,-2.55109 0,0 0,1.89974 0,0 0,0 c 0.24247,0.0362 0.38795,0.0362 0.4122,0.0362 l 0,0 0,0 c 0.80015,0 1.21235,-0.32567 1.21235,-1.01321 l 0,0 0,0 c 0,-0.65135 -0.43644,-0.95893 -1.28509,-0.95893 l 0,0 0,0 c -0.097,0 -0.21822,0 -0.33946,0.0362 z" /> 21.731 + <path 21.732 + inkscape:connector-curvature="0" 21.733 + id="137" 21.734 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.735 + d="m 548.25826,547.77517 0,0 0,1.99023 -0.65467,0 0,-5.19268 0,0 0,0 c 0.48494,-0.0181 0.80016,-0.0362 0.89714,-0.0362 l 0,0 0,0 c 1.38208,0 2.08524,0.50661 2.08524,1.51981 l 0,0 0,0 c 0,1.17605 -0.60618,1.75502 -1.84277,1.75502 l 0,0 0,0 c -0.0727,0 -0.24247,0 -0.48494,-0.0362 z m 0,-2.56919 0,0 0,1.93593 0,0 0,0 c 0.26672,0.0181 0.4122,0.0362 0.43645,0.0362 l 0,0 0,0 c 0.82439,0 1.21235,-0.34377 1.21235,-1.04941 l 0,0 0,0 c 0,-0.63323 -0.43645,-0.95892 -1.2851,-0.95892 l 0,0 0,0 c -0.097,0 -0.21821,0.0181 -0.3637,0.0362 z" /> 21.736 + <path 21.737 + inkscape:connector-curvature="0" 21.738 + id="138" 21.739 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.740 + d="m 551.33762,548.71599 0,0 0,-4.30612 0.63043,0 0,4.17948 0,0 0,0 c 0,0.21713 0.0485,0.37995 0.16973,0.48851 l 0,0 0,0 c 0.097,0.10858 0.24247,0.16283 0.41219,0.16283 l 0,0 0,0.59707 0,0 0,0 c -0.80014,0 -1.21235,-0.37995 -1.21235,-1.12177 z" /> 21.741 + <path 21.742 + inkscape:connector-curvature="0" 21.743 + id="139" 21.744 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.745 + d="m 553.83507,545.96588 0,0 0,2.44253 0,0 0,0 c 0,0.59707 0.24246,0.86847 0.70315,0.86847 l 0,0 0,0 c 0.19398,0 0.36371,-0.0723 0.53344,-0.18092 l 0,0 0,0 c 0.16973,-0.1267 0.29097,-0.2714 0.33946,-0.43424 l 0,0 0,-2.69584 0.63042,0 0,3.79952 -0.63042,0 0,-0.52471 0,0 0,0 c -0.0727,0.16285 -0.19398,0.2895 -0.4122,0.41614 l 0,0 0,0 c -0.21822,0.1267 -0.38795,0.18093 -0.60618,0.18093 l 0,0 0,0 c -0.3637,0 -0.67891,-0.10857 -0.87289,-0.34376 l 0,0 0,0 c -0.19397,-0.25331 -0.31521,-0.57897 -0.31521,-1.0132 l 0,0 0,-2.51492 0.63043,0 z" /> 21.746 + <path 21.747 + inkscape:connector-curvature="0" 21.748 + id="140" 21.749 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.750 + d="m 556.76895,550.81479 0,0 0.33946,-0.54279 0,0 0,0 c 0.33945,0.2714 0.67891,0.39804 0.99413,0.39804 l 0,0 0,0 c 0.26671,0 0.50918,-0.0542 0.65467,-0.16284 l 0,0 0,0 c 0.14548,-0.0905 0.21821,-0.2352 0.21821,-0.37993 l 0,0 0,0 c 0,-0.30759 -0.16973,-0.47044 -0.58192,-0.47044 l 0,0 0,0 c -0.0727,0 -0.19398,0.0181 -0.38796,0.0544 l 0,0 0,0 c -0.16972,0.0361 -0.3152,0.0542 -0.41219,0.0542 l 0,0 0,0 c -0.50919,0 -0.75166,-0.19902 -0.75166,-0.61517 l 0,0 0,0 c 0,-0.10857 0.0485,-0.21711 0.16973,-0.32567 l 0,0 0,0 c 0.12123,-0.0905 0.26671,-0.16284 0.43644,-0.2171 l 0,0 0,0 c -0.48494,-0.25332 -0.75165,-0.68754 -0.75165,-1.3027 l 0,0 0,0 c 0,-0.39805 0.14548,-0.74182 0.38795,-0.99513 l 0,0 0,0 c 0.26672,-0.27138 0.58193,-0.39802 0.94563,-0.39802 l 0,0 0,0 c 0.33946,0 0.63042,0.0723 0.80015,0.2171 l 0,0 0.29097,-0.39805 0.41219,0.41615 -0.3637,0.30758 0,0 0,0 c 0.14548,0.21712 0.24247,0.5247 0.24247,0.88656 l 0,0 0,0 c 0,0.37996 -0.12123,0.70562 -0.33945,0.95893 l 0,0 0,0 c -0.21823,0.27138 -0.48494,0.41612 -0.84865,0.45231 l 0,0 -0.50919,0.0544 0,0 0,0 c -0.0485,0.0181 -0.14548,0.0361 -0.24247,0.0905 l 0,0 0,0 c -0.097,0.0362 -0.14548,0.0905 -0.14548,0.16283 l 0,0 0,0 c 0,0.0723 0.097,0.1267 0.31521,0.1267 l 0,0 0,0 c 0.097,0 0.24247,-0.0181 0.43645,-0.0544 l 0,0 0,0 c 0.19398,-0.0362 0.33946,-0.0362 0.43644,-0.0362 l 0,0 0,0 c 0.31521,0 0.58193,0.0723 0.77591,0.25329 l 0,0 0,0 c 0.19397,0.18094 0.29096,0.43424 0.29096,0.74182 l 0,0 0,0 c 0,0.36185 -0.14548,0.63326 -0.43645,0.85036 l 0,0 0,0 c -0.29096,0.21712 -0.63042,0.32567 -1.06686,0.32567 l 0,0 0,0 c -0.21822,0 -0.4607,-0.0362 -0.70316,-0.12669 l 0,0 0,0 c -0.26672,-0.0905 -0.4607,-0.19904 -0.60618,-0.32568 z m 1.30934,-4.3604 0,0 0,0 c -0.21822,0 -0.38795,0.0723 -0.53343,0.2352 l 0,0 0,0 c -0.12125,0.18093 -0.19398,0.37995 -0.19398,0.61517 l 0,0 0,0 c 0,0.27139 0.0727,0.48851 0.19398,0.66944 l 0,0 0,0 c 0.12123,0.16284 0.31521,0.25328 0.53343,0.25328 l 0,0 0,0 c 0.21822,0 0.38795,-0.0905 0.50919,-0.25328 l 0,0 0,0 c 0.12123,-0.16285 0.19397,-0.39805 0.19397,-0.66944 l 0,0 0,0 c 0,-0.23522 -0.0727,-0.43424 -0.19397,-0.61517 l 0,0 0,0 c -0.14548,-0.16283 -0.31521,-0.2352 -0.50919,-0.2352 z" /> 21.751 + <path 21.752 + inkscape:connector-curvature="0" 21.753 + id="141" 21.754 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.755 + d="m 560.86669,544.53653 0,0 0,0 c 0.097,0 0.19397,0.0362 0.26672,0.10857 l 0,0 0,0 c 0.0727,0.0905 0.12123,0.18093 0.12123,0.30758 l 0,0 0,0 c 0,0.10858 -0.0485,0.21712 -0.12123,0.2895 l 0,0 0,0 c -0.0728,0.0905 -0.16973,0.12669 -0.26672,0.12669 l 0,0 0,0 c -0.097,0 -0.19398,-0.0362 -0.26672,-0.12669 l 0,0 0,0 c -0.0727,-0.0723 -0.12123,-0.18093 -0.12123,-0.2895 l 0,0 0,0 c 0,-0.12669 0.0485,-0.21711 0.12123,-0.30758 l 0,0 0,0 c 0.0727,-0.0723 0.16973,-0.10857 0.26672,-0.10857 z m -0.33946,5.22887 0,0 0,-3.22055 -0.48494,0 0,-0.57897 1.11537,0 0,3.79952 -0.63043,0 z" /> 21.756 + <path 21.757 + inkscape:connector-curvature="0" 21.758 + id="142" 21.759 + style="fill:#ff7f2a;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.760 + d="m 564.28551,549.7654 0,0 0,-2.18925 0,0 0,0 c 0,-0.41614 -0.0485,-0.68752 -0.16973,-0.85037 l 0,0 0,0 c -0.097,-0.16284 -0.29096,-0.2533 -0.55768,-0.2533 l 0,0 0,0 c -0.14548,0 -0.29096,0.0542 -0.43644,0.14473 l 0,0 0,0 c -0.16973,0.0905 -0.29096,0.19904 -0.36371,0.34378 l 0,0 0,2.80441 -0.63042,0 0,-3.79952 0.43645,0 0.19397,0.5066 0,0 0,0 c 0.19398,-0.37995 0.53344,-0.56088 0.99413,-0.56088 l 0,0 0,0 c 0.77591,0 1.13961,0.50659 1.13961,1.5198 l 0,0 0,2.334 -0.60618,0 z" /> 21.761 + <path 21.762 + inkscape:connector-curvature="0" 21.763 + id="143" 21.764 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.765 + d="m 536.23176,532.64946 0,0 c 0,-0.0905 0.0242,-0.16283 0.0727,-0.23519 0.0485,-0.0723 0.12123,-0.1267 0.21822,-0.16285 0.097,-0.0362 0.19398,-0.0542 0.31522,-0.0542 l 0,0 0,0.45231 -0.60618,0 z" /> 21.766 + <path 21.767 + inkscape:connector-curvature="0" 21.768 + id="144" 21.769 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.770 + d="m 536.83794,532.19714 39.06188,0 0,0.45232 0,0.47042 -39.06188,0 0,-0.47042 0,-0.45232 z" /> 21.771 + <path 21.772 + inkscape:connector-curvature="0" 21.773 + id="145" 21.774 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.775 + d="m 575.89982,532.19714 0,0 c 0.12123,0 0.21822,0.0181 0.31521,0.0542 0.097,0.0362 0.16973,0.0905 0.21822,0.16285 0.0485,0.0723 0.097,0.14473 0.097,0.23519 l 0,0 0,0 -0.63042,0 0,-0.45231 z" /> 21.776 + <path 21.777 + inkscape:connector-curvature="0" 21.778 + id="146" 21.779 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.780 + d="m 576.53024,532.64946 0,23.17707 -0.63042,0 -0.60618,0 0,-23.17707 0.60618,0 0.63042,0 z" /> 21.781 + <path 21.782 + inkscape:connector-curvature="0" 21.783 + id="147" 21.784 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.785 + d="m 576.53024,555.82653 0,0 c 0,0.0905 -0.0485,0.16285 -0.097,0.23522 -0.0485,0.0723 -0.12124,0.12669 -0.21822,0.16282 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47043 0.63042,0 z" /> 21.786 + <path 21.787 + inkscape:connector-curvature="0" 21.788 + id="148" 21.789 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.790 + d="m 575.89982,556.29697 -39.06188,0 0,-0.47044 0,-0.45233 39.06188,0 0,0.45233 0,0.47044 z" /> 21.791 + <path 21.792 + inkscape:connector-curvature="0" 21.793 + id="149" 21.794 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.795 + d="m 536.83794,556.29697 0,0 c -0.12124,0 -0.21823,-0.0362 -0.31522,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21822,-0.16283 -0.0485,-0.0723 -0.0727,-0.14476 -0.0727,-0.23521 l 0,0 0.60618,0 0,0.47043 z" /> 21.796 + <path 21.797 + inkscape:connector-curvature="0" 21.798 + id="150" 21.799 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.800 + d="m 536.23176,555.82653 0,-23.17707 0.60618,0 0.63042,0 0,23.17707 -0.63042,0 -0.60618,0 z" /> 21.801 + <path 21.802 + inkscape:connector-curvature="0" 21.803 + id="151" 21.804 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.805 + d="m 234.30839,556.22457 16.00301,17.17023 -0.48494,0.25328 -0.48495,0.2533 -16.00301,-17.1702 0.48495,-0.2533 0.48494,-0.25331 z" /> 21.806 + <path 21.807 + inkscape:connector-curvature="0" 21.808 + id="152" 21.809 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.810 + d="m 248.6626,568.79917 0,0 2.03674,5.75357 -6.49818,-3.40148 0,0 0,0 c 1.98825,0.0542 3.80677,-0.92273 4.46144,-2.35209 z" /> 21.811 + <path 21.812 + inkscape:connector-curvature="0" 21.813 + id="153" 21.814 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.815 + d="m 350.88787,556.64072 -9.43208,17.17021 -0.53343,-0.16285 -0.53344,-0.16283 9.43206,-17.17021 0.53345,0.16284 0.53344,0.16284 z" /> 21.816 + <path 21.817 + inkscape:connector-curvature="0" 21.818 + id="154" 21.819 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.820 + d="m 345.72324,570.28282 0,0 -5.35857,4.39658 0.29097,-5.95259 0,0 0,0 c 1.06686,1.28459 3.10361,1.93593 5.0676,1.55601 z" /> 21.821 + <path 21.822 + inkscape:connector-curvature="0" 21.823 + id="190" 21.824 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.825 + d="m 262.58037,442.96271 20.70691,11.39855 -0.33945,0.34377 -0.33946,0.34377 -20.70692,-11.39856 0.33947,-0.34377 0.33945,-0.34376 z" /> 21.826 + <path 21.827 + inkscape:connector-curvature="0" 21.828 + id="191" 21.829 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.830 + d="m 279.77147,450.38082 0,0 4.38871,4.97556 -7.61357,-1.64646 0,0 0,0 c 1.89128,-0.47041 3.20061,-1.80929 3.22486,-3.3291 z" /> 21.831 + <path 21.832 + inkscape:connector-curvature="0" 21.833 + id="192" 21.834 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.835 + d="m 292.67087,443.30647 -0.0727,11.39856 -0.58194,0 -0.58191,0 0.0727,-11.39856 0.58193,0 0.58193,0 z" /> 21.836 + <path 21.837 + inkscape:connector-curvature="0" 21.838 + id="193" 21.839 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.840 + d="m 294.8046,450.23607 0,0 -2.78841,5.57264 -2.69141,-5.59073 0,0 0,0 c 1.6003,0.90464 3.83103,0.90464 5.47982,0.0181 z" /> 21.841 + <path 21.842 + inkscape:connector-curvature="0" 21.843 + id="194" 21.844 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.845 + d="m 322.20369,443.65024 -20.68269,11.39856 -0.33945,-0.34377 -0.33946,-0.34377 20.68268,-11.39855 0.33947,0.34376 0.33945,0.34377 z" /> 21.846 + <path 21.847 + inkscape:connector-curvature="0" 21.848 + id="195" 21.849 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.850 + d="m 307.60701,453.72802 0,0 -7.6378,1.64645 4.36445,-4.97556 0,0 0,0 c 0,1.50172 1.33358,2.8406 3.27335,3.32911 z" /> 21.851 + <path 21.852 + inkscape:connector-curvature="0" 21.853 + id="220" 21.854 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.855 + d="m 257.22178,441.15341 -0.3637,-1.21223 -1.98825,0 -0.38796,1.21223 -0.80015,0 2.15798,-5.86212 0.19398,0 1.98825,5.86212 -0.80015,0 z m -1.33358,-4.34231 -0.8244,2.53302 1.57606,0 -0.75166,-2.53302 z" /> 21.856 + <path 21.857 + inkscape:connector-curvature="0" 21.858 + id="221" 21.859 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.860 + d="m 259.23427,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.24249,-0.28949 0.58194,-0.43424 0.94565,-0.43424 l 0,0 0,0 c 0.53343,0 0.94563,0.19904 1.26083,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.4607,0.94083 0.4607,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.4607,1.57408 l 0,0 0,0 c -0.3152,0.39806 -0.75165,0.61517 -1.33358,0.61517 l 0,0 0,0 c -0.14548,0 -0.33945,-0.0362 -0.50918,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31522,-0.12669 -0.36372,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0242,0.0723 0.12125,0.14473 0.26674,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29095,0.10858 0.41218,0.10858 l 0,0 0,0 c 0.8244,0 1.26085,-0.54279 1.26085,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.3152,-1.17604 l 0,0 0,0 c -0.19399,-0.2533 -0.5092,-0.37995 -0.94565,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.3637,0.12669 l 0,0 0,0 c -0.12123,0.0723 -0.24247,0.14475 -0.31522,0.23521 z" /> 21.861 + <path 21.862 + inkscape:connector-curvature="0" 21.863 + id="222" 21.864 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.865 + d="m 263.35626,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.24249,-0.28949 0.55769,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.53344,0 0.96989,0.19904 1.2851,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.46068,0.94083 0.46068,1.66455 l 0,0 0,0 c 0,0.63325 -0.14546,1.15795 -0.46068,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.7759,0.61517 -1.35783,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.16973,-0.0542 -0.29097,-0.12669 -0.33947,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0242,0.0723 0.12124,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.26672,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.84865,0 1.2851,-0.54279 1.2851,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.31522,-1.17604 l 0,0 0,0 c -0.19397,-0.2533 -0.50918,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.3637,0.12669 l 0,0 0,0 c -0.12123,0.0723 -0.24247,0.14475 -0.31522,0.23521 z" /> 21.866 + <path 21.867 + inkscape:connector-curvature="0" 21.868 + id="223" 21.869 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.870 + d="m 270.3394,441.15341 0,0 0,-4.43277 -1.09112,0.72372 0,-0.72372 0,0 0,0 c 0.26672,-0.14474 0.55768,-0.36185 0.8729,-0.61516 l 0,0 0,0 c 0.3152,-0.27139 0.55768,-0.5247 0.7274,-0.7599 l 0,0 0.21823,0 0,5.80783 -0.72741,0 z" /> 21.871 + <path 21.872 + inkscape:connector-curvature="0" 21.873 + id="224" 21.874 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.875 + d="m 286.85159,441.15341 -0.3637,-1.21223 -1.96401,0 -0.38795,1.21223 -0.80015,0 2.13373,-5.86212 0.19398,0 1.98825,5.86212 -0.80015,0 z m -1.33358,-4.34231 -0.8244,2.53302 1.57605,0 -0.75165,-2.53302 z" /> 21.876 + <path 21.877 + inkscape:connector-curvature="0" 21.878 + id="225" 21.879 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.880 + d="m 288.86408,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.24249,-0.28949 0.55769,-0.43424 0.94564,-0.43424 l 0,0 0,0 c 0.53343,0 0.94564,0.19904 1.26084,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.4607,0.94083 0.4607,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.4607,1.57408 l 0,0 0,0 c -0.3152,0.39806 -0.75166,0.61517 -1.33358,0.61517 l 0,0 0,0 c -0.14548,0 -0.33945,-0.0362 -0.50918,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31522,-0.12669 -0.36372,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0242,0.0723 0.12124,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.1455,0.0723 0.26673,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.8244,0 1.26085,-0.54279 1.26085,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.31522,-1.17604 l 0,0 0,0 c -0.19397,-0.2533 -0.48493,-0.37995 -0.94563,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.3637,0.12669 l 0,0 0,0 c -0.12123,0.0723 -0.24247,0.14475 -0.31522,0.23521 z" /> 21.881 + <path 21.882 + inkscape:connector-curvature="0" 21.883 + id="226" 21.884 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.885 + d="m 292.96182,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58194,-0.43424 0.96989,-0.43424 l 0,0 0,0 c 0.53343,0 0.96988,0.19904 1.28509,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.46068,0.94083 0.46068,1.66455 l 0,0 0,0 c 0,0.63325 -0.16971,1.15795 -0.46068,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.77591,0.61517 -1.35783,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.16973,-0.0542 -0.29097,-0.12669 -0.36372,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14549,0.14473 0.29097,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.26672,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.84865,0 1.2851,-0.54279 1.2851,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.31522,-1.17604 l 0,0 0,0 c -0.19398,-0.2533 -0.53343,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.3637,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.24248,0.14475 -0.33947,0.23521 z" /> 21.886 + <path 21.887 + inkscape:connector-curvature="0" 21.888 + id="227" 21.889 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.890 + d="m 298.39316,441.15341 0,0 0,-0.16283 1.67303,-2.76823 0,0 0,0 c 0.36372,-0.59706 0.53343,-1.08557 0.53343,-1.48362 l 0,0 0,0 c 0,-0.52469 -0.29095,-0.79609 -0.84863,-0.79609 l 0,0 0,0 c -0.19398,0 -0.36371,0.0544 -0.53345,0.16284 l 0,0 0,0 c -0.16971,0.12669 -0.3152,0.25331 -0.38795,0.43423 l 0,0 -0.46068,-0.41614 0,0 0,0 c 0.0727,-0.27139 0.24247,-0.47041 0.48493,-0.61515 l 0,0 0,0 c 0.24247,-0.16284 0.53344,-0.23522 0.8729,-0.23522 l 0,0 0,0 c 0.50918,0 0.89713,0.12669 1.1881,0.37996 l 0,0 0,0 c 0.29096,0.2533 0.43645,0.61515 0.43645,1.08557 l 0,0 0,0 c 0,0.43423 -0.19399,0.97701 -0.55768,1.64646 l 0,0 -1.21235,2.06259 2.08524,0 0,0.70563 -3.27334,0 z" /> 21.891 + <path 21.892 + inkscape:connector-curvature="0" 21.893 + id="228" 21.894 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.895 + d="m 316.50565,441.15341 -0.36372,-1.21223 -1.98824,0 -0.36372,1.21223 -0.82438,0 2.15798,-5.86212 0.16972,0 2.01251,5.86212 -0.80015,0 z m -1.3336,-4.34231 -0.82438,2.53302 1.57605,0 -0.75167,-2.53302 z" /> 21.896 + <path 21.897 + inkscape:connector-curvature="0" 21.898 + id="229" 21.899 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.900 + d="m 318.51814,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.24247,-0.28949 0.55769,-0.43424 0.94564,-0.43424 l 0,0 0,0 c 0.50918,0 0.94563,0.19904 1.26084,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.4607,0.94083 0.4607,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.4607,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.77591,0.61517 -1.33359,0.61517 l 0,0 0,0 c -0.16972,0 -0.33945,-0.0362 -0.53344,-0.10858 l 0,0 0,0 c -0.16973,-0.0542 -0.29096,-0.12669 -0.33945,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0242,0.0723 0.12124,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.26672,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.8244,0 1.26085,-0.54279 1.26085,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.31522,-1.17604 l 0,0 0,0 c -0.19398,-0.2533 -0.48493,-0.37995 -0.94563,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.3637,0.12669 l 0,0 0,0 c -0.12125,0.0723 -0.24248,0.14475 -0.31522,0.23521 z" /> 21.901 + <path 21.902 + inkscape:connector-curvature="0" 21.903 + id="230" 21.904 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.905 + d="m 322.61588,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58194,-0.43424 0.94564,-0.43424 l 0,0 0,0 c 0.53343,0 0.96988,0.19904 1.28508,0.56089 l 0,0 0,0 c 0.29096,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.16973,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.3152,0.39806 -0.7759,0.61517 -1.35783,0.61517 l 0,0 0,0 c -0.16972,0 -0.3152,-0.0362 -0.50919,-0.10858 l 0,0 0,0 c -0.16973,-0.0542 -0.29096,-0.12669 -0.3637,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14549,0.14473 0.29097,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.26672,0.10858 0.38795,0.10858 l 0,0 0,0 c 0.84865,0 1.2851,-0.54279 1.2851,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.31522,-1.17604 l 0,0 0,0 c -0.19398,-0.2533 -0.53343,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.0727,0 -0.19398,0.0362 -0.33947,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.24246,0.14475 -0.33945,0.23521 z" /> 21.906 + <path 21.907 + inkscape:connector-curvature="0" 21.908 + id="231" 21.909 + style="fill:#217867;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.910 + d="m 328.16844,440.73727 0,0 0.36371,-0.59706 0,0 0,0 c 0.21822,0.28948 0.53342,0.41613 0.89713,0.41613 l 0,0 0,0 c 0.67892,0 1.01837,-0.34376 1.01837,-1.06748 l 0,0 0,0 c 0,-0.32567 -0.12123,-0.59707 -0.3152,-0.79609 l 0,0 0,0 c -0.19398,-0.21711 -0.43645,-0.30758 -0.7759,-0.30758 l 0,0 -0.0485,0 0,-0.65134 0.0242,0 0,0 0,0 c 0.60617,0 0.92138,-0.28949 0.92138,-0.88657 l 0,0 0,0 c 0,-0.59706 -0.29096,-0.90464 -0.87288,-0.90464 l 0,0 0,0 c -0.31523,0 -0.55768,0.10858 -0.75166,0.34377 l 0,0 -0.31522,-0.54279 0,0 0,0 c 0.21823,-0.30758 0.60618,-0.47042 1.13961,-0.47042 l 0,0 0,0 c 0.46069,0 0.8244,0.12669 1.1396,0.39805 l 0,0 0,0 c 0.29097,0.27139 0.43645,0.61516 0.43645,1.04939 l 0,0 0,0 c 0,0.30759 -0.097,0.57897 -0.24247,0.83228 l 0,0 0,0 c -0.16973,0.2533 -0.36371,0.41613 -0.58193,0.5066 l 0,0 0,0 c 0.29097,0.10858 0.53345,0.28948 0.72742,0.54279 l 0,0 0,0 c 0.16971,0.27139 0.26671,0.57897 0.26671,0.94083 l 0,0 0,0 c 0,0.54278 -0.14548,0.95893 -0.46068,1.24841 l 0,0 0,0 c -0.31523,0.30758 -0.75166,0.45233 -1.3336,0.45233 l 0,0 0,0 c -0.21821,0 -0.46069,-0.0542 -0.67891,-0.14475 l 0,0 0,0 c -0.24247,-0.10857 -0.4122,-0.21711 -0.55768,-0.36186 z" /> 21.911 + <path 21.912 + inkscape:connector-curvature="0" 21.913 + id="264" 21.914 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.915 + d="m 364.80562,442.96271 20.73117,11.39855 -0.33946,0.34377 -0.33945,0.34377 -20.73117,-11.39856 0.33946,-0.34377 0.33945,-0.34376 z" /> 21.916 + <path 21.917 + inkscape:connector-curvature="0" 21.918 + id="265" 21.919 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.920 + d="m 382.02098,450.38082 0,0 4.36445,4.97556 -7.61354,-1.64646 0,0 0,0 c 1.91551,-0.47041 3.22484,-1.80929 3.24909,-3.3291 z" /> 21.921 + <path 21.922 + inkscape:connector-curvature="0" 21.923 + id="266" 21.924 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.925 + d="m 394.92037,443.30647 -0.0485,11.39856 -0.58193,0 -0.58193,0 0.0485,-11.39856 0.58192,0 0.58193,0 z" /> 21.926 + <path 21.927 + inkscape:connector-curvature="0" 21.928 + id="267" 21.929 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.930 + d="m 397.07835,450.23607 0,0 -2.7884,5.57264 -2.71566,-5.59073 0,0 0,0 c 1.6003,0.90464 3.83102,0.90464 5.50406,0.0181 z" /> 21.931 + <path 21.932 + inkscape:connector-curvature="0" 21.933 + id="268" 21.934 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.935 + d="m 424.45319,443.65024 -20.73117,11.39856 -0.31521,-0.34377 -0.33945,-0.34377 20.70692,-11.39855 0.33945,0.34376 0.33946,0.34377 z" /> 21.936 + <path 21.937 + inkscape:connector-curvature="0" 21.938 + id="269" 21.939 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.940 + d="m 409.80801,453.72802 0,0 -7.61355,1.64645 4.38871,-4.97556 0,0 0,0 c 0,1.50172 1.30933,2.8406 3.22484,3.32911 z" /> 21.941 + <path 21.942 + inkscape:connector-curvature="0" 21.943 + id="294" 21.944 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.945 + d="m 359.49553,441.15341 -0.38794,-1.21223 -1.96401,0 -0.38796,1.21223 -0.82438,0 2.15798,-5.86212 0.19396,0 2.01251,5.86212 -0.80016,0 z m -1.33358,-4.34231 -0.82439,2.53302 1.57605,0 -0.75166,-2.53302 z" /> 21.946 + <path 21.947 + inkscape:connector-curvature="0" 21.948 + id="295" 21.949 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.950 + d="m 361.48379,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.24247,-0.28949 0.53343,-0.43424 0.89713,-0.43424 l 0,0 0,0 c 0.55769,0 0.99413,0.19904 1.30935,0.56089 l 0,0 0,0 c 0.29096,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.16973,1.15795 -0.48494,1.57408 l 0,0 0,0 c -0.29097,0.39806 -0.75166,0.61517 -1.33358,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53344,-0.10858 l 0,0 0,0 c -0.14548,-0.0542 -0.26672,-0.12669 -0.31521,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.097,0.0723 0.24247,0.10858 0.38795,0.10858 l 0,0 0,0 c 0.84864,0 1.28509,-0.54279 1.28509,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.12124,-0.92274 -0.31521,-1.17604 l 0,0 0,0 c -0.19398,-0.2533 -0.53344,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.21823,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.12124,0.0723 -0.21822,0.14475 -0.31521,0.23521 z" /> 21.951 + <path 21.952 + inkscape:connector-curvature="0" 21.953 + id="296" 21.954 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.955 + d="m 365.58152,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26673,-0.28949 0.58193,-0.43424 0.94564,-0.43424 l 0,0 0,0 c 0.55768,0 0.99413,0.19904 1.26084,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.4607,0.94083 0.4607,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.4607,1.57408 l 0,0 0,0 c -0.29096,0.39806 -0.7274,0.61517 -1.30933,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53344,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14549,0.14473 0.26673,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29096,0.10858 0.41219,0.10858 l 0,0 0,0 c 0.87289,0 1.28509,-0.54279 1.28509,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.21822,-0.2533 -0.53343,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.36371,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26671,0.14475 -0.33946,0.23521 z" /> 21.956 + <path 21.957 + inkscape:connector-curvature="0" 21.958 + id="297" 21.959 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.960 + d="m 373.94673,439.57932 0,1.57409 -0.67891,0 0,-1.57409 -2.42469,0 0,-0.45231 2.83689,-3.78143 0.26671,0 0,3.61859 0.53344,0 0,0.61515 -0.53344,0 z m -0.67891,-2.65966 -1.55181,2.04451 1.55181,0 0,-2.04451 z" /> 21.961 + <path 21.962 + inkscape:connector-curvature="0" 21.963 + id="298" 21.964 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.965 + d="m 389.12534,441.15341 -0.38795,-1.21223 -1.964,0 -0.38796,1.21223 -0.80014,0 2.13373,-5.86212 0.19397,0 2.0125,5.86212 -0.80015,0 z m -1.33358,-4.34231 -0.82439,2.53302 1.57604,0 -0.75165,-2.53302 z" /> 21.966 + <path 21.967 + inkscape:connector-curvature="0" 21.968 + id="299" 21.969 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.970 + d="m 391.11359,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26673,-0.28949 0.55769,-0.43424 0.92139,-0.43424 l 0,0 0,0 c 0.55769,0 0.99413,0.19904 1.28509,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.4607,0.94083 0.4607,1.66455 l 0,0 0,0 c 0,0.63325 -0.14549,1.15795 -0.4607,1.57408 l 0,0 0,0 c -0.29096,0.39806 -0.75165,0.61517 -1.33358,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.50919,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.29097,0.19902 l 0,0 0,0 c 0.12124,0.0723 0.24247,0.10858 0.3637,0.10858 l 0,0 0,0 c 0.87289,0 1.30934,-0.54279 1.30934,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.12124,-0.92274 -0.3152,-1.17604 l 0,0 0,0 c -0.19398,-0.2533 -0.53344,-0.37995 -0.96989,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.24246,0.14475 -0.33946,0.23521 z" /> 21.971 + <path 21.972 + inkscape:connector-curvature="0" 21.973 + id="300" 21.974 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.975 + d="m 395.23558,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58193,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.55768,0 0.99413,0.19904 1.2851,0.56089 l 0,0 0,0 c 0.29096,0.37995 0.43644,0.94083 0.43644,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.43644,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.75166,0.61517 -1.33359,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14549,0.0723 0.29096,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.87289,0 1.28508,-0.54279 1.28508,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.21822,-0.2533 -0.53343,-0.37995 -0.99412,-0.37995 l 0,0 0,0 c -0.097,0 -0.19398,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26671,0.14475 -0.33946,0.23521 z" /> 21.976 + <path 21.977 + inkscape:connector-curvature="0" 21.978 + id="301" 21.979 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.980 + d="m 401.22459,438.33091 0,0 -0.24247,-0.19902 0,-2.78631 2.61867,0 0,0.66944 -1.91551,0 0,1.39316 0,0 0,0 c 0.16973,-0.14475 0.38795,-0.21712 0.67891,-0.21712 l 0,0 0,0 c 0.48494,0 0.8729,0.16284 1.11536,0.4885 l 0,0 0,0 c 0.24247,0.32568 0.38796,0.77801 0.38796,1.37507 l 0,0 0,0 c 0,1.44744 -0.58193,2.18925 -1.77003,2.18925 l 0,0 0,0 c -0.50919,0 -0.92139,-0.16284 -1.2366,-0.45233 l 0,0 0.29096,-0.66944 0,0 0,0 c 0.31521,0.28949 0.63042,0.43423 0.94564,0.43423 l 0,0 0,0 c 0.67892,0 1.01837,-0.45232 1.01837,-1.39315 l 0,0 0,0 c 0,-0.86846 -0.33945,-1.28461 -1.01837,-1.28461 l 0,0 0,0 c -0.31522,0 -0.60618,0.14475 -0.87289,0.45233 z" /> 21.981 + <path 21.982 + inkscape:connector-curvature="0" 21.983 + id="302" 21.984 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.985 + d="m 418.73091,441.15341 -0.36371,-1.21223 -1.96401,0 -0.41219,1.21223 -0.77591,0 2.13374,-5.86212 0.19397,0 2.0125,5.86212 -0.82439,0 z m -1.30935,-4.34231 -0.82439,2.53302 1.57605,0 -0.75166,-2.53302 z" /> 21.986 + <path 21.987 + inkscape:connector-curvature="0" 21.988 + id="303" 21.989 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.990 + d="m 420.74341,440.9182 0,0 0,1.89976 -0.67892,0 0,-5.8983 0.67892,0 0,0.34377 0,0 0,0 c 0.26671,-0.28949 0.58192,-0.43424 0.92137,-0.43424 l 0,0 0,0 c 0.55769,0 0.99414,0.19904 1.2851,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.75166,0.61517 -1.33358,0.61517 l 0,0 0,0 c -0.16973,0 -0.31521,-0.0362 -0.50919,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.3637,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26671,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29097,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.84864,0 1.26084,-0.54279 1.26084,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.21823,-0.2533 -0.53344,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.0727,0 -0.19398,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26672,0.14475 -0.33945,0.23521 z" /> 21.991 + <path 21.992 + inkscape:connector-curvature="0" 21.993 + id="304" 21.994 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.995 + d="m 424.86539,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58193,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.55768,0 0.99413,0.19904 1.28509,0.56089 l 0,0 0,0 c 0.31522,0.37995 0.43645,0.94083 0.43645,1.66455 l 0,0 0,0 c 0,0.63325 -0.12123,1.15795 -0.43645,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.75165,0.61517 -1.33359,0.61517 l 0,0 0,0 c -0.16972,0 -0.33945,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19397,-0.0542 -0.31521,-0.12669 -0.3637,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29096,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.87288,0 1.28508,-0.54279 1.28508,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.21822,-0.2533 -0.53343,-0.37995 -0.99412,-0.37995 l 0,0 0,0 c -0.097,0 -0.19398,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14549,0.0723 -0.26672,0.14475 -0.33946,0.23521 z" /> 21.996 + <path 21.997 + inkscape:connector-curvature="0" 21.998 + id="305" 21.999 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1000 + d="m 432.47894,435.2732 0,0 0.36371,0.41614 0,0 0,0 c -0.21823,0.0905 -0.53344,0.41614 -0.92139,0.94083 l 0,0 0,0 c -0.4122,0.50661 -0.63042,0.92275 -0.67892,1.21223 l 0,0 0,0 c 0.19398,-0.21711 0.48494,-0.32568 0.84865,-0.32568 l 0,0 0,0 c 0.46069,0 0.82439,0.18093 1.11536,0.50661 l 0,0 0,0 c 0.26672,0.32567 0.4122,0.778 0.4122,1.33888 l 0,0 0,0 c 0,0.57897 -0.14548,1.0313 -0.4122,1.37506 l 0,0 0,0 c -0.29097,0.34377 -0.67891,0.5247 -1.11536,0.5247 l 0,0 0,0 c -1.16385,0 -1.74579,-0.85037 -1.74579,-2.53302 l 0,0 0,0 c 0,-0.70562 0.21823,-1.42934 0.67892,-2.13496 l 0,0 0,0 c 0.4607,-0.74181 0.94564,-1.17605 1.45482,-1.32079 z m -1.35783,4.07092 0,0 0,0 c 0,0.83228 0.29096,1.23032 0.92138,1.23032 l 0,0 0,0 c 0.26672,0 0.4607,-0.0905 0.63043,-0.30759 l 0,0 0,0 c 0.14548,-0.21711 0.21822,-0.5066 0.21822,-0.86846 l 0,0 0,0 c 0,-0.36186 -0.0727,-0.65133 -0.24247,-0.86846 l 0,0 0,0 c -0.16973,-0.21711 -0.3637,-0.32567 -0.60618,-0.32567 l 0,0 0,0 c -0.63042,0 -0.92138,0.37996 -0.92138,1.13986 z" /> 21.1001 + <path 21.1002 + inkscape:connector-curvature="0" 21.1003 + id="366" 21.1004 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1005 + d="m 461.81778,441.15341 -0.3637,-1.21223 -1.964,0 -0.41221,1.21223 -0.80014,0 2.15797,-5.86212 0.19398,0 2.0125,5.86212 -0.8244,0 z m -1.30933,-4.34231 -0.8244,2.53302 1.57605,0 -0.75165,-2.53302 z" /> 21.1006 + <path 21.1007 + inkscape:connector-curvature="0" 21.1008 + id="367" 21.1009 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1010 + d="m 463.80603,440.9182 0,0 0,1.89976 -0.65466,0 0,-5.8983 0.65466,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58193,-0.43424 0.94564,-0.43424 l 0,0 0,0 c 0.55768,0 0.99412,0.19904 1.28509,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.75166,0.61517 -1.33359,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14549,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14549,0.0723 0.29096,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.87289,0 1.28509,-0.54279 1.28509,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.21822,-0.2533 -0.53343,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.36371,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26671,0.14475 -0.33946,0.23521 z" /> 21.1011 + <path 21.1012 + inkscape:connector-curvature="0" 21.1013 + id="368" 21.1014 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1015 + d="m 467.95227,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.26671,-0.28949 0.58193,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.53343,0 0.96988,0.19904 1.26084,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.75166,0.61517 -1.30933,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26671,0.19902 l 0,0 0,0 c 0.14549,0.0723 0.29097,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.84865,0 1.26085,-0.54279 1.26085,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29097,-1.17604 l 0,0 0,0 c -0.21822,-0.2533 -0.50919,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.19397,0.0362 -0.33945,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26672,0.14475 -0.33946,0.23521 z" /> 21.1016 + <path 21.1017 + inkscape:connector-curvature="0" 21.1018 + id="369" 21.1019 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1020 + d="m 474.69293,441.15341 0,0 -0.8244,0 0,0 0,0 c 0.19398,-0.61516 0.48494,-1.42934 0.92139,-2.46064 l 0,0 0,0 c 0.38795,-1.01321 0.7759,-1.88167 1.1396,-2.58729 l 0,0 -2.49743,0 0,-0.7599 3.41882,0 0,0.30758 -0.46069,1.01319 0,0 0,0 c -0.14549,0.32568 -0.31522,0.68755 -0.48494,1.10368 l 0,0 0,0 c -0.16973,0.39804 -0.33946,0.81419 -0.50919,1.24841 l 0,0 0,0 c -0.16973,0.41615 -0.29096,0.81419 -0.41219,1.17605 l 0,0 0,0 c -0.12124,0.36185 -0.21823,0.66944 -0.29097,0.95892 z" /> 21.1021 + <path 21.1022 + inkscape:connector-curvature="0" 21.1023 + id="370" 21.1024 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1025 + d="m 491.44759,441.15341 -0.3637,-1.21223 -1.96401,0 -0.4122,1.21223 -0.80014,0 2.15797,-5.86212 0.19398,0 2.0125,5.86212 -0.8244,0 z m -1.30934,-4.34231 -0.84864,2.53302 1.6003,0 -0.75166,-2.53302 z" /> 21.1026 + <path 21.1027 + inkscape:connector-curvature="0" 21.1028 + id="371" 21.1029 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1030 + d="m 493.43584,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58193,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.55768,0 0.99414,0.19904 1.2851,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.75166,0.61517 -1.33359,0.61517 l 0,0 0,0 c -0.16973,0 -0.33945,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14549,0.0723 0.29097,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.87289,0 1.28509,-0.54279 1.28509,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29097,-1.17604 l 0,0 0,0 c -0.21821,-0.2533 -0.53343,-0.37995 -0.99412,-0.37995 l 0,0 0,0 c -0.097,0 -0.19398,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26671,0.14475 -0.33946,0.23521 z" /> 21.1031 + <path 21.1032 + inkscape:connector-curvature="0" 21.1033 + id="372" 21.1034 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1035 + d="m 497.58208,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.26671,-0.28949 0.58192,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.53343,0 0.96988,0.19904 1.26084,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.3152,0.39806 -0.72741,0.61517 -1.30934,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53342,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31522,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.12123,0.14473 0.26671,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29096,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.84865,0 1.26084,-0.54279 1.26084,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.19398,-0.2533 -0.50918,-0.37995 -0.96988,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.33945,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26672,0.14475 -0.33946,0.23521 z" /> 21.1036 + <path 21.1037 + inkscape:connector-curvature="0" 21.1038 + id="373" 21.1039 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1040 + d="m 504.03178,437.93287 0,0 0,0 c -0.21823,-0.12669 -0.41221,-0.32567 -0.55769,-0.56088 l 0,0 0,0 c -0.12123,-0.23521 -0.19397,-0.47042 -0.19397,-0.70564 l 0,0 0,0 c 0,-0.43422 0.12123,-0.77799 0.38795,-1.01319 l 0,0 0,0 c 0.26671,-0.25331 0.63042,-0.37996 1.04262,-0.37996 l 0,0 0,0 c 0.43644,0 0.80015,0.12669 1.04262,0.37996 l 0,0 0,0 c 0.24247,0.2352 0.38795,0.57897 0.38795,1.01319 l 0,0 0,0 c 0,0.23522 -0.097,0.50661 -0.24247,0.75992 l 0,0 0,0 c -0.14548,0.27138 -0.33945,0.45231 -0.53343,0.57897 l 0,0 0,0 c 0.65467,0.39805 0.96987,0.90464 0.96987,1.5379 l 0,0 0,0 c 0,0.54278 -0.14548,0.95893 -0.46069,1.24841 l 0,0 0,0 c -0.29096,0.28949 -0.67891,0.45233 -1.1881,0.45233 l 0,0 0,0 c -1.06687,0 -1.6003,-0.56088 -1.6003,-1.70074 l 0,0 0,0 c 0,-0.32568 0.0727,-0.63326 0.26672,-0.95892 l 0,0 0,0 c 0.19398,-0.30758 0.41219,-0.5247 0.67892,-0.65135 z m 0.89713,-0.25331 0,0 0,0 c 0.31522,-0.32566 0.4607,-0.68753 0.4607,-1.0313 l 0,0 0,0 c 0,-0.21711 -0.0485,-0.37995 -0.19398,-0.5066 l 0,0 0,0 c -0.12123,-0.1267 -0.26672,-0.19902 -0.48494,-0.19902 l 0,0 0,0 c -0.48494,0 -0.70316,0.23522 -0.70316,0.72371 l 0,0 0,0 c 0,0.32568 0.29096,0.66945 0.92138,1.01321 z m -0.31521,0.59708 0,0 0,0 c -0.53344,0.30758 -0.80015,0.7418 -0.80015,1.2665 l 0,0 0,0 c 0,0.28949 0.0727,0.54278 0.24247,0.72371 l 0,0 0,0 c 0.16973,0.19902 0.3637,0.28949 0.63042,0.28949 l 0,0 0,0 c 0.26672,0 0.48494,-0.0904 0.65467,-0.2714 l 0,0 0,0 c 0.16973,-0.19902 0.26671,-0.43422 0.26671,-0.7418 l 0,0 0,0 c 0,-0.19902 -0.0727,-0.41613 -0.19397,-0.59706 l 0,0 0,0 c -0.12124,-0.18093 -0.3637,-0.41615 -0.80015,-0.66944 z" /> 21.1041 + <path 21.1042 + inkscape:connector-curvature="0" 21.1043 + id="374" 21.1044 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1045 + d="m 521.0774,441.15341 -0.3637,-1.21223 -1.98826,0 -0.38795,1.21223 -0.80015,0 2.15799,-5.86212 0.19396,0 2.01251,5.86212 -0.8244,0 z m -1.33359,-4.34231 -0.82439,2.53302 1.6003,0 -0.77591,-2.53302 z" /> 21.1046 + <path 21.1047 + inkscape:connector-curvature="0" 21.1048 + id="375" 21.1049 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1050 + d="m 523.06565,440.9182 0,0 0,1.89976 -0.67891,0 0,-5.8983 0.67891,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58193,-0.43424 0.94563,-0.43424 l 0,0 0,0 c 0.55768,0 0.99413,0.19904 1.2851,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.46069,0.94083 0.46069,1.66455 l 0,0 0,0 c 0,0.63325 -0.14548,1.15795 -0.46069,1.57408 l 0,0 0,0 c -0.31522,0.39806 -0.75166,0.61517 -1.33359,0.61517 l 0,0 0,0 c -0.16973,0 -0.33946,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31522,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.14548,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29096,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.87289,0 1.28508,-0.54279 1.28508,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.29096,-1.17604 l 0,0 0,0 c -0.21822,-0.2533 -0.53343,-0.37995 -0.99412,-0.37995 l 0,0 0,0 c -0.097,0 -0.19398,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26672,0.14475 -0.33946,0.23521 z" /> 21.1051 + <path 21.1052 + inkscape:connector-curvature="0" 21.1053 + id="376" 21.1054 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1055 + d="m 527.21188,440.9182 0,0 0,1.89976 -0.70316,0 0,-5.8983 0.70316,0 0,0.34377 0,0 0,0 c 0.26672,-0.28949 0.58193,-0.43424 0.94564,-0.43424 l 0,0 0,0 c 0.55767,0 0.94563,0.19904 1.26084,0.56089 l 0,0 0,0 c 0.31521,0.37995 0.4607,0.94083 0.4607,1.66455 l 0,0 0,0 c 0,0.63325 -0.14549,1.15795 -0.4607,1.57408 l 0,0 0,0 c -0.31521,0.39806 -0.72741,0.61517 -1.30934,0.61517 l 0,0 0,0 c -0.16973,0 -0.3637,-0.0362 -0.53343,-0.10858 l 0,0 0,0 c -0.19398,-0.0542 -0.31521,-0.12669 -0.36371,-0.21711 z m 0,-3.09389 0,0 0,2.47874 0,0 0,0 c 0.0485,0.0723 0.12124,0.14473 0.26672,0.19902 l 0,0 0,0 c 0.14548,0.0723 0.29096,0.10858 0.4122,0.10858 l 0,0 0,0 c 0.87289,0 1.26084,-0.54279 1.26084,-1.59218 l 0,0 0,0 c 0,-0.54279 -0.097,-0.92274 -0.26672,-1.17604 l 0,0 0,0 c -0.21821,-0.2533 -0.53342,-0.37995 -0.99412,-0.37995 l 0,0 0,0 c -0.097,0 -0.21822,0.0362 -0.33946,0.12669 l 0,0 0,0 c -0.14548,0.0723 -0.26671,0.14475 -0.33946,0.23521 z" /> 21.1056 + <path 21.1057 + inkscape:connector-curvature="0" 21.1058 + id="377" 21.1059 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1060 + d="m 533.80706,441.26197 0,0 -0.3637,-0.43422 0,0 0,0 c 0.21822,-0.0905 0.53343,-0.39806 0.94563,-0.92275 l 0,0 0,0 c 0.38795,-0.54279 0.58193,-0.94083 0.63042,-1.23032 l 0,0 0,0 c -0.16973,0.19902 -0.46069,0.30758 -0.80015,0.30758 l 0,0 0,0 c -0.48494,0 -0.84864,-0.16284 -1.13961,-0.48851 l 0,0 0,0 c -0.29097,-0.32568 -0.43645,-0.77801 -0.43645,-1.35697 l 0,0 0,0 c 0,-0.54279 0.14548,-0.99512 0.43645,-1.35698 l 0,0 0,0 c 0.29097,-0.34376 0.67892,-0.5066 1.11536,-0.5066 l 0,0 0,0 c 1.13961,0 1.72154,0.83228 1.72154,2.51492 l 0,0 0,0 c 0,0.70563 -0.21823,1.41125 -0.67892,2.15306 l 0,0 0,0 c -0.43644,0.74182 -0.92139,1.17604 -1.43057,1.32079 z m 1.35783,-4.08901 0,0 0,0 c 0,-0.81417 -0.29096,-1.23032 -0.92138,-1.23032 l 0,0 0,0 c -0.26672,0 -0.46069,0.10858 -0.63042,0.32567 l 0,0 0,0 c -0.14549,0.21712 -0.21823,0.48852 -0.21823,0.83228 l 0,0 0,0 c 0,0.36186 0.0727,0.66944 0.24247,0.88655 l 0,0 0,0 c 0.16973,0.21712 0.3637,0.32568 0.60618,0.32568 l 0,0 0,0 c 0.63042,0 0.92138,-0.37995 0.92138,-1.13986 z" /> 21.1061 + <path 21.1062 + inkscape:connector-curvature="0" 21.1063 + id="378" 21.1064 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1065 + d="m 467.63706,442.96271 20.68267,11.39855 -0.33946,0.34377 -0.33946,0.34377 -20.68266,-11.39856 0.33945,-0.34377 0.33946,-0.34376 z" /> 21.1066 + <path 21.1067 + inkscape:connector-curvature="0" 21.1068 + id="379" 21.1069 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1070 + d="m 484.82817,450.38082 0,0 4.36445,4.97556 -7.6378,-1.64646 0,0 0,0 c 1.93977,-0.47041 3.2491,-1.80929 3.27335,-3.3291 z" /> 21.1071 + <path 21.1072 + inkscape:connector-curvature="0" 21.1073 + id="380" 21.1074 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1075 + d="m 497.72756,443.30647 -0.0485,11.39856 -0.58192,0 -0.58193,0 0.0485,-11.39856 0.58192,0 0.58193,0 z" /> 21.1076 + <path 21.1077 + inkscape:connector-curvature="0" 21.1078 + id="381" 21.1079 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1080 + d="m 499.86129,450.23607 0,0 -2.76415,5.57264 -2.71567,-5.59073 0,0 0,0 c 1.60031,0.90464 3.83103,0.90464 5.47982,0.0181 z" /> 21.1081 + <path 21.1082 + inkscape:connector-curvature="0" 21.1083 + id="382" 21.1084 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1085 + d="m 527.26038,443.65024 -20.70692,11.39856 -0.33946,-0.34377 -0.33946,-0.34377 20.70692,-11.39855 0.33946,0.34376 0.33946,0.34377 z" /> 21.1086 + <path 21.1087 + inkscape:connector-curvature="0" 21.1088 + id="383" 21.1089 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1090 + d="m 512.63945,453.72802 0,0 -7.61355,1.64645 4.3887,-4.97556 0,0 0,0 c 0,1.50172 1.30934,2.8406 3.22485,3.32911 z" /> 21.1091 + <path 21.1092 + inkscape:connector-curvature="0" 21.1093 + id="384" 21.1094 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1095 + d="m 269.93937,497.76592 -36.08647,34.26838 -0.3542,-0.27594 -0.35416,-0.29319 36.10617,-34.25113 0.35416,0.27593 0.3345,0.27595 z" /> 21.1096 + <path 21.1097 + inkscape:connector-curvature="0" 21.1098 + id="385" 21.1099 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1100 + d="m 239.64272,529.88124 0,0 -7.08011,2.69585 3.05511,-5.50024 0,0 0,0 c 0.38796,1.48361 1.98826,2.60538 4.025,2.80439 z" /> 21.1101 + <path 21.1102 + inkscape:connector-curvature="0" 21.1103 + id="386" 21.1104 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1105 + d="m 372.77081,497.0111 -79.52566,35.18604 -0.2629,-0.37112 -0.26289,-0.38879 79.52566,-35.16835 0.2629,0.3711 0.26289,0.37112 z" /> 21.1106 + <path 21.1107 + inkscape:connector-curvature="0" 21.1108 + id="387" 21.1109 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1110 + d="m 299.53276,531.47343 0,0 -7.85603,0.90464 5.21312,-4.48706 0,0 0,0 c -0.26673,1.50171 0.8244,2.93107 2.64291,3.58242 z" /> 21.1111 + <path 21.1112 + inkscape:connector-curvature="0" 21.1113 + id="388" 21.1114 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1115 + d="m 473.50489,497.75866 -120.9015,34.45656 -0.17886,-0.37526 -0.17883,-0.39232 120.90149,-34.43951 0.17885,0.37527 0.17885,0.37526 z" /> 21.1116 + <path 21.1117 + inkscape:connector-curvature="0" 21.1118 + id="389" 21.1119 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1120 + d="m 358.9621,532.19714 0,0 -7.92875,0.0362 6.01325,-3.87189 0,0 0,0 c -0.55769,1.44743 0.24246,2.96724 1.9155,3.83571 z" /> 21.1121 + <path 21.1122 + inkscape:connector-curvature="0" 21.1123 + id="390" 21.1124 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1125 + d="m 317.90247,496.23268 122.26277,35.18809 -0.18017,0.42418 -0.18016,0.40647 -122.26276,-35.20575 0.18015,-0.4065 0.18017,-0.40649 z" /> 21.1126 + <path 21.1127 + inkscape:connector-curvature="0" 21.1128 + id="391" 21.1129 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1130 + d="m 435.36433,528.36144 0,0 6.01325,3.85378 -7.90451,0 0,0 0,0 c 1.67304,-0.85036 2.4247,-2.38826 1.89126,-3.85378 z" /> 21.1131 + <path 21.1132 + inkscape:connector-curvature="0" 21.1133 + id="392" 21.1134 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1135 + d="m 420.00549,496.69623 79.61334,34.7681 -0.23423,0.38421 -0.23421,0.36668 -79.61334,-34.78558 0.23422,-0.36671 0.23422,-0.3667 z" /> 21.1136 + <path 21.1137 + inkscape:connector-curvature="0" 21.1138 + id="393" 21.1139 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1140 + d="m 495.39985,527.9272 0,0 5.31008,4.41469 -7.85602,-0.7961 0,0 0,0 c 1.79428,-0.66943 2.8369,-2.11687 2.54594,-3.61859 z" /> 21.1141 + <path 21.1142 + inkscape:connector-curvature="0" 21.1143 + id="394" 21.1144 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1145 + d="m 521.32171,496.34125 37.84769,35.2008 -0.31182,0.30042 -0.33132,0.30038 -37.86718,-35.20079 0.33131,-0.30042 0.33132,-0.30039 z" /> 21.1146 + <path 21.1147 + inkscape:connector-curvature="0" 21.1148 + id="395" 21.1149 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1150 + d="m 556.59922,527.20349 0,0 3.22485,5.42787 -7.10437,-2.55109 0,0 0,0 c 1.93976,-0.21711 3.51581,-1.37505 3.87952,-2.87678 z" /> 21.1151 + <path 21.1152 + inkscape:connector-curvature="0" 21.1153 + id="396" 21.1154 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1155 + d="m 483.85828,574.46227 0,-2.53302 -2.08523,0 0,2.53302 -0.63043,0 0,-5.24695 0.63043,0 0,2.11687 2.08523,0 0,-2.11687 0.65468,0 0,5.24695 -0.65468,0 z" /> 21.1156 + <path 21.1157 + inkscape:connector-curvature="0" 21.1158 + id="397" 21.1159 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1160 + d="m 489.16837,574.53464 -0.21822,0 -1.13961,-3.60049 -1.04262,3.60049 -0.19397,0 -1.52756,-5.31932 0.67891,0 0.96989,3.67285 1.04262,-3.67285 0.21821,0 1.04262,3.65477 0.96988,-3.65477 0.67892,0 -1.47907,5.31932 z" /> 21.1161 + <path 21.1162 + inkscape:connector-curvature="0" 21.1163 + id="398" 21.1164 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1165 + d="m 496.22425,569.41434 0,0 -0.21823,0.59706 0,0 0,0 c -0.19397,-0.16282 -0.53343,-0.23522 -0.96987,-0.23522 l 0,0 0,0 c -0.43645,0 -0.77591,0.18096 -1.01838,0.57899 l 0,0 0,0 c -0.26672,0.41613 -0.38795,0.92275 -0.38795,1.55599 l 0,0 0,0 c 0,0.57898 0.12123,1.0675 0.38795,1.42935 l 0,0 0,0 c 0.26672,0.37995 0.60618,0.56087 1.01838,0.56087 l 0,0 0,0 c 0.43644,0 0.80014,-0.16283 1.04262,-0.52468 l 0,0 0.33946,0.56087 0,0 0,0 c -0.36371,0.39805 -0.84865,0.61517 -1.45483,0.61517 l 0,0 0,0 c -0.63042,0 -1.11535,-0.25329 -1.47906,-0.74181 l 0,0 0,0 c -0.36371,-0.48852 -0.50919,-1.13986 -0.50919,-1.95404 l 0,0 0,0 c 0,-0.77801 0.16973,-1.44745 0.55768,-1.95404 l 0,0 0,0 c 0.3637,-0.52469 0.87289,-0.778 1.47907,-0.778 l 0,0 0,0 c 0.50918,0 0.92138,0.0905 1.21235,0.28949 z" /> 21.1166 + <path 21.1167 + inkscape:connector-curvature="0" 21.1168 + id="399" 21.1169 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1170 + d="m 497.16988,573.3767 0,0 0,-4.32422 0.63042,0 0,4.21567 0,0 0,0 c 0,0.19902 0.0485,0.36184 0.16973,0.4704 l 0,0 0,0 c 0.097,0.1267 0.24247,0.18093 0.4122,0.18093 l 0,0 0,0.61516 0,0 0,0 c -0.80015,0 -1.21235,-0.39804 -1.21235,-1.15794 z" /> 21.1171 + <path 21.1172 + inkscape:connector-curvature="0" 21.1173 + id="400" 21.1174 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1175 + d="m 501.04939,574.00994 0,0 0,0 c -0.24246,0.34378 -0.63042,0.5247 -1.1396,0.5247 l 0,0 0,0 c -0.26672,0 -0.50919,-0.10858 -0.70317,-0.32568 l 0,0 0,0 c -0.16973,-0.2171 -0.29096,-0.4885 -0.29096,-0.81416 l 0,0 0,0 c 0,-0.39807 0.14548,-0.72373 0.46069,-0.99513 l 0,0 0,0 c 0.29096,-0.25329 0.70317,-0.39804 1.1881,-0.39804 l 0,0 0,0 c 0.12124,0 0.26673,0.0362 0.43645,0.0905 l 0,0 0,0 c 0,-0.61515 -0.24247,-0.92272 -0.75166,-0.92272 l 0,0 0,0 c -0.38795,0 -0.70316,0.12669 -0.89714,0.34375 l 0,0 -0.26671,-0.56088 0,0 0,0 c 0.12123,-0.10857 0.29096,-0.19902 0.48494,-0.27138 l 0,0 0,0 c 0.21822,-0.0723 0.4122,-0.1267 0.60617,-0.1267 l 0,0 0,0 c 0.50919,0 0.87289,0.14473 1.09112,0.39804 l 0,0 0,0 c 0.24247,0.2533 0.3637,0.65134 0.3637,1.19414 l 0,0 0,1.37505 0,0 0,0 c 0,0.32569 0.0727,0.56089 0.26672,0.66944 l 0,0 0,0.32567 0,0 0,0 c -0.24247,0 -0.43644,-0.0362 -0.55768,-0.10857 l 0,0 0,0 c -0.14549,-0.0723 -0.21822,-0.21714 -0.29097,-0.39807 z m -0.0485,-1.42934 0,0 0,0 c -0.19397,-0.0542 -0.33945,-0.0723 -0.4122,-0.0723 l 0,0 0,0 c -0.31521,0 -0.58193,0.0905 -0.7759,0.27142 l 0,0 0,0 c -0.19397,0.16282 -0.29097,0.37995 -0.29097,0.61516 l 0,0 0,0 c 0,0.39804 0.21823,0.59706 0.65467,0.59706 l 0,0 0,0 c 0.31522,0 0.58193,-0.16285 0.8244,-0.48851 l 0,-0.92275 z" /> 21.1176 + <path 21.1177 + inkscape:connector-curvature="0" 21.1178 + id="401" 21.1179 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1180 + d="m 502.38297,574.22707 0,0 0.21823,-0.63326 0,0 0,0 c 0.33946,0.2352 0.60618,0.36186 0.8244,0.36186 l 0,0 0,0 c 0.38795,0 0.58193,-0.18092 0.58193,-0.5247 l 0,0 0,0 c 0,-0.25331 -0.19398,-0.47041 -0.55769,-0.65133 l 0,0 0,0 c -0.29096,-0.14475 -0.48493,-0.25331 -0.58192,-0.32568 l 0,0 0,0 c -0.097,-0.0723 -0.19397,-0.16285 -0.26672,-0.25329 l 0,0 0,0 c -0.0727,-0.0905 -0.12123,-0.18095 -0.14548,-0.28951 l 0,0 0,0 c -0.0485,-0.10858 -0.0727,-0.21711 -0.0727,-0.34375 l 0,0 0,0 c 0,-0.3076 0.12125,-0.56089 0.31522,-0.74182 l 0,0 0,0 c 0.21822,-0.16285 0.48494,-0.27139 0.8244,-0.27139 l 0,0 0,0 c 0.26671,0 0.58192,0.10858 0.96988,0.27139 l 0,0 -0.16973,0.63326 0,0 0,0 c -0.24248,-0.21712 -0.50919,-0.32568 -0.75166,-0.32568 l 0,0 0,0 c -0.14548,0 -0.26672,0.0362 -0.3637,0.1267 l 0,0 0,0 c -0.097,0.0723 -0.16973,0.16283 -0.16973,0.2714 l 0,0 0,0 c 0,0.2533 0.14548,0.43423 0.38795,0.56087 l 0,0 0.46069,0.21714 0,0 0,0 c 0.26672,0.14474 0.4607,0.28948 0.58193,0.47041 l 0,0 0,0 c 0.12123,0.18093 0.19397,0.39803 0.19397,0.65134 l 0,0 0,0 c 0,0.34378 -0.12123,0.61516 -0.33945,0.81418 l 0,0 0,0 c -0.21823,0.18093 -0.50919,0.28948 -0.92139,0.28948 l 0,0 0,0 c -0.3637,0 -0.70316,-0.10858 -1.01838,-0.30757 z" /> 21.1181 + <path 21.1182 + inkscape:connector-curvature="0" 21.1183 + id="402" 21.1184 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1185 + d="m 505.05015,574.22707 0,0 0.21822,-0.63326 0,0 0,0 c 0.3637,0.2352 0.63042,0.36186 0.84864,0.36186 l 0,0 0,0 c 0.38795,0 0.58193,-0.18092 0.58193,-0.5247 l 0,0 0,0 c 0,-0.25331 -0.19398,-0.47041 -0.55768,-0.65133 l 0,0 0,0 c -0.29096,-0.14475 -0.48494,-0.25331 -0.58192,-0.32568 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.16285 -0.26673,-0.25329 l 0,0 0,0 c -0.0727,-0.0905 -0.12123,-0.18095 -0.16973,-0.28951 l 0,0 0,0 c -0.0242,-0.10858 -0.0485,-0.21711 -0.0485,-0.34375 l 0,0 0,0 c 0,-0.3076 0.097,-0.56089 0.31521,-0.74182 l 0,0 0,0 c 0.21821,-0.16285 0.48493,-0.27139 0.82439,-0.27139 l 0,0 0,0 c 0.26672,0 0.58192,0.10858 0.96988,0.27139 l 0,0 -0.19398,0.63326 0,0 0,0 c -0.24246,-0.21712 -0.48494,-0.32568 -0.7274,-0.32568 l 0,0 0,0 c -0.14549,0 -0.26672,0.0362 -0.38796,0.1267 l 0,0 0,0 c -0.097,0.0723 -0.14548,0.16283 -0.14548,0.2714 l 0,0 0,0 c 0,0.2533 0.12124,0.43423 0.38795,0.56087 l 0,0 0.43645,0.21714 0,0 0,0 c 0.29096,0.14474 0.48494,0.28948 0.60617,0.47041 l 0,0 0,0 c 0.12124,0.18093 0.19398,0.39803 0.19398,0.65134 l 0,0 0,0 c 0,0.34378 -0.12123,0.61516 -0.33946,0.81418 l 0,0 0,0 c -0.21823,0.18093 -0.53343,0.28948 -0.92138,0.28948 l 0,0 0,0 c -0.36371,0 -0.70316,-0.10858 -1.04262,-0.30757 z" /> 21.1186 + <path 21.1187 + inkscape:connector-curvature="0" 21.1188 + id="403" 21.1189 + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1190 + d="m 511.40285,574.46227 0,0 -1.35783,0 0,-5.24695 0,0 0,0 c 0.60618,-0.0362 0.99413,-0.0544 1.2366,-0.0544 l 0,0 0,0 c 0.48494,0 0.84864,0.1267 1.11536,0.34377 l 0,0 0,0 c 0.24247,0.21713 0.38795,0.5428 0.38795,0.95893 l 0,0 0,0 c 0,0.2533 -0.097,0.47042 -0.24246,0.66944 l 0,0 0,0 c -0.16973,0.19902 -0.36371,0.32568 -0.55769,0.37995 l 0,0 0,0 c 0.38796,0.0905 0.65467,0.2714 0.8244,0.48851 l 0,0 0,0 c 0.16973,0.23521 0.26671,0.54279 0.26671,0.94083 l 0,0 0,0 c 0,0.47042 -0.16973,0.83229 -0.46069,1.10368 l 0,0 0,0 c -0.31521,0.27139 -0.72741,0.41613 -1.21235,0.41613 z m -0.70316,-4.66797 0,0 0,1.50172 0,0 0,0 c 0.14549,0.0181 0.31522,0.0362 0.50918,0.0362 l 0,0 0,0 c 0.60618,0 0.92139,-0.27139 0.92139,-0.85037 l 0,0 0,0 c 0,-0.48851 -0.29096,-0.72373 -0.84864,-0.72373 l 0,0 0,0 c -0.21823,0 -0.38796,0.0181 -0.58193,0.0362 z m 0,2.06259 0,0 0,1.99023 0,0 0,0 c 0.24247,0.0181 0.38795,0.0362 0.50918,0.0362 l 0,0 0,0 c 0.41221,0 0.70317,-0.0723 0.89715,-0.2533 l 0,0 0,0 c 0.19397,-0.16283 0.26672,-0.43421 0.26672,-0.79609 l 0,0 0,0 c 0,-0.34376 -0.0728,-0.59707 -0.26672,-0.75989 l 0,0 0,0 c -0.16973,-0.14476 -0.4607,-0.23522 -0.89715,-0.23522 l -0.50918,0.0181 z" /> 21.1191 + <path 21.1192 + inkscape:connector-curvature="0" 21.1193 + id="404" 21.1194 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1195 + d="m 278.82584,573.43097 0,-2.51492 -2.08524,0 0,2.51492 -0.65467,0 0,-5.22886 0.65467,0 0,2.08071 2.08524,0 0,-2.08071 0.65467,0 0,5.22886 -0.65467,0 z" /> 21.1196 + <path 21.1197 + inkscape:connector-curvature="0" 21.1198 + id="405" 21.1199 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1200 + d="m 284.11168,573.50335 -0.19397,0 -1.13961,-3.6186 -1.06686,3.6186 -0.19399,0 -1.50331,-5.30124 0.67891,0 0.94564,3.65478 1.06686,-3.65478 0.21823,0 1.04262,3.65478 0.92138,-3.65478 0.70316,0 -1.47906,5.30124 z" /> 21.1201 + <path 21.1202 + inkscape:connector-curvature="0" 21.1203 + id="406" 21.1204 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1205 + d="m 291.16755,568.38304 0,0 -0.21822,0.61515 0,0 0,0 c -0.21822,-0.16282 -0.55768,-0.25329 -0.96988,-0.25329 l 0,0 0,0 c -0.43645,0 -0.75165,0.19903 -1.01838,0.59707 l 0,0 0,0 c -0.24247,0.39805 -0.38794,0.90465 -0.38794,1.53791 l 0,0 0,0 c 0,0.59706 0.14547,1.08557 0.38794,1.44743 l 0,0 0,0 c 0.26673,0.36184 0.60618,0.56086 1.01838,0.56086 l 0,0 0,0 c 0.43645,0 0.77591,-0.18091 1.01836,-0.52468 l 0,0 0.36372,0.5428 0,0 0,0 c -0.38795,0.41612 -0.8729,0.61514 -1.45481,0.61514 l 0,0 0,0 c -0.63042,0 -1.11537,-0.23519 -1.47907,-0.74179 l 0,0 0,0 c -0.36371,-0.48853 -0.53343,-1.13987 -0.53343,-1.93596 l 0,0 0,0 c 0,-0.79608 0.19397,-1.44743 0.58192,-1.97214 l 0,0 0,0 c 0.38794,-0.50658 0.87289,-0.7599 1.47907,-0.7599 l 0,0 0,0 c 0.50919,0 0.89714,0.0905 1.21234,0.2714 z" /> 21.1206 + <path 21.1207 + inkscape:connector-curvature="0" 21.1208 + id="407" 21.1209 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1210 + d="m 292.11319,572.36349 0,0 0,-4.32421 0.60617,0 0,4.19756 0,0 0,0 c 0,0.21712 0.0485,0.36187 0.16973,0.48851 l 0,0 0,0 c 0.097,0.10857 0.24247,0.18094 0.4122,0.18094 l 0,0 0,0.59706 0,0 0,0 c -0.80015,0 -1.1881,-0.37996 -1.1881,-1.13986 z" /> 21.1211 + <path 21.1212 + inkscape:connector-curvature="0" 21.1213 + id="408" 21.1214 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1215 + d="m 296.01695,572.99673 0,0 0,0 c -0.26672,0.34378 -0.63042,0.50662 -1.13961,0.50662 l 0,0 0,0 c -0.29097,0 -0.53344,-0.10858 -0.7274,-0.32569 l 0,0 0,0 c -0.19398,-0.2171 -0.29097,-0.48851 -0.29097,-0.81417 l 0,0 0,0 c 0,-0.37996 0.14549,-0.70562 0.46068,-0.97702 l 0,0 0,0 c 0.31522,-0.27139 0.70317,-0.39803 1.18812,-0.39803 l 0,0 0,0 c 0.12123,0 0.26671,0.0361 0.43643,0.0905 l 0,0 0,0 c 0,-0.63325 -0.24247,-0.94083 -0.75165,-0.94083 l 0,0 0,0 c -0.38795,0 -0.67891,0.10858 -0.89713,0.34377 l 0,0 -0.26672,-0.57897 0,0 0,0 c 0.12124,-0.0905 0.29095,-0.18093 0.48494,-0.2714 l 0,0 0,0 c 0.21821,-0.0723 0.4122,-0.10858 0.60616,-0.10858 l 0,0 0,0 c 0.5092,0 0.8729,0.12669 1.09113,0.37995 l 0,0 0,0 c 0.21822,0.25331 0.33945,0.65135 0.33945,1.23032 l 0,0 0,1.35697 0,0 0,0 c 0,0.34377 0.097,0.56088 0.26672,0.66944 l 0,0 0,0.34377 0,0 0,0 c -0.24247,0 -0.43645,-0.0362 -0.55768,-0.1267 l 0,0 0,0 c -0.12124,-0.0723 -0.21822,-0.19903 -0.24247,-0.37996 z m -0.0727,-1.42932 0,0 0,0 c -0.19397,-0.0544 -0.33945,-0.0723 -0.41218,-0.0723 l 0,0 0,0 c -0.31522,0 -0.55768,0.0905 -0.75167,0.25331 l 0,0 0,0 c -0.21823,0.18091 -0.31521,0.37995 -0.31521,0.63326 l 0,0 0,0 c 0,0.39804 0.21823,0.59706 0.65466,0.59706 l 0,0 0,0 c 0.31522,0 0.58193,-0.16285 0.8244,-0.48852 l 0,-0.92273 z" /> 21.1216 + <path 21.1217 + inkscape:connector-curvature="0" 21.1218 + id="409" 21.1219 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1220 + d="m 297.30203,573.21387 0,0 0.21823,-0.65136 0,0 0,0 c 0.33945,0.2533 0.63042,0.37995 0.8244,0.37995 l 0,0 0,0 c 0.38795,0 0.58193,-0.18092 0.58193,-0.54279 l 0,0 0,0 c 0,-0.2352 -0.19398,-0.45231 -0.55768,-0.63324 l 0,0 0,0 c -0.29096,-0.14475 -0.48495,-0.25331 -0.58193,-0.32568 l 0,0 0,0 c -0.097,-0.0723 -0.16973,-0.16283 -0.24247,-0.2533 l 0,0 0,0 c -0.0727,-0.0905 -0.14548,-0.19901 -0.16973,-0.30757 l 0,0 0,0 c -0.0485,-0.10858 -0.0485,-0.21714 -0.0485,-0.36188 l 0,0 0,0 c 0,-0.30758 0.097,-0.54277 0.31522,-0.7237 l 0,0 0,0 c 0.19396,-0.18094 0.48493,-0.2714 0.82439,-0.2714 l 0,0 0,0 c 0.24247,0 0.55769,0.0905 0.94564,0.2714 l 0,0 -0.16974,0.63325 0,0 0,0 c -0.24246,-0.21713 -0.48493,-0.32568 -0.75165,-0.32568 l 0,0 0,0 c -0.14548,0 -0.26671,0.0362 -0.36371,0.10858 l 0,0 0,0 c -0.097,0.0723 -0.14548,0.18094 -0.14548,0.28949 l 0,0 0,0 c 0,0.27139 0.12124,0.45233 0.36371,0.57897 l 0,0 0.46068,0.21714 0,0 0,0 c 0.26674,0.12656 0.4607,0.28948 0.58194,0.47041 l 0,0 0,0 c 0.14548,0.16282 0.19398,0.37995 0.19398,0.65133 l 0,0 0,0 c 0,0.34378 -0.097,0.59706 -0.33947,0.79611 l 0,0 0,0 c -0.21821,0.19901 -0.50918,0.28948 -0.89713,0.28948 l 0,0 0,0 c -0.38796,0 -0.72741,-0.0905 -1.04263,-0.28948 z" /> 21.1221 + <path 21.1222 + inkscape:connector-curvature="0" 21.1223 + id="410" 21.1224 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1225 + d="m 299.99344,573.21387 0,0 0.24248,-0.65136 0,0 0,0 c 0.33945,0.2533 0.60617,0.37995 0.8244,0.37995 l 0,0 0,0 c 0.38795,0 0.58193,-0.18092 0.58193,-0.54279 l 0,0 0,0 c 0,-0.2352 -0.19398,-0.45231 -0.55768,-0.63324 l 0,0 0,0 c -0.29096,-0.14475 -0.48495,-0.25331 -0.58193,-0.32568 l 0,0 0,0 c -0.097,-0.0723 -0.19397,-0.16283 -0.26672,-0.2533 l 0,0 0,0 c -0.0728,-0.0905 -0.12123,-0.19901 -0.14548,-0.30757 l 0,0 0,0 c -0.0485,-0.10858 -0.0727,-0.21714 -0.0727,-0.36188 l 0,0 0,0 c 0,-0.30758 0.12125,-0.54277 0.31522,-0.7237 l 0,0 0,0 c 0.21823,-0.18094 0.48494,-0.2714 0.82439,-0.2714 l 0,0 0,0 c 0.26672,0 0.58194,0.0905 0.94564,0.2714 l 0,0 -0.14549,0.63325 0,0 0,0 c -0.24246,-0.21713 -0.50918,-0.32568 -0.75165,-0.32568 l 0,0 0,0 c -0.14548,0 -0.26671,0.0362 -0.36371,0.10858 l 0,0 0,0 c -0.12123,0.0723 -0.16972,0.18094 -0.16972,0.28949 l 0,0 0,0 c 0,0.27139 0.14548,0.45233 0.38795,0.57897 l 0,0 0.46068,0.21714 0,0 0,0 c 0.26674,0.12656 0.4607,0.28948 0.55769,0.47041 l 0,0 0,0 c 0.12123,0.16282 0.19398,0.37995 0.19398,0.65133 l 0,0 0,0 c 0,0.34378 -0.12123,0.59706 -0.31522,0.79611 l 0,0 0,0 c -0.21821,0.19901 -0.53343,0.28948 -0.92138,0.28948 l 0,0 0,0 c -0.3637,0 -0.70316,-0.0905 -1.04263,-0.28948 z" /> 21.1226 + <path 21.1227 + inkscape:connector-curvature="0" 21.1228 + id="411" 21.1229 + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1230 + d="m 307.70399,573.43097 -0.33945,-1.10366 -1.77005,0 -0.36368,1.10366 -0.72741,0 1.93974,-5.30122 0.16973,0 1.79428,5.30122 -0.70316,0 z m -1.1881,-3.94425 -0.75166,2.31588 1.43058,0 -0.67892,-2.31588 z" /> 21.1231 + <path 21.1232 + inkscape:connector-curvature="0" 21.1233 + id="415" 21.1234 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1235 + d="m 228.14965,590.2936 0,0 c 0,-0.0904 0.0242,-0.16282 0.0727,-0.2352 0.0485,-0.0723 0.12123,-0.1267 0.21822,-0.16284 0.097,-0.0362 0.19398,-0.0543 0.31521,-0.0543 l 0,0 0,0.45232 -0.60618,0 z" /> 21.1236 + <path 21.1237 + inkscape:connector-curvature="0" 21.1238 + id="416" 21.1239 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1240 + d="m 228.75583,589.84127 59.40509,0 0,0.45233 0,0.47042 -59.40509,0 0,-0.47042 0,-0.45233 z" /> 21.1241 + <path 21.1242 + inkscape:connector-curvature="0" 21.1243 + id="417" 21.1244 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1245 + d="m 288.16092,589.84127 0,0 c 0.12123,0 0.21823,0.0181 0.31522,0.0544 0.097,0.0362 0.16973,0.0905 0.21823,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63043,0 0,-0.45233 z" /> 21.1246 + <path 21.1247 + inkscape:connector-curvature="0" 21.1248 + id="418" 21.1249 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1250 + d="m 288.79135,590.2936 0,23.26755 -0.63043,0 -0.60617,0 0,-23.26755 0.60617,0 0.63043,0 z" /> 21.1251 + <path 21.1252 + inkscape:connector-curvature="0" 21.1253 + id="419" 21.1254 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1255 + d="m 288.79135,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12124,0.1267 -0.21823,0.16285 -0.097,0.0362 -0.19399,0.0723 -0.31522,0.0723 l 0,0 0,-0.47041 0.63043,0 z" /> 21.1256 + <path 21.1257 + inkscape:connector-curvature="0" 21.1258 + id="420" 21.1259 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1260 + d="m 288.16092,614.03156 -59.40509,0 0,-0.47041 0,-0.45234 59.40509,0 0,0.45234 0,0.47041 z" /> 21.1261 + <path 21.1262 + inkscape:connector-curvature="0" 21.1263 + id="421" 21.1264 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1265 + d="m 228.75583,614.03156 0,0 c -0.12123,0 -0.21821,-0.0361 -0.31521,-0.0723 -0.097,-0.0362 -0.16972,-0.0905 -0.21822,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23519 l 0,0 0.60618,0 0,0.4704 z" /> 21.1266 + <path 21.1267 + inkscape:connector-curvature="0" 21.1268 + id="422" 21.1269 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1270 + d="m 228.14965,613.56115 0,-23.26755 0.60618,0 0.63042,0 0,23.26755 -0.63042,0 -0.60618,0 z" /> 21.1271 + <path 21.1272 + inkscape:connector-curvature="0" 21.1273 + id="423" 21.1274 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1275 + d="m 245.99542,612.6384 0,-2.24352 -1.84276,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.84276,0 0,-1.86358 0.55769,0 0,4.64989 -0.55769,0 z" /> 21.1276 + <path 21.1277 + inkscape:connector-curvature="0" 21.1278 + id="424" 21.1279 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1280 + d="m 249.1233,612.25845 0,0 0,0 c -0.21823,0.28949 -0.55768,0.45232 -0.99413,0.45232 l 0,0 0,0 c -0.24247,0 -0.4607,-0.10858 -0.63043,-0.28948 l 0,0 0,0 c -0.16972,-0.19903 -0.2667,-0.43424 -0.2667,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14546,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.26671,-0.23519 0.60616,-0.34375 1.04261,-0.34375 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21823,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.31521,0 -0.58193,0.0905 -0.77589,0.30758 l 0,0 -0.21824,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24249,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.3637,-0.10858 0.48495,-0.10858 l 0,0 0,0 c 0.46068,0 0.80015,0.10858 0.99411,0.34378 l 0,0 0,0 c 0.21822,0.23522 0.31522,0.59706 0.31522,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24247,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21822,0 -0.38795,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.12123,-0.0723 -0.19396,-0.19902 -0.24246,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29097,-0.0723 -0.3637,-0.0723 l 0,0 0,0 c -0.29097,0 -0.48495,0.0904 -0.65468,0.2352 l 0,0 0,0 c -0.19397,0.16284 -0.2667,0.34378 -0.2667,0.56088 l 0,0 0,0 c 0,0.36187 0.19396,0.52469 0.53343,0.52469 l 0,0 0,0 c 0.29095,0 0.53342,-0.14473 0.75165,-0.43422 l 0,-0.81419 z" /> 21.1281 + <path 21.1282 + inkscape:connector-curvature="0" 21.1283 + id="425" 21.1284 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1285 + d="m 252.17841,609.834 0,0 0,0 c -0.12124,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19398,0 -0.36372,0.0905 -0.50918,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21824,0.43423 -0.21824,0.72372 l 0,0 0,1.93594 -0.55766,0 0,-3.40146 0.55766,0 0,0.54277 0,0 0,0 c 0.19399,-0.41615 0.50919,-0.61517 0.89715,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.43643,0.0544 l -0.24246,0.61517 z" /> 21.1286 + <path 21.1287 + inkscape:connector-curvature="0" 21.1288 + id="426" 21.1289 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1290 + d="m 254.7486,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.16973,0.21709 -0.4607,0.30757 -0.80016,0.30757 l 0,0 0,0 c -0.38795,0 -0.70315,-0.14474 -0.94563,-0.45232 l 0,0 0,0 c -0.24247,-0.30758 -0.3637,-0.70562 -0.3637,-1.21223 l 0,0 0,0 c 0,-0.5066 0.14548,-0.94084 0.4122,-1.3027 l 0,0 0,0 c 0.29096,-0.37996 0.60616,-0.56089 0.99413,-0.56089 l 0,0 0,0 c 0.3152,0 0.55768,0.0905 0.70316,0.25331 l 0,0 0,-1.5741 0.55767,0 0,4.79465 -0.55767,0 z m 0,-2.60538 0,0 0,0 c -0.12125,-0.23522 -0.31521,-0.34377 -0.53345,-0.34377 l 0,0 0,0 c -0.29095,0 -0.53343,0.1267 -0.7274,0.36186 l 0,0 0,0 c -0.16973,0.2352 -0.26671,0.54279 -0.26671,0.92274 l 0,0 0,0 c 0,0.81418 0.33945,1.23031 0.99411,1.23031 l 0,0 0,0 c 0.097,0 0.19399,-0.0362 0.31522,-0.0905 l 0,0 0,0 c 0.12123,-0.0723 0.19398,-0.1267 0.21823,-0.19902 l 0,-1.88167 z" /> 21.1291 + <path 21.1292 + inkscape:connector-curvature="0" 21.1293 + id="427" 21.1294 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1295 + d="m 258.96757,612.71077 -0.14548,0 -0.89715,-2.31589 -0.92138,2.31589 -0.14548,0 -1.11536,-3.49194 0.60618,0 0.65466,2.24354 0.8244,-2.24354 0.14548,0 0.8729,2.24354 0.70315,-2.24354 0.55768,0 -1.1396,3.49194 z" /> 21.1296 + <path 21.1297 + inkscape:connector-curvature="0" 21.1298 + id="428" 21.1299 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1300 + d="m 262.26515,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55767,0.45232 -1.01836,0.45232 l 0,0 0,0 c -0.24247,0 -0.4607,-0.10858 -0.63044,-0.28948 l 0,0 0,0 c -0.16971,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.26671,-0.23519 0.63043,-0.34375 1.06686,-0.34375 l 0,0 0,0 c 0.097,0 0.24248,0.0181 0.38797,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21824,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60618,0.0905 -0.80016,0.30758 l 0,0 -0.21822,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.33945,-0.10858 0.50918,-0.10858 l 0,0 0,0 c 0.4607,0 0.80015,0.10858 0.99413,0.34378 l 0,0 0,0 c 0.19397,0.23522 0.3152,0.59706 0.3152,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24248,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.24248,0 -0.38796,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.12122,-0.0723 -0.19397,-0.19902 -0.24247,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16974,-0.0362 -0.29097,-0.0723 -0.36372,-0.0723 l 0,0 0,0 c -0.29095,0 -0.50918,0.0904 -0.67891,0.2352 l 0,0 0,0 c -0.19397,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29097,0 0.53343,-0.14473 0.75167,-0.43422 l 0,-0.81419 z" /> 21.1301 + <path 21.1302 + inkscape:connector-curvature="0" 21.1303 + id="429" 21.1304 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1305 + d="m 265.32028,609.834 0,0 0,0 c -0.12124,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19399,0 -0.36372,0.0905 -0.5092,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.55768,0 0,-3.40146 0.55768,0 0,0.54277 0,0 0,0 c 0.19398,-0.41615 0.50918,-0.61517 0.89715,-0.61517 l 0,0 0,0 c 0.097,0 0.24245,0.0181 0.43643,0.0544 l -0.24246,0.61517 z" /> 21.1306 + <path 21.1307 + inkscape:connector-curvature="0" 21.1308 + id="430" 21.1309 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1310 + d="m 268.54513,611.01003 0,0 -2.23072,0 0,0 0,0 c 0,0.39805 0.097,0.68753 0.29096,0.90466 l 0,0 0,0 c 0.16972,0.18091 0.4122,0.28947 0.67892,0.28947 l 0,0 0,0 c 0.3152,0 0.58191,-0.10857 0.80015,-0.30755 l 0,0 0.21821,0.43421 0,0 0,0 c -0.0728,0.0905 -0.21821,0.18093 -0.38795,0.23522 l 0,0 0,0 c -0.21821,0.0904 -0.4607,0.14473 -0.72741,0.14473 l 0,0 0,0 c -0.4122,0 -0.7274,-0.14473 -1.01837,-0.43424 l 0,0 0,0 c -0.26671,-0.32566 -0.4122,-0.7599 -0.4122,-1.28459 l 0,0 0,0 c 0,-0.56088 0.14549,-1.0132 0.43644,-1.37507 l 0,0 0,0 c 0.26673,-0.30757 0.60618,-0.45233 0.99413,-0.45233 l 0,0 0,0 c 0.43645,0 0.77591,0.14476 1.04261,0.41615 l 0,0 0,0 c 0.24248,0.2714 0.36372,0.61517 0.36372,1.04939 l 0,0 0,0 c 0,0.14474 -0.0242,0.25332 -0.0485,0.37995 z m -1.33359,-1.32078 0,0 0,0 c -0.24247,0 -0.4607,0.0905 -0.63042,0.25328 l 0,0 0,0 c -0.14548,0.18095 -0.24246,0.37998 -0.26671,0.61517 l 0,0 1.72153,0 0,0 0,0 c 0,-0.23519 -0.0727,-0.43422 -0.19397,-0.59706 l 0,0 0,0 c -0.16973,-0.18093 -0.36372,-0.27139 -0.63043,-0.27139 z" /> 21.1311 + <path 21.1312 + inkscape:connector-curvature="0" 21.1313 + id="431" 21.1314 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1315 + d="m 272.01244,612.6384 0,0 0,-3.58241 -0.8729,0.61516 0,-0.61516 0,0 0,0 c 0.24249,-0.10857 0.4607,-0.28949 0.70317,-0.48851 l 0,0 0,0 c 0.26672,-0.2171 0.4122,-0.41614 0.55768,-0.61516 l 0,0 0.16973,0 0,4.68608 -0.55768,0 z" /> 21.1316 + <path 21.1317 + inkscape:connector-curvature="0" 21.1318 + id="432" 21.1319 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1320 + d="m 229.28926,606.39634 58.33823,0.34376 0,0.43423 0,0.43423 -58.33823,-0.34378 0,-0.43423 0,-0.43421 z" /> 21.1321 + <path 21.1322 + inkscape:connector-curvature="0" 21.1323 + id="436" 21.1324 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1325 + d="m 392.68965,590.2936 0,0 c 0,-0.0904 0.0243,-0.16282 0.0728,-0.2352 0.0485,-0.0723 0.12123,-0.1267 0.21821,-0.16284 0.097,-0.0362 0.19398,-0.0543 0.31521,-0.0543 l 0,0 0,0.45232 -0.60617,0 z" /> 21.1326 + <path 21.1327 + inkscape:connector-curvature="0" 21.1328 + id="437" 21.1329 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1330 + d="m 393.29582,589.84127 59.42935,0 0,0.45233 0,0.47042 -59.42935,0 0,-0.47042 0,-0.45233 z" /> 21.1331 + <path 21.1332 + inkscape:connector-curvature="0" 21.1333 + id="438" 21.1334 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1335 + d="m 452.72517,589.84127 0,0 c 0.12123,0 0.21822,0.0181 0.31521,0.0544 0.097,0.0362 0.16973,0.0905 0.21823,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63042,0 0,-0.45233 z" /> 21.1336 + <path 21.1337 + inkscape:connector-curvature="0" 21.1338 + id="439" 21.1339 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1340 + d="m 453.35559,590.2936 0,23.26755 -0.63042,0 -0.60618,0 0,-23.26755 0.60618,0 0.63042,0 z" /> 21.1341 + <path 21.1342 + inkscape:connector-curvature="0" 21.1343 + id="440" 21.1344 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1345 + d="m 453.35559,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12125,0.1267 -0.21823,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47041 0.63042,0 z" /> 21.1346 + <path 21.1347 + inkscape:connector-curvature="0" 21.1348 + id="441" 21.1349 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1350 + d="m 452.72517,614.03156 -59.42935,0 0,-0.47041 0,-0.45234 59.42935,0 0,0.45234 0,0.47041 z" /> 21.1351 + <path 21.1352 + inkscape:connector-curvature="0" 21.1353 + id="442" 21.1354 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1355 + d="m 393.29582,614.03156 0,0 c -0.12123,0 -0.21822,-0.0361 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21821,-0.16285 -0.0485,-0.0723 -0.0728,-0.14473 -0.0728,-0.23519 l 0,0 0.60617,0 0,0.4704 z" /> 21.1356 + <path 21.1357 + inkscape:connector-curvature="0" 21.1358 + id="443" 21.1359 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1360 + d="m 392.68965,613.56115 0,-23.26755 0.60617,0 0.63043,0 0,23.26755 -0.63043,0 -0.60617,0 z" /> 21.1361 + <path 21.1362 + inkscape:connector-curvature="0" 21.1363 + id="444" 21.1364 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1365 + d="m 410.53543,612.6384 0,-2.24352 -1.84277,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.84277,0 0,-1.86358 0.58192,0 0,4.64989 -0.58192,0 z" /> 21.1366 + <path 21.1367 + inkscape:connector-curvature="0" 21.1368 + id="445" 21.1369 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1370 + d="m 413.71178,612.25845 0,0 0,0 c -0.24247,0.28949 -0.58192,0.45232 -1.01837,0.45232 l 0,0 0,0 c -0.24247,0 -0.4607,-0.10858 -0.65467,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26672,-0.43424 -0.26672,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14549,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.29097,-0.23519 0.63043,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.12123,0 0.24247,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21822,-0.81418 -0.65467,-0.81418 l 0,0 0,0 c -0.3637,0 -0.63042,0.0905 -0.80015,0.30758 l 0,0 -0.24247,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.19397,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.46069,0 0.7759,0.10858 0.96988,0.34378 l 0,0 0,0 c 0.21822,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.097,0.48851 0.24247,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21823,0 -0.38795,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.16973,-0.19902 -0.21822,-0.34376 z m -0.0727,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29097,-0.0723 -0.3637,-0.0723 l 0,0 0,0 c -0.26673,0 -0.50919,0.0904 -0.67892,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.58193,0.52469 l 0,0 0,0 c 0.26671,0 0.50919,-0.14473 0.72741,-0.43422 l 0,-0.81419 z" /> 21.1371 + <path 21.1372 + inkscape:connector-curvature="0" 21.1373 + id="446" 21.1374 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1375 + d="m 416.74265,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19398,0 -0.3637,0.0905 -0.50918,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21823,0.43423 -0.21823,0.72372 l 0,0 0,1.93594 -0.53344,0 0,-3.40146 0.53344,0 0,0.54277 0,0 0,0 c 0.19398,-0.41615 0.48494,-0.61517 0.89714,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.41219,0.0544 l -0.21822,0.61517 z" /> 21.1376 + <path 21.1377 + inkscape:connector-curvature="0" 21.1378 + id="447" 21.1379 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1380 + d="m 419.33708,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.19398,0.21709 -0.48494,0.30757 -0.84865,0.30757 l 0,0 0,0 c -0.38795,0 -0.70316,-0.14474 -0.94563,-0.45232 l 0,0 0,0 c -0.24247,-0.30758 -0.3637,-0.70562 -0.3637,-1.21223 l 0,0 0,0 c 0,-0.5066 0.14548,-0.94084 0.43644,-1.3027 l 0,0 0,0 c 0.26672,-0.37996 0.60618,-0.56089 0.99413,-0.56089 l 0,0 0,0 c 0.31521,0 0.55768,0.0905 0.72741,0.25331 l 0,0 0,-1.5741 0.55768,0 0,4.79465 -0.55768,0 z m 0,-2.60538 0,0 0,0 c -0.14548,-0.23522 -0.33946,-0.34377 -0.58192,-0.34377 l 0,0 0,0 c -0.29098,0 -0.53344,0.1267 -0.70317,0.36186 l 0,0 0,0 c -0.19398,0.2352 -0.29097,0.54279 -0.29097,0.92274 l 0,0 0,0 c 0,0.81418 0.33946,1.23031 1.01838,1.23031 l 0,0 0,0 c 0.097,0 0.19397,-0.0362 0.31521,-0.0905 l 0,0 0,0 c 0.12124,-0.0723 0.21822,-0.1267 0.24247,-0.19902 l 0,-1.88167 z" /> 21.1381 + <path 21.1382 + inkscape:connector-curvature="0" 21.1383 + id="448" 21.1384 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1385 + d="m 423.5318,612.71077 -0.14548,0 -0.92138,-2.31589 -0.89714,2.31589 -0.14548,0 -1.09112,-3.49194 0.58193,0 0.65467,2.24354 0.8244,-2.24354 0.14548,0 0.84864,2.24354 0.72741,-2.24354 0.53344,0 -1.11537,3.49194 z" /> 21.1386 + <path 21.1387 + inkscape:connector-curvature="0" 21.1388 + id="449" 21.1389 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1390 + d="m 426.82939,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -0.99412,0.45232 l 0,0 0,0 c -0.24247,0 -0.46069,-0.10858 -0.65467,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26672,-0.43424 -0.26672,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.4122,-0.88655 l 0,0 0,0 c 0.29097,-0.23519 0.63042,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.12123,0 0.24247,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21822,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60617,0.0905 -0.7759,0.30758 l 0,0 -0.24247,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.19398,-0.0723 0.36371,-0.10858 0.53344,-0.10858 l 0,0 0,0 c 0.43644,0 0.77589,0.10858 0.96987,0.34378 l 0,0 0,0 c 0.21823,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0728,0.48851 0.21823,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.19398,0 -0.36371,-0.0181 -0.48494,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.19902 -0.24248,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29096,-0.0723 -0.36371,-0.0723 l 0,0 0,0 c -0.26671,0 -0.50918,0.0904 -0.67891,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.58194,0.52469 l 0,0 0,0 c 0.26671,0 0.50918,-0.14473 0.7274,-0.43422 l 0,-0.81419 z" /> 21.1391 + <path 21.1392 + inkscape:connector-curvature="0" 21.1393 + id="450" 21.1394 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1395 + d="m 429.88451,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24247,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19398,0 -0.36371,0.0905 -0.50919,0.28949 l 0,0 0,0 c -0.14548,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.55768,0 0,-3.40146 0.55768,0 0,0.54277 0,0 0,0 c 0.19397,-0.41615 0.48494,-0.61517 0.89714,-0.61517 l 0,0 0,0 c 0.097,0 0.24247,0.0181 0.4122,0.0544 l -0.21823,0.61517 z" /> 21.1396 + <path 21.1397 + inkscape:connector-curvature="0" 21.1398 + id="451" 21.1399 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1400 + d="m 433.13361,611.01003 0,0 -2.25497,0 0,0 0,0 c 0,0.39805 0.097,0.68753 0.29096,0.90466 l 0,0 0,0 c 0.19398,0.18091 0.4122,0.28947 0.67891,0.28947 l 0,0 0,0 c 0.31522,0 0.58194,-0.10857 0.80016,-0.30755 l 0,0 0.24247,0.43421 0,0 0,0 c -0.097,0.0905 -0.21822,0.18093 -0.4122,0.23522 l 0,0 0,0 c -0.21822,0.0904 -0.4607,0.14473 -0.72741,0.14473 l 0,0 0,0 c -0.38795,0 -0.72741,-0.14473 -0.99412,-0.43424 l 0,0 0,0 c -0.31521,-0.32566 -0.46069,-0.7599 -0.46069,-1.28459 l 0,0 0,0 c 0,-0.56088 0.14548,-1.0132 0.46069,-1.37507 l 0,0 0,0 c 0.29096,-0.30757 0.60617,-0.45233 0.99412,-0.45233 l 0,0 0,0 c 0.46069,0 0.80015,0.14476 1.04262,0.41615 l 0,0 0,0 c 0.24248,0.2714 0.36371,0.61517 0.36371,1.04939 l 0,0 0,0 c 0,0.14474 0,0.25332 -0.0243,0.37995 z m -1.35783,-1.32078 0,0 0,0 c -0.24247,0 -0.43645,0.0905 -0.60618,0.25328 l 0,0 0,0 c -0.16973,0.18095 -0.26671,0.37998 -0.26671,0.61517 l 0,0 1.72153,0 0,0 0,0 c 0,-0.23519 -0.0727,-0.43422 -0.21822,-0.59706 l 0,0 0,0 c -0.14548,-0.18093 -0.36371,-0.27139 -0.63042,-0.27139 z" /> 21.1401 + <path 21.1402 + inkscape:connector-curvature="0" 21.1403 + id="452" 21.1404 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1405 + d="m 435.43707,612.31273 0,0 0.26672,-0.48852 0,0 0,0 c 0.19398,0.23522 0.43644,0.34376 0.72741,0.34376 l 0,0 0,0 c 0.53343,0 0.8244,-0.28948 0.8244,-0.86845 l 0,0 0,0 c 0,-0.2533 -0.097,-0.47041 -0.24247,-0.63326 l 0,0 0,0 c -0.16973,-0.16284 -0.36371,-0.25329 -0.63042,-0.25329 l 0,0 -0.0485,0 0,-0.50661 0.0242,0 0,0 0,0 c 0.50918,0 0.75166,-0.23521 0.75166,-0.72371 l 0,0 0,0 c 0,-0.50661 -0.24248,-0.74182 -0.70317,-0.74182 l 0,0 0,0 c -0.24247,0 -0.4607,0.0905 -0.60617,0.2714 l 0,0 -0.24247,-0.43424 0,0 0,0 c 0.16973,-0.25331 0.46069,-0.37995 0.89713,-0.37995 l 0,0 0,0 c 0.36371,0 0.67892,0.10858 0.89714,0.32569 l 0,0 0,0 c 0.24248,0.2171 0.36371,0.4885 0.36371,0.83226 l 0,0 0,0 c 0,0.25331 -0.0728,0.48852 -0.19398,0.70563 l 0,0 0,0 c -0.14548,0.19902 -0.29096,0.32567 -0.46069,0.39805 l 0,0 0,0 c 0.24247,0.0905 0.43644,0.23521 0.58192,0.43423 l 0,0 0,0 c 0.14549,0.21711 0.21823,0.47042 0.21823,0.75991 l 0,0 0,0 c 0,0.43422 -0.12123,0.7599 -0.38796,0.99511 l 0,0 0,0 c -0.24246,0.23519 -0.60617,0.36185 -1.04261,0.36185 l 0,0 0,0 c -0.19397,0 -0.38795,-0.0542 -0.55768,-0.1267 l 0,0 0,0 c -0.19398,-0.0723 -0.33946,-0.16282 -0.43645,-0.27138 z" /> 21.1406 + <path 21.1407 + inkscape:connector-curvature="0" 21.1408 + id="453" 21.1409 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1410 + d="m 393.82925,606.39634 58.33824,0.34376 0,0.43423 0,0.43423 -58.33824,-0.34378 0,-0.43423 0,-0.43421 z" /> 21.1411 + <path 21.1412 + inkscape:connector-curvature="0" 21.1413 + id="457" 21.1414 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1415 + d="m 466.78842,590.2936 0,0 c 0,-0.0904 0.0242,-0.16282 0.0727,-0.2352 0.0485,-0.0723 0.12124,-0.1267 0.21823,-0.16284 0.097,-0.0362 0.19397,-0.0543 0.31521,-0.0543 l 0,0 0,0.45232 -0.60617,0 z" /> 21.1416 + <path 21.1417 + inkscape:connector-curvature="0" 21.1418 + id="458" 21.1419 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1420 + d="m 467.39459,589.84127 59.42935,0 0,0.45233 0,0.47042 -59.42935,0 0,-0.47042 0,-0.45233 z" /> 21.1421 + <path 21.1422 + inkscape:connector-curvature="0" 21.1423 + id="459" 21.1424 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1425 + d="m 526.82394,589.84127 0,0 c 0.12123,0 0.21821,0.0181 0.31521,0.0544 0.097,0.0362 0.16972,0.0905 0.21821,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63041,0 0,-0.45233 z" /> 21.1426 + <path 21.1427 + inkscape:connector-curvature="0" 21.1428 + id="460" 21.1429 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1430 + d="m 527.45435,590.2936 0,23.26755 -0.63041,0 -0.60618,0 0,-23.26755 0.60618,0 0.63041,0 z" /> 21.1431 + <path 21.1432 + inkscape:connector-curvature="0" 21.1433 + id="461" 21.1434 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1435 + d="m 527.45435,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12123,0.1267 -0.21821,0.16285 -0.097,0.0362 -0.19398,0.0723 -0.31521,0.0723 l 0,0 0,-0.47041 0.63041,0 z" /> 21.1436 + <path 21.1437 + inkscape:connector-curvature="0" 21.1438 + id="462" 21.1439 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1440 + d="m 526.82394,614.03156 -59.42935,0 0,-0.47041 0,-0.45234 59.42935,0 0,0.45234 0,0.47041 z" /> 21.1441 + <path 21.1442 + inkscape:connector-curvature="0" 21.1443 + id="463" 21.1444 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1445 + d="m 467.39459,614.03156 0,0 c -0.12124,0 -0.21822,-0.0361 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21823,-0.16285 -0.0485,-0.0723 -0.0727,-0.14473 -0.0727,-0.23519 l 0,0 0.60617,0 0,0.4704 z" /> 21.1446 + <path 21.1447 + inkscape:connector-curvature="0" 21.1448 + id="464" 21.1449 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1450 + d="m 466.78842,613.56115 0,-23.26755 0.60617,0 0.63042,0 0,23.26755 -0.63042,0 -0.60617,0 z" /> 21.1451 + <path 21.1452 + inkscape:connector-curvature="0" 21.1453 + id="465" 21.1454 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1455 + d="m 484.63419,612.6384 0,-2.24352 -1.86702,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.86702,0 0,-1.86358 0.58192,0 0,4.64989 -0.58192,0 z" /> 21.1456 + <path 21.1457 + inkscape:connector-curvature="0" 21.1458 + id="466" 21.1459 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1460 + d="m 487.76205,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -0.96988,0.45232 l 0,0 0,0 c -0.26671,0 -0.46069,-0.10858 -0.65467,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.41219,-0.88655 l 0,0 0,0 c 0.29097,-0.23519 0.63042,-0.34375 1.04263,-0.34375 l 0,0 0,0 c 0.12123,0 0.24247,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21823,-0.81418 -0.65467,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60618,0.0905 -0.77591,0.30758 l 0,0 -0.24246,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24246,-0.18093 0.43644,-0.23522 l 0,0 0,0 c 0.19398,-0.0723 0.36371,-0.10858 0.53344,-0.10858 l 0,0 0,0 c 0.41219,0 0.75165,0.10858 0.94562,0.34378 l 0,0 0,0 c 0.21823,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24248,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21823,0 -0.38796,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.19902 -0.24247,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29097,-0.0723 -0.36371,-0.0723 l 0,0 0,0 c -0.24247,0 -0.48494,0.0904 -0.65466,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26673,0.34378 -0.26673,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.58194,0.52469 l 0,0 0,0 c 0.24246,0 0.48493,-0.14473 0.70316,-0.43422 l 0,-0.81419 z" /> 21.1461 + <path 21.1462 + inkscape:connector-curvature="0" 21.1463 + id="467" 21.1464 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1465 + d="m 490.84141,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24246,-0.14475 -0.3637,-0.14475 l 0,0 0,0 c -0.19397,0 -0.3637,0.0905 -0.53343,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.53344,0 0,-3.40146 0.53344,0 0,0.54277 0,0 0,0 c 0.21822,-0.41615 0.50918,-0.61517 0.89714,-0.61517 l 0,0 0,0 c 0.12123,0 0.24246,0.0181 0.43644,0.0544 l -0.21823,0.61517 z" /> 21.1466 + <path 21.1467 + inkscape:connector-curvature="0" 21.1468 + id="468" 21.1469 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1470 + d="m 493.4116,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.19398,0.21709 -0.4607,0.30757 -0.8244,0.30757 l 0,0 0,0 c -0.38796,0 -0.70316,-0.14474 -0.94563,-0.45232 l 0,0 0,0 c -0.24247,-0.30758 -0.3637,-0.70562 -0.3637,-1.21223 l 0,0 0,0 c 0,-0.5066 0.14548,-0.94084 0.41219,-1.3027 l 0,0 0,0 c 0.29097,-0.37996 0.63043,-0.56089 1.01837,-0.56089 l 0,0 0,0 c 0.31521,0 0.53344,0.0905 0.70317,0.25331 l 0,0 0,-1.5741 0.55768,0 0,4.79465 -0.55768,0 z m 0,-2.60538 0,0 0,0 c -0.14549,-0.23522 -0.31521,-0.34377 -0.55769,-0.34377 l 0,0 0,0 c -0.29096,0 -0.53342,0.1267 -0.7274,0.36186 l 0,0 0,0 c -0.16973,0.2352 -0.26672,0.54279 -0.26672,0.92274 l 0,0 0,0 c 0,0.81418 0.33945,1.23031 1.01837,1.23031 l 0,0 0,0 c 0.097,0 0.19398,-0.0362 0.29097,-0.0905 l 0,0 0,0 c 0.12123,-0.0723 0.19397,-0.1267 0.24247,-0.19902 l 0,-1.88167 z" /> 21.1471 + <path 21.1472 + inkscape:connector-curvature="0" 21.1473 + id="469" 21.1474 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1475 + d="m 497.63057,612.71077 -0.14548,0 -0.92138,-2.31589 -0.89714,2.31589 -0.14549,0 -1.11536,-3.49194 0.58193,0 0.65467,2.24354 0.84864,-2.24354 0.14548,0 0.84865,2.24354 0.70316,-2.24354 0.55768,0 -1.11536,3.49194 z" /> 21.1476 + <path 21.1477 + inkscape:connector-curvature="0" 21.1478 + id="470" 21.1479 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1480 + d="m 500.90391,612.25845 0,0 0,0 c -0.21822,0.28949 -0.55768,0.45232 -1.01837,0.45232 l 0,0 0,0 c -0.24247,0 -0.43644,-0.10858 -0.63042,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.24247,-0.43424 -0.24247,-0.72373 l 0,0 0,0 c 0,-0.34375 0.12124,-0.63324 0.38795,-0.88655 l 0,0 0,0 c 0.29096,-0.23519 0.63042,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.12123,0 0.24246,0.0181 0.38795,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21822,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60617,0.0905 -0.80015,0.30758 l 0,0 -0.21822,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24247,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.43644,0 0.7759,0.10858 0.96988,0.34378 l 0,0 0,0 c 0.21822,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24247,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21822,0 -0.38795,-0.0181 -0.50918,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.19902 -0.24248,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29097,-0.0723 -0.3637,-0.0723 l 0,0 0,0 c -0.26672,0 -0.50919,0.0904 -0.67892,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.58193,0.52469 l 0,0 0,0 c 0.26671,0 0.50919,-0.14473 0.72741,-0.43422 l 0,-0.81419 z" /> 21.1481 + <path 21.1482 + inkscape:connector-curvature="0" 21.1483 + id="471" 21.1484 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1485 + d="m 503.98328,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24247,-0.14475 -0.36371,-0.14475 l 0,0 0,0 c -0.19397,0 -0.38795,0.0905 -0.53343,0.28949 l 0,0 0,0 c -0.14548,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.53343,0 0,-3.40146 0.53343,0 0,0.54277 0,0 0,0 c 0.21822,-0.41615 0.50919,-0.61517 0.89713,-0.61517 l 0,0 0,0 c 0.12124,0 0.24248,0.0181 0.43645,0.0544 l -0.21822,0.61517 z" /> 21.1486 + <path 21.1487 + inkscape:connector-curvature="0" 21.1488 + id="472" 21.1489 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1490 + d="m 507.18388,611.01003 0,0 -2.20648,0 0,0 0,0 c 0,0.39805 0.0727,0.68753 0.26673,0.90466 l 0,0 0,0 c 0.16972,0.18091 0.41219,0.28947 0.67891,0.28947 l 0,0 0,0 c 0.31521,0 0.58192,-0.10857 0.80015,-0.30755 l 0,0 0.21822,0.43421 0,0 0,0 c -0.0727,0.0905 -0.19397,0.18093 -0.38795,0.23522 l 0,0 0,0 c -0.21823,0.0904 -0.46069,0.14473 -0.72741,0.14473 l 0,0 0,0 c -0.38796,0 -0.72741,-0.14473 -0.96988,-0.43424 l 0,0 0,0 c -0.31521,-0.32566 -0.46069,-0.7599 -0.46069,-1.28459 l 0,0 0,0 c 0,-0.56088 0.14548,-1.0132 0.46069,-1.37507 l 0,0 0,0 c 0.26671,-0.30757 0.58192,-0.45233 0.96988,-0.45233 l 0,0 0,0 c 0.43645,0 0.80015,0.14476 1.04262,0.41615 l 0,0 0,0 c 0.24247,0.2714 0.36371,0.61517 0.36371,1.04939 l 0,0 0,0 c 0,0.14474 0,0.25332 -0.0485,0.37995 z m -1.33358,-1.32078 0,0 0,0 c -0.24248,0 -0.46069,0.0905 -0.60617,0.25328 l 0,0 0,0 c -0.16973,0.18095 -0.24248,0.37998 -0.26673,0.61517 l 0,0 1.72154,0 0,0 0,0 c 0,-0.23519 -0.0727,-0.43422 -0.21822,-0.59706 l 0,0 0,0 c -0.14549,-0.18093 -0.36371,-0.27139 -0.63042,-0.27139 z" /> 21.1491 + <path 21.1492 + inkscape:connector-curvature="0" 21.1493 + id="473" 21.1494 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1495 + d="m 511.76656,611.37189 0,1.26651 -0.55769,0 0,-1.26651 -1.9155,0 0,-0.36186 2.25496,-3.05771 0.21823,0 0,2.93108 0.4122,0 0,0.48849 -0.4122,0 z m -0.55769,-2.15306 -1.23659,1.66457 1.23659,0 0,-1.66457 z" /> 21.1496 + <path 21.1497 + inkscape:connector-curvature="0" 21.1498 + id="474" 21.1499 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1500 + d="m 467.92802,606.39634 58.33823,0.34376 0,0.43423 0,0.43423 -58.33823,-0.34378 0,-0.43423 0,-0.43421 z" /> 21.1501 + <path 21.1502 + inkscape:connector-curvature="0" 21.1503 + id="478" 21.1504 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1505 + d="m 540.88718,590.2936 0,0 c 0,-0.0904 0,-0.16282 0.0485,-0.2352 0.0485,-0.0723 0.12123,-0.1267 0.21821,-0.16284 0.097,-0.0362 0.19398,-0.0543 0.31521,-0.0543 l 0,0 0,0.45232 -0.58192,0 z" /> 21.1506 + <path 21.1507 + inkscape:connector-curvature="0" 21.1508 + id="479" 21.1509 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1510 + d="m 541.4691,589.84127 59.42935,0 0,0.45233 0,0.47042 -59.42935,0 0,-0.47042 0,-0.45233 z" /> 21.1511 + <path 21.1512 + inkscape:connector-curvature="0" 21.1513 + id="480" 21.1514 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1515 + d="m 600.89845,589.84127 0,0 c 0.12124,0 0.21822,0.0181 0.31521,0.0544 0.097,0.0362 0.16973,0.0905 0.21823,0.16284 0.0485,0.0723 0.097,0.14474 0.097,0.2352 l 0,0 0,0 -0.63042,0 0,-0.45233 z" /> 21.1516 + <path 21.1517 + inkscape:connector-curvature="0" 21.1518 + id="481" 21.1519 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1520 + d="m 601.52887,590.2936 0,23.26755 -0.63042,0 -0.58193,0 0,-23.26755 0.58193,0 0.63042,0 z" /> 21.1521 + <path 21.1522 + inkscape:connector-curvature="0" 21.1523 + id="482" 21.1524 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1525 + d="m 601.52887,613.56115 0,0 c 0,0.0905 -0.0485,0.16282 -0.097,0.23519 -0.0485,0.0723 -0.12124,0.1267 -0.21823,0.16285 -0.097,0.0362 -0.19397,0.0723 -0.31521,0.0723 l 0,0 0,-0.47041 0.63042,0 z" /> 21.1526 + <path 21.1527 + inkscape:connector-curvature="0" 21.1528 + id="483" 21.1529 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1530 + d="m 600.89845,614.03156 -59.42935,0 0,-0.47041 0,-0.45234 59.42935,0 0,0.45234 0,0.47041 z" /> 21.1531 + <path 21.1532 + inkscape:connector-curvature="0" 21.1533 + id="484" 21.1534 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1535 + d="m 541.4691,614.03156 0,0 c -0.12123,0 -0.21821,-0.0361 -0.31521,-0.0723 -0.097,-0.0362 -0.16973,-0.0905 -0.21821,-0.16285 -0.0485,-0.0723 -0.0485,-0.14473 -0.0485,-0.23519 l 0,0 0.58192,0 0,0.4704 z" /> 21.1536 + <path 21.1537 + inkscape:connector-curvature="0" 21.1538 + id="485" 21.1539 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1540 + d="m 540.88718,613.56115 0,-23.26755 0.58192,0 0.63043,0 0,23.26755 -0.63043,0 -0.58192,0 z" /> 21.1541 + <path 21.1542 + inkscape:connector-curvature="0" 21.1543 + id="486" 21.1544 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1545 + d="m 558.73296,612.6384 0,-2.24352 -1.86702,0 0,2.24352 -0.58193,0 0,-4.64989 0.58193,0 0,1.86358 1.86702,0 0,-1.86358 0.55768,0 0,4.64989 -0.55768,0 z" /> 21.1546 + <path 21.1547 + inkscape:connector-curvature="0" 21.1548 + id="487" 21.1549 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1550 + d="m 561.86081,612.25845 0,0 0,0 c -0.21821,0.28949 -0.55767,0.45232 -1.01837,0.45232 l 0,0 0,0 c -0.24247,0 -0.43644,-0.10858 -0.63042,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26671,-0.43424 -0.26671,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.41219,-0.88655 l 0,0 0,0 c 0.29097,-0.23519 0.63043,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.12123,0 0.24247,0.0181 0.38796,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21823,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33946,0 -0.60618,0.0905 -0.80016,0.30758 l 0,0 -0.21821,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24246,-0.18093 0.43644,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.3637,-0.10858 0.53343,-0.10858 l 0,0 0,0 c 0.43644,0 0.7759,0.10858 0.96988,0.34378 l 0,0 0,0 c 0.21822,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0727,0.48851 0.24247,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21822,0 -0.38795,-0.0181 -0.50918,-0.0905 l 0,0 0,0 c -0.097,-0.0723 -0.19398,-0.19902 -0.24248,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29098,-0.0723 -0.36371,-0.0723 l 0,0 0,0 c -0.29096,0 -0.50919,0.0904 -0.67892,0.2352 l 0,0 0,0 c -0.16973,0.16284 -0.26672,0.34378 -0.26672,0.56088 l 0,0 0,0 c 0,0.36187 0.19398,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29096,0 0.53344,-0.14473 0.75167,-0.43422 l 0,-0.81419 z" /> 21.1551 + <path 21.1552 + inkscape:connector-curvature="0" 21.1553 + id="488" 21.1554 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1555 + d="m 564.89169,609.834 0,0 0,0 c -0.097,-0.0905 -0.19398,-0.14475 -0.31522,-0.14475 l 0,0 0,0 c -0.21821,0 -0.38794,0.0905 -0.53342,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21823,0.43423 -0.21823,0.72372 l 0,0 0,1.93594 -0.53343,0 0,-3.40146 0.53343,0 0,0.54277 0,0 0,0 c 0.21823,-0.41615 0.50919,-0.61517 0.89714,-0.61517 l 0,0 0,0 c 0.0727,0 0.21822,0.0181 0.4122,0.0544 l -0.24247,0.61517 z" /> 21.1556 + <path 21.1557 + inkscape:connector-curvature="0" 21.1558 + id="489" 21.1559 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1560 + d="m 567.51036,612.6384 0,0 0,-0.25329 0,0 0,0 c -0.19398,0.21709 -0.48494,0.30757 -0.84864,0.30757 l 0,0 0,0 c -0.38796,0 -0.70317,-0.14474 -0.94563,-0.45232 l 0,0 0,0 c -0.24248,-0.30758 -0.36371,-0.70562 -0.36371,-1.21223 l 0,0 0,0 c 0,-0.5066 0.14548,-0.94084 0.4122,-1.3027 l 0,0 0,0 c 0.29096,-0.37996 0.60617,-0.56089 0.99413,-0.56089 l 0,0 0,0 c 0.33946,0 0.58192,0.0905 0.75165,0.25331 l 0,0 0,-1.5741 0.53344,0 0,4.79465 -0.53344,0 z m 0,-2.60538 0,0 0,0 c -0.14548,-0.23522 -0.33946,-0.34377 -0.58192,-0.34377 l 0,0 0,0 c -0.29097,0 -0.53344,0.1267 -0.72741,0.36186 l 0,0 0,0 c -0.16973,0.2352 -0.26673,0.54279 -0.26673,0.92274 l 0,0 0,0 c 0,0.81418 0.33946,1.23031 1.01838,1.23031 l 0,0 0,0 c 0.097,0 0.19397,-0.0362 0.31522,-0.0905 l 0,0 0,0 c 0.12123,-0.0723 0.19396,-0.1267 0.24246,-0.19902 l 0,-1.88167 z" /> 21.1561 + <path 21.1562 + inkscape:connector-curvature="0" 21.1563 + id="490" 21.1564 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1565 + d="m 571.70508,612.71077 -0.14548,0 -0.89713,-2.31589 -0.92139,2.31589 -0.14548,0 -1.11536,-3.49194 0.60618,0 0.65466,2.24354 0.8244,-2.24354 0.14548,0 0.84864,2.24354 0.70317,-2.24354 0.55768,0 -1.11537,3.49194 z" /> 21.1566 + <path 21.1567 + inkscape:connector-curvature="0" 21.1568 + id="491" 21.1569 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1570 + d="m 575.00268,612.25845 0,0 0,0 c -0.21823,0.28949 -0.55769,0.45232 -1.01838,0.45232 l 0,0 0,0 c -0.24247,0 -0.43644,-0.10858 -0.63041,-0.28948 l 0,0 0,0 c -0.16973,-0.19903 -0.26673,-0.43424 -0.26673,-0.72373 l 0,0 0,0 c 0,-0.34375 0.14548,-0.63324 0.41221,-0.88655 l 0,0 0,0 c 0.29096,-0.23519 0.63042,-0.34375 1.06687,-0.34375 l 0,0 0,0 c 0.097,0 0.24246,0.0181 0.38794,0.0723 l 0,0 0,0 c 0,-0.5428 -0.21821,-0.81418 -0.67892,-0.81418 l 0,0 0,0 c -0.33945,0 -0.60617,0.0905 -0.80014,0.30758 l 0,0 -0.21823,-0.52469 0,0 0,0 c 0.097,-0.0905 0.24248,-0.18093 0.43645,-0.23522 l 0,0 0,0 c 0.16973,-0.0723 0.36371,-0.10858 0.53344,-0.10858 l 0,0 0,0 c 0.43644,0 0.7759,0.10858 0.96987,0.34378 l 0,0 0,0 c 0.21823,0.23522 0.31521,0.59706 0.31521,1.08558 l 0,0 0,1.21222 0,0 0,0 c 0,0.28948 0.0728,0.48851 0.24248,0.59706 l 0,0 0,0.28949 0,0 0,0 c -0.21823,0 -0.38796,-0.0181 -0.50919,-0.0905 l 0,0 0,0 c -0.12124,-0.0723 -0.19398,-0.19902 -0.24247,-0.34376 z m -0.0485,-1.2846 0,0 0,0 c -0.16973,-0.0362 -0.29096,-0.0723 -0.3637,-0.0723 l 0,0 0,0 c -0.29097,0 -0.50919,0.0904 -0.67892,0.2352 l 0,0 0,0 c -0.19397,0.16284 -0.26671,0.34378 -0.26671,0.56088 l 0,0 0,0 c 0,0.36187 0.19397,0.52469 0.55768,0.52469 l 0,0 0,0 c 0.29096,0 0.53344,-0.14473 0.75165,-0.43422 l 0,-0.81419 z" /> 21.1571 + <path 21.1572 + inkscape:connector-curvature="0" 21.1573 + id="492" 21.1574 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1575 + d="m 578.03355,609.834 0,0 0,0 c -0.12123,-0.0905 -0.24247,-0.14475 -0.36371,-0.14475 l 0,0 0,0 c -0.19397,0 -0.3637,0.0905 -0.50918,0.28949 l 0,0 0,0 c -0.14549,0.19901 -0.21822,0.43423 -0.21822,0.72372 l 0,0 0,1.93594 -0.53344,0 0,-3.40146 0.53344,0 0,0.54277 0,0 0,0 c 0.21822,-0.41615 0.50919,-0.61517 0.89713,-0.61517 l 0,0 0,0 c 0.097,0 0.24248,0.0181 0.43645,0.0544 l -0.24247,0.61517 z" /> 21.1576 + <path 21.1577 + inkscape:connector-curvature="0" 21.1578 + id="493" 21.1579 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1580 + d="m 581.28264,611.01003 0,0 -2.23072,0 0,0 0,0 c 0,0.39805 0.097,0.68753 0.29097,0.90466 l 0,0 0,0 c 0.16973,0.18091 0.41219,0.28947 0.67892,0.28947 l 0,0 0,0 c 0.31521,0 0.58192,-0.10857 0.80014,-0.30755 l 0,0 0.21823,0.43421 0,0 0,0 c -0.0727,0.0905 -0.21823,0.18093 -0.38795,0.23522 l 0,0 0,0 c -0.21823,0.0904 -0.46069,0.14473 -0.72742,0.14473 l 0,0 0,0 c -0.38795,0 -0.72741,-0.14473 -0.99412,-0.43424 l 0,0 0,0 c -0.31521,-0.32566 -0.46069,-0.7599 -0.46069,-1.28459 l 0,0 0,0 c 0,-0.56088 0.14548,-1.0132 0.46069,-1.37507 l 0,0 0,0 c 0.29096,-0.30757 0.60617,-0.45233 0.99412,-0.45233 l 0,0 0,0 c 0.43645,0 0.80015,0.14476 1.04262,0.41615 l 0,0 0,0 c 0.24248,0.2714 0.36371,0.61517 0.36371,1.04939 l 0,0 0,0 c 0,0.14474 -0.0243,0.25332 -0.0485,0.37995 z m -1.33358,-1.32078 0,0 0,0 c -0.24247,0 -0.46069,0.0905 -0.63042,0.25328 l 0,0 0,0 c -0.14548,0.18095 -0.24247,0.37998 -0.26672,0.61517 l 0,0 1.72154,0 0,0 0,0 c 0,-0.23519 -0.0485,-0.43422 -0.19398,-0.59706 l 0,0 0,0 c -0.16973,-0.18093 -0.3637,-0.27139 -0.63042,-0.27139 z" /> 21.1581 + <path 21.1582 + inkscape:connector-curvature="0" 21.1583 + id="494" 21.1584 + style="fill:#280b0b;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1585 + d="m 583.94981,610.37677 0,0 -0.19397,-0.14473 0,-2.27972 2.13373,0 0,0.5428 -1.57605,0 0,1.13986 0,0 0,0 c 0.14548,-0.1267 0.3152,-0.18095 0.55768,-0.18095 l 0,0 0,0 c 0.38795,0 0.67891,0.1267 0.89714,0.39806 l 0,0 0,0 c 0.21822,0.27139 0.31521,0.63324 0.31521,1.10368 l 0,0 0,0 c 0,1.15794 -0.48494,1.755 -1.43058,1.755 l 0,0 0,0 c -0.38794,0 -0.7274,-0.1267 -0.99412,-0.36185 l 0,0 0.21822,-0.5428 0,0 0,0 c 0.26672,0.23522 0.53344,0.36185 0.7759,0.36185 l 0,0 0,0 c 0.53344,0 0.8244,-0.37994 0.8244,-1.12175 l 0,0 0,0 c 0,-0.68754 -0.26671,-1.03129 -0.8244,-1.03129 l 0,0 0,0 c -0.24246,0 -0.48494,0.10857 -0.70316,0.36184 z" /> 21.1586 + <path 21.1587 + inkscape:connector-curvature="0" 21.1588 + id="495" 21.1589 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1590 + d="m 542.00254,606.39634 58.36248,0.34376 0,0.43423 0,0.43423 -58.36248,-0.34378 0,-0.43423 0,-0.43421 z" /> 21.1591 + <path 21.1592 + inkscape:connector-curvature="0" 21.1593 + id="496" 21.1594 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1595 + d="m 210.57059,404.08095 0,0 1.79428,-0.14474 0,0 0,0 c 0.0485,0.66944 0.24247,1.23033 0.55768,1.66455 l 0,0 0,0 c 0.31522,0.43424 0.7759,0.77801 1.43057,1.04939 l 0,0 0,0 c 0.65468,0.2714 1.38208,0.39804 2.20649,0.39804 l 0,0 0,0 c 0.7274,0 1.35783,-0.10857 1.89125,-0.30757 l 0,0 0,0 c 0.53343,-0.19902 0.94564,-0.47042 1.21234,-0.83227 l 0,0 0,0 c 0.29097,-0.34377 0.41222,-0.74181 0.41222,-1.15796 l 0,0 0,0 c 0,-0.41613 -0.12123,-0.77799 -0.38797,-1.10366 l 0,0 0,0 c -0.2667,-0.30758 -0.67891,-0.57898 -1.28508,-0.7961 l 0,0 0,0 c -0.3637,-0.14474 -1.21234,-0.36185 -2.52167,-0.65135 l 0,0 0,0 c -1.30935,-0.30756 -2.23073,-0.57896 -2.76416,-0.85036 l 0,0 0,0 c -0.67892,-0.32567 -1.16387,-0.74181 -1.50332,-1.24842 l 0,0 0,0 c -0.33946,-0.5066 -0.48494,-1.04939 -0.48494,-1.66455 l 0,0 0,0 c 0,-0.66943 0.19398,-1.32078 0.60618,-1.89976 l 0,0 0,0 c 0.41218,-0.59706 0.96988,-1.04939 1.77001,-1.35696 l 0,0 0,0 c 0.77591,-0.30758 1.64881,-0.45233 2.61869,-0.45233 l 0,0 0,0 c 1.06687,0 1.98825,0.16284 2.7884,0.48851 l 0,0 0,0 c 0.80014,0.30759 1.43058,0.79608 1.86702,1.41125 l 0,0 0,0 c 0.43644,0.63326 0.65467,1.33888 0.70317,2.11687 l 0,0 -1.81855,0.14475 0,0 0,0 c -0.097,-0.85037 -0.43643,-1.50172 -0.99411,-1.93594 l 0,0 0,0 c -0.53343,-0.43424 -1.35783,-0.65135 -2.47319,-0.65135 l 0,0 0,0 c -1.13962,0 -1.96402,0.19902 -2.49745,0.59707 l 0,0 0,0 c -0.50918,0.37995 -0.7759,0.86846 -0.7759,1.42934 l 0,0 0,0 c 0,0.47042 0.16974,0.86846 0.55769,1.17604 l 0,0 0,0 c 0.3637,0.30757 1.30933,0.63325 2.83689,0.95892 l 0,0 0,0 c 1.55181,0.32568 2.57018,0.61517 3.15211,0.85037 l 0,0 0,0 c 0.8244,0.36186 1.43058,0.83228 1.84276,1.37507 l 0,0 0,0 c 0.38797,0.56087 0.58193,1.19413 0.58193,1.91785 l 0,0 0,0 c 0,0.72373 -0.21821,1.39315 -0.65466,2.02641 l 0,0 0,0 c -0.43644,0.63326 -1.04262,1.13986 -1.86701,1.48363 l 0,0 0,0 c -0.8244,0.36186 -1.72155,0.52469 -2.73991,0.52469 l 0,0 0,0 c -1.2851,0 -2.37622,-0.16283 -3.2491,-0.52469 l 0,0 0,0 c -0.87289,-0.36186 -1.52756,-0.88655 -2.03676,-1.61028 l 0,0 0,0 c -0.48493,-0.70563 -0.75165,-1.5198 -0.7759,-2.42446 z" /> 21.1596 + <path 21.1597 + inkscape:connector-curvature="0" 21.1598 + id="497" 21.1599 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1600 + d="m 223.63973,403.53817 0,0 0,0 c 0,-1.80929 0.53343,-3.14817 1.57604,-4.01663 l 0,0 0,0 c 0.87289,-0.70563 1.96402,-1.06749 3.2491,-1.06749 l 0,0 0,0 c 1.43058,0 2.57017,0.43423 3.46732,1.30269 l 0,0 0,0 c 0.89713,0.86846 1.35783,2.08069 1.35783,3.63668 l 0,0 0,0 c 0,1.26652 -0.19398,2.24353 -0.60618,2.96725 l 0,0 0,0 c -0.38795,0.72372 -0.96988,1.2846 -1.74578,1.68264 l 0,0 0,0 c -0.72741,0.39805 -1.57606,0.59707 -2.47319,0.59707 l 0,0 0,0 c -1.45482,0 -2.61868,-0.43423 -3.51581,-1.32079 l 0,0 0,0 c -0.8729,-0.86846 -1.30933,-2.13496 -1.30933,-3.78142 z m 1.77001,0 0,0 0,0 c 0,1.24841 0.29098,2.18925 0.8729,2.8044 l 0,0 0,0 c 0.58193,0.61517 1.30934,0.94084 2.18223,0.94084 l 0,0 0,0 c 0.87289,0 1.60029,-0.32567 2.15797,-0.94084 l 0,0 0,0 c 0.55769,-0.63324 0.84865,-1.57409 0.84865,-2.85868 l 0,0 0,0 c 0,-1.21223 -0.29096,-2.13497 -0.87288,-2.75013 l 0,0 0,0 c -0.5577,-0.61516 -1.26085,-0.94084 -2.13374,-0.94084 l 0,0 0,0 c -0.87289,0 -1.6003,0.32568 -2.18223,0.94084 l 0,0 0,0 c -0.58192,0.61516 -0.8729,1.556 -0.8729,2.80441 z" /> 21.1601 + <path 21.1602 + inkscape:connector-curvature="0" 21.1603 + id="498" 21.1604 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1605 + d="m 235.7632,408.42327 0,0 0,-8.4856 -1.5518,0 0,-1.2665 1.5518,0 0,-1.04939 0,0 0,0 c 0,-0.65135 0.0727,-1.13987 0.19398,-1.44745 l 0,0 0,0 c 0.16973,-0.43422 0.43645,-0.77799 0.8729,-1.04939 l 0,0 0,0 c 0.4122,-0.27138 1.01836,-0.39804 1.79428,-0.39804 l 0,0 0,0 c 0.48493,0 1.01836,0.0542 1.62454,0.16284 l 0,0 -0.26671,1.44743 0,0 0,0 c -0.36372,-0.0723 -0.70317,-0.0905 -1.01838,-0.0905 l 0,0 0,0 c -0.53343,0 -0.92138,0.10858 -1.13962,0.32568 l 0,0 0,0 c -0.21821,0.19902 -0.33945,0.61515 -0.33945,1.19413 l 0,0 0,0.90465 2.03675,0 0,1.2665 -2.03675,0 0,8.4856 -1.72154,0 z" /> 21.1606 + <path 21.1607 + inkscape:connector-curvature="0" 21.1608 + id="499" 21.1609 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1610 + d="m 244.68609,406.93964 0,0 0.24249,1.46553 0,0 0,0 c -0.48495,0.0904 -0.94565,0.14474 -1.3336,0.14474 l 0,0 0,0 c -0.63042,0 -1.11536,-0.0905 -1.45481,-0.28948 l 0,0 0,0 c -0.33947,-0.18094 -0.58194,-0.43423 -0.72742,-0.74182 l 0,0 0,0 c -0.14548,-0.32567 -0.21823,-0.97701 -0.21823,-1.95403 l 0,0 0,-5.62691 -1.28508,0 0,-1.2665 1.28508,0 0,-2.42446 1.72154,-0.99511 0,3.41957 1.77003,0 0,1.2665 -1.77003,0 0,5.71737 0,0 0,0 c 0,0.47042 0.0243,0.778 0.097,0.90466 l 0,0 0,0 c 0.0485,0.12669 0.14547,0.2352 0.29095,0.32567 l 0,0 0,0 c 0.14549,0.0723 0.33947,0.10858 0.60618,0.10858 l 0,0 0,0 c 0.19397,0 0.43645,-0.0181 0.7759,-0.0542 z" /> 21.1611 + <path 21.1612 + inkscape:connector-curvature="0" 21.1613 + id="500" 21.1614 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1615 + d="m 248.2504,408.42327 0,0 -3.12786,-9.7521 1.79428,0 1.62455,5.6088 0.60618,2.0988 0,0 0,0 c 0.0242,-0.0905 0.21821,-0.77801 0.53343,-2.00833 l 0,0 1.6488,-5.69927 1.81851,0 1.52756,5.645 0.50918,1.86356 0.58194,-1.88165 1.79427,-5.62691 1.69728,0 -3.22484,9.7521 -1.81853,0 -1.64878,-5.86213 -0.38796,-1.66454 -2.10948,7.52667 -1.81853,0 z" /> 21.1616 + <path 21.1617 + inkscape:connector-curvature="0" 21.1618 + id="501" 21.1619 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1620 + d="m 267.454,407.21103 0,0 0,0 c -0.65466,0.5247 -1.28508,0.88657 -1.84276,1.10368 l 0,0 0,0 c -0.60618,0.21711 -1.26085,0.32567 -1.93976,0.32567 l 0,0 0,0 c -1.13961,0 -2.0125,-0.2714 -2.64293,-0.79609 l 0,0 0,0 c -0.60616,-0.5247 -0.87288,-1.19414 -0.87288,-2.00832 l 0,0 0,0 c 0,-0.47041 0.0727,-0.90465 0.3152,-1.30269 l 0,0 0,0 c 0.21823,-0.39804 0.53345,-0.70562 0.89715,-0.95893 l 0,0 0,0 c 0.38795,-0.2352 0.80015,-0.41613 1.26083,-0.54279 l 0,0 0,0 c 0.36371,-0.0723 0.8729,-0.16283 1.57606,-0.2352 l 0,0 0,0 c 1.40633,-0.16284 2.4247,-0.36186 3.10361,-0.57898 l 0,0 0,0 c 0,-0.21712 0,-0.36186 0,-0.43423 l 0,0 0,0 c 0,-0.66944 -0.16972,-1.13986 -0.48493,-1.42934 l 0,0 0,0 c -0.4607,-0.36185 -1.09112,-0.56089 -1.98826,-0.56089 l 0,0 0,0 c -0.8244,0 -1.43057,0.14475 -1.81852,0.41615 l 0,0 0,0 c -0.38796,0.27138 -0.67891,0.7599 -0.87289,1.44743 l 0,0 -1.72153,-0.21711 0,0 0,0 c 0.16971,-0.68754 0.4122,-1.24841 0.7759,-1.68265 l 0,0 0,0 c 0.36371,-0.39804 0.87289,-0.74181 1.55181,-0.95892 l 0,0 0,0 c 0.67891,-0.23522 1.45481,-0.34377 2.35196,-0.34377 l 0,0 0,0 c 0.87288,0 1.57605,0.0905 2.13373,0.28948 l 0,0 0,0 c 0.53343,0.19904 0.94563,0.43424 1.21234,0.72372 l 0,0 0,0 c 0.26672,0.28949 0.43645,0.66944 0.55769,1.12177 l 0,0 0,0 c 0.0485,0.28949 0.0727,0.79609 0.0727,1.5379 l 0,0 0,2.18925 0,0 0,0 c 0,1.55599 0.0485,2.51491 0.12125,2.93106 l 0,0 0,0 c 0.0727,0.39804 0.21822,0.79608 0.43643,1.17604 l 0,0 -1.84276,0 0,0 0,0 c -0.16973,-0.34378 -0.29097,-0.75991 -0.33947,-1.21224 z m -0.14548,-3.69096 0,0 0,0 c -0.63041,0.23521 -1.57605,0.45233 -2.83689,0.61517 l 0,0 0,0 c -0.7274,0.10858 -1.2366,0.21711 -1.52757,0.34377 l 0,0 0,0 c -0.31521,0.10857 -0.53343,0.28947 -0.70314,0.52469 l 0,0 0,0 c -0.16974,0.23521 -0.24249,0.50661 -0.24249,0.79608 l 0,0 0,0 c 0,0.43424 0.16974,0.81419 0.53344,1.10368 l 0,0 0,0 c 0.33946,0.28948 0.87289,0.43423 1.55181,0.43423 l 0,0 0,0 c 0.67891,0 1.28508,-0.14475 1.79428,-0.41614 l 0,0 0,0 c 0.50918,-0.2714 0.89713,-0.65135 1.13961,-1.13986 l 0,0 0,0 c 0.19397,-0.37995 0.29095,-0.92273 0.29095,-1.66455 l 0,-0.59707 z" /> 21.1621 + <path 21.1622 + inkscape:connector-curvature="0" 21.1623 + id="502" 21.1624 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1625 + d="m 271.79421,408.42327 0,0 0,-9.7521 1.55181,0 0,1.46552 0,0 0,0 c 0.4122,-0.70563 0.77592,-1.13985 1.11537,-1.35696 l 0,0 0,0 c 0.33946,-0.21713 0.72739,-0.32568 1.13961,-0.32568 l 0,0 0,0 c 0.58192,0 1.1881,0.18093 1.79426,0.5247 l 0,0 -0.60616,1.5198 0,0 0,0 c -0.43645,-0.23521 -0.84865,-0.36186 -1.2851,-0.36186 l 0,0 0,0 c -0.38795,0 -0.7274,0.10857 -1.04261,0.32567 l 0,0 0,0 c -0.29097,0.21713 -0.50919,0.5247 -0.65467,0.90465 l 0,0 0,0 c -0.19398,0.59707 -0.29096,1.23033 -0.29096,1.93595 l 0,0 0,5.12031 -1.72155,0 z" /> 21.1626 + <path 21.1627 + inkscape:connector-curvature="0" 21.1628 + id="503" 21.1629 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1630 + d="m 285.46951,405.27509 0,0 1.81853,0.21711 0,0 0,0 c -0.29097,0.99512 -0.8244,1.77312 -1.57605,2.31591 l 0,0 0,0 c -0.77591,0.56087 -1.72154,0.83227 -2.93389,0.83227 l 0,0 0,0 c -1.50331,0 -2.71566,-0.43423 -3.58856,-1.32079 l 0,0 0,0 c -0.89713,-0.88655 -1.30933,-2.11687 -1.30933,-3.70904 l 0,0 0,0 c 0,-1.62838 0.4122,-2.91297 1.30933,-3.81763 l 0,0 0,0 c 0.89715,-0.88655 2.061,-1.33887 3.49156,-1.33887 l 0,0 0,0 c 1.38208,0 2.47321,0.43423 3.34609,1.30269 l 0,0 0,0 c 0.8729,0.90464 1.30935,2.15307 1.30935,3.76333 l 0,0 0,0 c 0,0.0905 0,0.23521 0,0.43423 l 0,0 -7.66205,0 0,0 0,0 c 0.0485,1.06749 0.3637,1.89977 0.94561,2.46065 l 0,0 0,0 c 0.58194,0.57897 1.30935,0.86846 2.18225,0.86846 l 0,0 0,0 c 0.63041,0 1.1881,-0.16284 1.62455,-0.48851 l 0,0 0,0 c 0.41219,-0.30758 0.77589,-0.83228 1.04261,-1.51981 z m -5.69804,-2.67775 0,0 5.72229,0 0,0 0,0 c -0.0727,-0.81419 -0.29097,-1.44745 -0.65467,-1.84549 l 0,0 0,0 c -0.53343,-0.63325 -1.23659,-0.95893 -2.13374,-0.95893 l 0,0 0,0 c -0.80015,0 -1.47906,0.25331 -2.03675,0.75991 l 0,0 0,0 c -0.53343,0.50661 -0.84863,1.19414 -0.89713,2.04451 z" /> 21.1631 + <path 21.1632 + inkscape:connector-curvature="0" 21.1633 + id="504" 21.1634 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1635 + d="m 294.61062,404.08095 0,0 1.74578,-0.14474 0,0 0,0 c 0.097,0.66944 0.29097,1.23033 0.58193,1.66455 l 0,0 0,0 c 0.31522,0.43424 0.80015,0.77801 1.45483,1.04939 l 0,0 0,0 c 0.65467,0.2714 1.38206,0.39804 2.18221,0.39804 l 0,0 0,0 c 0.72742,0 1.35783,-0.10857 1.89128,-0.30757 l 0,0 0,0 c 0.55768,-0.19902 0.96987,-0.47042 1.2366,-0.83227 l 0,0 0,0 c 0.26671,-0.34377 0.41218,-0.74181 0.41218,-1.15796 l 0,0 0,0 c 0,-0.41613 -0.14547,-0.77799 -0.38795,-1.10366 l 0,0 0,0 c -0.26671,-0.30758 -0.70315,-0.57898 -1.28508,-0.7961 l 0,0 0,0 c -0.38796,-0.14474 -1.21235,-0.36185 -2.52169,-0.65135 l 0,0 0,0 c -1.33358,-0.30756 -2.25496,-0.57896 -2.76416,-0.85036 l 0,0 0,0 c -0.67892,-0.32567 -1.16385,-0.74181 -1.5033,-1.24842 l 0,0 0,0 c -0.33946,-0.5066 -0.5092,-1.04939 -0.5092,-1.66455 l 0,0 0,0 c 0,-0.66943 0.21824,-1.32078 0.60618,-1.89976 l 0,0 0,0 c 0.38795,-0.59706 0.99413,-1.04939 1.77003,-1.35696 l 0,0 0,0 c 0.80015,-0.30758 1.67305,-0.45233 2.64291,-0.45233 l 0,0 0,0 c 1.04263,0 1.96402,0.16284 2.76416,0.48851 l 0,0 0,0 c 0.8244,0.30759 1.43058,0.79608 1.86702,1.41125 l 0,0 0,0 c 0.43646,0.63326 0.67891,1.33888 0.70316,2.11687 l 0,0 -1.81851,0.14475 0,0 0,0 c -0.097,-0.85037 -0.4122,-1.50172 -0.96988,-1.93594 l 0,0 0,0 c -0.58193,-0.43424 -1.38208,-0.65135 -2.4732,-0.65135 l 0,0 0,0 c -1.13961,0 -1.98824,0.19902 -2.49744,0.59707 l 0,0 0,0 c -0.53343,0.37995 -0.80015,0.86846 -0.80015,1.42934 l 0,0 0,0 c 0,0.47042 0.19398,0.86846 0.55768,1.17604 l 0,0 0,0 c 0.3637,0.30757 1.30933,0.63325 2.86115,0.95892 l 0,0 0,0 c 1.52756,0.32568 2.57017,0.61517 3.12786,0.85037 l 0,0 0,0 c 0.84864,0.36186 1.45481,0.83228 1.84277,1.37507 l 0,0 0,0 c 0.4122,0.56087 0.60617,1.19413 0.60617,1.91785 l 0,0 0,0 c 0,0.72373 -0.21822,1.39315 -0.65467,2.02641 l 0,0 0,0 c -0.43644,0.63326 -1.06686,1.13986 -1.86702,1.48363 l 0,0 0,0 c -0.82439,0.36186 -1.72153,0.52469 -2.7399,0.52469 l 0,0 0,0 c -1.28509,0 -2.37621,-0.16283 -3.24909,-0.52469 l 0,0 0,0 c -0.8729,-0.36186 -1.55181,-0.88655 -2.03675,-1.61028 l 0,0 0,0 c -0.50919,-0.70563 -0.75166,-1.5198 -0.77591,-2.42446 z" /> 21.1636 + <path 21.1637 + inkscape:connector-curvature="0" 21.1638 + id="505" 21.1639 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1640 + d="m 312.11694,406.93964 0,0 0.26672,1.46553 0,0 0,0 c -0.50918,0.0904 -0.94563,0.14474 -1.3336,0.14474 l 0,0 0,0 c -0.63041,0 -1.13959,-0.0905 -1.47906,-0.28948 l 0,0 0,0 c -0.3637,-0.18094 -0.60616,-0.43423 -0.75165,-0.74182 l 0,0 0,0 c -0.14548,-0.32567 -0.21821,-0.97701 -0.21821,-1.95403 l 0,0 0,-5.62691 -1.26085,0 0,-1.2665 1.26085,0 0,-2.42446 1.74577,-0.99511 0,3.41957 1.77003,0 0,1.2665 -1.77003,0 0,5.71737 0,0 0,0 c 0,0.47042 0.0485,0.778 0.097,0.90466 l 0,0 0,0 c 0.0728,0.12669 0.16973,0.2352 0.31521,0.32567 l 0,0 0,0 c 0.12124,0.0723 0.33945,0.10858 0.58194,0.10858 l 0,0 0,0 c 0.19396,0 0.46068,-0.0181 0.77589,-0.0542 z" /> 21.1641 + <path 21.1642 + inkscape:connector-curvature="0" 21.1643 + id="506" 21.1644 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1645 + d="m 320.53064,407.21103 0,0 0,0 c -0.63042,0.5247 -1.2366,0.88657 -1.84278,1.10368 l 0,0 0,0 c -0.60616,0.21711 -1.26083,0.32567 -1.93974,0.32567 l 0,0 0,0 c -1.1396,0 -2.0125,-0.2714 -2.61868,-0.79609 l 0,0 0,0 c -0.58192,-0.5247 -0.89713,-1.19414 -0.89713,-2.00832 l 0,0 0,0 c 0,-0.47041 0.12123,-0.90465 0.33945,-1.30269 l 0,0 0,0 c 0.24246,-0.39804 0.5092,-0.70562 0.89713,-0.95893 l 0,0 0,0 c 0.36371,-0.2352 0.77591,-0.41613 1.26085,-0.54279 l 0,0 0,0 c 0.33946,-0.0723 0.84864,-0.16283 1.55181,-0.2352 l 0,0 0,0 c 1.43056,-0.16284 2.47319,-0.36186 3.10361,-0.57898 l 0,0 0,0 c 0,-0.21712 0.0242,-0.36186 0.0242,-0.43423 l 0,0 0,0 c 0,-0.66944 -0.16974,-1.13986 -0.50919,-1.42934 l 0,0 0,0 c -0.41219,-0.36185 -1.09111,-0.56089 -1.96401,-0.56089 l 0,0 0,0 c -0.82439,0 -1.45481,0.14475 -1.84276,0.41615 l 0,0 0,0 c -0.38795,0.27138 -0.67891,0.7599 -0.8729,1.44743 l 0,0 -1.69728,-0.21711 0,0 0,0 c 0.16972,-0.68754 0.41219,-1.24841 0.75165,-1.68265 l 0,0 0,0 c 0.3637,-0.39804 0.87288,-0.74181 1.55181,-0.95892 l 0,0 0,0 c 0.67892,-0.23522 1.45482,-0.34377 2.35195,-0.34377 l 0,0 0,0 c 0.89715,0 1.60031,0.0905 2.13374,0.28948 l 0,0 0,0 c 0.55769,0.19904 0.96988,0.43424 1.21235,0.72372 l 0,0 0,0 c 0.26672,0.28949 0.46068,0.66944 0.55768,1.12177 l 0,0 0,0 c 0.0485,0.28949 0.0727,0.79609 0.0727,1.5379 l 0,0 0,2.18925 0,0 0,0 c 0,1.55599 0.0485,2.51491 0.12123,2.93106 l 0,0 0,0 c 0.0728,0.39804 0.21823,0.79608 0.43645,1.17604 l 0,0 -1.81853,0 0,0 0,0 c -0.19397,-0.34378 -0.3152,-0.75991 -0.3637,-1.21224 z m -0.14548,-3.69096 0,0 0,0 c -0.60617,0.23521 -1.5518,0.45233 -2.8369,0.61517 l 0,0 0,0 c -0.72741,0.10858 -1.23659,0.21711 -1.52756,0.34377 l 0,0 0,0 c -0.3152,0.10857 -0.53343,0.28947 -0.70316,0.52469 l 0,0 0,0 c -0.14549,0.23521 -0.24247,0.50661 -0.24247,0.79608 l 0,0 0,0 c 0,0.43424 0.19398,0.81419 0.53345,1.10368 l 0,0 0,0 c 0.36368,0.28948 0.87288,0.43423 1.55179,0.43423 l 0,0 0,0 c 0.67892,0 1.2851,-0.14475 1.81853,-0.41614 l 0,0 0,0 c 0.50919,-0.2714 0.89713,-0.65135 1.1396,-1.13986 l 0,0 0,0 c 0.16973,-0.37995 0.26672,-0.92273 0.26672,-1.66455 l 0,-0.59707 z" /> 21.1646 + <path 21.1647 + inkscape:connector-curvature="0" 21.1648 + id="507" 21.1649 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1650 + d="m 331.61151,404.84086 0,0 1.69728,0.21712 0,0 0,0 c -0.19396,1.12175 -0.67891,1.99021 -1.45481,2.62347 l 0,0 0,0 c -0.75167,0.63326 -1.69728,0.95893 -2.83689,0.95893 l 0,0 0,0 c -1.40633,0 -2.54593,-0.43423 -3.39458,-1.32079 l 0,0 0,0 c -0.84865,-0.86846 -1.2851,-2.11687 -1.2851,-3.74524 l 0,0 0,0 c 0,-1.04939 0.19399,-1.97213 0.55769,-2.76822 l 0,0 0,0 c 0.36371,-0.79608 0.92138,-1.39316 1.67304,-1.77311 l 0,0 0,0 c 0.75167,-0.37995 1.57605,-0.57897 2.4732,-0.57897 l 0,0 0,0 c 1.11536,0 2.03674,0.27139 2.73991,0.79609 l 0,0 0,0 c 0.70314,0.52469 1.16384,1.2846 1.35783,2.26161 l 0,0 -1.67305,0.25331 0,0 0,0 c -0.16973,-0.65135 -0.4607,-1.13986 -0.8729,-1.48363 l 0,0 0,0 c -0.41218,-0.32567 -0.89713,-0.48851 -1.50331,-0.48851 l 0,0 0,0 c -0.87288,0 -1.6003,0.28949 -2.13373,0.88657 l 0,0 0,0 c -0.55768,0.61515 -0.84865,1.55599 -0.84865,2.84058 l 0,0 0,0 c 0,1.32079 0.26672,2.26162 0.80015,2.8587 l 0,0 0,0 c 0.53345,0.59706 1.2366,0.90464 2.08525,0.90464 l 0,0 0,0 c 0.70316,0 1.28509,-0.19902 1.74579,-0.59707 l 0,0 0,0 c 0.46068,-0.39804 0.75165,-1.0132 0.87288,-1.84548 z" /> 21.1651 + <path 21.1652 + inkscape:connector-curvature="0" 21.1653 + id="508" 21.1654 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1655 + d="m 334.81212,408.42327 0,-13.46117 1.77001,0 0,7.65333 4.12199,-3.94426 2.27921,0 -3.97649,3.60049 4.36446,6.15161 -2.15798,0 -3.39457,-4.99365 -1.23662,1.12175 0,3.8719 -1.77001,0 z" /> 21.1656 + <path 21.1657 + inkscape:connector-curvature="0" 21.1658 + id="509" 21.1659 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1660 + d="m 350.69388,408.42327 0,0 0,-8.4856 -1.52756,0 0,-1.2665 1.52756,0 0,-1.04939 0,0 0,0 c 0,-0.65135 0.0485,-1.13987 0.16974,-1.44745 l 0,0 0,0 c 0.16973,-0.43422 0.46068,-0.77799 0.89713,-1.04939 l 0,0 0,0 c 0.43645,-0.27138 1.01838,-0.39804 1.79428,-0.39804 l 0,0 0,0 c 0.48493,0 1.04261,0.0542 1.62454,0.16284 l 0,0 -0.24246,1.44743 0,0 0,0 c -0.38795,-0.0723 -0.72742,-0.0905 -1.04264,-0.0905 l 0,0 0,0 c -0.53343,0 -0.92136,0.10858 -1.13959,0.32568 l 0,0 0,0 c -0.21824,0.19902 -0.31522,0.61515 -0.31522,1.19413 l 0,0 0,0.90465 2.01251,0 0,1.2665 -2.01251,0 0,8.4856 -1.74578,0 z" /> 21.1661 + <path 21.1662 + inkscape:connector-curvature="0" 21.1663 + id="510" 21.1664 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1665 + d="m 355.15532,403.53817 0,0 0,0 c 0,-1.80929 0.53345,-3.14817 1.57607,-4.01663 l 0,0 0,0 c 0.87288,-0.70563 1.964,-1.06749 3.24908,-1.06749 l 0,0 0,0 c 1.43058,0 2.54594,0.43423 3.44308,1.30269 l 0,0 0,0 c 0.89714,0.86846 1.35783,2.08069 1.35783,3.63668 l 0,0 0,0 c 0,1.26652 -0.19398,2.24353 -0.60617,2.96725 l 0,0 0,0 c -0.38796,0.72372 -0.96989,1.2846 -1.74579,1.68264 l 0,0 0,0 c -0.72741,0.39805 -1.55181,0.59707 -2.44895,0.59707 l 0,0 0,0 c -1.45481,0 -2.61867,-0.43423 -3.51581,-1.32079 l 0,0 0,0 c -0.87289,-0.86846 -1.30934,-2.13496 -1.30934,-3.78142 z m 1.77003,0 0,0 0,0 c 0,1.24841 0.29097,2.18925 0.8729,2.8044 l 0,0 0,0 c 0.58193,0.61517 1.30934,0.94084 2.18222,0.94084 l 0,0 0,0 c 0.87289,0 1.60031,-0.32567 2.13374,-0.94084 l 0,0 0,0 c 0.58192,-0.63324 0.87289,-1.57409 0.87289,-2.85868 l 0,0 0,0 c 0,-1.21223 -0.29097,-2.13497 -0.87289,-2.75013 l 0,0 0,0 c -0.53343,-0.61516 -1.26085,-0.94084 -2.13374,-0.94084 l 0,0 0,0 c -0.87288,0 -1.60029,0.32568 -2.18222,0.94084 l 0,0 0,0 c -0.58193,0.61516 -0.8729,1.556 -0.8729,2.80441 z" /> 21.1666 + <path 21.1667 + inkscape:connector-curvature="0" 21.1668 + id="511" 21.1669 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1670 + d="m 366.81812,408.42327 0,0 0,-9.7521 1.57606,0 0,1.46552 0,0 0,0 c 0.38795,-0.70563 0.7759,-1.13985 1.11536,-1.35696 l 0,0 0,0 c 0.33945,-0.21713 0.70316,-0.32568 1.11536,-0.32568 l 0,0 0,0 c 0.58192,0 1.1881,0.18093 1.79427,0.5247 l 0,0 -0.58192,1.5198 0,0 0,0 c -0.43645,-0.23521 -0.87289,-0.36186 -1.30934,-0.36186 l 0,0 0,0 c -0.3637,0 -0.7274,0.10857 -1.01837,0.32567 l 0,0 0,0 c -0.31521,0.21713 -0.53344,0.5247 -0.65467,0.90465 l 0,0 0,0 c -0.19398,0.59707 -0.29096,1.23033 -0.29096,1.93595 l 0,0 0,5.12031 -1.74579,0 z" /> 21.1671 + <path 21.1672 + inkscape:connector-curvature="0" 21.1673 + id="512" 21.1674 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1675 + d="m 379.23258,408.42327 0,0 0,-13.46117 5.35858,0 0,0 0,0 c 0.96988,0 1.67304,0.0362 2.15798,0.1267 l 0,0 0,0 c 0.70316,0.10858 1.28509,0.30758 1.77002,0.63326 l 0,0 0,0 c 0.48495,0.30757 0.84865,0.7418 1.13962,1.28459 l 0,0 0,0 c 0.29096,0.56088 0.43644,1.17604 0.43644,1.84549 l 0,0 0,0 c 0,1.12175 -0.38795,2.09878 -1.16385,2.89487 l 0,0 0,0 c -0.7759,0.79608 -2.15798,1.19414 -4.17048,1.19414 l 0,0 -3.6613,0 0,5.48216 -1.86701,0 z m 1.86701,-7.07435 0,0 3.70979,0 0,0 0,0 c 1.1881,0 2.06099,-0.21712 2.57018,-0.65134 l 0,0 0,0 c 0.50919,-0.41615 0.77591,-1.0313 0.77591,-1.79121 l 0,0 0,0 c 0,-0.56088 -0.16973,-1.04939 -0.4607,-1.44743 l 0,0 0,0 c -0.29096,-0.39804 -0.70316,-0.66944 -1.1881,-0.7961 l 0,0 0,0 c -0.31521,-0.0723 -0.92138,-0.10857 -1.74578,-0.10857 l 0,0 -3.6613,0 0,4.79462 z" /> 21.1676 + <path 21.1677 + inkscape:connector-curvature="0" 21.1678 + id="513" 21.1679 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1680 + d="m 399.33332,405.27509 0,0 1.79428,0.21711 0,0 0,0 c -0.29097,0.99512 -0.7759,1.77312 -1.55181,2.31591 l 0,0 0,0 c -0.7759,0.56087 -1.77003,0.83227 -2.95813,0.83227 l 0,0 0,0 c -1.50331,0 -2.71566,-0.43423 -3.58855,-1.32079 l 0,0 0,0 c -0.89714,-0.88655 -1.33358,-2.11687 -1.33358,-3.70904 l 0,0 0,0 c 0,-1.62838 0.43644,-2.91297 1.33358,-3.81763 l 0,0 0,0 c 0.89714,-0.88655 2.06099,-1.33887 3.49156,-1.33887 l 0,0 0,0 c 1.38208,0 2.49744,0.43423 3.37034,1.30269 l 0,0 0,0 c 0.87288,0.90464 1.30933,2.15307 1.30933,3.76333 l 0,0 0,0 c 0,0.0905 0,0.23521 -0.0242,0.43423 l 0,0 -7.66204,0 0,0 0,0 c 0.0485,1.06749 0.38795,1.89977 0.96987,2.46065 l 0,0 0,0 c 0.55769,0.57897 1.2851,0.86846 2.15799,0.86846 l 0,0 0,0 c 0.63042,0 1.16385,-0.16284 1.62454,-0.48851 l 0,0 0,0 c 0.46069,-0.30758 0.80015,-0.83228 1.06687,-1.51981 z m -5.72228,-2.67775 0,0 5.74653,0 0,0 0,0 c -0.0727,-0.81419 -0.29097,-1.44745 -0.65467,-1.84549 l 0,0 0,0 c -0.55768,-0.63325 -1.26084,-0.95893 -2.15798,-0.95893 l 0,0 0,0 c -0.80015,0 -1.47907,0.25331 -2.03675,0.75991 l 0,0 0,0 c -0.53343,0.50661 -0.84864,1.19414 -0.89713,2.04451 z" /> 21.1681 + <path 21.1682 + inkscape:connector-curvature="0" 21.1683 + id="514" 21.1684 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1685 + d="m 403.33407,408.42327 0,0 0,-9.7521 1.55181,0 0,1.46552 0,0 0,0 c 0.4122,-0.70563 0.77591,-1.13985 1.11536,-1.35696 l 0,0 0,0 c 0.33946,-0.21713 0.72741,-0.32568 1.11536,-0.32568 l 0,0 0,0 c 0.60617,0 1.21235,0.18093 1.81852,0.5247 l 0,0 -0.60617,1.5198 0,0 0,0 c -0.43645,-0.23521 -0.87289,-0.36186 -1.28509,-0.36186 l 0,0 0,0 c -0.38795,0 -0.72741,0.10857 -1.04262,0.32567 l 0,0 0,0 c -0.29097,0.21713 -0.50918,0.5247 -0.65467,0.90465 l 0,0 0,0 c -0.19397,0.59707 -0.29096,1.23033 -0.29096,1.93595 l 0,0 0,5.12031 -1.72154,0 z" /> 21.1686 + <path 21.1687 + inkscape:connector-curvature="0" 21.1688 + id="515" 21.1689 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1690 + d="m 410.38995,408.42327 0,0 0,-8.4856 -1.52756,0 0,-1.2665 1.52756,0 0,-1.04939 0,0 0,0 c 0,-0.65135 0.0727,-1.13987 0.19397,-1.44745 l 0,0 0,0 c 0.16973,-0.43422 0.46069,-0.77799 0.87289,-1.04939 l 0,0 0,0 c 0.43645,-0.27138 1.04262,-0.39804 1.79428,-0.39804 l 0,0 0,0 c 0.50918,0 1.04262,0.0542 1.64879,0.16284 l 0,0 -0.26671,1.44743 0,0 0,0 c -0.36371,-0.0723 -0.70317,-0.0905 -1.04263,-0.0905 l 0,0 0,0 c -0.53343,0 -0.89713,0.10858 -1.11535,0.32568 l 0,0 0,0 c -0.21823,0.19902 -0.33946,0.61515 -0.33946,1.19413 l 0,0 0,0.90465 2.0125,0 0,1.2665 -2.0125,0 0,8.4856 -1.74578,0 z" /> 21.1691 + <path 21.1692 + inkscape:connector-curvature="0" 21.1693 + id="516" 21.1694 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1695 + d="m 414.85139,403.53817 0,0 0,0 c 0,-1.80929 0.53343,-3.14817 1.57605,-4.01663 l 0,0 0,0 c 0.89714,-0.70563 1.98826,-1.06749 3.24909,-1.06749 l 0,0 0,0 c 1.43058,0 2.57019,0.43423 3.46733,1.30269 l 0,0 0,0 c 0.92138,0.86846 1.35783,2.08069 1.35783,3.63668 l 0,0 0,0 c 0,1.26652 -0.19398,2.24353 -0.58193,2.96725 l 0,0 0,0 c -0.4122,0.72372 -0.99413,1.2846 -1.74579,1.68264 l 0,0 0,0 c -0.75165,0.39805 -1.57605,0.59707 -2.49744,0.59707 l 0,0 0,0 c -1.43056,0 -2.61866,-0.43423 -3.5158,-1.32079 l 0,0 0,0 c -0.84865,-0.86846 -1.30934,-2.13496 -1.30934,-3.78142 z m 1.79427,0 0,0 0,0 c 0,1.24841 0.29096,2.18925 0.84865,2.8044 l 0,0 0,0 c 0.58193,0.61517 1.30933,0.94084 2.18222,0.94084 l 0,0 0,0 c 0.8729,0 1.60031,-0.32567 2.15798,-0.94084 l 0,0 0,0 c 0.58193,-0.63324 0.8729,-1.57409 0.8729,-2.85868 l 0,0 0,0 c 0,-1.21223 -0.29097,-2.13497 -0.8729,-2.75013 l 0,0 0,0 c -0.55767,-0.61516 -1.28508,-0.94084 -2.15798,-0.94084 l 0,0 0,0 c -0.87289,0 -1.60029,0.32568 -2.18222,0.94084 l 0,0 0,0 c -0.55769,0.61516 -0.84865,1.556 -0.84865,2.80441 z" /> 21.1696 + <path 21.1697 + inkscape:connector-curvature="0" 21.1698 + id="517" 21.1699 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1700 + d="m 426.56268,408.42327 0,0 0,-9.7521 1.5518,0 0,1.46552 0,0 0,0 c 0.4122,-0.70563 0.77591,-1.13985 1.11537,-1.35696 l 0,0 0,0 c 0.33945,-0.21713 0.72741,-0.32568 1.1396,-0.32568 l 0,0 0,0 c 0.58193,0 1.1881,0.18093 1.79428,0.5247 l 0,0 -0.60618,1.5198 0,0 0,0 c -0.43644,-0.23521 -0.84864,-0.36186 -1.28508,-0.36186 l 0,0 0,0 c -0.38796,0 -0.72741,0.10857 -1.04262,0.32567 l 0,0 0,0 c -0.29096,0.21713 -0.50919,0.5247 -0.65467,0.90465 l 0,0 0,0 c -0.19398,0.59707 -0.29097,1.23033 -0.29097,1.93595 l 0,0 0,5.12031 -1.72153,0 z" /> 21.1701 + <path 21.1702 + inkscape:connector-curvature="0" 21.1703 + id="518" 21.1704 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1705 + d="m 433.23059,408.42327 0,0 0,-9.7521 1.55181,0 0,1.35697 0,0 0,0 c 0.31521,-0.48851 0.75166,-0.85037 1.2851,-1.13986 l 0,0 0,0 c 0.53343,-0.28949 1.16385,-0.43423 1.84276,-0.43423 l 0,0 0,0 c 0.7759,0 1.38208,0.14474 1.84277,0.45232 l 0,0 0,0 c 0.48494,0.28949 0.8244,0.68753 1.04263,1.23032 l 0,0 0,0 c 0.80014,-1.12176 1.86701,-1.68264 3.20059,-1.68264 l 0,0 0,0 c 1.01838,0 1.79428,0.27139 2.32771,0.79609 l 0,0 0,0 c 0.55769,0.52469 0.84865,1.33888 0.84865,2.46063 l 0,0 0,6.7125 -1.74578,0 0,-6.15161 0,0 0,0 c 0,-0.66944 -0.0727,-1.13986 -0.14549,-1.42933 l 0,0 0,0 c -0.12123,-0.2895 -0.33946,-0.52471 -0.63042,-0.70564 l 0,0 0,0 c -0.29096,-0.18093 -0.65467,-0.27139 -1.04262,-0.27139 l 0,0 0,0 c -0.7274,0 -1.33358,0.2352 -1.81852,0.68753 l 0,0 0,0 c -0.48494,0.45232 -0.72741,1.19414 -0.72741,2.18925 l 0,0 0,5.68119 -1.72154,0 0,-6.35063 0,0 0,0 c 0,-0.74182 -0.14548,-1.2846 -0.41219,-1.66455 l 0,0 0,0 c -0.29096,-0.36186 -0.75166,-0.54279 -1.40633,-0.54279 l 0,0 0,0 c -0.48494,0 -0.94563,0.1267 -1.38208,0.36186 l 0,0 0,0 c -0.41219,0.25329 -0.70316,0.61517 -0.89713,1.08557 l 0,0 0,0 c -0.19398,0.47042 -0.29097,1.13986 -0.29097,2.04451 l 0,0 0,5.06603 -1.72154,0 z" /> 21.1706 + <path 21.1707 + inkscape:connector-curvature="0" 21.1708 + id="519" 21.1709 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1710 + d="m 456.50769,407.21103 0,0 0,0 c -0.63042,0.5247 -1.26083,0.88657 -1.86701,1.10368 l 0,0 0,0 c -0.60617,0.21711 -1.23659,0.32567 -1.93976,0.32567 l 0,0 0,0 c -1.13961,0 -1.98826,-0.2714 -2.59443,-0.79609 l 0,0 0,0 c -0.60617,-0.5247 -0.92139,-1.19414 -0.92139,-2.00832 l 0,0 0,0 c 0,-0.47041 0.12125,-0.90465 0.33946,-1.30269 l 0,0 0,0 c 0.24248,-0.39804 0.53344,-0.70562 0.92139,-0.95893 l 0,0 0,0 c 0.36371,-0.2352 0.80015,-0.41613 1.2366,-0.54279 l 0,0 0,0 c 0.33946,-0.0723 0.87289,-0.16283 1.55181,-0.2352 l 0,0 0,0 c 1.43056,-0.16284 2.47318,-0.36186 3.12785,-0.57898 l 0,0 0,0 c 0.0242,-0.21712 0.0242,-0.36186 0.0242,-0.43423 l 0,0 0,0 c 0,-0.66944 -0.16973,-1.13986 -0.50919,-1.42934 l 0,0 0,0 c -0.43644,-0.36185 -1.11535,-0.56089 -1.98825,-0.56089 l 0,0 0,0 c -0.82439,0 -1.43057,0.14475 -1.84276,0.41615 l 0,0 0,0 c -0.38796,0.27138 -0.67892,0.7599 -0.84865,1.44743 l 0,0 -1.69729,-0.21711 0,0 0,0 c 0.14548,-0.68754 0.4122,-1.24841 0.75165,-1.68265 l 0,0 0,0 c 0.36371,-0.39804 0.89714,-0.74181 1.52756,-0.95892 l 0,0 0,0 c 0.67892,-0.23522 1.47908,-0.34377 2.35196,-0.34377 l 0,0 0,0 c 0.89714,0 1.6003,0.0905 2.15799,0.28948 l 0,0 0,0 c 0.55767,0.19904 0.96987,0.43424 1.21235,0.72372 l 0,0 0,0 c 0.24246,0.28949 0.43644,0.66944 0.53342,1.12177 l 0,0 0,0 c 0.0485,0.28949 0.097,0.79609 0.097,1.5379 l 0,0 0,2.18925 0,0 0,0 c 0,1.55599 0.0242,2.51491 0.097,2.93106 l 0,0 0,0 c 0.0727,0.39804 0.21822,0.79608 0.4607,1.17604 l 0,0 -1.81853,0 0,0 0,0 c -0.19398,-0.34378 -0.29096,-0.75991 -0.36371,-1.21224 z m -0.14548,-3.69096 0,0 0,0 c -0.63042,0.23521 -1.57605,0.45233 -2.86114,0.61517 l 0,0 0,0 c -0.72741,0.10858 -1.2366,0.21711 -1.52756,0.34377 l 0,0 0,0 c -0.29096,0.10857 -0.53344,0.28947 -0.67891,0.52469 l 0,0 0,0 c -0.14549,0.23521 -0.24248,0.50661 -0.24248,0.79608 l 0,0 0,0 c 0,0.43424 0.19398,0.81419 0.50919,1.10368 l 0,0 0,0 c 0.3637,0.28948 0.87289,0.43423 1.57605,0.43423 l 0,0 0,0 c 0.65467,0 1.26085,-0.14475 1.79428,-0.41614 l 0,0 0,0 c 0.53344,-0.2714 0.92139,-0.65135 1.16386,-1.13986 l 0,0 0,0 c 0.19398,-0.37995 0.26671,-0.92273 0.26671,-1.66455 l 0,-0.59707 z" /> 21.1711 + <path 21.1712 + inkscape:connector-curvature="0" 21.1713 + id="520" 21.1714 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1715 + d="m 460.84791,408.42327 0,0 0,-9.7521 1.57605,0 0,1.37506 0,0 0,0 c 0.7759,-1.06748 1.84277,-1.59218 3.27334,-1.59218 l 0,0 0,0 c 0.63042,0 1.21235,0.10858 1.72153,0.30757 l 0,0 0,0 c 0.53344,0.21713 0.92139,0.48852 1.18811,0.81419 l 0,0 0,0 c 0.26672,0.34377 0.43645,0.75991 0.53343,1.23032 l 0,0 0,0 c 0.0727,0.30758 0.0727,0.83228 0.0727,1.61028 l 0,0 0,6.00686 -1.72154,0 0,-5.95259 0,0 0,0 c 0,-0.66944 -0.0727,-1.17604 -0.19398,-1.50171 l 0,0 0,0 c -0.14548,-0.34377 -0.38795,-0.59707 -0.72741,-0.79609 l 0,0 0,0 c -0.36371,-0.19903 -0.7759,-0.30758 -1.2366,-0.30758 l 0,0 0,0 c -0.75165,0 -1.38207,0.21711 -1.93975,0.66944 l 0,0 0,0 c -0.50919,0.45232 -0.77591,1.30269 -0.77591,2.55111 l 0,0 0,5.33742 -1.77002,0 z" /> 21.1716 + <path 21.1717 + inkscape:connector-curvature="0" 21.1718 + id="521" 21.1719 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1720 + d="m 475.73555,406.93964 0,0 0.24247,1.46553 0,0 0,0 c -0.48494,0.0904 -0.89714,0.14474 -1.28509,0.14474 l 0,0 0,0 c -0.65467,0 -1.13961,-0.0905 -1.50332,-0.28948 l 0,0 0,0 c -0.33945,-0.18094 -0.58192,-0.43423 -0.72741,-0.74182 l 0,0 0,0 c -0.14548,-0.32567 -0.21821,-0.97701 -0.21821,-1.95403 l 0,0 0,-5.62691 -1.2851,0 0,-1.2665 1.2851,0 0,-2.42446 1.74578,-0.99511 0,3.41957 1.74578,0 0,1.2665 -1.74578,0 0,5.71737 0,0 0,0 c 0,0.47042 0.0242,0.778 0.097,0.90466 l 0,0 0,0 c 0.0485,0.12669 0.16972,0.2352 0.29096,0.32567 l 0,0 0,0 c 0.14548,0.0723 0.33945,0.10858 0.60618,0.10858 l 0,0 0,0 c 0.19397,0 0.43644,-0.0181 0.75165,-0.0542 z" /> 21.1721 + <path 21.1722 + inkscape:connector-curvature="0" 21.1723 + id="522" 21.1724 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1725 + d="m 483.15513,408.42327 0,0 0,-13.46117 5.35858,0 0,0 0,0 c 0.96987,0 1.67304,0.0362 2.18222,0.1267 l 0,0 0,0 c 0.70317,0.10858 1.2851,0.30758 1.77004,0.63326 l 0,0 0,0 c 0.46069,0.30757 0.82439,0.7418 1.11535,1.28459 l 0,0 0,0 c 0.29096,0.56088 0.43645,1.17604 0.43645,1.84549 l 0,0 0,0 c 0,1.12175 -0.38795,2.09878 -1.13961,2.89487 l 0,0 0,0 c -0.7759,0.79608 -2.15798,1.19414 -4.19472,1.19414 l 0,0 -3.63705,0 0,5.48216 -1.89126,0 z m 1.89126,-7.07435 0,0 3.66129,0 0,0 0,0 c 1.2366,0 2.10948,-0.21712 2.61867,-0.65134 l 0,0 0,0 c 0.50919,-0.41615 0.77591,-1.0313 0.77591,-1.79121 l 0,0 0,0 c 0,-0.56088 -0.16973,-1.04939 -0.46069,-1.44743 l 0,0 0,0 c -0.31522,-0.39804 -0.70316,-0.66944 -1.1881,-0.7961 l 0,0 0,0 c -0.33946,-0.0723 -0.92139,-0.10857 -1.77003,-0.10857 l 0,0 -3.63705,0 0,4.79462 z" /> 21.1726 + <path 21.1727 + inkscape:connector-curvature="0" 21.1728 + id="523" 21.1729 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1730 + d="m 495.56958,403.53817 0,0 0,0 c 0,-1.80929 0.53343,-3.14817 1.6003,-4.01663 l 0,0 0,0 c 0.89714,-0.70563 1.93976,-1.06749 3.22484,-1.06749 l 0,0 0,0 c 1.43058,0 2.59443,0.43423 3.49157,1.30269 l 0,0 0,0 c 0.92138,0.86846 1.33359,2.08069 1.33359,3.63668 l 0,0 0,0 c 0,1.26652 -0.16973,2.24353 -0.58193,2.96725 l 0,0 0,0 c -0.38796,0.72372 -0.96988,1.2846 -1.74579,1.68264 l 0,0 0,0 c -0.75165,0.39805 -1.57605,0.59707 -2.49744,0.59707 l 0,0 0,0 c -1.43056,0 -2.59442,-0.43423 -3.49156,-1.32079 l 0,0 0,0 c -0.89714,-0.86846 -1.33358,-2.13496 -1.33358,-3.78142 z m 1.79427,0 0,0 0,0 c 0,1.24841 0.29097,2.18925 0.8729,2.8044 l 0,0 0,0 c 0.58192,0.61517 1.28508,0.94084 2.15797,0.94084 l 0,0 0,0 c 0.8729,0 1.60031,-0.32567 2.18223,-0.94084 l 0,0 0,0 c 0.58193,-0.63324 0.87289,-1.57409 0.87289,-2.85868 l 0,0 0,0 c 0,-1.21223 -0.29096,-2.13497 -0.87289,-2.75013 l 0,0 0,0 c -0.58192,-0.61516 -1.30933,-0.94084 -2.18223,-0.94084 l 0,0 0,0 c -0.87289,0 -1.57605,0.32568 -2.15797,0.94084 l 0,0 0,0 c -0.58193,0.61516 -0.8729,1.556 -0.8729,2.80441 z" /> 21.1731 + <path 21.1732 + inkscape:connector-curvature="0" 21.1733 + id="524" 21.1734 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1735 + d="m 507.28087,408.42327 0,0 0,-9.7521 1.57605,0 0,1.46552 0,0 0,0 c 0.38795,-0.70563 0.77591,-1.13985 1.11536,-1.35696 l 0,0 0,0 c 0.33946,-0.21713 0.70317,-0.32568 1.09111,-0.32568 l 0,0 0,0 c 0.60618,0 1.21235,0.18093 1.81853,0.5247 l 0,0 -0.60618,1.5198 0,0 0,0 c -0.43644,-0.23521 -0.87289,-0.36186 -1.26083,-0.36186 l 0,0 0,0 c -0.38796,0 -0.72742,0.10857 -1.04263,0.32567 l 0,0 0,0 c -0.3152,0.21713 -0.53343,0.5247 -0.65466,0.90465 l 0,0 0,0 c -0.19398,0.59707 -0.29097,1.23033 -0.29097,1.93595 l 0,0 0,5.12031 -1.74578,0 z" /> 21.1736 + <path 21.1737 + inkscape:connector-curvature="0" 21.1738 + id="525" 21.1739 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1740 + d="m 517.73131,406.93964 0,0 0.24248,1.46553 0,0 0,0 c -0.48494,0.0904 -0.94564,0.14474 -1.30934,0.14474 l 0,0 0,0 c -0.60618,0 -1.09111,-0.0905 -1.45482,-0.28948 l 0,0 0,0 c -0.33946,-0.18094 -0.58193,-0.43423 -0.72741,-0.74182 l 0,0 0,0 c -0.14548,-0.32567 -0.21823,-0.97701 -0.21823,-1.95403 l 0,0 0,-5.62691 -1.28508,0 0,-1.2665 1.28508,0 0,-2.42446 1.74579,-0.99511 0,3.41957 1.72153,0 0,1.2665 -1.72153,0 0,5.71737 0,0 0,0 c 0,0.47042 0.0243,0.778 0.0727,0.90466 l 0,0 0,0 c 0.0485,0.12669 0.14548,0.2352 0.29096,0.32567 l 0,0 0,0 c 0.14548,0.0723 0.33946,0.10858 0.60618,0.10858 l 0,0 0,0 c 0.16973,0 0.43645,-0.0181 0.75165,-0.0542 z" /> 21.1741 + <path 21.1742 + inkscape:connector-curvature="0" 21.1743 + id="526" 21.1744 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1745 + d="m 526.16926,407.21103 0,0 0,0 c -0.65467,0.5247 -1.28509,0.88657 -1.89126,1.10368 l 0,0 0,0 c -0.58193,0.21711 -1.23659,0.32567 -1.89126,0.32567 l 0,0 0,0 c -1.13962,0 -2.0125,-0.2714 -2.64293,-0.79609 l 0,0 0,0 c -0.60617,-0.5247 -0.89713,-1.19414 -0.89713,-2.00832 l 0,0 0,0 c 0,-0.47041 0.097,-0.90465 0.33946,-1.30269 l 0,0 0,0 c 0.21821,-0.39804 0.53342,-0.70562 0.89713,-0.95893 l 0,0 0,0 c 0.38795,-0.2352 0.80016,-0.41613 1.26085,-0.54279 l 0,0 0,0 c 0.33945,-0.0723 0.87289,-0.16283 1.57605,-0.2352 l 0,0 0,0 c 1.38207,-0.16284 2.42469,-0.36186 3.10361,-0.57898 l 0,0 0,0 c 0,-0.21712 0,-0.36186 0,-0.43423 l 0,0 0,0 c 0,-0.66944 -0.16973,-1.13986 -0.48494,-1.42934 l 0,0 0,0 c -0.46069,-0.36185 -1.11536,-0.56089 -2.0125,-0.56089 l 0,0 0,0 c -0.80014,0 -1.40632,0.14475 -1.79427,0.41615 l 0,0 0,0 c -0.38795,0.27138 -0.67891,0.7599 -0.87289,1.44743 l 0,0 -1.72154,-0.21711 0,0 0,0 c 0.14548,-0.68754 0.4122,-1.24841 0.7759,-1.68265 l 0,0 0,0 c 0.33946,-0.39804 0.87289,-0.74181 1.55181,-0.95892 l 0,0 0,0 c 0.67891,-0.23522 1.45482,-0.34377 2.32771,-0.34377 l 0,0 0,0 c 0.87289,0 1.6003,0.0905 2.15798,0.28948 l 0,0 0,0 c 0.53344,0.19904 0.94563,0.43424 1.21235,0.72372 l 0,0 0,0 c 0.26672,0.28949 0.43645,0.66944 0.53343,1.12177 l 0,0 0,0 c 0.0727,0.28949 0.097,0.79609 0.097,1.5379 l 0,0 0,2.18925 0,0 0,0 c 0,1.55599 0.0242,2.51491 0.12124,2.93106 l 0,0 0,0 c 0.0727,0.39804 0.21822,0.79608 0.43645,1.17604 l 0,0 -1.84278,0 0,0 0,0 c -0.16973,-0.34378 -0.29096,-0.75991 -0.33946,-1.21224 z m -0.14548,-3.69096 0,0 0,0 c -0.65467,0.23521 -1.6003,0.45233 -2.88539,0.61517 l 0,0 0,0 c -0.67892,0.10858 -1.1881,0.21711 -1.50331,0.34377 l 0,0 0,0 c -0.29096,0.10857 -0.53344,0.28947 -0.67892,0.52469 l 0,0 0,0 c -0.16973,0.23521 -0.24246,0.50661 -0.24246,0.79608 l 0,0 0,0 c 0,0.43424 0.16973,0.81419 0.53342,1.10368 l 0,0 0,0 c 0.33946,0.28948 0.8729,0.43423 1.55181,0.43423 l 0,0 0,0 c 0.65467,0 1.2366,-0.14475 1.77003,-0.41614 l 0,0 0,0 c 0.53344,-0.2714 0.92138,-0.65135 1.16386,-1.13986 l 0,0 0,0 c 0.19398,-0.37995 0.29096,-0.92273 0.29096,-1.66455 l 0,-0.59707 z" /> 21.1746 + <path 21.1747 + inkscape:connector-curvature="0" 21.1748 + id="527" 21.1749 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1750 + d="m 532.10977,408.42327 0,0 -1.62454,0 0,-13.46117 1.77003,0 0,4.77655 0,0 0,0 c 0.7274,-0.85037 1.67304,-1.2846 2.81264,-1.2846 l 0,0 0,0 c 0.63042,0 1.2366,0.10858 1.79428,0.36186 l 0,0 0,0 c 0.58193,0.2352 1.04262,0.56088 1.40632,0.9951 l 0,0 0,0 c 0.36371,0.43424 0.65467,0.97703 0.8729,1.59219 l 0,0 0,0 c 0.19397,0.61516 0.31521,1.2846 0.31521,1.99022 l 0,0 0,0 c 0,1.66456 -0.46069,2.96725 -1.33359,3.8719 l 0,0 0,0 c -0.87289,0.92273 -1.91551,1.37506 -3.1521,1.37506 l 0,0 0,0 c -1.1881,0 -2.15799,-0.48851 -2.86115,-1.44744 l 0,1.23033 z m 0,-4.95747 0,0 0,0 c 0,1.15794 0.14549,2.00831 0.48495,2.533 l 0,0 0,0 c 0.55767,0.85037 1.30933,1.28461 2.25496,1.28461 l 0,0 0,0 c 0.75166,0 1.40633,-0.32567 1.96401,-0.94084 l 0,0 0,0 c 0.55768,-0.63324 0.84864,-1.57409 0.84864,-2.8225 l 0,0 0,0 c 0,-1.2665 -0.26672,-2.20734 -0.82439,-2.82249 l 0,0 0,0 c -0.53344,-0.59708 -1.16386,-0.90466 -1.93976,-0.90466 l 0,0 0,0 c -0.72742,0 -1.40633,0.30758 -1.96401,0.94084 l 0,0 0,0 c -0.55768,0.63325 -0.8244,1.5379 -0.8244,2.73204 z" /> 21.1751 + <path 21.1752 + inkscape:connector-curvature="0" 21.1753 + id="528" 21.1754 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1755 + d="m 541.5661,396.86186 0,-1.89976 1.77002,0 0,1.89976 -1.77002,0 z m 0,11.56141 0,-9.7521 1.77002,0 0,9.7521 -1.77002,0 z" /> 21.1756 + <path 21.1757 + inkscape:connector-curvature="0" 21.1758 + id="529" 21.1759 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1760 + d="m 545.97905,408.42327 0,-13.46117 1.72153,0 0,13.46117 -1.72153,0 z" /> 21.1761 + <path 21.1762 + inkscape:connector-curvature="0" 21.1763 + id="530" 21.1764 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1765 + d="m 550.44049,396.86186 0,-1.89976 1.77003,0 0,1.89976 -1.77003,0 z m 0,11.56141 0,-9.7521 1.77003,0 0,9.7521 -1.77003,0 z" /> 21.1766 + <path 21.1767 + inkscape:connector-curvature="0" 21.1768 + id="531" 21.1769 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1770 + d="m 558.66021,406.93964 0,0 0.24248,1.46553 0,0 0,0 c -0.48494,0.0904 -0.92139,0.14474 -1.30934,0.14474 l 0,0 0,0 c -0.63043,0 -1.13961,-0.0905 -1.47907,-0.28948 l 0,0 0,0 c -0.33946,-0.18094 -0.60617,-0.43423 -0.75165,-0.74182 l 0,0 0,0 c -0.12124,-0.32567 -0.19398,-0.97701 -0.19398,-1.95403 l 0,0 0,-5.62691 -1.28509,0 0,-1.2665 1.28509,0 0,-2.42446 1.74578,-0.99511 0,3.41957 1.74578,0 0,1.2665 -1.74578,0 0,5.71737 0,0 0,0 c 0,0.47042 0.0242,0.778 0.0727,0.90466 l 0,0 0,0 c 0.0728,0.12669 0.16973,0.2352 0.31521,0.32567 l 0,0 0,0 c 0.14548,0.0723 0.33946,0.10858 0.60618,0.10858 l 0,0 0,0 c 0.19398,0 0.43644,-0.0181 0.75165,-0.0542 z" /> 21.1771 + <path 21.1772 + inkscape:connector-curvature="0" 21.1773 + id="532" 21.1774 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1775 + d="m 560.28477,412.1685 0,0 -0.19398,-1.55599 0,0 0,0 c 0.3637,0.0905 0.70316,0.14474 0.99412,0.14474 l 0,0 0,0 c 0.38796,0 0.70317,-0.0723 0.94563,-0.18092 l 0,0 0,0 c 0.21823,-0.1267 0.4122,-0.30759 0.55768,-0.5247 l 0,0 0,0 c 0.12124,-0.16284 0.29096,-0.57897 0.53344,-1.23032 l 0,0 0,0 c 0.0485,-0.0905 0.097,-0.21711 0.16973,-0.37995 l 0,0 -3.92801,-9.77019 1.89126,0 2.15798,5.62691 0,0 0,0 c 0.26672,0.72371 0.53344,1.48361 0.75166,2.26162 l 0,0 0,0 c 0.19398,-0.75992 0.43644,-1.50172 0.67892,-2.20735 l 0,0 2.23072,-5.68118 1.74577,0 -3.928,9.91493 0,0 0,0 c -0.4122,1.0494 -0.72741,1.79121 -0.96988,2.18925 l 0,0 0,0 c -0.31521,0.54278 -0.67892,0.95893 -1.06686,1.21222 l 0,0 0,0 c -0.41221,0.25331 -0.89715,0.37995 -1.45483,0.37995 l 0,0 0,0 c -0.33946,0 -0.70316,-0.0723 -1.11535,-0.19902 z" /> 21.1776 + <path 21.1777 + inkscape:connector-curvature="0" 21.1778 + id="563" 21.1779 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1780 + d="m 310.27417,577.12194 23.42259,12.32129 -0.33947,0.36187 -0.33945,0.36185 -23.42259,-12.32131 0.33947,-0.36184 0.33945,-0.36186 z" /> 21.1781 + <path 21.1782 + inkscape:connector-curvature="0" 21.1783 + id="564" 21.1784 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1785 + d="m 330.08395,585.57135 0,0 4.53419,4.867 -7.6863,-1.5198 0,0 0,0 c 1.91551,-0.48852 3.17636,-1.84548 3.15211,-3.3472 z" /> 21.1786 + <path 21.1787 + inkscape:connector-curvature="0" 21.1788 + id="565" 21.1789 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1790 + d="m 280.7171,577.82756 -21.77378,12.3213 -0.33946,-0.34376 -0.33945,-0.34378 21.77378,-12.3213 0.33947,0.34378 0.33944,0.34376 z" /> 21.1791 + <path 21.1792 + inkscape:connector-curvature="0" 21.1793 + id="566" 21.1794 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1795 + d="m 265.00506,588.7557 0,0 -7.5893,1.73694 4.26747,-4.99366 0,0 0,0 c 0.0242,1.48362 1.38208,2.80439 3.32183,3.25672 z" /> 21.1796 + <path 21.1797 + inkscape:connector-curvature="0" 21.1798 + id="567" 21.1799 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1800 + d="m 292.79211,556.47788 0.3152,17.1702 -0.58193,0 -0.58192,0 -0.31522,-17.1702 0.58194,0 0.58193,0 z" /> 21.1801 + <path 21.1802 + inkscape:connector-curvature="0" 21.1803 + id="568" 21.1804 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1805 + d="m 295.2168,569.14295 0,0 -2.64292,5.6269 -2.8369,-5.57263 0,0 0,0 c 1.62455,0.86846 3.83103,0.85038 5.47982,-0.0542 z" /> 21.1806 + <path 21.1807 + inkscape:connector-curvature="0" 21.1808 + id="570" 21.1809 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1810 + d="m 438.66192,556.22457 16.003,17.17023 -0.48494,0.25328 -0.48493,0.2533 -16.00301,-17.1702 0.48494,-0.2533 0.48494,-0.25331 z" /> 21.1811 + <path 21.1812 + inkscape:connector-curvature="0" 21.1813 + id="571" 21.1814 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1815 + d="m 453.01613,568.79917 0,0 2.03675,5.75357 -6.52244,-3.40148 0,0 0,0 c 2.0125,0.0542 3.80678,-0.92273 4.48569,-2.35209 z" /> 21.1816 + <path 21.1817 + inkscape:connector-curvature="0" 21.1818 + id="572" 21.1819 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1820 + d="m 541.85706,577.12194 23.42258,12.32129 -0.33946,0.36187 -0.31521,0.36185 -23.44683,-12.32131 0.33946,-0.36184 0.33946,-0.36186 z" /> 21.1821 + <path 21.1822 + inkscape:connector-curvature="0" 21.1823 + id="573" 21.1824 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1825 + d="m 561.66684,585.57135 0,0 4.50994,4.867 -7.66205,-1.5198 0,0 0,0 c 1.89127,-0.48852 3.17635,-1.84548 3.15211,-3.3472 z" /> 21.1826 + <path 21.1827 + inkscape:connector-curvature="0" 21.1828 + id="574" 21.1829 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1830 + d="m 452.33722,577.82756 -21.74954,12.3213 -0.33946,-0.34376 -0.33946,-0.34378 21.74954,-12.3213 0.33946,0.34378 0.33946,0.34376 z" /> 21.1831 + <path 21.1832 + inkscape:connector-curvature="0" 21.1833 + id="575" 21.1834 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1835 + d="m 436.64942,588.7557 0,0 -7.5893,1.73694 4.29171,-4.99366 0,0 0,0 c 0.0242,1.48362 1.35784,2.80439 3.29759,3.25672 z" /> 21.1836 + <path 21.1837 + inkscape:connector-curvature="0" 21.1838 + id="576" 21.1839 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1840 + d="m 497.4366,556.47788 0.31521,17.1702 -0.58193,0 -0.58192,0 -0.31522,-17.1702 0.58193,0 0.58193,0 z" /> 21.1841 + <path 21.1842 + inkscape:connector-curvature="0" 21.1843 + id="577" 21.1844 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1845 + d="m 499.83704,569.14295 0,0 -2.61867,5.6269 -2.86114,-5.57263 0,0 0,0 c 1.64879,0.86846 3.85527,0.85038 5.47981,-0.0542 z" /> 21.1846 + <path 21.1847 + inkscape:connector-curvature="0" 21.1848 + id="578" 21.1849 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1850 + d="m 448.02125,575.87353 98.17602,0.34377 0,0.43422 0,0.43424 -98.17602,-0.34378 0,-0.43423 0,-0.43422 z" /> 21.1851 + <path 21.1852 + inkscape:connector-curvature="0" 21.1853 + id="579" 21.1854 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1855 + d="m 497.48509,577.4838 0.31521,11.43475 -0.58193,0 -0.58193,0 -0.31521,-11.43475 0.58193,0 0.58193,0 z" /> 21.1856 + <path 21.1857 + inkscape:connector-curvature="0" 21.1858 + id="580" 21.1859 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1860 + d="m 499.83704,584.44959 0,0 -2.57017,5.60881 -2.90964,-5.51835 0,0 0,0 c 1.64879,0.85037 3.87952,0.81419 5.47981,-0.0905 z" /> 21.1861 + <path 21.1862 + inkscape:connector-curvature="0" 21.1863 + id="598" 21.1864 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1865 + d="m 557.10841,556.73118 -16.003,17.1702 -0.4607,-0.2533 -0.48494,-0.25328 15.97876,-17.17023 0.48494,0.25331 0.48494,0.2533 z" /> 21.1866 + <path 21.1867 + inkscape:connector-curvature="0" 21.1868 + id="599" 21.1869 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1870 + d="m 546.29426,571.16937 0,0 -6.4982,3.40146 1.98826,-5.77166 0,0 0,0 c 0.65467,1.42936 2.47319,2.38828 4.50994,2.3702 z" /> 21.1871 + <path 21.1872 + d="m 275.43127,419.35698 0,0 0,0 c 0,-0.85037 0.19396,-1.51981 0.58193,-2.09878 l 0,0 0,0 c 0.38795,-0.56087 0.89713,-0.85037 1.5518,-0.85037 l 0,0 0,0 c 0.72741,0 1.28509,0.27139 1.67304,0.79609 l 0,0 0,0 c 0.4122,0.50661 0.60617,1.21222 0.60617,2.15306 l 0,0 0,0 c 0,0.94083 -0.19397,1.70073 -0.60617,2.24353 l 0,0 0,0 c -0.38795,0.52468 -0.94563,0.79608 -1.67304,0.79608 l 0,0 0,0 c -0.65467,0 -1.1881,-0.2714 -1.57605,-0.85037 l 0,0 0,0 c -0.36372,-0.56088 -0.55768,-1.30267 -0.55768,-2.18924 z m 0.75165,0 0,0 0,0 c 0,0.66943 0.12123,1.21223 0.36369,1.66456 l 0,0 0,0 c 0.24249,0.45231 0.58194,0.66943 1.01839,0.66943 l 0,0 0,0 c 0.50918,0 0.87289,-0.19902 1.11536,-0.61516 l 0,0 0,0 c 0.26672,-0.41614 0.38795,-0.97702 0.38795,-1.71883 l 0,0 0,0 c 0,-1.48362 -0.50918,-2.22544 -1.50331,-2.22544 l 0,0 0,0 c -0.43645,0 -0.7759,0.19903 -1.01839,0.59707 l 0,0 0,0 c -0.24246,0.39804 -0.36369,0.94084 -0.36369,1.62837 z" 21.1873 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1874 + id="path4926" 21.1875 + inkscape:connector-curvature="0" /> 21.1876 + <path 21.1877 + d="m 281.32327,422.07092 0,0 0,1.89976 -0.70317,0 0,-5.8983 0.70317,0 0,0.34376 0,0 0,0 C 281.56575,418.14474 281.88095,418 282.26892,418 l 0,0 0,0 c 0.53343,0 0.96988,0.18094 1.28508,0.5428 l 0,0 0,0 c 0.31521,0.37996 0.4607,0.92273 0.4607,1.64646 l 0,0 0,0 c 0,0.65135 -0.14549,1.17603 -0.4607,1.57407 l 0,0 0,0 c -0.3152,0.41615 -0.7759,0.61517 -1.35783,0.61517 l 0,0 0,0 c -0.16974,0 -0.33945,-0.0181 -0.53343,-0.0905 l 0,0 0,0 c -0.16974,-0.0542 -0.29097,-0.14476 -0.33947,-0.21712 z m 0,-3.09389 0,0 0,2.47872 0,0 0,0 c 0.0242,0.0723 0.12125,0.12669 0.26673,0.19903 l 0,0 0,0 c 0.14549,0.0542 0.26672,0.0905 0.41218,0.0905 l 0,0 0,0 c 0.84865,0 1.2851,-0.52471 1.2851,-1.5741 l 0,0 0,0 c 0,-0.54278 -0.097,-0.94084 -0.3152,-1.17603 l 0,0 0,0 c -0.19398,-0.25331 -0.5092,-0.37995 -0.9699,-0.37995 l 0,0 0,0 c -0.097,0 -0.21821,0.0361 -0.36369,0.10858 l 0,0 0,0 c -0.12124,0.0723 -0.24247,0.16284 -0.31522,0.25332 z" 21.1878 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1879 + id="path4928" 21.1880 + inkscape:connector-curvature="0" /> 21.1881 + <path 21.1882 + d="m 287.9912,420.26163 0,0 -2.81264,0 0,0 0,0 c 0,0.4885 0.14547,0.86847 0.38793,1.13986 l 0,0 0,0 c 0.21824,0.23519 0.5092,0.34376 0.84865,0.34376 l 0,0 0,0 c 0.38795,0 0.72742,-0.12669 0.99413,-0.37996 l 0,0 0.29097,0.5428 0,0 0,0 c -0.12124,0.1267 -0.26672,0.2171 -0.50918,0.30759 l 0,0 0,0 c -0.26674,0.10857 -0.58194,0.16282 -0.9214,0.16282 l 0,0 0,0 c -0.48493,0 -0.89713,-0.18093 -1.2366,-0.5428 l 0,0 0,0 c -0.3637,-0.39803 -0.55766,-0.92272 -0.55766,-1.61027 l 0,0 0,0 c 0,-0.68753 0.19396,-1.2484 0.58191,-1.68263 l 0,0 0,0 c 0.33947,-0.36186 0.75167,-0.5428 1.2366,-0.5428 l 0,0 0,0 c 0.55768,0 0.99413,0.16285 1.30933,0.48852 l 0,0 0,0 c 0.29098,0.32566 0.43645,0.7599 0.43645,1.30269 l 0,0 0,0 c 0,0.18093 0,0.32569 -0.0485,0.47042 z m -1.67304,-1.64645 0,0 0,0 c -0.31522,0 -0.55768,0.10857 -0.77592,0.32566 l 0,0 0,0 c -0.19396,0.19902 -0.3152,0.47043 -0.33945,0.75991 l 0,0 2.15798,0 0,0 0,0 c 0,-0.28948 -0.097,-0.5428 -0.26671,-0.75991 l 0,0 0,0 c -0.19397,-0.21713 -0.43644,-0.32566 -0.7759,-0.32566 z" 21.1883 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1884 + id="path4930" 21.1885 + inkscape:connector-curvature="0" /> 21.1886 + <path 21.1887 + d="m 291.14331,422.30613 0,0 0,-2.46065 0,0 0,0 c 0,-0.45231 -0.0727,-0.77799 -0.19398,-0.95893 l 0,0 0,0 c -0.12123,-0.18093 -0.3152,-0.27137 -0.63043,-0.27137 l 0,0 0,0 c -0.14547,0 -0.29095,0.0542 -0.46068,0.16282 l 0,0 0,0 c -0.16974,0.0905 -0.29097,0.21713 -0.38795,0.37995 l 0,0 0,3.14818 -0.70317,0 0,-4.23375 0.48495,0 0.21822,0.5428 0,0 0,0 C 289.68848,418.21711 290.02795,418 290.56138,418 l 0,0 0,0 c 0.84865,0 1.28508,0.5428 1.28508,1.68266 l 0,0 0,2.62347 -0.70315,0 z" 21.1888 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1889 + id="path4932" 21.1890 + inkscape:connector-curvature="0" /> 21.1891 + <path 21.1892 + d="m 296.8656,422.30613 -0.63042,-3.72715 -1.13963,3.79952 -0.19396,0 -1.1881,-3.79952 -0.63043,3.72715 -0.67892,0 0.99413,-5.78975 0.33945,0 1.26085,4.21565 1.13961,-4.21565 0.33945,0 1.06688,5.78975 -0.67891,0 z" 21.1893 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1894 + id="path4934" 21.1895 + inkscape:connector-curvature="0" /> 21.1896 + <path 21.1897 + d="m 298.85384,420.06261 0,0 0,2.24352 -0.72741,0 0,-5.78975 0,0 0,0 c 0.55768,-0.0181 0.8729,-0.0362 0.99413,-0.0362 l 0,0 0,0 c 1.55181,0 2.32771,0.56087 2.32771,1.68264 l 0,0 0,0 c 0,1.30269 -0.67891,1.95405 -2.06099,1.95405 l 0,0 0,0 c -0.0727,0 -0.26672,-0.0181 -0.53344,-0.0544 z m 0,-2.82251 0,0 0,2.11688 0,0 0,0 c 0.31522,0.0181 0.46069,0.0362 0.48494,0.0362 l 0,0 0,0 c 0.89714,0 1.35783,-0.37996 1.35783,-1.13986 l 0,0 0,0 c 0,-0.70562 -0.48494,-1.06748 -1.45482,-1.06748 l 0,0 0,0 c -0.097,0 -0.21821,0.0181 -0.38795,0.0542 z" 21.1898 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1899 + id="path4936" 21.1900 + inkscape:connector-curvature="0" /> 21.1901 + <path 21.1902 + d="m 303.94571,419.50173 1.26085,0 0,0.56088 -1.26085,0 0,1.37506 -0.53344,0 0,-1.37506 -1.26083,0 0,-0.56088 1.26083,0 0,-1.33888 0.53344,0 0,1.33888 z" 21.1903 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1904 + id="path4938" 21.1905 + inkscape:connector-curvature="0" /> 21.1906 + <path 21.1907 + d="m 306.90384,420.06261 0,0 0,2.24352 -0.72741,0 0,-5.78975 0,0 0,0 c 0.53344,-0.0181 0.87289,-0.0362 0.99413,-0.0362 l 0,0 0,0 c 1.52756,0 2.27922,0.56087 2.27922,1.68264 l 0,0 0,0 c 0,1.30269 -0.67893,1.95405 -2.01251,1.95405 l 0,0 0,0 c -0.0727,0 -0.26671,-0.0181 -0.53343,-0.0544 z m 0,-2.82251 0,0 0,2.11688 0,0 0,0 c 0.29097,0.0181 0.4607,0.0362 0.48495,0.0362 l 0,0 0,0 c 0.87288,0 1.33358,-0.37996 1.33358,-1.13986 l 0,0 0,0 c 0,-0.70562 -0.48495,-1.06748 -1.43058,-1.06748 l 0,0 0,0 c -0.097,0 -0.21822,0.0181 -0.38795,0.0542 z" 21.1908 + style="fill:#008066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1909 + id="path4940" 21.1910 + inkscape:connector-curvature="0" /> 21.1911 + <path 21.1912 + d="m 389.41631,423.27483 -0.63042,-3.70906 -1.16386,3.79952 -0.16973,0 -1.21234,-3.79952 -0.60618,3.70906 -0.67892,0 0.99413,-5.77164 0.31521,0 1.26084,4.21564 1.1881,-4.21564 0.31521,0 1.09112,5.77164 -0.70316,0 z" 21.1913 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1914 + id="path4942" 21.1915 + inkscape:connector-curvature="0" /> 21.1916 + <path 21.1917 + d="m 391.4288,421.0494 0,0 0,2.22543 -0.7274,0 0,-5.77164 0,0 0,0 c 0.53344,-0.0362 0.87289,-0.0362 0.96988,-0.0362 l 0,0 0,0 c 1.52756,0 2.30346,0.56089 2.30346,1.68266 l 0,0 0,0 c 0,1.2846 -0.67892,1.93595 -2.03675,1.93595 l 0,0 0,0 c -0.097,0 -0.26671,-0.0181 -0.50919,-0.0362 z m 0,-2.8406 0,0 0,2.13498 0,0 0,0 c 0.26673,0.0181 0.43645,0.0362 0.4607,0.0362 l 0,0 0,0 c 0.89713,0 1.33358,-0.37996 1.33358,-1.13986 l 0,0 0,0 c 0,-0.72371 -0.46068,-1.06746 -1.43057,-1.06746 l 0,0 0,0 c -0.097,0 -0.21822,0.0181 -0.36371,0.0362 z" 21.1918 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1919 + id="path4944" 21.1920 + inkscape:connector-curvature="0" /> 21.1921 + <path 21.1922 + d="m 394.94462,423.27483 0,-5.77164 0.7274,0 0,5.77164 -0.7274,0 z" 21.1923 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1924 + id="path4946" 21.1925 + inkscape:connector-curvature="0" /> 21.1926 + <path 21.1927 + d="m 398.55741,420.48852 1.26085,0 0,0.56088 -1.26085,0 0,1.35697 -0.50918,0 0,-1.35697 -1.23659,0 0,-0.56088 1.23659,0 0,-1.33888 0.50918,0 0,1.33888 z" 21.1928 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1929 + id="path4948" 21.1930 + inkscape:connector-curvature="0" /> 21.1931 + <path 21.1932 + d="m 401.4913,421.0494 0,0 0,2.22543 -0.72741,0 0,-5.77164 0,0 0,0 c 0.55768,-0.0362 0.87289,-0.0362 0.99413,-0.0362 l 0,0 0,0 c 1.5518,0 2.30346,0.56089 2.30346,1.68266 l 0,0 0,0 c 0,1.2846 -0.65467,1.93595 -2.03674,1.93595 l 0,0 0,0 c -0.0727,0 -0.26672,-0.0181 -0.53344,-0.0362 z m 0,-2.8406 0,0 0,2.13498 0,0 0,0 c 0.31521,0.0181 0.46069,0.0362 0.48494,0.0362 l 0,0 0,0 c 0.89714,0 1.35783,-0.37996 1.35783,-1.13986 l 0,0 0,0 c 0,-0.72371 -0.48494,-1.06746 -1.45481,-1.06746 l 0,0 0,0 c -0.097,0 -0.21823,0.0181 -0.38796,0.0362 z" 21.1933 + style="fill:#2b2cbe;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1934 + id="path4950" 21.1935 + inkscape:connector-curvature="0" /> 21.1936 + <path 21.1937 + d="m 482.03976,423.36529 -2.73991,-4.23375 0,4.14329 -0.67891,0 0,-5.77164 0.29097,0 2.64291,3.98045 0,-3.98045 0.70317,0 0,5.8621 -0.21823,0 z" 21.1938 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1939 + id="path4952" 21.1940 + inkscape:connector-curvature="0" /> 21.1941 + <path 21.1942 + d="m 486.57395,421.23032 0,0 -2.81265,0 0,0 0,0 c 0,0.5066 0.12123,0.88658 0.3637,1.15796 l 0,0 0,0 c 0.21823,0.21711 0.50919,0.34375 0.84865,0.34375 l 0,0 0,0 c 0.41219,0 0.72741,-0.12669 0.99412,-0.37994 l 0,0 0.29097,0.5428 0,0 0,0 c -0.097,0.10857 -0.26672,0.21709 -0.48494,0.30758 l 0,0 0,0 c -0.26672,0.10857 -0.58192,0.16282 -0.92138,0.16282 l 0,0 0,0 c -0.48495,0 -0.89714,-0.18093 -1.26085,-0.5428 l 0,0 0,0 c -0.3637,-0.39803 -0.55768,-0.94081 -0.55768,-1.61025 l 0,0 0,0 c 0,-0.70563 0.19398,-1.24841 0.58193,-1.66456 l 0,0 0,0 c 0.33946,-0.37995 0.7759,-0.56088 1.2366,-0.56088 l 0,0 0,0 c 0.55767,0 0.99412,0.16284 1.30933,0.50661 l 0,0 0,0 c 0.31521,0.32566 0.46069,0.7599 0.46069,1.28459 l 0,0 0,0 c 0,0.16284 -0.0242,0.32569 -0.0485,0.45232 z m -1.67305,-1.61027 0,0 0,0 c -0.3152,0 -0.58192,0.10857 -0.7759,0.32567 l 0,0 0,0 c -0.21822,0.19902 -0.3152,0.43424 -0.33945,0.74182 l 0,0 2.15798,0 0,0 0,0 c 0,-0.30758 -0.097,-0.5428 -0.26672,-0.74182 l 0,0 0,0 c -0.19397,-0.21711 -0.4607,-0.32567 -0.77591,-0.32567 z" 21.1943 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1944 + id="path4954" 21.1945 + inkscape:connector-curvature="0" /> 21.1946 + <path 21.1947 + d="m 490.91416,423.36529 -0.16973,0 -1.13961,-2.89486 -1.13961,2.89486 -0.19398,0 -1.35783,-4.32421 0.70317,0 0.82439,2.76823 1.04262,-2.76823 0.19398,0 1.06687,2.76823 0.89714,-2.76823 0.67892,0 -1.40633,4.32421 z" 21.1948 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1949 + id="path4956" 21.1950 + inkscape:connector-curvature="0" /> 21.1951 + <path 21.1952 + d="m 492.90241,423.27483 0,-5.77164 0.70316,0 0,5.06602 2.4247,0 0,0.70562 -3.12786,0 z" 21.1953 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1954 + id="path4958" 21.1955 + inkscape:connector-curvature="0" /> 21.1956 + <path 21.1957 + d="m 498.79443,422.8044 0,0 0,0 c -0.26672,0.36187 -0.70316,0.56089 -1.26085,0.56089 l 0,0 0,0 c -0.31521,0 -0.58193,-0.12669 -0.80014,-0.36184 l 0,0 0,0 c -0.21823,-0.25332 -0.33946,-0.5428 -0.33946,-0.90466 l 0,0 0,0 c 0,-0.43424 0.16973,-0.79609 0.53343,-1.08559 l 0,0 0,0 c 0.33946,-0.30758 0.7759,-0.45231 1.30934,-0.45231 l 0,0 0,0 c 0.14548,0 0.31521,0.0361 0.48494,0.10857 l 0,0 0,0 c 0,-0.66945 -0.26672,-1.0132 -0.8244,-1.0132 l 0,0 0,0 c -0.43645,0 -0.77591,0.12669 -0.99413,0.37995 l 0,0 -0.29097,-0.63326 0,0 0,0 c 0.12125,-0.10858 0.29097,-0.21711 0.53344,-0.30758 l 0,0 0,0 c 0.24247,-0.0723 0.4607,-0.10858 0.65467,-0.10858 l 0,0 0,0 c 0.58193,0 0.99413,0.12669 1.23659,0.41613 l 0,0 0,0 c 0.24248,0.2714 0.36371,0.72372 0.36371,1.32078 l 0,0 0,1.51984 0,0 0,0 c 0,0.36184 0.097,0.61513 0.31521,0.74179 l 0,0 0,0.37995 0,0 0,0 c -0.29096,0 -0.50919,-0.0542 -0.63042,-0.14475 l 0,0 0,0 c -0.12123,-0.0723 -0.21822,-0.2171 -0.29096,-0.41614 z m -0.0727,-1.61025 0,0 0,0 c -0.21823,-0.0544 -0.36371,-0.0723 -0.43645,-0.0723 l 0,0 0,0 c -0.3637,0 -0.65467,0.0905 -0.87289,0.2895 l 0,0 0,0 c -0.21822,0.199 -0.31521,0.43421 -0.31521,0.68752 l 0,0 0,0 c 0,0.45232 0.24247,0.66944 0.70316,0.66944 l 0,0 0,0 c 0.3637,0 0.65467,-0.18093 0.92139,-0.5428 l 0,-1.03128 z" 21.1958 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1959 + id="path4960" 21.1960 + inkscape:connector-curvature="0" /> 21.1961 + <path 21.1962 + d="m 502.89216,423.27483 0,0 0,-2.46065 0,0 0,0 c 0,-0.45231 -0.0727,-0.7418 -0.19397,-0.92272 l 0,0 0,0 c -0.12124,-0.18093 -0.33946,-0.27141 -0.63042,-0.27141 l 0,0 0,0 c -0.16973,0 -0.31521,0.0362 -0.48494,0.14476 l 0,0 0,0 c -0.19398,0.10857 -0.31521,0.23519 -0.4122,0.37993 l 0,0 0,3.13009 -0.67891,0 0,-4.21566 0.46069,0 0.21822,0.5428 0,0 0,0 c 0.24247,-0.41615 0.60617,-0.61517 1.11536,-0.61517 l 0,0 0,0 c 0.84864,0 1.28509,0.56088 1.28509,1.66455 l 0,0 0,2.62348 -0.67892,0 z" 21.1963 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1964 + id="path4962" 21.1965 + inkscape:connector-curvature="0" /> 21.1966 + <path 21.1967 + d="m 504.41972,424.45086 0,0 0.36371,-0.61516 0,0 0,0 c 0.38795,0.30758 0.75166,0.45234 1.09111,0.45234 l 0,0 0,0 c 0.31521,0 0.55769,-0.0723 0.75166,-0.18093 l 0,0 0,0 c 0.16972,-0.12669 0.26672,-0.27141 0.26672,-0.43424 l 0,0 0,0 c 0,-0.34375 -0.24248,-0.52469 -0.67892,-0.52469 l 0,0 0,0 c -0.097,0 -0.21822,0.0181 -0.43645,0.0723 l 0,0 0,0 c -0.19397,0.0362 -0.3637,0.0544 -0.46069,0.0544 l 0,0 0,0 c -0.53343,0 -0.82439,-0.21713 -0.82439,-0.66945 l 0,0 0,0 c 0,-0.14474 0.0727,-0.2714 0.19397,-0.37996 l 0,0 0,0 c 0.14548,-0.12669 0.29096,-0.19902 0.46069,-0.25329 l 0,0 0,0 c -0.50918,-0.27139 -0.80014,-0.7599 -0.80014,-1.46553 l 0,0 0,0 c 0,-0.41613 0.14548,-0.79608 0.43644,-1.08557 l 0,0 0,0 c 0.26672,-0.2895 0.60618,-0.43424 1.01837,-0.43424 l 0,0 0,0 c 0.38795,0 0.67892,0.0723 0.89714,0.2533 l 0,0 0.36371,-0.45233 0.43644,0.45233 -0.4122,0.34378 0,0 0,0 c 0.16973,0.25329 0.26672,0.57897 0.26672,0.97701 l 0,0 0,0 c 0,0.41615 -0.12123,0.77799 -0.36371,1.06748 l 0,0 0,0 c -0.24246,0.28948 -0.58192,0.45233 -0.96987,0.5066 l 0,0 -0.55769,0.0544 0,0 0,0 c -0.0727,0.0181 -0.16973,0.0361 -0.29096,0.0905 l 0,0 0,0 c -0.097,0.0542 -0.14548,0.10857 -0.14548,0.19902 l 0,0 0,0 c 0,0.10857 0.097,0.16284 0.33946,0.16284 l 0,0 0,0 c 0.097,0 0.26671,-0.0362 0.48494,-0.0723 l 0,0 0,0 c 0.21822,-0.0362 0.38795,-0.0544 0.48493,-0.0544 l 0,0 0,0 c 0.38796,0 0.67892,0.0905 0.89715,0.28948 l 0,0 0,0 c 0.21822,0.19905 0.3152,0.48852 0.3152,0.83228 l 0,0 0,0 c 0,0.39806 -0.14548,0.70565 -0.46069,0.94084 l 0,0 0,0 c -0.33945,0.25331 -0.72741,0.36187 -1.23659,0.36187 l 0,0 0,0 c -0.24248,0 -0.50919,-0.0362 -0.7759,-0.14475 l 0,0 0,0 c -0.26673,-0.0905 -0.48495,-0.21712 -0.65468,-0.34378 z m 1.43058,-4.86698 0,0 0,0 c -0.24248,0 -0.43645,0.0905 -0.58193,0.27138 l 0,0 0,0 c -0.14549,0.19902 -0.21822,0.41614 -0.21822,0.66943 l 0,0 0,0 c 0,0.28949 0.0727,0.5428 0.21822,0.72373 l 0,0 0,0 c 0.14548,0.19902 0.33945,0.28948 0.58193,0.28948 l 0,0 0,0 c 0.24247,0 0.43644,-0.0905 0.58193,-0.27139 l 0,0 0,0 c 0.14548,-0.19902 0.19397,-0.43424 0.19397,-0.74182 l 0,0 0,0 c 0,-0.25329 -0.0727,-0.47041 -0.21822,-0.66943 l 0,0 0,0 c -0.14548,-0.18092 -0.33946,-0.27138 -0.55768,-0.27138 z" 21.1968 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1969 + id="path4964" 21.1970 + inkscape:connector-curvature="0" /> 21.1971 + <path 21.1972 + d="m 509.99653,420.48852 1.23659,0 0,0.56088 -1.23659,0 0,1.35697 -0.50918,0 0,-1.35697 -1.26085,0 0,-0.56088 1.26085,0 0,-1.33888 0.50918,0 0,1.33888 z" 21.1973 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1974 + id="path4966" 21.1975 + inkscape:connector-curvature="0" /> 21.1976 + <path 21.1977 + d="m 512.93041,421.0494 0,0 0,2.22543 -0.7274,0 0,-5.77164 0,0 0,0 c 0.55767,-0.0362 0.89713,-0.0362 0.99412,-0.0362 l 0,0 0,0 c 1.55181,0 2.32771,0.56089 2.32771,1.68266 l 0,0 0,0 c 0,1.2846 -0.67892,1.93595 -2.06099,1.93595 l 0,0 0,0 c -0.0727,0 -0.24247,-0.0181 -0.53344,-0.0362 z m 0,-2.8406 0,0 0,2.13498 0,0 0,0 c 0.31521,0.0181 0.48494,0.0362 0.48494,0.0362 l 0,0 0,0 c 0.89714,0 1.35783,-0.37996 1.35783,-1.13986 l 0,0 0,0 c 0,-0.72371 -0.48494,-1.06746 -1.43057,-1.06746 l 0,0 0,0 c -0.097,0 -0.24247,0.0181 -0.4122,0.0362 z" 21.1978 + style="fill:#800066;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.1979 + id="path4968" 21.1980 + inkscape:connector-curvature="0" /> 21.1981 + <text 21.1982 + xml:space="preserve" 21.1983 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 21.1984 + x="570.58966" 21.1985 + y="459.09607" 21.1986 + id="text5053" 21.1987 + sodipodi:linespacing="125%"><tspan 21.1988 + sodipodi:role="line" 21.1989 + id="tspan5055" 21.1990 + x="570.58966" 21.1991 + y="459.09607">Lang Syntax</tspan></text> 21.1992 + <rect 21.1993 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 1;stroke-dashoffset:0" 21.1994 + id="rect5088" 21.1995 + width="53.784859" 21.1996 + height="12.350597" 21.1997 + x="567.80878" 21.1998 + y="449.52637" /> 21.1999 + <g 21.2000 + id="g11409" 21.2001 + transform="translate(18.42735,0)"> 21.2002 + <text 21.2003 + xml:space="preserve" 21.2004 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 21.2005 + x="552.58966" 21.2006 + y="513.97961" 21.2007 + id="text5057" 21.2008 + sodipodi:linespacing="125%"><tspan 21.2009 + sodipodi:role="line" 21.2010 + id="tspan5059" 21.2011 + x="552.58966" 21.2012 + y="513.97961">Request Intf</tspan></text> 21.2013 + <rect 21.2014 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 0.99999999;stroke-dashoffset:0" 21.2015 + id="rect5090" 21.2016 + width="52.938667" 21.2017 + height="12.350597" 21.2018 + x="549.80878" 21.2019 + y="504.41" /> 21.2020 + </g> 21.2021 + <g 21.2022 + id="g11399" 21.2023 + transform="translate(-29.57265,13.57265)"> 21.2024 + <text 21.2025 + sodipodi:linespacing="125%" 21.2026 + id="text5061" 21.2027 + y="565.97961" 21.2028 + x="616.58966" 21.2029 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 21.2030 + xml:space="preserve"><tspan 21.2031 + y="565.97961" 21.2032 + x="616.58966" 21.2033 + id="tspan5063" 21.2034 + sodipodi:role="line">VMS Intf</tspan></text> 21.2035 + <rect 21.2036 + y="556.40991" 21.2037 + x="613.80878" 21.2038 + height="12.350597" 21.2039 + width="37.162453" 21.2040 + id="rect5092" 21.2041 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.99999999, 1;stroke-dashoffset:0" /> 21.2042 + </g> 21.2043 + <g 21.2044 + id="g11404" 21.2045 + transform="translate(-8.5641025,0.42735043)"> 21.2046 + <text 21.2047 + sodipodi:linespacing="125%" 21.2048 + id="text5065" 21.2049 + y="609.58124" 21.2050 + x="616.58966" 21.2051 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 21.2052 + xml:space="preserve"><tspan 21.2053 + y="609.58124" 21.2054 + x="616.58966" 21.2055 + id="tspan5067" 21.2056 + sodipodi:role="line">ISA</tspan></text> 21.2057 + <rect 21.2058 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.00000002, 1.00000001;stroke-dashoffset:0" 21.2059 + id="rect5094" 21.2060 + width="15.990735" 21.2061 + height="12.350597" 21.2062 + x="613.80878" 21.2063 + y="600.01154" /> 21.2064 + </g> 21.2065 + <path 21.2066 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 1;stroke-dashoffset:0" 21.2067 + d="m 149.50538,456.07322 419.95554,0 0,0 0,0" 21.2068 + id="path5864" 21.2069 + inkscape:connector-curvature="0" /> 21.2070 + <path 21.2071 + inkscape:connector-curvature="0" 21.2072 + id="path5866" 21.2073 + d="m 149.43272,510.92792 417.39372,0 0,0 0,0" 21.2074 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.99999986, 0.99999992;stroke-dashoffset:0" /> 21.2075 + <path 21.2076 + style="fill:none;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.99999983, 0.99999992;stroke-dashoffset:0" 21.2077 + d="m 149.74889,576.50057 433.61341,0 0,0 0,0" 21.2078 + id="path5868" 21.2079 + inkscape:connector-curvature="0" /> 21.2080 + <path 21.2081 + inkscape:connector-curvature="0" 21.2082 + id="path5870" 21.2083 + d="m 150.01815,606.92792 454.52761,0 0,0 0,0" 21.2084 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.99999977, 0.99999988;stroke-dashoffset:0" /> 21.2085 + <path 21.2086 + inkscape:connector-curvature="0" 21.2087 + id="path5872" 21.2088 + d="m 149.79599,426.92792 471.66496,0 0,0 0,0" 21.2089 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 21.2090 + <path 21.2091 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2092 + d="m 149.79599,624.92792 471.66496,0 0,0 0,0" 21.2093 + id="path5874" 21.2094 + inkscape:connector-curvature="0" /> 21.2095 + <text 21.2096 + xml:space="preserve" 21.2097 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 21.2098 + x="495.74597" 21.2099 + y="-651.70679" 21.2100 + id="text11414" 21.2101 + sodipodi:linespacing="125%" 21.2102 + transform="matrix(0,1,-1,0,0,0)"><tspan 21.2103 + sodipodi:role="line" 21.2104 + id="tspan11416" 21.2105 + x="495.74597" 21.2106 + y="-651.70679" 21.2107 + style="font-size:18px">Interface</tspan></text> 21.2108 + <text 21.2109 + xml:space="preserve" 21.2110 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2111 + x="-548.71796" 21.2112 + y="141.05817" 21.2113 + id="text11418" 21.2114 + sodipodi:linespacing="125%" 21.2115 + transform="matrix(0,-1,1,0,0,0)"><tspan 21.2116 + sodipodi:role="line" 21.2117 + id="tspan11420" 21.2118 + x="-548.71796" 21.2119 + y="141.05817" 21.2120 + style="font-size:18px">Layer</tspan></text> 21.2121 + <path 21.2122 + inkscape:connector-curvature="0" 21.2123 + id="path12247" 21.2124 + d="m 243.82877,575.78262 100.97409,0 0,0 0,0" 21.2125 + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 21.2126 + <g 21.2127 + id="g13494"> 21.2128 + <path 21.2129 + inkscape:connector-curvature="0" 21.2130 + id="path11477" 21.2131 + d="m 277.87593,455.78262 29.22252,0 0,0 0,0" 21.2132 + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 21.2133 + <path 21.2134 + sodipodi:nodetypes="cc" 21.2135 + inkscape:connector-curvature="0" 21.2136 + id="path12255" 21.2137 + d="m 303.00855,475.78099 12.82051,8.11965" 21.2138 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 21.2139 + <g 21.2140 + transform="translate(-28,-20)" 21.2141 + id="g12725"> 21.2142 + <rect 21.2143 + y="483.71259" 21.2144 + x="299.65811" 21.2145 + height="12.393162" 21.2146 + width="41.452991" 21.2147 + id="rect12249" 21.2148 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 21.2149 + <text 21.2150 + xml:space="preserve" 21.2151 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2152 + x="303.21664" 21.2153 + y="492.81934" 21.2154 + id="text12721" 21.2155 + sodipodi:linespacing="125%"><tspan 21.2156 + sodipodi:role="line" 21.2157 + id="tspan12723" 21.2158 + x="303.21664" 21.2159 + y="492.81934" 21.2160 + style="fill:#008080">Toolchain</tspan></text> 21.2161 + </g> 21.2162 + <g 21.2163 + transform="translate(-2,0.8547008)" 21.2164 + id="g12738"> 21.2165 + <rect 21.2166 + y="483.71259" 21.2167 + x="299.65811" 21.2168 + height="12.393162" 21.2169 + width="41.452991" 21.2170 + id="rect12740" 21.2171 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 21.2172 + <text 21.2173 + xml:space="preserve" 21.2174 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2175 + x="300.78931" 21.2176 + y="492.81934" 21.2177 + id="text12742" 21.2178 + sodipodi:linespacing="125%"><tspan 21.2179 + sodipodi:role="line" 21.2180 + id="tspan12744" 21.2181 + x="300.78931" 21.2182 + y="492.81934" 21.2183 + style="fill:#ff7f2a">Specializer</tspan></text> 21.2184 + </g> 21.2185 + <path 21.2186 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 21.2187 + d="m 282.42388,475.78099 -12.82051,8.11965" 21.2188 + id="path12746" 21.2189 + inkscape:connector-curvature="0" 21.2190 + sodipodi:nodetypes="cc" /> 21.2191 + <g 21.2192 + id="g12748" 21.2193 + transform="translate(-50,0.8547008)"> 21.2194 + <rect 21.2195 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 21.2196 + id="rect12750" 21.2197 + width="41.452991" 21.2198 + height="12.393162" 21.2199 + x="299.65811" 21.2200 + y="483.71259" /> 21.2201 + <text 21.2202 + sodipodi:linespacing="125%" 21.2203 + id="text12752" 21.2204 + y="492.81934" 21.2205 + x="300.78931" 21.2206 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2207 + xml:space="preserve"><tspan 21.2208 + y="492.81934" 21.2209 + x="300.78931" 21.2210 + id="tspan12754" 21.2211 + sodipodi:role="line" 21.2212 + style="fill:#ff0000">Specializer</tspan></text> 21.2213 + </g> 21.2214 + <path 21.2215 + sodipodi:nodetypes="cc" 21.2216 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 21.2217 + d="m 292.0558,457.01631 0,5.71571" 21.2218 + id="path12756" 21.2219 + inkscape:connector-curvature="0" /> 21.2220 + </g> 21.2221 + <g 21.2222 + id="g13512" 21.2223 + transform="translate(102,0)"> 21.2224 + <path 21.2225 + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 21.2226 + d="m 277.87593,455.78262 29.22252,0 0,0 0,0" 21.2227 + id="path13514" 21.2228 + inkscape:connector-curvature="0" /> 21.2229 + <path 21.2230 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 21.2231 + d="m 303.00855,475.78099 12.82051,8.11965" 21.2232 + id="path13516" 21.2233 + inkscape:connector-curvature="0" 21.2234 + sodipodi:nodetypes="cc" /> 21.2235 + <g 21.2236 + id="g13518" 21.2237 + transform="translate(-28,-20)"> 21.2238 + <rect 21.2239 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 21.2240 + id="rect13520" 21.2241 + width="41.452991" 21.2242 + height="12.393162" 21.2243 + x="299.65811" 21.2244 + y="483.71259" /> 21.2245 + <text 21.2246 + sodipodi:linespacing="125%" 21.2247 + id="text13522" 21.2248 + y="492.81934" 21.2249 + x="303.21664" 21.2250 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2251 + xml:space="preserve"><tspan 21.2252 + y="492.81934" 21.2253 + x="303.21664" 21.2254 + id="tspan13524" 21.2255 + sodipodi:role="line" 21.2256 + style="fill:#0000ff">Toolchain</tspan></text> 21.2257 + </g> 21.2258 + <g 21.2259 + id="g13526" 21.2260 + transform="translate(-2,0.8547008)"> 21.2261 + <rect 21.2262 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 21.2263 + id="rect13528" 21.2264 + width="41.452991" 21.2265 + height="12.393162" 21.2266 + x="299.65811" 21.2267 + y="483.71259" /> 21.2268 + <text 21.2269 + sodipodi:linespacing="125%" 21.2270 + id="text13530" 21.2271 + y="492.81934" 21.2272 + x="300.78931" 21.2273 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2274 + xml:space="preserve"><tspan 21.2275 + y="492.81934" 21.2276 + x="300.78931" 21.2277 + id="tspan13532" 21.2278 + sodipodi:role="line" 21.2279 + style="fill:#ff7f2a">Specializer</tspan></text> 21.2280 + </g> 21.2281 + <path 21.2282 + sodipodi:nodetypes="cc" 21.2283 + inkscape:connector-curvature="0" 21.2284 + id="path13534" 21.2285 + d="m 282.42388,475.78099 -12.82051,8.11965" 21.2286 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 21.2287 + <g 21.2288 + transform="translate(-50,0.8547008)" 21.2289 + id="g13536"> 21.2290 + <rect 21.2291 + y="483.71259" 21.2292 + x="299.65811" 21.2293 + height="12.393162" 21.2294 + width="41.452991" 21.2295 + id="rect13538" 21.2296 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 21.2297 + <text 21.2298 + xml:space="preserve" 21.2299 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2300 + x="300.78931" 21.2301 + y="492.81934" 21.2302 + id="text13540" 21.2303 + sodipodi:linespacing="125%"><tspan 21.2304 + sodipodi:role="line" 21.2305 + id="tspan13542" 21.2306 + x="300.78931" 21.2307 + y="492.81934" 21.2308 + style="fill:#ff0000">Specializer</tspan></text> 21.2309 + </g> 21.2310 + <path 21.2311 + inkscape:connector-curvature="0" 21.2312 + id="path13544" 21.2313 + d="m 292.0558,457.01631 0,5.71571" 21.2314 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 21.2315 + sodipodi:nodetypes="cc" /> 21.2316 + </g> 21.2317 + <g 21.2318 + transform="translate(204,0)" 21.2319 + id="g13546"> 21.2320 + <path 21.2321 + inkscape:connector-curvature="0" 21.2322 + id="path13548" 21.2323 + d="m 277.87593,455.78262 29.22252,0 0,0 0,0" 21.2324 + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 21.2325 + <path 21.2326 + sodipodi:nodetypes="cc" 21.2327 + inkscape:connector-curvature="0" 21.2328 + id="path13550" 21.2329 + d="m 303.00855,475.78099 12.82051,8.11965" 21.2330 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> 21.2331 + <g 21.2332 + transform="translate(-28,-20)" 21.2333 + id="g13552"> 21.2334 + <rect 21.2335 + y="483.71259" 21.2336 + x="299.65811" 21.2337 + height="12.393162" 21.2338 + width="41.452991" 21.2339 + id="rect13554" 21.2340 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 21.2341 + <text 21.2342 + xml:space="preserve" 21.2343 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2344 + x="303.21664" 21.2345 + y="492.81934" 21.2346 + id="text13556" 21.2347 + sodipodi:linespacing="125%"><tspan 21.2348 + sodipodi:role="line" 21.2349 + id="tspan13558" 21.2350 + x="303.21664" 21.2351 + y="492.81934" 21.2352 + style="fill:#800080">Toolchain</tspan></text> 21.2353 + </g> 21.2354 + <g 21.2355 + transform="translate(-2,0.8547008)" 21.2356 + id="g13560"> 21.2357 + <rect 21.2358 + y="483.71259" 21.2359 + x="299.65811" 21.2360 + height="12.393162" 21.2361 + width="41.452991" 21.2362 + id="rect13562" 21.2363 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 21.2364 + <text 21.2365 + xml:space="preserve" 21.2366 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2367 + x="300.78931" 21.2368 + y="492.81934" 21.2369 + id="text13564" 21.2370 + sodipodi:linespacing="125%"><tspan 21.2371 + sodipodi:role="line" 21.2372 + id="tspan13566" 21.2373 + x="300.78931" 21.2374 + y="492.81934" 21.2375 + style="fill:#ff7f2a">Specializer</tspan></text> 21.2376 + </g> 21.2377 + <path 21.2378 + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" 21.2379 + d="m 282.42388,475.78099 -12.82051,8.11965" 21.2380 + id="path13568" 21.2381 + inkscape:connector-curvature="0" 21.2382 + sodipodi:nodetypes="cc" /> 21.2383 + <g 21.2384 + id="g13570" 21.2385 + transform="translate(-50,0.8547008)"> 21.2386 + <rect 21.2387 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 21.2388 + id="rect13572" 21.2389 + width="41.452991" 21.2390 + height="12.393162" 21.2391 + x="299.65811" 21.2392 + y="483.71259" /> 21.2393 + <text 21.2394 + sodipodi:linespacing="125%" 21.2395 + id="text13574" 21.2396 + y="492.81934" 21.2397 + x="300.78931" 21.2398 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2399 + xml:space="preserve"><tspan 21.2400 + y="492.81934" 21.2401 + x="300.78931" 21.2402 + id="tspan13576" 21.2403 + sodipodi:role="line" 21.2404 + style="fill:#ff0000">Specializer</tspan></text> 21.2405 + </g> 21.2406 + <path 21.2407 + sodipodi:nodetypes="cc" 21.2408 + style="fill:none;stroke:#000000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" 21.2409 + d="m 292.0558,457.01631 0,5.71571" 21.2410 + id="path13578" 21.2411 + inkscape:connector-curvature="0" /> 21.2412 + </g> 21.2413 + <path 21.2414 + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" 21.2415 + d="m 446.68347,575.78262 100.97409,0 0,0 0,0" 21.2416 + id="path13580" 21.2417 + inkscape:connector-curvature="0" /> 21.2418 + <text 21.2419 + sodipodi:linespacing="125%" 21.2420 + id="text4733" 21.2421 + y="590.5202" 21.2422 + x="149.67584" 21.2423 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2424 + xml:space="preserve"><tspan 21.2425 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS" 21.2426 + y="590.5202" 21.2427 + x="149.67584" 21.2428 + sodipodi:role="line" 21.2429 + id="tspan4737">Proto-</tspan></text> 21.2430 + <text 21.2431 + xml:space="preserve" 21.2432 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2433 + x="149.67584" 21.2434 + y="602.5202" 21.2435 + id="text4741" 21.2436 + sodipodi:linespacing="125%"><tspan 21.2437 + id="tspan4743" 21.2438 + sodipodi:role="line" 21.2439 + x="149.67584" 21.2440 + y="602.5202" 21.2441 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS">Runtime</tspan></text> 21.2442 + <text 21.2443 + sodipodi:linespacing="125%" 21.2444 + id="text4745" 21.2445 + y="620.5202" 21.2446 + x="149.67584" 21.2447 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2448 + xml:space="preserve"><tspan 21.2449 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS" 21.2450 + y="620.5202" 21.2451 + x="149.67584" 21.2452 + sodipodi:role="line" 21.2453 + id="tspan4747">Hardware</tspan></text> 21.2454 + <text 21.2455 + xml:space="preserve" 21.2456 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2457 + x="149.67584" 21.2458 + y="542.5202" 21.2459 + id="text4749" 21.2460 + sodipodi:linespacing="125%"><tspan 21.2461 + id="tspan4751" 21.2462 + sodipodi:role="line" 21.2463 + x="149.67584" 21.2464 + y="542.5202" 21.2465 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS">Language</tspan></text> 21.2466 + <text 21.2467 + sodipodi:linespacing="125%" 21.2468 + id="text4753" 21.2469 + y="554.5202" 21.2470 + x="149.67584" 21.2471 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2472 + xml:space="preserve"><tspan 21.2473 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS" 21.2474 + y="554.5202" 21.2475 + x="149.67584" 21.2476 + sodipodi:role="line" 21.2477 + id="tspan4755">Plugin</tspan></text> 21.2478 + <text 21.2479 + sodipodi:linespacing="125%" 21.2480 + id="text4757" 21.2481 + y="482.5202" 21.2482 + x="149.67584" 21.2483 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2484 + xml:space="preserve"><tspan 21.2485 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS" 21.2486 + y="482.5202" 21.2487 + x="149.67584" 21.2488 + sodipodi:role="line" 21.2489 + id="tspan4759">Language</tspan></text> 21.2490 + <text 21.2491 + xml:space="preserve" 21.2492 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2493 + x="149.67584" 21.2494 + y="494.5202" 21.2495 + id="text4761" 21.2496 + sodipodi:linespacing="125%"><tspan 21.2497 + id="tspan4763" 21.2498 + sodipodi:role="line" 21.2499 + x="149.67584" 21.2500 + y="494.5202" 21.2501 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS">Toolchain</tspan></text> 21.2502 + <text 21.2503 + sodipodi:linespacing="125%" 21.2504 + id="text4769" 21.2505 + y="444.5202" 21.2506 + x="149.67584" 21.2507 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2508 + xml:space="preserve"><tspan 21.2509 + style="font-size:13px;font-weight:normal;-inkscape-font-specification:Trebuchet MS" 21.2510 + y="444.5202" 21.2511 + x="149.67584" 21.2512 + sodipodi:role="line" 21.2513 + id="tspan4771">Application</tspan></text> 21.2514 + <path 21.2515 + d="m 214.28486,532.64946 0,23.24944 -0.63042,0 -0.60618,0 0,-23.24944 0.60618,0 0.63042,0 z" 21.2516 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 21.2517 + id="path4773" 21.2518 + inkscape:connector-curvature="0" /> 21.2519 + <text 21.2520 + sodipodi:linespacing="125%" 21.2521 + id="text5271" 21.2522 + y="498.5202" 21.2523 + x="595.58405" 21.2524 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2525 + xml:space="preserve"><tspan 21.2526 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 21.2527 + y="498.5202" 21.2528 + x="595.58405" 21.2529 + sodipodi:role="line" 21.2530 + id="tspan5273">Executable</tspan></text> 21.2531 + <text 21.2532 + xml:space="preserve" 21.2533 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2534 + x="589.67584" 21.2535 + y="444.5202" 21.2536 + id="text5275" 21.2537 + sodipodi:linespacing="125%"><tspan 21.2538 + id="tspan5277" 21.2539 + sodipodi:role="line" 21.2540 + x="589.67584" 21.2541 + y="444.5202" 21.2542 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Xpress SF;-inkscape-font-specification:Xpress SF">Source Code</tspan></text> 21.2543 + <text 21.2544 + xml:space="preserve" 21.2545 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2546 + x="606.43365" 21.2547 + y="528.5202" 21.2548 + id="text5279" 21.2549 + sodipodi:linespacing="125%"><tspan 21.2550 + id="tspan5281" 21.2551 + sodipodi:role="line" 21.2552 + x="606.43365" 21.2553 + y="528.5202" 21.2554 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Xpress SF;-inkscape-font-specification:Xpress SF">Runtime</tspan></text> 21.2555 + <text 21.2556 + xml:space="preserve" 21.2557 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2558 + x="601.0636" 21.2559 + y="472.5202" 21.2560 + id="text6129" 21.2561 + sodipodi:linespacing="125%"><tspan 21.2562 + id="tspan6131" 21.2563 + sodipodi:role="line" 21.2564 + x="601.0636" 21.2565 + y="472.5202" 21.2566 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Xpress SF;-inkscape-font-specification:Xpress SF">Toolchain</tspan></text> 21.2567 + <g 21.2568 + id="g6133" 21.2569 + transform="matrix(0.25335872,0,0,0.44105307,460.34347,310.90235)"> 21.2570 + <path 21.2571 + inkscape:connector-curvature="0" 21.2572 + id="path6135" 21.2573 + d="m 657.61111,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 21.2574 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 21.2575 + <path 21.2576 + sodipodi:nodetypes="cc" 21.2577 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2578 + d="m 651.37501,457.22329 c 14.58334,15.97223 14.58334,15.97223 14.58334,15.97223" 21.2579 + id="path6137" 21.2580 + inkscape:connector-curvature="0" /> 21.2581 + <path 21.2582 + inkscape:connector-curvature="0" 21.2583 + id="path6139" 21.2584 + d="m 679.95835,457.22329 c -14.58334,15.97223 -14.58334,15.97223 -14.58334,15.97223" 21.2585 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2586 + sodipodi:nodetypes="cc" /> 21.2587 + <path 21.2588 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2589 + d="m 652.2361,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 21.2590 + id="path6141" 21.2591 + inkscape:connector-curvature="0" /> 21.2592 + <path 21.2593 + inkscape:connector-curvature="0" 21.2594 + id="path6143" 21.2595 + d="m 673.54166,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 21.2596 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 21.2597 + <path 21.2598 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2599 + d="m 673.95833,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 21.2600 + id="path6145" 21.2601 + inkscape:connector-curvature="0" /> 21.2602 + <path 21.2603 + inkscape:connector-curvature="0" 21.2604 + id="path6147" 21.2605 + d="m 658.2361,438.43164 c 15.8786,0 15.8786,0 15.8786,0" 21.2606 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 21.2607 + </g> 21.2608 + <g 21.2609 + transform="matrix(0.25335872,0,0,-0.44105307,468.34347,712.67814)" 21.2610 + id="g6165"> 21.2611 + <path 21.2612 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2613 + d="m 657.61111,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 21.2614 + id="path6167" 21.2615 + inkscape:connector-curvature="0" /> 21.2616 + <path 21.2617 + inkscape:connector-curvature="0" 21.2618 + id="path6169" 21.2619 + d="m 651.37501,457.22329 c 14.58334,15.97223 14.58334,15.97223 14.58334,15.97223" 21.2620 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2621 + sodipodi:nodetypes="cc" /> 21.2622 + <path 21.2623 + sodipodi:nodetypes="cc" 21.2624 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2625 + d="m 679.95835,457.22329 c -14.58334,15.97223 -14.58334,15.97223 -14.58334,15.97223" 21.2626 + id="path6171" 21.2627 + inkscape:connector-curvature="0" /> 21.2628 + <path 21.2629 + inkscape:connector-curvature="0" 21.2630 + id="path6173" 21.2631 + d="m 652.2361,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 21.2632 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 21.2633 + <path 21.2634 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2635 + d="m 673.54166,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 21.2636 + id="path6175" 21.2637 + inkscape:connector-curvature="0" /> 21.2638 + <path 21.2639 + inkscape:connector-curvature="0" 21.2640 + id="path6177" 21.2641 + d="m 673.95833,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 21.2642 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 21.2643 + <path 21.2644 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2645 + d="m 658.2361,438.43164 c 15.8786,0 15.8786,0 15.8786,0" 21.2646 + id="path6179" 21.2647 + inkscape:connector-curvature="0" /> 21.2648 + </g> 21.2649 + <g 21.2650 + transform="matrix(0.25335872,0,0,0.44105307,460.34347,254.90235)" 21.2651 + id="g6181"> 21.2652 + <path 21.2653 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2654 + d="m 657.61111,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 21.2655 + id="path6183" 21.2656 + inkscape:connector-curvature="0" /> 21.2657 + <path 21.2658 + inkscape:connector-curvature="0" 21.2659 + id="path6185" 21.2660 + d="m 651.37501,457.22329 c 14.58334,15.97223 14.58334,15.97223 14.58334,15.97223" 21.2661 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2662 + sodipodi:nodetypes="cc" /> 21.2663 + <path 21.2664 + sodipodi:nodetypes="cc" 21.2665 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2666 + d="m 679.95835,457.22329 c -14.58334,15.97223 -14.58334,15.97223 -14.58334,15.97223" 21.2667 + id="path6187" 21.2668 + inkscape:connector-curvature="0" /> 21.2669 + <path 21.2670 + inkscape:connector-curvature="0" 21.2671 + id="path6189" 21.2672 + d="m 652.2361,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 21.2673 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 21.2674 + <path 21.2675 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2676 + d="m 673.54166,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 21.2677 + id="path6191" 21.2678 + inkscape:connector-curvature="0" /> 21.2679 + <path 21.2680 + inkscape:connector-curvature="0" 21.2681 + id="path6193" 21.2682 + d="m 673.95833,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 21.2683 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 21.2684 + <path 21.2685 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2686 + d="m 658.2361,438.43164 c 15.8786,0 15.8786,0 15.8786,0" 21.2687 + id="path6195" 21.2688 + inkscape:connector-curvature="0" /> 21.2689 + </g> 21.2690 + <g 21.2691 + transform="matrix(0.25335872,0,0,0.44105307,460.34347,374.90235)" 21.2692 + id="g6197"> 21.2693 + <path 21.2694 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2695 + d="m 657.61111,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 21.2696 + id="path6199" 21.2697 + inkscape:connector-curvature="0" /> 21.2698 + <path 21.2699 + inkscape:connector-curvature="0" 21.2700 + id="path6201" 21.2701 + d="m 651.37501,457.22329 c 14.58334,15.97223 14.58334,15.97223 14.58334,15.97223" 21.2702 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2703 + sodipodi:nodetypes="cc" /> 21.2704 + <path 21.2705 + sodipodi:nodetypes="cc" 21.2706 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2707 + d="m 679.95835,457.22329 c -14.58334,15.97223 -14.58334,15.97223 -14.58334,15.97223" 21.2708 + id="path6203" 21.2709 + inkscape:connector-curvature="0" /> 21.2710 + <path 21.2711 + inkscape:connector-curvature="0" 21.2712 + id="path6205" 21.2713 + d="m 652.2361,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 21.2714 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 21.2715 + <path 21.2716 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2717 + d="m 673.54166,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 21.2718 + id="path6207" 21.2719 + inkscape:connector-curvature="0" /> 21.2720 + <path 21.2721 + inkscape:connector-curvature="0" 21.2722 + id="path6209" 21.2723 + d="m 673.95833,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 21.2724 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 21.2725 + <path 21.2726 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2727 + d="m 658.2361,438.43164 c 15.8786,0 15.8786,0 15.8786,0" 21.2728 + id="path6211" 21.2729 + inkscape:connector-curvature="0" /> 21.2730 + </g> 21.2731 + <g 21.2732 + id="g6213" 21.2733 + transform="matrix(0.25335872,0,0,-0.44105307,468.34347,776.67814)"> 21.2734 + <path 21.2735 + inkscape:connector-curvature="0" 21.2736 + id="path6215" 21.2737 + d="m 657.61111,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 21.2738 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 21.2739 + <path 21.2740 + sodipodi:nodetypes="cc" 21.2741 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2742 + d="m 651.37501,457.22329 c 14.58334,15.97223 14.58334,15.97223 14.58334,15.97223" 21.2743 + id="path6217" 21.2744 + inkscape:connector-curvature="0" /> 21.2745 + <path 21.2746 + inkscape:connector-curvature="0" 21.2747 + id="path6219" 21.2748 + d="m 679.95835,457.22329 c -14.58334,15.97223 -14.58334,15.97223 -14.58334,15.97223" 21.2749 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2750 + sodipodi:nodetypes="cc" /> 21.2751 + <path 21.2752 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2753 + d="m 652.2361,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 21.2754 + id="path6221" 21.2755 + inkscape:connector-curvature="0" /> 21.2756 + <path 21.2757 + inkscape:connector-curvature="0" 21.2758 + id="path6223" 21.2759 + d="m 673.54166,457.4733 c 5.89524,0 5.89524,0 5.89524,0" 21.2760 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 21.2761 + <path 21.2762 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 21.2763 + d="m 673.95833,437.75107 c 0,19.44445 0,19.44445 0,19.44445" 21.2764 + id="path6225" 21.2765 + inkscape:connector-curvature="0" /> 21.2766 + <path 21.2767 + inkscape:connector-curvature="0" 21.2768 + id="path6227" 21.2769 + d="m 658.2361,438.43164 c 15.8786,0 15.8786,0 15.8786,0" 21.2770 + style="fill:none;stroke:#000000;stroke-width:2.99148369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 21.2771 + </g> 21.2772 + <text 21.2773 + sodipodi:linespacing="125%" 21.2774 + id="text6229" 21.2775 + y="564.5202" 21.2776 + x="615.02844" 21.2777 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2778 + xml:space="preserve"><tspan 21.2779 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Xpress SF;-inkscape-font-specification:Xpress SF" 21.2780 + y="564.5202" 21.2781 + x="615.02844" 21.2782 + sodipodi:role="line" 21.2783 + id="tspan6231">Plugin</tspan></text> 21.2784 + <text 21.2785 + xml:space="preserve" 21.2786 + style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2787 + x="605.17816" 21.2788 + y="592.5202" 21.2789 + id="text6233" 21.2790 + sodipodi:linespacing="125%"><tspan 21.2791 + id="tspan6235" 21.2792 + sodipodi:role="line" 21.2793 + x="605.17816" 21.2794 + y="592.5202" 21.2795 + style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Xpress SF;-inkscape-font-specification:Xpress SF">Proto-RT</tspan></text> 21.2796 + <text 21.2797 + sodipodi:linespacing="125%" 21.2798 + id="text12752-4" 21.2799 + y="600.63922" 21.2800 + x="235.119" 21.2801 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2802 + xml:space="preserve"><tspan 21.2803 + y="600.63922" 21.2804 + x="235.119" 21.2805 + id="tspan12754-6" 21.2806 + sodipodi:role="line" 21.2807 + style="font-size:7px;fill:#ff0000">VMS (Proto-RT)</tspan></text> 21.2808 + <text 21.2809 + xml:space="preserve" 21.2810 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2811 + x="309.11899" 21.2812 + y="600.63922" 21.2813 + id="text6258" 21.2814 + sodipodi:linespacing="125%"><tspan 21.2815 + style="font-size:7px;fill:#ff0000" 21.2816 + sodipodi:role="line" 21.2817 + id="tspan6260" 21.2818 + x="309.11899" 21.2819 + y="600.63922">VMS (Proto-RT)</tspan></text> 21.2820 + <text 21.2821 + sodipodi:linespacing="125%" 21.2822 + id="text6262" 21.2823 + y="600.63922" 21.2824 + x="399.6481" 21.2825 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2826 + xml:space="preserve"><tspan 21.2827 + y="600.63922" 21.2828 + x="399.6481" 21.2829 + id="tspan6264" 21.2830 + sodipodi:role="line" 21.2831 + style="font-size:7px;fill:#ff6600">VMS (Proto-RT)</tspan></text> 21.2832 + <text 21.2833 + xml:space="preserve" 21.2834 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2835 + x="473.6481" 21.2836 + y="600.63922" 21.2837 + id="text6266" 21.2838 + sodipodi:linespacing="125%"><tspan 21.2839 + style="font-size:7px;fill:#ff6600" 21.2840 + sodipodi:role="line" 21.2841 + id="tspan6268" 21.2842 + x="473.6481" 21.2843 + y="600.63922">VMS (Proto-RT)</tspan></text> 21.2844 + <text 21.2845 + sodipodi:linespacing="125%" 21.2846 + id="text6270" 21.2847 + y="600.63922" 21.2848 + x="547.64807" 21.2849 + style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 21.2850 + xml:space="preserve"><tspan 21.2851 + y="600.63922" 21.2852 + x="547.64807" 21.2853 + id="tspan6272" 21.2854 + sodipodi:role="line" 21.2855 + style="font-size:7px;fill:#ff6600">VMS (Proto-RT)</tspan></text> 21.2856 + </g> 21.2857 +</svg>
22.1 Binary file 1__Presentations/12__FASPP_slides/FASPP__HW_support.odp has changed
23.1 Binary file 1__Presentations/12__FASPP_slides/FASPP__HW_support.pdf has changed
24.1 Binary file CVs/12_Ap__Euro_Fellowship_CV/euro_fellowship_CV_w_pubs.pdf has changed
25.1 --- a/CVs/12_Ap__Euro_Fellowship_CV/euro_fellowship_CV_w_pubs.tex Fri Aug 17 19:01:07 2012 +0200 25.2 +++ b/CVs/12_Ap__Euro_Fellowship_CV/euro_fellowship_CV_w_pubs.tex Mon Oct 08 23:03:26 2012 -0700 25.3 @@ -58,7 +58,7 @@ 25.4 25.5 \end{minipage} 25.6 25.7 -\section{Overview/Summary} Sean is a researcher and sometimes entrepreneur. As an undergraduate and masters student, his research at UC Berkeley demonstrated the first evidence of secure communication using chaos, spread spectrum communication using a chaotic carrier signal, and gain from perturbation of chaotic circuits, with a total of 680+ citations to these papers. He left with his Masters in 1994, to pursue starting a company with technology developed during a graduate course, eventually founding a fabless chip company around a MIMD-SIMD low-power massively parallel processor for graphics (ProSide), in 1997. After the company's demise, he switched to software and worked his way up the chain, ending at Chief Software Architect at Nevik in 2000. The dot-com crash precipitated a return to academia to start his PhD in 2003, where he worked on parallelism, developing a theory of parallel computation, and a performance-portable software stack. As part of this, in 2008 he was invited by Albert Cohen to work in Paris at INRIA, the national computer science research institute for France, concentrating on new parallel languages for high productivity and high performance portability. This led to BLIS and VMS, two technologies that became the basis of his dissertation, for which he received his PhD in 2011. He is currently advancing the software stack to support performance-portable parallel languages. 25.8 +\section{Overview/Summary} Sean is a researcher, and former entrepreneur. As an undergraduate and masters student, his research at UC Berkeley demonstrated the first evidence of secure communication using chaos, spread spectrum communication using a chaotic carrier signal, and gain from perturbation of chaotic circuits, with a total of 680+ citations to these papers. He left with his Masters in 1994, to pursue starting a company with technology developed during a graduate course, eventually founding a fabless chip company around a massively parallel MIMD-SIMD low-power processor for graphics (ProSide), in 1997. After the company's demise, he switched to software and worked his way up the chain, ending at Chief Software Architect at Nevik in 2000. The dot-com crash precipitated a return to academia to start his PhD in 2003, where he worked on parallelism, developing a theory of parallel computation, and a performance-portable software stack. As part of this, in 2008 he was invited by Albert Cohen to work in Paris at INRIA, the national computer science research institute for France, concentrating on new parallel languages for high productivity and high performance portability. This led to BLIS and VMS, two technologies that became the basis of his dissertation, for which he received his PhD in 2011. He is currently advancing the software stack to support performance-portable parallel languages. 25.9 25.10 25.11 25.12 @@ -83,7 +83,7 @@ 25.13 25.14 \item[Jun '11 to Jun '12:] Post-doctorate researcher at Technical University Berlin. 25.15 25.16 - Overseeing 6 students who are working on: verifying the Holistic Model of Parallel Computation (proposed in Dissertation), design of a low-power GPU that is free from programming and application restrictions, improvement of Virtualized Master-Slave (VMS) (from Dissertation), and implementation of the HWSim language on top of VMS. 25.17 + Oversaw 6 students who worked on: verifying the Holistic Model of Parallel Computation (proposed in Dissertation), design of a low-power GPU that is free from programming and application restrictions, improvement of Virtualized Master-Slave (VMS) (from Dissertation), and implementation of the HWSim language on top of VMS. 25.18 25.19 \item[Apr '08 to Apr '11:] INRIA, Paris and Ecole Normale Supereur: Performed research on Portable High Performance Parallelism. 25.20
