slides update

This commit is contained in:
Oliver Kennedy 2019-02-12 21:13:07 -05:00
parent 3cfb2986e3
commit 670dfd1e40
14 changed files with 4366 additions and 373 deletions

View file

@ -4,6 +4,21 @@ title: "Query Evaluation"
date: February 11, 2019
textbook: "Ch. 15.1-15.5, 16.7"
---
<!-- 2019 by OK:
The discussion of accounting needs to be augmented a little bit.
Specifically, something that's still not coming across for some students is the idea of counting only the number of IOs *added*.
An example comparing the cost of individual sub-plans to the overall plan might help.
For example, draw out the full query plan, highlight the subplan, count its cost, then compute the total cost of the entire plan, and repeat.
e.g., after introducing select, show that adding more select operators doesn't add more IOs or memory to the plan.
More similar examples with Union and Cross would also help.
Might help to tighten up the time spent a little too. I had to cut out before introducing Sort-Merge Joins
-->
<section>
<section>
<h3>Query Evaluation Styles</h3>
@ -130,19 +145,19 @@ textbook: "Ch. 15.1-15.5, 16.7"
<dd class="fragment">Constant!</dd>
<dt>IOs added?</dt>
<dd class="fragment">$|S| \cdot \texttt{cost}(R)$ tuples read</dd>
<dd class="fragment">(or $|R| \cdot \texttt{cost}(S)$)</dd>
<dd class="fragment">$(|R|-1) \cdot \texttt{cost}(S)$ tuples read</dd>
<dd class="fragment">(or $(|S|-1) \cdot \texttt{cost}(R)$)</dd>
</dl>
<p class="fragment">If $R$ is a query, this can be very expensive</p>
<p class="fragment">If $S$ is a query, this can get very expensive</p>
</section>
<section>
<h3>Cross ($R \times S$)</h3>
<p><b>Optimization 1: </b> Cache $R$ in memory</p>
<p><b>Optimization 1: </b> Cache $S$ in memory</p>
<dl>
<dt>Memory Required?</dt>
<dd class="fragment">$O(|R|)$</dd>
<dd class="fragment">$O(|S|)$</dd>
<dt>IOs added?</dt>
<dd class="fragment">None!</dd>
@ -151,15 +166,15 @@ textbook: "Ch. 15.1-15.5, 16.7"
<section>
<h3>Cross ($R \times S$)</h3>
<p><b>Optimization 2: </b> Cache $R$ on disk</p>
<p><b>Optimization 2: </b> Cache $S$ on disk</p>
<dl>
<dt>Memory Required?</dt>
<dd class="fragment">Constant</dd>
<dt>IOs added?</dt>
<dd class="fragment">$|R|$ tuples written.</dd>
<dd class="fragment">$(|S| - 1) \cdot |R|$ tuples read.</dd>
<dd class="fragment">$|S|$ tuples written.</dd>
<dd class="fragment">$(|R| - 1) \cdot |R|$ tuples read.</dd>
</dl>
</section>
@ -207,15 +222,16 @@ textbook: "Ch. 15.1-15.5, 16.7"
<section>
<h3>Block-Nested Loop ($R \times S$)</h3>
<p>(with $\mathcal B$ as the block size for $S$)</p>
<p>(with $\mathcal B$ as the block size for $R$)</p>
<p>(and with caching $S$ to disk)</p>
<dl>
<dt>Memory Required?</dt>
<dd class="fragment">$O(\mathcal B)$</dd>
<dt>IOs added?</dt>
<dd class="fragment">$|R|$ tuples written.</dd>
<dd class="fragment">$(\frac{|S|}{\mathcal B} - 1) \cdot |R|$ tuples read.</dd>
<dd class="fragment">$|S|$ tuples written.</dd>
<dd class="fragment">$(\frac{|R|}{\mathcal B} - 1) \cdot |R|$ tuples read.</dd>
</dl>
<p style="font-size: 70%;" class="fragment">In-memory caching is a special case of block-nested loop with $\mathcal B = |S|$</p>
<p style="font-size: 70%;" class="fragment">Does the block size for $R$ matter?</p>

View file

@ -1,362 +1,512 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CSE 4/562 - Spring 2018</title>
<meta name="description" content="CSE 4/562 - Spring 2018">
<meta name="author" content="Oliver Kennedy">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
<link rel="stylesheet" href="../reveal.js-3.6.0/css/reveal.css">
<link rel="stylesheet" href="ubodin.css" id="theme">
<!-- Code syntax highlighting -->
<link rel="stylesheet" href="../reveal.js-3.6.0/lib/css/zenburn.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../reveal.js-3.6.0/css/print/pdf.css' : '../reveal.js-3.6.0/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
<script src="../reveal.js-3.6.0/lib/js/head.min.js"></script>
<!--[if lt IE 9]>
<script src="../reveal.js-3.6.0/lib/js/html5shiv.js"></script>
<![endif]-->
</head>
<body>
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
<div class="header">
<!-- Any Talk-Specific Header Content Goes Here -->
CSE 4/562 - Database Systems
</div>
<div class="slides">
<section>
<h1>Extended RA</h1>
<h3>CSE 4/562 Database Systems</h3>
<h5>February 12, 2018</h5>
</section>
<section>
<section>
<h3>Extended Relational Algebra</h3>
<dl>
<dt class="fragment highlight-grey" data-fragment-index="1">Set/Bag Operations</dt>
<dd class="fragment highlight-grey" data-fragment-index="1">Select ($\sigma$), Project ($\pi$), Join ($\bowtie$), Union ($\cup$)</dd>
<dt>Bag Operations</dt>
<dd>Distinct ($\delta$), Outer Joins (⟗)</dd>
<dt>List Operations</dt>
<dd>Sort ($\tau$), Limit</dd>
<dt>Arithmetic Operations</dt>
<dd>Extended Projection ($\pi$), Aggregation ($\sigma$), Grouping ($\gamma$)</dd>
</dl>
<dl>
</dl>
</section>
<section>
<h3>Extended Projection</h3>
<p style="margin: 50px;">Like normal projection, but can create new columns</p>
$\pi_{M \leftarrow A+B*C,\; N \leftarrow 2}(R)$
<p>produces 1 row for every row of R, with 2 columns: M and N</p>
</section>
</section>
<section>
<section>
<h3>Outer Join</h3>
<p class="fragment">... but first</p>
</section>
<section>
<h3><code>NULL</code> Values</h3>
<ul>
<li>Field values can be unknown or inapplicable.<ul>
<li>A tree with an unknown species.</li>
<li>The street of a tree in a park.</li>
<li>The '.' on many of your ID cards</li>
</ul></li>
<li>SQL provides a special <code>NULL</code> value for these cases</li>
</ul>
<p class="fragment">NULL makes things more complicated.</p>
</section>
<section>
$$\textbf{Trees.SPC_COMMON} = \texttt{'Brooklyn'}$$
<p style="margin: 50px;" class="fragment">
What happens if <b>Trees.SPC_COMMON</b> is NULL?
</p>
<div class="fragment">
$$\texttt{NULL} = \textbf{'Brooklyn'} \equiv \textbf{Unknown}$$
</div>
</section>
<section>
<table>
<tr><td>Unknown</td><td>AND</td><td>Unknown</td><td>$\equiv$</td><td>Unknown</td></tr>
<tr><td>Unknown</td><td>AND</td><td>True</td><td>$\equiv$</td><td>Unknown</td></tr>
<tr><td>Unknown</td><td>AND</td><td>False</td><td>$\equiv$</td><td>False</td></tr>
<tr><td colspan="5"></td></tr>
<tr><td>Unknown</td><td>OR</td><td>Unknown</td><td>$\equiv$</td><td>Unknown</td></tr>
<tr><td>Unknown</td><td>OR</td><td>True</td><td>$\equiv$</td><td>True</td></tr>
<tr><td>Unknown</td><td>OR</td><td>False</td><td>$\equiv$</td><td>Unknown</td></tr>
<tr><td colspan="5"></td></tr>
<tr><td></td><td>NOT</td><td>Unknown</td><td>$\equiv$</td><td>Unknown</td></tr>
</table>
<p class="fragment"><code>WHERE</code> clauses eliminate all non-True rows</p>
</section>
<section>
$$Streets \bowtie_{StreetName} Trees$$
<p style="margin-top: 100px;" class="fragment">What happens if some streets have no trees?</p>
</section>
<section>
<h3>Outer Join (⟗, ⟕, ⟖)</h3>
<ol>
<li>Include all results from the normal (inner) join.</li>
<li>Also include rows that don't get joined.</li>
</ol>
</section>
<section>
<h3>Outer Join</h3>
<dl>
<dt>Inner Join</dt>
<dd>Normal, plain, simple join</dd>
<dt>Left Outer Join (⟕)</dt>
<dd>Include un-joined rows from the left hand side</dd>
<dt>Right Outer Join (⟖)</dt>
<dd>Include un-joined rows from the right hand side</dd>
<dt>[Full] Outer Join (⟗)</dt>
<dd>Include un-joined rows from either side</dd>
</dl>
</section>
</section>
<section>
<section>
<h3>Sort / Limit</h3>
<p>
$$\tau_{A}(R)$$
The tuples of $R$ in ascending order according to 'A'
</p>
<p>
$$\textbf{L}_{n}(R)$$
The first $n$ tuples of R
<div style="font-size: 60%">(Typically combined with sort. If not, pick arbitrarily.)</div>
</p>
</section>
<section>
<h3>Sort</h3>
<p style="margin-top: 100px;">
Pick your favorite sort algorithm.
</p>
<p class="fragment">What happens if you don't have enough memory?</p>
</section>
<section>
<p><b>Key Idea:</b> Merging 2 sorted lists requires $O(1)$ memory.</p>
</section>
<section>
<h3>2-Way Sort</h3>
<dl>
<dt>Pass 1</dt>
<dd>Create lots of (small) sorted lists.</dd>
<dt>Pass 2+</dt>
<dd>Merge sorted lists of size $N$ into sorted lists of size $2N$</dd>
</dl>
</section>
<section>
<h3>Pass 1: Create Sorted Runs</h3>
<svg data-src="graphics/2018-02-14-Sort-Run.svg" style="margin: 100px;" />
</section>
<section>
<h3>Pass 2: Merge Sorted Runs</h3>
<svg data-src="graphics/2018-02-14-Merge-Run.svg" style="margin: 100px;" />
</section>
<section>
<p>Repeat Pass 2 As Needed.</p>
</section>
<section>
<p>What's the bottleneck?</p>
<p class="fragment">IO Cost: $O(N \cdot \lceil\log_2(N)\rceil)$<br/>(with $N$ blocks)</p>
</section>
<section>
<svg data-src="graphics/2018-02-14-Merge-Tree.svg" />
</section>
<section>
<h3>Using More Memory</h3>
<dl>
<dt>Pass 1</dt>
<dd>Sort Bigger Buffers</dd>
<dd class="fragment">Re-Use Memory When Done</dd>
<dt>Pass 2</dt>
<dd>Merge $K$ Runs Simultaneously: $O(N \cdot \lceil\log_K(N)\rceil)$ IO</dd>
</dl>
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-1.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-2.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-3.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-4.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-5.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-6.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-7.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-8.svg" />
</section>
<section>
<p>On average, we'll get runs of size $2 \cdot |WS|$</p>
</section>
</section>
</div></div>
<script src="../reveal.js-3.6.0/js/reveal.js"></script>
<script>
// Full list of configuration options available at:
// https://github.com/hakimel/../reveal.js#configuration
Reveal.initialize({
controls: false,
progress: true,
history: true,
center: true,
slideNumber: true,
transition: 'fade', // none/fade/slide/convex/concave/zoom
chart: {
defaults: {
global: {
title: { fontColor: "#333", fontSize: 24 },
legend: {
labels: { fontColor: "#333", fontSize: 20 },
},
responsiveness: true
},
scale: {
scaleLabel: { fontColor: "#333", fontSize: 20 },
gridLines: { color: "#333", zeroLineColor: "#333" },
ticks: { fontColor: "#333", fontSize: 16 },
}
},
line: { borderColor: [ "rgba(20,220,220,.8)" , "rgba(220,120,120,.8)", "rgba(20,120,220,.8)" ], "borderDash": [ [5,10], [0,0] ]},
bar: { backgroundColor: [
"rgba(220,220,220,0.8)",
"rgba(151,187,205,0.8)",
"rgba(205,151,187,0.8)",
"rgba(187,205,151,0.8)"
]
},
pie: { backgroundColor: [ ["rgba(0,0,0,.8)" , "rgba(220,20,20,.8)", "rgba(20,220,20,.8)", "rgba(220,220,20,.8)", "rgba(20,20,220,.8)"] ]},
radar: { borderColor: [ "rgba(20,220,220,.8)" , "rgba(220,120,120,.8)", "rgba(20,120,220,.8)" ]},
},
// Optional ../reveal.js plugins
dependencies: [
{ src: '../reveal.js-3.6.0/lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: '../reveal.js-3.6.0/plugin/math/math.js',
condition: function() { return true; },
mathjax: '../reveal.js-3.6.0/js/MathJax.js'
},
{ src: '../reveal.js-3.6.0/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: '../reveal.js-3.6.0/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: '../reveal.js-3.6.0/plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: '../reveal.js-3.6.0/plugin/zoom-js/zoom.js', async: true },
{ src: '../reveal.js-3.6.0/plugin/notes/notes.js', async: true },
// Chart.min.js
{ src: '../reveal.js-3.6.0/plugin/chart/Chart.min.js'},
// the plugin
{ src: '../reveal.js-3.6.0/plugin/chart/csv2chart.js'},
{ src: '../reveal.js-3.6.0/plugin/svginline/es6-promise.auto.js', async: false },
{ src: '../reveal.js-3.6.0/plugin/svginline/data-src-svg.js', async: false }
]
});
</script>
</body>
</html>
---
template: templates/cse4562_2019_slides.erb
title: "Extended Relational Algebra"
date: February 13, 2019
textbook: "Ch. 5.2, 15.4"
---
<section>
<section>
<h3>Extended Relational Algebra</h3>
<dl>
<dt class="fragment highlight-grey" data-fragment-index="1">Set/Bag Operations</dt>
<dd class="fragment highlight-grey" data-fragment-index="1">Select ($\sigma$), Project ($\pi$), Join ($\bowtie$), Union ($\cup$)</dd>
<dt>Bag Operations</dt>
<dd>Distinct ($\delta$), Outer Joins (⟗)</dd>
<dt>List Operations</dt>
<dd>Sort ($\tau$), Limit (L)</dd>
<dt>Arithmetic Operations</dt>
<dd>Extended Projection ($\pi$), Aggregation ($\sigma$), Grouping ($\gamma$)</dd>
</dl>
<dl>
</dl>
</section>
<section>
<h3>Extended Projection</h3>
<p style="margin: 50px;">Like normal projection, but can create new columns</p>
$\pi_{M \leftarrow A+B*C,\; N \leftarrow 2}(R)$
<p>produces 1 row for every row of R, with 2 columns: M and N</p>
</section>
</section>
<section>
<section>
<h3>Outer Join</h3>
<p class="fragment">... but first</p>
</section>
<section>
<h3><code>NULL</code> Values</h3>
<ul>
<li>Field values can be unknown or inapplicable.<ul>
<li>A tree with an unknown species.</li>
<li>The street of a tree in a park.</li>
<li>The '.' on many of your ID cards</li>
</ul></li>
<li>SQL provides a special <code>NULL</code> value for these cases</li>
</ul>
<p class="fragment">NULL makes things more complicated.</p>
</section>
<section>
$$\textbf{Trees.SPC_COMMON} = \texttt{'Brooklyn'}$$
<p style="margin: 50px;" class="fragment">
What happens if <b>Trees.SPC_COMMON</b> is NULL?
</p>
<div class="fragment">
$$\texttt{NULL} = \textbf{'Brooklyn'} \equiv \textbf{Unknown}$$
</div>
</section>
<section>
<table>
<tr><td>Unknown</td><td>AND</td><td>Unknown</td><td>$\equiv$</td><td>Unknown</td></tr>
<tr class="fragment" data-fragment-index="1"><td>Unknown</td><td>AND</td><td>True</td><td>$\equiv$</td><td>Unknown</td></tr>
<tr class="fragment" data-fragment-index="2"><td>Unknown</td><td>AND</td><td>False</td><td>$\equiv$</td><td>False</td></tr>
<tr><td colspan="5"></td></tr>
<tr class="fragment" data-fragment-index="3"><td>Unknown</td><td>OR</td><td>Unknown</td><td>$\equiv$</td><td>Unknown</td></tr>
<tr class="fragment" data-fragment-index="3"><td>Unknown</td><td>OR</td><td>True</td><td>$\equiv$</td><td>True</td></tr>
<tr class="fragment" data-fragment-index="3"><td>Unknown</td><td>OR</td><td>False</td><td>$\equiv$</td><td>Unknown</td></tr>
<tr><td colspan="5"></td></tr>
<tr class="fragment" data-fragment-index="4"><td></td><td>NOT</td><td>Unknown</td><td>$\equiv$</td><td>Unknown</td></tr>
</table>
<p class="fragment"><code>WHERE</code> clauses eliminate all non-True rows</p>
</section>
</section>
<section>
<section>
$$Streets \bowtie_{StreetName} Trees$$
<p style="margin-top: 100px;" class="fragment">What happens if some streets have no trees?</p>
</section>
<section>
<h3>Outer Join (⟗, ⟕, ⟖)</h3>
<ol>
<li>Include all results from the normal (inner) join.</li>
<li>Also include rows that don't get joined.</li>
</ol>
</section>
<section>
<h3>Outer Join</h3>
<dl>
<dt>Inner Join</dt>
<dd>Normal, plain, simple join</dd>
<dt>Left Outer Join (⟕)</dt>
<dd>Include un-joined rows from the left hand side</dd>
<dt>Right Outer Join (⟖)</dt>
<dd>Include un-joined rows from the right hand side</dd>
<dt>[Full] Outer Join (⟗)</dt>
<dd>Include un-joined rows from either side</dd>
</dl>
</section>
<section>
<div style="display: inline-block; margin-right: 50px;">
<p style="text-decoration: underline;">Streets</p>
<table>
<tr><th>District</th><th>StreetName</th></tr>
<tr><td>A</td><td>Apple St.</td></tr>
<tr><td>B</td><td>Border St.</td></tr>
<tr><td>C</td><td>Coventry St.</td></tr>
<tr><td>D</td><td>Durham St.</td></tr>
</table>
</div>
<div style="display: inline-block;">
<p style="text-decoration: underline;">Trees</p>
<table>
<tr><th>TreeId</th><th>StreetName</th></tr>
<tr><td>1</td><td>Apple St.</td></tr>
<tr><td>2</td><td>Border St.</td></tr>
<tr><td>3</td><td>Durham St.</td></tr>
<tr><td>4</td><td>Elicott St.</td></tr>
</table>
</div>
</section>
<section>
<p style="text-decoration: underline;">Streets ⟗ Trees</p>
<table>
<tr><th>District</th><th>StreetName</th> <th>TreeId</th><th>StreetName</th></tr>
<tr><td>A</td> <td>Apple St.</td> <td>1</td> <td>Apple St.</td></tr>
<tr><td>B</td> <td>Border St.</td> <td>2</td> <td>Border St.</td></tr>
<tr class="fragment highlight-red" data-fragment-index="1"><td>C</td> <td>Coventry St.</td><td>NULL</td> <td>NULL</td></tr>
<tr><td>D</td> <td>Durham St.</td> <td>3</td> <td>Durham St.</td></tr>
<tr class="fragment highlight-blue" data-fragment-index="2"><td>NULL</td> <td>NULL</td> <td>4</td> <td>Elicott St.</td></tr>
</table>
<p class="fragment" data-fragment-index="1" style="color: red;">Only LEFT outer join</p>
<p class="fragment" data-fragment-index="2" style="color: blue;">Only RIGHT outer join</p>
</section>
</section>
<section>
<section>
<h3>Sort / Limit</h3>
<p>
$$\tau_{A}(R)$$
The tuples of $R$ in ascending order according to 'A'
</p>
<p>
$$\textbf{L}_{n}(R)$$
The first $n$ tuples of R
<div style="font-size: 60%">(Typically combined with sort. If not, pick arbitrarily.)</div>
</p>
</section>
<section>
<h3>Sort</h3>
<p style="margin-top: 100px;">
Pick your favorite sort algorithm.
</p>
<p class="fragment">What happens if you don't have enough memory?</p>
</section>
<section>
<p><b>Key Idea:</b> Merging 2 sorted lists requires $O(1)$ memory.</p>
</section>
<section>
<h3>2-Way Sort</h3>
<dl>
<dt>Pass 1</dt>
<dd>Create lots of (small) sorted lists.</dd>
<dt>Pass 2+</dt>
<dd>Merge sorted lists of size $N$ into sorted lists of size $2N$</dd>
</dl>
</section>
<section>
<h3>Pass 1: Create Sorted Runs</h3>
<svg data-src="graphics/2018-02-14-Sort-Run.svg" style="margin: 100px;" />
</section>
<section>
<h3>Pass 2: Merge Sorted Runs</h3>
<svg data-src="graphics/2018-02-14-Merge-Run.svg" style="margin: 100px;" />
</section>
<section>
<p>Repeat Pass 2 As Needed.</p>
</section>
<section>
<p>What's the bottleneck?</p>
<p class="fragment">IO Cost: $O(N \cdot \lceil\log_2(N)\rceil)$<br/>(with $N$ blocks)</p>
</section>
<section>
<svg data-src="graphics/2018-02-14-Merge-Tree.svg" />
</section>
<section>
<h3>Using More Memory</h3>
<dl>
<dt>Pass 1</dt>
<dd>Sort Bigger Buffers</dd>
<dd class="fragment">Re-Use Memory When Done</dd>
<dt>Pass 2</dt>
<dd>Merge $K$ Runs Simultaneously: $O(N \cdot \lceil\log_K(N)\rceil)$ IO</dd>
</dl>
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-1.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-2.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-3.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-4.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-5.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-6.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-7.svg" />
</section>
<section>
<h3>Replacement Sort</h3>
<img src="graphics/2018-02-14-ReplSort-8.svg" />
</section>
<section>
<p>On average, we'll get runs of size $2 \cdot |WS|$</p>
</section>
</section>
<section>
<section>
<h3>Aggregation</h3>
<dl>
<div class="fragment">
<dt>Normal Aggregates</dt>
<dd><code class="sql">SELECT COUNT(*) FROM R</code></dd>
<dd><code class="sql">SELECT SUM(A) FROM R</code></dd>
</div>
<div class="fragment">
<dt>Group-By Aggregates</dt>
<dd><code class="sql">SELECT A, SUM(B) FROM R GROUP BY A</code></dd>
</div>
<div class="fragment">
<dt>Distinct</dt>
<dd><code class="sql">SELECT DISTINCT A FROM R</code></dd>
<dd class="fragment"><code class="sql">SELECT A FROM R GROUP BY A</code></dd>
</div>
</dl>
</section>
<section>
<h3>Normal Aggregates</h3>
<table style="font-size: 80%;" class="fragment">
<tr><th>TREE_ID</th><th>SPC_COMMON</th><th>BORONAME</th><th>TREE_DBH</th></tr>
<tr><td>180683</td><td>'red maple'</td><td>'Queens'</td><td>3</td></tr>
<tr><td>315986</td><td>'pin oak'</td><td>'Queens'</td><td>21</td></tr>
<tr><td>204026</td><td>'honeylocust'</td><td>'Brooklyn'</td><td>3</td></tr>
<tr><td>204337</td><td>'honeylocust'</td><td>'Brooklyn'</td><td>10</td></tr>
<tr><td>189565</td><td>'American linden'</td><td>'Brooklyn'</td><td>21</td></tr>
<tr><td style="font-weight: bold;" colspan="3">... and 683783 more</td></tr>
</table>
<div style="margin-top: 60px">
<code class="sql fragment">SELECT COUNT(*) FROM TREES</code>
</div>
</section>
<section>
<table style="font-size: 70%;">
<tr><th>TREE_ID</th><th>SPC_COMMON</th><th>BORONAME</th><th>TREE_DBH</th></tr>
<tr class="fragment" data-fragment-index="1"><td colspan="4">COUNT = 0</td></tr>
<tr class="fragment" data-fragment-index="2" style="font-size: smaller;"><td>180683</td><td>'red maple'</td><td>'Queens'</td><td>3</td></tr>
<tr class="fragment" data-fragment-index="3"><td colspan="4">COUNT = 1</td></tr>
<tr class="fragment" data-fragment-index="4" style="font-size: smaller;"><td>315986</td><td>'pin oak'</td><td>'Queens'</td><td>21</td></tr>
<tr class="fragment" data-fragment-index="5"><td colspan="4">COUNT = 2</td></tr>
<tr class="fragment" data-fragment-index="6" style="font-size: smaller;"><td>204026</td><td>'honeylocust'</td><td>'Brooklyn'</td><td>3</td></tr>
<tr class="fragment" data-fragment-index="6"><td colspan="4">COUNT = 3</td></tr>
<tr class="fragment" data-fragment-index="7" style="font-size: smaller;"><td>204337</td><td>'honeylocust'</td><td>'Brooklyn'</td><td>10</td></tr>
<tr class="fragment" data-fragment-index="7"><td colspan="4">COUNT = 4</td></tr>
<tr class="fragment" data-fragment-index="8" style="font-size: smaller;"><td>189565</td><td>'American linden'</td><td>'Brooklyn'</td><td>21</td></tr>
<tr class="fragment" data-fragment-index="8"><td colspan="4">COUNT = 5</td></tr>
<tr class="fragment" data-fragment-index="9"><td style="font-weight: bold;" colspan="3">... and 683783 more</td></tr>
<tr class="fragment" data-fragment-index="9"><td colspan="4">COUNT = 683788</td></tr>
</table>
</section>
<section>
<div style="margin-bottom: 60px">
<code class="sql">SELECT SUM(TREE_DBH) FROM TREES</code>
</div>
<table style="font-size: 70%;">
<tr><th>TREE_ID</th><th>SPC_COMMON</th><th>BORONAME</th><th>TREE_DBH</th></tr>
<tr class="fragment" data-fragment-index="1"><td colspan="4">SUM = 0</td></tr>
<tr class="fragment" data-fragment-index="2" style="font-size: smaller;"><td>180683</td><td>'red maple'</td><td>'Queens'</td><td>3</td></tr>
<tr class="fragment" data-fragment-index="3"><td colspan="4">SUM = 3</td></tr>
<tr class="fragment" data-fragment-index="4" style="font-size: smaller;"><td>315986</td><td>'pin oak'</td><td>'Queens'</td><td>21</td></tr>
<tr class="fragment" data-fragment-index="5"><td colspan="4">SUM = 24</td></tr>
<tr class="fragment" data-fragment-index="6" style="font-size: smaller;"><td>204026</td><td>'honeylocust'</td><td>'Brooklyn'</td><td>3</td></tr>
<tr class="fragment" data-fragment-index="6"><td colspan="4">SUM = 27</td></tr>
<tr class="fragment" data-fragment-index="7" style="font-size: smaller;"><td>204337</td><td>'honeylocust'</td><td>'Brooklyn'</td><td>10</td></tr>
<tr class="fragment" data-fragment-index="7"><td colspan="4">SUM = 37</td></tr>
<tr class="fragment" data-fragment-index="8" style="font-size: smaller;"><td>189565</td><td>'American linden'</td><td>'Brooklyn'</td><td>21</td></tr>
<tr class="fragment" data-fragment-index="8"><td colspan="4">SUM = 58</td></tr>
<tr class="fragment" data-fragment-index="9"><td style="font-weight: bold;" colspan="3">... and 683783 more</td></tr>
</table>
</section>
<section>
<h3>Basic Aggregate Pattern</h3>
<p class="fragment" style="font-size: 70%">This is also sometimes called a "fold"</p>
<dl>
<dt>Init</dt>
<dd>Define a starting value for the accumulator</dd>
<dt>Fold(Accum, New)</dt>
<dd>Merge a new value into the accumulator</dd>
</dl>
</section>
<section>
<h3>COUNT(*)</h3>
<dl>
<dt>Init</dt>
<dd class="fragment">$0$</dd>
<dt>Fold(Accum, New)</dt>
<dd class="fragment">$Accum + 1$</dd>
</dl>
</section>
<section>
<h3>SUM(A)</h3>
<dl>
<dt>Init</dt>
<dd class="fragment">$0$</dd>
<dt>Fold(Accum, New)</dt>
<dd class="fragment">$Accum + New$</dd>
</dl>
</section>
<section>
<h3>AVG(A)</h3>
<dl>
<dt>Init</dt>
<dd class="fragment">$\{ sum = 0, count = 0 \}$</dd>
<dt>Fold(Accum, New)</dt>
<dd class="fragment">$\{ sum = Accum.sum + New, \\\;count = Accum.count + 1\}$</dd>
<dt class="fragment">Finalize(Accum)</dt>
<dd class="fragment">$\frac{Accum.sum}{Accum.count}$</dd>
</dl>
</section>
<section>
<h3>Basic Aggregate Pattern</h3>
<dl>
<dt>Init</dt>
<dd>Define a starting value for the accumulator</dd>
<dt>Fold(Accum, New)</dt>
<dd>Merge a new value into the accumulator</dd>
<dt>Finalize(Accum)</dt>
<dd>Extract the aggregate from the accumulator.</dd>
</dl>
</section>
<section>
<h3>Basic Aggregate Types</h3>
<p class="fragment" style="font-size: 60%">Grey et. al. "Data Cube: A Relational Aggregation Operator Generalizing Group-By, Cross-Tab, and Sub-Totals</p>
<dl>
<dt>Distributive</dt>
<dd>Finite-sized accumulator and doesn't need a finalize (COUNT, SUM)</dd>
<dt>Algebraic</dt>
<dd>Finite-sized accumulator but needs a finalize (AVG)</dd>
<dt>Holistic</dt>
<dd>Unbounded accumulator (MEDIAN)</dd>
</dl>
</section>
</section>
<section>
<section>
<h3>Group-By Aggregates</h3>
<div style="margin-top: 60px">
<code class="sql">SELECT SPC_COMMON, COUNT(*) FROM TREES GROUP BY SPC_COMMON</code>
</div>
</section>
<section>
<p><b>Naive Idea:</b> Keep a separate accumulator for each group</p>
</section>
<section>
<table style="font-size: 70%;">
<tr><th>TREE_ID</th><th>SPC_COMMON</th><th>BORONAME</th><th>TREE_DBH</th></tr>
<tr class="fragment" data-fragment-index="1"><td colspan="4">{}</td></tr>
<tr class="fragment" data-fragment-index="2" style="font-size: smaller;"><td>180683</td><td>'red maple'</td><td>'Queens'</td><td>3</td></tr>
<tr class="fragment" data-fragment-index="3"><td colspan="4">{ 'red maple' = 1 }</td></tr>
<tr class="fragment" data-fragment-index="4" style="font-size: smaller;"><td>204337</td><td>'honeylocust'</td><td>'Brooklyn'</td><td>10</td></tr>
<tr class="fragment" data-fragment-index="5"><td colspan="4">{ 'red maple' = 1, 'honeylocust' = 1 }</td></tr>
<tr class="fragment" data-fragment-index="6" style="font-size: smaller;"><td>315986</td><td>'pin oak'</td><td>'Queens'</td><td>21</td></tr>
<tr class="fragment" data-fragment-index="7"><td colspan="4">{ 'red maple' = 1, 'honeylocust' = 1, 'pin oak' = 1 }</td></tr>
<tr class="fragment" data-fragment-index="8" style="font-size: smaller;"><td>204026</td><td>'honeylocust'</td><td>'Brooklyn'</td><td>3</td></tr>
<tr class="fragment" data-fragment-index="9"><td colspan="4">{ 'red maple' = 1, 'honeylocust' = 2, 'pin oak' = 1 }</td></tr>
</table>
</section>
<section>
<p>What could go wrong?</p>
</section>
<section>
<h3>Alternative Grouping Algorithms</h3>
<dl>
<dt>2-pass Hash Aggregate</dt>
<dd>Like 2-pass Hash Join: Distribute groups across buckets, then do an in-memory aggregate for each bucket.</dd>
<dt>Sort-Aggregate</dt>
<dd>Like Sort-Merge Join: Sort data by groups, then group elements will be adjacent.</dd>
</dl>
</section>
<section>
<svg data-src="graphics/2019-02-13-2PassHashAgg.svg" />
</section>
<section>
<table style="font-size: 70%;">
<tr><th>TREE_ID</th><th>SPC_COMMON</th><th>BORONAME</th><th>TREE_DBH</th></tr>
<tr class="fragment"><td colspan="4">{}</td></tr>
<tr class="fragment" style="font-size: smaller;"><td>204337</td><td>'honeylocust'</td><td>'Brooklyn'</td><td>10</td></tr>
<tr class="fragment"><td colspan="4">{ 'honeylocust' = 1 }</td></tr>
<tr class="fragment" style="font-size: smaller;"><td>204026</td><td>'honeylocust'</td><td>'Brooklyn'</td><td>3</td></tr>
<tr class="fragment"><td colspan="4">{ 'honeylocust' = 2 }</td></tr>
<tr class="fragment"><td colspan="4" style="font-weight: bold">... and more</td></tr>
<tr class="fragment" style="font-size: smaller;"><td>315986</td><td>'pin oak'</td><td>'Queens'</td><td>21</td></tr>
<tr class="fragment"><td colspan="4">{ <span class="fragment highlight-grey">'honeylocust' = 3206,</span> 'pin oak' = 1 }</td></tr>
<tr class="fragment"><td colspan="4" style="font-weight: bold">... and more</td></tr>
<tr class="fragment" style="font-size: smaller;"><td>180683</td><td>'red maple'</td><td>'Queens'</td><td>3</td></tr>
<tr class="fragment"><td colspan="4">{ <span class="fragment highlight-grey">'pin oak' = 53814,</span> 'red maple' = 1 }</td></tr>
</table>
</section>
</section>
<section>
<dl>
<dt>Set/Bag Operations</dt>
<dd>Select ($\sigma$), Project ($\pi$), Join ($\bowtie$), Union ($\cup$)</dd>
<dt>Bag Operations</dt>
<dd>Distinct ($\delta$), Outer Joins (⟗)</dd>
<dt>List Operations</dt>
<dd>Sort ($\tau$), Limit (L)</dd>
<dt>Arithmetic Operations</dt>
<dd>Extended Projection ($\pi$), Aggregation ($\sigma$), Grouping ($\gamma$)</dd>
</dl>
</section>

View file

@ -0,0 +1,806 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="170.12708mm"
height="42.862499mm"
viewBox="0 0 170.12708 42.862499"
version="1.1"
id="svg8"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="2018-02-14-Merge-Run.svg">
<defs
id="defs2">
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker3630"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="scale(0.8) rotate(180) translate(12.5,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
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 "
id="path3628" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker3216"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path3214"
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 "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker2892"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:collect="always">
<path
transform="scale(0.8) rotate(180) translate(12.5,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
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 "
id="path2890" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker2526"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="scale(0.8) rotate(180) translate(12.5,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
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 "
id="path2524" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lend"
style="overflow:visible;"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path1766"
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 "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker2049"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="scale(0.8) rotate(180) translate(12.5,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
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 "
id="path2047" />
</marker>
<linearGradient
inkscape:collect="always"
id="linearGradient405">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop401" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="1"
id="stop403" />
</linearGradient>
<filter
style="color-interpolation-filters:sRGB"
inkscape:label="Noise Fill"
id="filter453">
<feTurbulence
type="fractalNoise"
baseFrequency="0.02 0.04"
numOctaves="5"
seed="1"
result="turbulence"
id="feTurbulence437" />
<feComposite
in="SourceGraphic"
in2="turbulence"
operator="in"
result="composite1"
id="feComposite439" />
<feColorMatrix
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 3 -1 "
result="color"
id="feColorMatrix441" />
<feFlood
flood-opacity="1"
flood-color="rgb(21,40,57)"
result="flood"
id="feFlood443" />
<feMerge
result="merge"
id="feMerge449">
<feMergeNode
in="flood"
id="feMergeNode445" />
<feMergeNode
in="color"
id="feMergeNode447" />
</feMerge>
<feComposite
in2="SourceGraphic"
operator="in"
result="fbSourceGraphic"
id="feComposite451" />
<feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix797" />
<feTurbulence
id="feTurbulence799"
type="fractalNoise"
baseFrequency="9.06915 1e-05"
numOctaves="5"
seed="2"
result="turbulence" />
<feComposite
in2="turbulence"
id="feComposite801"
in="fbSourceGraphic"
operator="in"
result="composite1" />
<feColorMatrix
id="feColorMatrix803"
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 3 -1 "
result="color" />
<feFlood
id="feFlood805"
flood-opacity="1"
flood-color="rgb(255,255,255)"
result="flood" />
<feMerge
id="feMerge807"
result="merge">
<feMergeNode
id="feMergeNode809"
in="flood" />
<feMergeNode
id="feMergeNode811"
in="color" />
</feMerge>
<feComposite
in2="fbSourceGraphic"
id="feComposite813"
operator="in"
result="composite2" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient405"
id="linearGradient2460"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-61.430595,11.036894)"
x1="81.64286"
y1="47.006561"
x2="105.47425"
y2="47.006561" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient405"
id="linearGradient3612"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.0118879,0,0,0.9829421,-33.837672,3.6240401)"
x1="81.64286"
y1="47.006561"
x2="105.47425"
y2="47.006561" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient405"
id="linearGradient4232"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-61.430595,-7.6719729)"
x1="81.64286"
y1="47.006561"
x2="105.47425"
y2="47.006561" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="186.57402"
inkscape:cy="-21.710648"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-bbox="false"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-9.4305,-23.836615)">
<image
y="23.836615"
x="11.131389"
id="image106"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKMAAACiCAYAAAAtMH0lAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABWWlUWHRYTUw6Y29tLmFkb2Jl
LnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1Q
IENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91
dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4w
LyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAg
IDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAAArHklE
QVR4Ae2dWcy1VZWgv59BRgFBRAHxRxlEZJDJgbHKKqqoIBQiOGBV0fGm0xd90TfedCVeV9LprnS8
6vR1V8o4xE68aFNRQ190p6JNNIhpo4mCqOCA88TQ63m/7zn/+hf7nc53vgNUvzt5z1p7zXvt9e53
POfs7CxtycCSgSUDSwaWDCwZWDKwZGDJwJKBJQNLBpYMLBlYMrBkYMnAkoElA0sGlgwsGVgysGRg
ycCSgSUDSwaWDCwZWDKwZGDJwJKBJQNLBpYMLBlYMrBkYMnAkoElA0sGlgwsGVgysGRgycCSgSUD
SwaWDCwZWDKwZGDJwFoZOLSW1gEp3Xfffa8I0xc+88wzFx86dOjKY4455hfPPvvsUwFfUnEe0PC3
Yva55557PnJ7ajg7/9hjj/3Hp5566v9+8YtffGYrzkecvCQm+bbbbjvurLPO+ldRdB+OZN0QMZ8Y
+M7zzz/fbZG8kWEs7KkZIKfkk/zGjv6bwP9n0P7zJz/5yf8+1cZByb3os3zPPfecFYn5j7H9FYOM
YuwKMBLV4SRuKcb1p7/mjmKkxarY5RUYuf5d5P3ff/rTn/4PwdoV6KS2+/GiFmMclk+KRPzDcccd
dxfFx0ayTj755J1zzz232375y1/u/Pa3v10VpMmcm6apemNyY/xWXHN0hmSHeC2/0KpO5LrL5RNP
PLHz85//vFshLczI/0c/9alP/V2frYOmv6jFeO+99/7bSMTfW4hnn332znve856da665ZudVr3pV
V5SslL///e8nF2NNfiuBQzIt3lRa9dXSU6bFy7SMo1P72hnitXQ80jz99NM7X/nKV3Y++9nP7vzi
F7/YoUij/SL4t3ziE594ONvfFv6iFeNdd911TiTgn6MYX/+HP/xh5zWvec3ORz/60Z03vvGNq7Gb
zHqoWQkkRNlEaqJT5IZkhng6HJLZNK/PXosuDcg5IwX45S9/eefjH//4zq9//eud448/nqPTP8b5
4wdiLFs/XB9rArcNL7/88vuiEP+alY/2kY98pFsRTVguQGhDGzaG+NvkDcXSx+ujE/c6vJZOppFb
+hyRzj///A5+7Wtf6wo0puLit7zlLf/j0Ucf/V43MVv86NbmLfrrXH3sYx87Jgb/QZISt3G61fDG
G29cHYpIEocOoIU0FmMuXmXRHWt9Mn107PXxDpre53uuX1bFV77yld1FDEelm2++eSdu7+w8+eST
O6+IFnPyQPj63/jbZntRivGRRx55WwzyZoqNPfTWW28lCR3O4H/605/u/OpXv1qdJ7YKzSQN8ZTp
myz46/D6dDZFH4qr5aNFG7OBDufl5D9uq3VHpc997nNdP3J6d1xcfizOHX+CnW21Y7blKPuJBLw/
DtEnkYjTTz+9S4R8Lla4embvpdA2sW3S1ibi0cZBx9VnH/pvfvObHVZFGoV5ww037JxwwgkdHvFd
EKvjHc7JtuDWizEuXF4Zg7+bBLAyxvnJzutf/3r3yC5JFKmNietrQ7w+nUrfhI1qs/YP2sc69sk/
Fy3ocqp0+PDhnYsvvrgrUIo1tgdui4cRdSwH2d96McYV3B/FQC+h4EhEDHg1PoqTPXad5K6M9CAH
YbO62oaP6nPdPrH+7ne/W52Xn3jiiTtvf/vbu9wzD9FujcP4m9e1v47etouRZe6D7HkMmBUxrqq7
uEkOhcheGofw0bFsY+L7fPTRR4N+CQpQkIyHvF911VXd+SMLRczByUH/0DZD3moxvve9770gBvin
DJaNm9unnXZah3PYcFWkWLc54dv0tc3JxVff2KCTZ87PyT3z8epXv3rnyiuvXK2Wof6X0c7YVsxb
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
"
preserveAspectRatio="none"
height="42.862499"
width="43.127083" />
<g
id="g4192"
class="fragment">
<rect
class=""
style="fill:url(#linearGradient2460);fill-opacity:1;stroke:#000000;stroke-width:0.465;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect2458"
width="23.831392"
height="11.07471"
x="20.212276"
y="46.96875" />
</g>
<g
id="g4206"
class="fragment">
<rect
class=""
style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0.20574728;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect2462"
width="4.6248713"
height="11.172346"
x="82.637711"
y="29.452217" />
<rect
y="47.945679"
x="82.637711"
height="11.172346"
width="4.6248713"
id="rect2464"
style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0.20574728;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="" />
<rect
y="29.452217"
x="82.637711"
height="11.172346"
width="4.6248713"
id="rect2472"
style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0.20574728;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="" />
<rect
class=""
style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0.20574728;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect2474"
width="4.6248713"
height="11.172346"
x="82.637711"
y="47.945679" />
<path
inkscape:connector-curvature="0"
id="path2482"
d="M 53.842703,34.193162 H 80.112047"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)" />
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2526)"
d="M 53.842703,52.902983 H 80.112047"
id="path2522"
inkscape:connector-curvature="0" />
</g>
<g
id="g4217"
class="fragment">
<rect
ry="0"
rx="0"
class=""
style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0.2907913;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect2470"
width="9.3092089"
height="11.087302"
x="103.01536"
y="38.74147" />
<path
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2892)"
d="m 88.238536,33.134828 12.851194,9.638393"
id="path2888"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path3212"
d="M 88.238536,54.528282 101.08973,44.889889"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3216)"
sodipodi:nodetypes="cc" />
</g>
<g
id="g4228"
class="fragment">
<image
y="23.836615"
x="130.94984"
id="image3608"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKMAAACiCAYAAAAtMH0lAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABWWlUWHRYTUw6Y29tLmFkb2Jl
LnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1Q
IENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91
dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4w
LyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAg
IDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAAArHklE
QVR4Ae2dWcy1VZWgv59BRgFBRAHxRxlEZJDJgbHKKqqoIBQiOGBV0fGm0xd90TfedCVeV9LprnS8
6vR1V8o4xE68aFNRQ190p6JNNIhpo4mCqOCA88TQ63m/7zn/+hf7nc53vgNUvzt5z1p7zXvt9e53
POfs7CxtycCSgSUDSwaWDCwZWDKwZGDJwJKBJQNLBpYMLBlYMrBkYMnAkoElA0sGlgwsGVgysGRg
ycCSgSUDSwaWDCwZWDKwZGDJwJKBJQNLBpYMLBlYMrBkYMnAkoElA0sGlgwsGVgysGRgycCSgSUD
SwaWDCwZWDKwZGDJwFoZOLSW1gEp3Xfffa8I0xc+88wzFx86dOjKY4455hfPPvvsUwFfUnEe0PC3
Yva55557PnJ7ajg7/9hjj/3Hp5566v9+8YtffGYrzkecvCQm+bbbbjvurLPO+ldRdB+OZN0QMZ8Y
+M7zzz/fbZG8kWEs7KkZIKfkk/zGjv6bwP9n0P7zJz/5yf8+1cZByb3os3zPPfecFYn5j7H9FYOM
YuwKMBLV4SRuKcb1p7/mjmKkxarY5RUYuf5d5P3ff/rTn/4PwdoV6KS2+/GiFmMclk+KRPzDcccd
dxfFx0ayTj755J1zzz232375y1/u/Pa3v10VpMmcm6apemNyY/xWXHN0hmSHeC2/0KpO5LrL5RNP
PLHz85//vFshLczI/0c/9alP/V2frYOmv6jFeO+99/7bSMTfW4hnn332znve856da665ZudVr3pV
V5SslL///e8nF2NNfiuBQzIt3lRa9dXSU6bFy7SMo1P72hnitXQ80jz99NM7X/nKV3Y++9nP7vzi
F7/YoUij/SL4t3ziE594ONvfFv6iFeNdd911TiTgn6MYX/+HP/xh5zWvec3ORz/60Z03vvGNq7Gb
zHqoWQkkRNlEaqJT5IZkhng6HJLZNK/PXosuDcg5IwX45S9/eefjH//4zq9//eud448/nqPTP8b5
4wdiLFs/XB9rArcNL7/88vuiEP+alY/2kY98pFsRTVguQGhDGzaG+NvkDcXSx+ujE/c6vJZOppFb
+hyRzj///A5+7Wtf6wo0puLit7zlLf/j0Ucf/V43MVv86NbmLfrrXH3sYx87Jgb/QZISt3G61fDG
G29cHYpIEocOoIU0FmMuXmXRHWt9Mn107PXxDpre53uuX1bFV77yld1FDEelm2++eSdu7+w8+eST
O6+IFnPyQPj63/jbZntRivGRRx55WwzyZoqNPfTWW28lCR3O4H/605/u/OpXv1qdJ7YKzSQN8ZTp
myz46/D6dDZFH4qr5aNFG7OBDufl5D9uq3VHpc997nNdP3J6d1xcfizOHX+CnW21Y7blKPuJBLw/
DtEnkYjTTz+9S4R8Lla4embvpdA2sW3S1ibi0cZBx9VnH/pvfvObHVZFGoV5ww037JxwwgkdHvFd
EKvjHc7JtuDWizEuXF4Zg7+bBLAyxvnJzutf/3r3yC5JFKmNietrQ7w+nUrfhI1qs/YP2sc69sk/
Fy3ocqp0+PDhnYsvvrgrUIo1tgdui4cRdSwH2d96McYV3B/FQC+h4EhEDHg1PoqTPXad5K6M9CAH
YbO62oaP6nPdPrH+7ne/W52Xn3jiiTtvf/vbu9wzD9FujcP4m9e1v47etouRZe6D7HkMmBUxrqq7
uEkOhcheGofw0bFsY+L7fPTRR4N+CQpQkIyHvF911VXd+SMLRczByUH/0DZD3moxvve9770gBvin
DJaNm9unnXZah3PYcFWkWLc54dv0tc3JxVff2KCTZ87PyT3z8epXv3rnyiuvXK2Wof6X0c7YVsxb
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
"
preserveAspectRatio="none"
height="42.862499"
width="43.127083" />
<rect
class=""
style="fill:url(#linearGradient3612);fill-opacity:1;stroke:#000000;stroke-width:0.65391123;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect3610"
width="47.946087"
height="10.885798"
x="130.41862"
y="38.942974" />
<path
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3630)"
d="m 113.82752,44.020543 h 14.51429"
id="path3626"
inkscape:connector-curvature="0" />
</g>
<rect
y="28.259884"
x="20.212276"
height="11.07471"
width="23.831392"
id="rect4230"
style="fill:url(#linearGradient4232);fill-opacity:1;stroke:#000000;stroke-width:0.465;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 43 KiB

View file

@ -0,0 +1,679 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="164.08809mm"
height="85.103874mm"
viewBox="0 0 164.08809 85.103874"
version="1.1"
id="svg8"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="2018-02-14-Merge-Tree.svg">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient4546">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4542" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop4544" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4538">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4534" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop4536" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4530">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4526" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop4528" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4522">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4518" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop4520" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4514">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4510" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop4512" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4500">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4496" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop4498" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4466">
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0"
id="stop4462" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop4464" />
</linearGradient>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker3630"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path3628"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker3216"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path3214"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker2526"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path2524"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker2049"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path2047"
inkscape:connector-curvature="0" />
</marker>
<filter
style="color-interpolation-filters:sRGB"
inkscape:label="Noise Fill"
id="filter453">
<feTurbulence
type="fractalNoise"
baseFrequency="0.02 0.04"
numOctaves="5"
seed="1"
result="turbulence"
id="feTurbulence437" />
<feComposite
in="SourceGraphic"
in2="turbulence"
operator="in"
result="composite1"
id="feComposite439" />
<feColorMatrix
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 3 -1 "
result="color"
id="feColorMatrix441" />
<feFlood
flood-opacity="1"
flood-color="rgb(21,40,57)"
result="flood"
id="feFlood443" />
<feMerge
result="merge"
id="feMerge449">
<feMergeNode
in="flood"
id="feMergeNode445" />
<feMergeNode
in="color"
id="feMergeNode447" />
</feMerge>
<feComposite
in2="SourceGraphic"
operator="in"
result="fbSourceGraphic"
id="feComposite451" />
<feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix797" />
<feTurbulence
id="feTurbulence799"
type="fractalNoise"
baseFrequency="9.06915 1e-05"
numOctaves="5"
seed="2"
result="turbulence" />
<feComposite
in2="turbulence"
id="feComposite801"
in="fbSourceGraphic"
operator="in"
result="composite1" />
<feColorMatrix
id="feColorMatrix803"
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 3 -1 "
result="color" />
<feFlood
id="feFlood805"
flood-opacity="1"
flood-color="rgb(255,255,255)"
result="flood" />
<feMerge
id="feMerge807"
result="merge">
<feMergeNode
id="feMergeNode809"
in="flood" />
<feMergeNode
id="feMergeNode811"
in="color" />
</feMerge>
<feComposite
in2="fbSourceGraphic"
id="feComposite813"
operator="in"
result="composite2" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4466"
id="linearGradient4468"
x1="26.401566"
y1="39.334599"
x2="50.232956"
y2="39.334599"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4500"
id="linearGradient4502"
x1="56.645958"
y1="39.334599"
x2="80.477348"
y2="39.334599"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4514"
id="linearGradient4516"
x1="86.890358"
y1="39.334599"
x2="110.72175"
y2="39.334599"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4522"
id="linearGradient4524"
x1="117.13475"
y1="39.334599"
x2="140.96614"
y2="39.334599"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4530"
id="linearGradient4532"
x1="33.157982"
y1="54.755287"
x2="81.104065"
y2="54.755287"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4538"
id="linearGradient4540"
x1="86.263641"
y1="54.755287"
x2="134.20973"
y2="54.755287"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4546"
id="linearGradient4548"
x1="35.541584"
y1="69.914429"
x2="131.82613"
y2="69.914429"
gradientUnits="userSpaceOnUse" />
<filter
style="color-interpolation-filters:sRGB"
inkscape:label="Noise Fill"
id="filter4570">
<feTurbulence
type="fractalNoise"
baseFrequency="9.06915 1e-05"
numOctaves="5"
seed="2"
result="turbulence"
id="feTurbulence4554" />
<feComposite
in="SourceGraphic"
in2="turbulence"
operator="in"
result="composite1"
id="feComposite4556" />
<feColorMatrix
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 3 -1 "
result="color"
id="feColorMatrix4558" />
<feFlood
flood-opacity="1"
flood-color="rgb(255,255,255)"
result="flood"
id="feFlood4560" />
<feMerge
result="merge"
id="feMerge4566">
<feMergeNode
in="flood"
id="feMergeNode4562" />
<feMergeNode
in="color"
id="feMergeNode4564" />
</feMerge>
<feComposite
in2="SourceGraphic"
operator="in"
result="composite2"
id="feComposite4568" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="243.89815"
inkscape:cy="134.81663"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-bbox="false"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1"
fit-margin-top="5"
fit-margin-left="5"
fit-margin-right="5"
fit-margin-bottom="5" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(15.738812,-4.1711385)">
<rect
class=""
style="fill:url(#linearGradient4548);fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4348"
width="96.284538"
height="10.62425"
x="35.541584"
y="59.290176" />
<rect
class=""
style="fill:url(#linearGradient4532);fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4344"
width="47.946087"
height="10.885799"
x="33.157982"
y="43.869488" />
<rect
y="43.869488"
x="86.263641"
height="10.885799"
width="47.946087"
id="rect4346"
style="fill:url(#linearGradient4540);fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="" />
<rect
class=""
style="fill:url(#linearGradient4468);fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4336"
width="23.831392"
height="11.07471"
x="26.401566"
y="28.259888" />
<rect
y="28.259888"
x="56.645958"
height="11.07471"
width="23.831392"
id="rect4338"
style="fill:url(#linearGradient4502);fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="" />
<rect
y="28.259888"
x="86.890358"
height="11.07471"
width="23.831392"
id="rect4340"
style="fill:url(#linearGradient4516);fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="" />
<rect
class=""
style="fill:url(#linearGradient4524);fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4342"
width="23.831392"
height="11.07471"
x="117.13475"
y="28.259888" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:8.46666622px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#c87137;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="35.510864"
y="36.801201"
id="text4382"><tspan
sodipodi:role="line"
id="tspan4380"
x="35.510864"
y="36.801201"
style="font-size:8.46666622px;fill:#c87137;stroke-width:0.26458332">1</tspan></text>
<text
id="text4386"
y="52.109238"
x="54.069496"
style="font-style:normal;font-weight:normal;font-size:8.46666622px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#c87137;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-size:8.46666622px;fill:#c87137;stroke-width:0.26458332"
y="52.109238"
x="54.069496"
id="tspan4384"
sodipodi:role="line">2</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:8.46666622px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#c87137;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="80.490036"
y="67.644058"
id="text4390"><tspan
sodipodi:role="line"
id="tspan4388"
x="80.490036"
y="67.644058"
style="font-size:8.46666622px;fill:#c87137;stroke-width:0.26458332">4</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="40.991512"
y="36.650009"
id="text4394"><tspan
sodipodi:role="line"
id="tspan4392"
x="40.991512"
y="46.013779"
style="stroke-width:0.26458332"></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="-11.736167"
y="50.824112"
id="text4398"><tspan
sodipodi:role="line"
id="tspan4396"
x="-11.736167"
y="50.824112"
style="stroke-width:0.26458332">log<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4400">2</tspan>(N)</tspan></text>
<g
id="g4414">
<path
inkscape:connector-curvature="0"
id="path4402"
d="M 9.6194876,27.956555 H 1.1150236"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 9.6194876,70.1009 H 1.1150236"
id="path4404"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4406"
d="M 5.46175,27.767567 V 43.264591"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 5.46175,54.792865 V 70.289889"
id="path4408"
inkscape:connector-curvature="0" />
</g>
<g
id="g4436"
transform="translate(12.284226,-18.89881)">
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 23.226631,94.669352 v 8.504468"
id="path4416"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 23.037643,98.82709 H 65.937941"
id="path4420"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
<g
id="g4432"
transform="translate(66.334821,-18.89881)">
<path
inkscape:connector-curvature="0"
id="path4418"
d="m 65.370976,94.669352 v 8.504468"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4422"
d="M 21.525739,98.82709 H 65.559965"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="cc" />
</g>
<text
id="text4442"
y="83.330063"
x="78.978119"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="83.330063"
x="78.978119"
id="tspan4440"
sodipodi:role="line">N</tspan></text>
<rect
y="11.515534"
x="26.401566"
height="11.07471"
width="23.831392"
id="rect4550"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4570)"
class="" />
<rect
class=""
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4570)"
id="rect4572"
width="23.831392"
height="11.07471"
x="56.645958"
y="11.515534" />
<rect
y="11.515534"
x="86.890358"
height="11.07471"
width="23.831392"
id="rect4574"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4570)"
class="" />
<rect
class=""
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4570)"
id="rect4576"
width="23.831392"
height="11.07471"
x="117.13475"
y="11.515534" />
<rect
y="11.515534"
x="117.13475"
height="11.07471"
width="23.831392"
id="rect4578"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="" />
<rect
class=""
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4582"
width="23.831392"
height="11.07471"
x="86.890358"
y="11.515534" />
<rect
y="11.515534"
x="56.645958"
height="11.07471"
width="23.831392"
id="rect4584"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="" />
<rect
class=""
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4586"
width="23.831392"
height="11.07471"
x="26.401566"
y="11.515534" />
<g
id="g4608"
transform="translate(0,28.461608)">
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 9.6194876,-19.101481 H 1.1150236"
id="path4588"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 5.46175,-6.8290273 V -3.793445"
id="path4592"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
<g
id="g4612"
transform="translate(0,1.4363095)">
<path
inkscape:connector-curvature="0"
id="path4590"
d="M 9.6194876,23.042864 H 1.1150236"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4594"
d="m 5.46175,7.734829 v 3.029373"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="cc" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="2.0599642"
y="20.926193"
id="text4600"><tspan
sodipodi:role="line"
id="tspan4598"
x="2.0599642"
y="20.926193"
style="stroke-width:0.26458332">1</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

View file

@ -0,0 +1,194 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="180.05606mm"
height="101.08517mm"
viewBox="0 0 180.05606 101.08517"
version="1.1"
id="svg4620"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="2018-02-14-ReplSort-1.svg">
<defs
id="defs4614" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="122.06271"
inkscape:cy="144.40364"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="5"
fit-margin-left="5"
fit-margin-right="5"
fit-margin-bottom="5"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata4617">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-5.8660774,-20.242213)">
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4664"
width="21.922615"
height="58.208328"
x="150.96368"
y="38.464287" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="16.781551"
y="52.071438"
id="text4624"><tspan
sodipodi:role="line"
x="16.781551"
y="52.071438"
style="stroke-width:0.26458332"
id="tspan4628">12</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="82.220894"
y="75.570923"
id="text4636"><tspan
sodipodi:role="line"
id="tspan4634"
x="82.220894"
y="75.570923"
style="stroke-width:0.26458332">8</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="78.619041"
y="99.220268"
id="text4640"><tspan
sodipodi:role="line"
id="tspan4638"
x="78.619041"
y="99.220268"
style="stroke-width:0.26458332">10</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="80.538826"
y="116.32738"
id="text4644"><tspan
sodipodi:role="line"
id="tspan4642"
x="80.538826"
y="116.32738"
style="stroke-width:0.26458332">...</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="55.184525"
y="33.852982"
id="text4648"><tspan
sodipodi:role="line"
id="tspan4646"
x="55.184525"
y="33.852982"
style="stroke-width:0.26458332">Working Set</tspan></text>
<text
id="text4652"
y="33.097031"
x="9.8273811"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="33.097031"
x="9.8273811"
id="tspan4650"
sodipodi:role="line">Input</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="144.3869"
y="33.097031"
id="text4656"><tspan
sodipodi:role="line"
id="tspan4654"
x="144.3869"
y="33.097031"
style="stroke-width:0.26458332">Output</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="158.74998"
y="52.071426"
id="text4660"><tspan
sodipodi:role="line"
id="tspan4658"
x="158.74998"
y="52.071426"
style="stroke-width:0.26458332">3</tspan><tspan
sodipodi:role="line"
x="158.74998"
y="65.300591"
style="stroke-width:0.26458332"
id="tspan4662">5</tspan></text>
<text
id="text4672"
y="51.315487"
x="82.670761"
style="font-style:normal;font-weight:normal;font-size:9.56478691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23911966"
xml:space="preserve"><tspan
id="tspan4670"
style="stroke-width:0.23911966"
y="51.315487"
x="82.670761"
sodipodi:role="line">2</tspan></text>
<text
id="text193"
y="75.694946"
x="20.372326"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
id="tspan191"
style="stroke-width:0.26458332"
y="75.694946"
x="20.372326"
sodipodi:role="line">4</tspan></text>
<text
id="text197"
y="95.349701"
x="18.890909"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="95.349701"
x="18.890909"
id="tspan195"
sodipodi:role="line">...</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

@ -0,0 +1,194 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="180.05606mm"
height="101.08517mm"
viewBox="0 0 180.05606 101.08517"
version="1.1"
id="svg4620"
sodipodi:docname="2018-02-14-ReplSort-2.svg"
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
<defs
id="defs4614" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="24.205567"
inkscape:cy="144.40364"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="5"
fit-margin-left="5"
fit-margin-right="5"
fit-margin-bottom="5"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata4617">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-5.8660774,-20.242213)">
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4664"
width="21.922615"
height="58.208328"
x="150.96368"
y="38.464287" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="16.781551"
y="52.071438"
id="text4624"><tspan
sodipodi:role="line"
x="16.781551"
y="52.071438"
style="stroke-width:0.26458332"
id="tspan4628">12</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="158.76108"
y="77.989967"
id="text4636"><tspan
sodipodi:role="line"
id="tspan4634"
x="158.76108"
y="77.989967"
style="stroke-width:0.26458332">8</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="78.619041"
y="99.220268"
id="text4640"><tspan
sodipodi:role="line"
id="tspan4638"
x="78.619041"
y="99.220268"
style="stroke-width:0.26458332">10</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="80.538826"
y="116.32738"
id="text4644"><tspan
sodipodi:role="line"
id="tspan4642"
x="80.538826"
y="116.32738"
style="stroke-width:0.26458332">...</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="55.184525"
y="33.852982"
id="text4648"><tspan
sodipodi:role="line"
id="tspan4646"
x="55.184525"
y="33.852982"
style="stroke-width:0.26458332">Working Set</tspan></text>
<text
id="text4652"
y="33.097031"
x="9.8273811"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="33.097031"
x="9.8273811"
id="tspan4650"
sodipodi:role="line">Input</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="144.3869"
y="33.097031"
id="text4656"><tspan
sodipodi:role="line"
id="tspan4654"
x="144.3869"
y="33.097031"
style="stroke-width:0.26458332">Output</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="158.74998"
y="52.071426"
id="text4660"><tspan
sodipodi:role="line"
id="tspan4658"
x="158.74998"
y="52.071426"
style="stroke-width:0.26458332">3</tspan><tspan
sodipodi:role="line"
x="158.74998"
y="65.300591"
style="stroke-width:0.26458332"
id="tspan4662">5</tspan></text>
<text
id="text4672"
y="51.315487"
x="82.670761"
style="font-style:normal;font-weight:normal;font-size:9.56478691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23911966"
xml:space="preserve"><tspan
id="tspan4670"
style="stroke-width:0.23911966"
y="51.315487"
x="82.670761"
sodipodi:role="line">2</tspan></text>
<text
id="text193"
y="76.312698"
x="20.822124"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
id="tspan191"
style="stroke-width:0.26458332"
y="76.312698"
x="20.822124"
sodipodi:role="line">4</tspan></text>
<text
id="text197"
y="95.967445"
x="19.340708"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="95.967445"
x="19.340708"
id="tspan195"
sodipodi:role="line">...</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

@ -0,0 +1,172 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="180.05606mm"
height="101.08517mm"
viewBox="0 0 180.05606 101.08517"
version="1.1"
id="svg4620"
sodipodi:docname="2018-02-14-ReplSort-3.svg"
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
<defs
id="defs4614" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="122.06271"
inkscape:cy="144.40364"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="5"
fit-margin-left="5"
fit-margin-right="5"
fit-margin-bottom="5"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata4617">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-5.8660774,-20.242213)">
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4664"
width="21.922615"
height="58.208328"
x="150.96368"
y="38.464287" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="78.769646"
y="74.372032"
id="text4624"><tspan
sodipodi:role="line"
x="78.769646"
y="74.372032"
style="stroke-width:0.26458332"
id="tspan4628">12</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="158.76108"
y="77.989967"
id="text4636"><tspan
sodipodi:role="line"
id="tspan4634"
x="158.76108"
y="77.989967"
style="stroke-width:0.26458332">8</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="78.619041"
y="99.220268"
id="text4640"><tspan
sodipodi:role="line"
id="tspan4638"
x="78.619041"
y="99.220268"
style="stroke-width:0.26458332">10</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="80.538826"
y="116.32738"
id="text4644"><tspan
sodipodi:role="line"
id="tspan4642"
x="80.538826"
y="116.32738"
style="stroke-width:0.26458332">...</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="55.184525"
y="33.852982"
id="text4648"><tspan
sodipodi:role="line"
id="tspan4646"
x="55.184525"
y="33.852982"
style="stroke-width:0.26458332">Working Set</tspan></text>
<text
id="text4652"
y="33.097031"
x="9.8273811"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="33.097031"
x="9.8273811"
id="tspan4650"
sodipodi:role="line">Input</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="144.3869"
y="33.097031"
id="text4656"><tspan
sodipodi:role="line"
id="tspan4654"
x="144.3869"
y="33.097031"
style="stroke-width:0.26458332">Output</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="158.74998"
y="52.071426"
id="text4660"><tspan
sodipodi:role="line"
id="tspan4658"
x="158.74998"
y="52.071426"
style="stroke-width:0.26458332">3</tspan><tspan
sodipodi:role="line"
x="158.74998"
y="65.300591"
style="stroke-width:0.26458332"
id="tspan4662">5</tspan></text>
<text
id="text4672"
y="51.315487"
x="82.670761"
style="font-style:normal;font-weight:normal;font-size:9.56478691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23911966"
xml:space="preserve"><tspan
id="tspan4670"
style="stroke-width:0.23911966"
y="51.315487"
x="82.670761"
sodipodi:role="line">2</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

@ -0,0 +1,172 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="180.05606mm"
height="101.08517mm"
viewBox="0 0 180.05606 101.08517"
version="1.1"
id="svg4620"
sodipodi:docname="2018-02-14-ReplSort-4.svg"
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
<defs
id="defs4614" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="122.06271"
inkscape:cy="144.40364"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="5"
fit-margin-left="5"
fit-margin-right="5"
fit-margin-bottom="5"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata4617">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-5.8660774,-20.242213)">
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4664"
width="21.922615"
height="58.208328"
x="150.96368"
y="38.464287" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="78.769646"
y="74.372032"
id="text4624"><tspan
sodipodi:role="line"
x="78.769646"
y="74.372032"
style="stroke-width:0.26458332"
id="tspan4628">10</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="158.76108"
y="77.989967"
id="text4636"><tspan
sodipodi:role="line"
id="tspan4634"
x="158.76108"
y="77.989967"
style="stroke-width:0.26458332">8</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="78.619041"
y="99.220268"
id="text4640"><tspan
sodipodi:role="line"
id="tspan4638"
x="78.619041"
y="99.220268"
style="stroke-width:0.26458332">12</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="80.538826"
y="116.32738"
id="text4644"><tspan
sodipodi:role="line"
id="tspan4642"
x="80.538826"
y="116.32738"
style="stroke-width:0.26458332">...</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="55.184525"
y="33.852982"
id="text4648"><tspan
sodipodi:role="line"
id="tspan4646"
x="55.184525"
y="33.852982"
style="stroke-width:0.26458332">Working Set</tspan></text>
<text
id="text4652"
y="33.097031"
x="9.8273811"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="33.097031"
x="9.8273811"
id="tspan4650"
sodipodi:role="line">Input</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="144.3869"
y="33.097031"
id="text4656"><tspan
sodipodi:role="line"
id="tspan4654"
x="144.3869"
y="33.097031"
style="stroke-width:0.26458332">Output</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="158.74998"
y="52.071426"
id="text4660"><tspan
sodipodi:role="line"
id="tspan4658"
x="158.74998"
y="52.071426"
style="stroke-width:0.26458332">3</tspan><tspan
sodipodi:role="line"
x="158.74998"
y="65.300591"
style="stroke-width:0.26458332"
id="tspan4662">5</tspan></text>
<text
id="text4672"
y="51.315487"
x="82.670761"
style="font-style:normal;font-weight:normal;font-size:9.56478691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23911966"
xml:space="preserve"><tspan
id="tspan4670"
style="stroke-width:0.23911966"
y="51.315487"
x="82.670761"
sodipodi:role="line">2</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

@ -0,0 +1,194 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="180.05606mm"
height="101.08517mm"
viewBox="0 0 180.05606 101.08517"
version="1.1"
id="svg4620"
sodipodi:docname="2018-02-14-ReplSort-5.svg"
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
<defs
id="defs4614" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="24.205567"
inkscape:cy="144.40364"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="5"
fit-margin-left="5"
fit-margin-right="5"
fit-margin-bottom="5"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata4617">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-5.8660774,-20.242213)">
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4664"
width="21.922615"
height="58.208328"
x="150.96368"
y="38.464287" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="154.93185"
y="91.758934"
id="text4624"><tspan
sodipodi:role="line"
x="154.93185"
y="91.758934"
style="stroke-width:0.26458332"
id="tspan4628">10</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="158.76108"
y="77.989967"
id="text4636"><tspan
sodipodi:role="line"
id="tspan4634"
x="158.76108"
y="77.989967"
style="stroke-width:0.26458332">8</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="78.619041"
y="99.220268"
id="text4640"><tspan
sodipodi:role="line"
id="tspan4638"
x="78.619041"
y="99.220268"
style="stroke-width:0.26458332">12</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="80.538826"
y="116.32738"
id="text4644"><tspan
sodipodi:role="line"
id="tspan4642"
x="80.538826"
y="116.32738"
style="stroke-width:0.26458332">...</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="55.184525"
y="33.852982"
id="text4648"><tspan
sodipodi:role="line"
id="tspan4646"
x="55.184525"
y="33.852982"
style="stroke-width:0.26458332">Working Set</tspan></text>
<text
id="text4652"
y="33.097031"
x="9.8273811"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="33.097031"
x="9.8273811"
id="tspan4650"
sodipodi:role="line">Input</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="144.3869"
y="33.097031"
id="text4656"><tspan
sodipodi:role="line"
id="tspan4654"
x="144.3869"
y="33.097031"
style="stroke-width:0.26458332">Output</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="158.74998"
y="52.071426"
id="text4660"><tspan
sodipodi:role="line"
id="tspan4658"
x="158.74998"
y="52.071426"
style="stroke-width:0.26458332">3</tspan><tspan
sodipodi:role="line"
x="158.74998"
y="65.300591"
style="stroke-width:0.26458332"
id="tspan4662">5</tspan></text>
<text
id="text4672"
y="51.315487"
x="82.670761"
style="font-style:normal;font-weight:normal;font-size:9.56478691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23911966"
xml:space="preserve"><tspan
id="tspan4670"
style="stroke-width:0.23911966"
y="51.315487"
x="82.670761"
sodipodi:role="line">2</tspan></text>
<text
id="text193"
y="51.672626"
x="20.21578"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
id="tspan191"
style="stroke-width:0.26458332"
y="51.672626"
x="20.21578"
sodipodi:role="line">4</tspan></text>
<text
id="text197"
y="71.327377"
x="18.734364"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="71.327377"
x="18.734364"
id="tspan195"
sodipodi:role="line">...</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

@ -0,0 +1,194 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="180.05606mm"
height="101.08517mm"
viewBox="0 0 180.05606 101.08517"
version="1.1"
id="svg4620"
sodipodi:docname="2018-02-14-ReplSort-6.svg"
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
<defs
id="defs4614" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="412.73256"
inkscape:cy="190.37467"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="5"
fit-margin-left="5"
fit-margin-right="5"
fit-margin-bottom="5"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata4617">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-5.8660774,-20.242213)">
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4664"
width="21.922615"
height="58.208328"
x="150.96368"
y="38.464287" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="154.93185"
y="91.758934"
id="text4624"><tspan
sodipodi:role="line"
x="154.93185"
y="91.758934"
style="stroke-width:0.26458332"
id="tspan4628">10</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="158.76108"
y="77.989967"
id="text4636"><tspan
sodipodi:role="line"
id="tspan4634"
x="158.76108"
y="77.989967"
style="stroke-width:0.26458332">8</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="78.619041"
y="99.220268"
id="text4640"><tspan
sodipodi:role="line"
id="tspan4638"
x="78.619041"
y="99.220268"
style="stroke-width:0.26458332">12</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="80.538826"
y="116.32738"
id="text4644"><tspan
sodipodi:role="line"
id="tspan4642"
x="80.538826"
y="116.32738"
style="stroke-width:0.26458332">...</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="55.184525"
y="33.852982"
id="text4648"><tspan
sodipodi:role="line"
id="tspan4646"
x="55.184525"
y="33.852982"
style="stroke-width:0.26458332">Working Set</tspan></text>
<text
id="text4652"
y="33.097031"
x="9.8273811"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="33.097031"
x="9.8273811"
id="tspan4650"
sodipodi:role="line">Input</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="144.3869"
y="33.097031"
id="text4656"><tspan
sodipodi:role="line"
id="tspan4654"
x="144.3869"
y="33.097031"
style="stroke-width:0.26458332">Output</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="158.74998"
y="52.071426"
id="text4660"><tspan
sodipodi:role="line"
id="tspan4658"
x="158.74998"
y="52.071426"
style="stroke-width:0.26458332">3</tspan><tspan
sodipodi:role="line"
x="158.74998"
y="65.300591"
style="stroke-width:0.26458332"
id="tspan4662">5</tspan></text>
<text
id="text4672"
y="51.315487"
x="82.670761"
style="font-style:normal;font-weight:normal;font-size:9.56478691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23911966"
xml:space="preserve"><tspan
id="tspan4670"
style="stroke-width:0.23911966"
y="51.315487"
x="82.670761"
sodipodi:role="line">2</tspan></text>
<text
id="text193"
y="74.999947"
x="82.214882"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
id="tspan191"
style="stroke-width:0.26458332"
y="74.999947"
x="82.214882"
sodipodi:role="line">4</tspan></text>
<text
id="text197"
y="49.753426"
x="19.528742"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="49.753426"
x="19.528742"
id="tspan195"
sodipodi:role="line">...</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="180.05606mm"
height="101.08517mm"
viewBox="0 0 180.05606 101.08517"
version="1.1"
id="svg4620"
sodipodi:docname="2018-02-14-ReplSort-7.svg"
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
<defs
id="defs4614" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="412.73256"
inkscape:cy="190.37467"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="5"
fit-margin-left="5"
fit-margin-right="5"
fit-margin-bottom="5"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata4617">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-5.8660774,-20.242213)">
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4664"
width="21.922615"
height="58.208328"
x="150.96368"
y="38.464287" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="78.619041"
y="99.220268"
id="text4640"><tspan
sodipodi:role="line"
id="tspan4638"
x="78.619041"
y="99.220268"
style="stroke-width:0.26458332">12</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="80.538826"
y="116.32738"
id="text4644"><tspan
sodipodi:role="line"
id="tspan4642"
x="80.538826"
y="116.32738"
style="stroke-width:0.26458332">...</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="55.184525"
y="33.852982"
id="text4648"><tspan
sodipodi:role="line"
id="tspan4646"
x="55.184525"
y="33.852982"
style="stroke-width:0.26458332">Working Set</tspan></text>
<text
id="text4652"
y="33.097031"
x="9.8273811"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="33.097031"
x="9.8273811"
id="tspan4650"
sodipodi:role="line">Input</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="144.3869"
y="33.097031"
id="text4656"><tspan
sodipodi:role="line"
id="tspan4654"
x="144.3869"
y="33.097031"
style="stroke-width:0.26458332">Output</tspan></text>
<text
id="text4672"
y="51.315487"
x="82.670761"
style="font-style:normal;font-weight:normal;font-size:9.56478691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23911966"
xml:space="preserve"><tspan
id="tspan4670"
style="stroke-width:0.23911966"
y="51.315487"
x="82.670761"
sodipodi:role="line">2</tspan></text>
<text
id="text193"
y="74.999947"
x="82.214882"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
id="tspan191"
style="stroke-width:0.26458332"
y="74.999947"
x="82.214882"
sodipodi:role="line">4</tspan></text>
<text
id="text197"
y="49.753426"
x="19.528742"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="49.753426"
x="19.528742"
id="tspan195"
sodipodi:role="line">...</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="133.35365"
y="112.24022"
id="text656"><tspan
sodipodi:role="line"
id="tspan654"
x="133.35365"
y="112.24022"
style="stroke-width:0.26458332">max = 10</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

View file

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="180.05606mm"
height="101.08517mm"
viewBox="0 0 180.05606 101.08517"
version="1.1"
id="svg4620"
sodipodi:docname="2018-02-14-ReplSort-8.svg"
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
<defs
id="defs4614" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="412.73256"
inkscape:cy="190.37467"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="5"
fit-margin-left="5"
fit-margin-right="5"
fit-margin-bottom="5"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata4617">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-5.8660774,-20.242213)">
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4664"
width="21.922615"
height="58.208328"
x="150.96368"
y="38.464287" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="155.32539"
y="50.042675"
id="text4640"><tspan
sodipodi:role="line"
id="tspan4638"
x="155.32539"
y="50.042675"
style="stroke-width:0.26458332">12</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="80.538826"
y="116.32738"
id="text4644"><tspan
sodipodi:role="line"
id="tspan4642"
x="80.538826"
y="116.32738"
style="stroke-width:0.26458332">...</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="55.184525"
y="33.852982"
id="text4648"><tspan
sodipodi:role="line"
id="tspan4646"
x="55.184525"
y="33.852982"
style="stroke-width:0.26458332">Working Set</tspan></text>
<text
id="text4652"
y="33.097031"
x="9.8273811"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="33.097031"
x="9.8273811"
id="tspan4650"
sodipodi:role="line">Input</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="144.3869"
y="33.097031"
id="text4656"><tspan
sodipodi:role="line"
id="tspan4654"
x="144.3869"
y="33.097031"
style="stroke-width:0.26458332">Output</tspan></text>
<text
id="text4672"
y="51.315487"
x="82.670761"
style="font-style:normal;font-weight:normal;font-size:9.56478691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23911966"
xml:space="preserve"><tspan
id="tspan4670"
style="stroke-width:0.23911966"
y="51.315487"
x="82.670761"
sodipodi:role="line">2</tspan></text>
<text
id="text193"
y="74.999947"
x="82.214882"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
id="tspan191"
style="stroke-width:0.26458332"
y="74.999947"
x="82.214882"
sodipodi:role="line">4</tspan></text>
<text
id="text197"
y="49.753426"
x="19.528742"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="49.753426"
x="19.528742"
id="tspan195"
sodipodi:role="line">...</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="133.35365"
y="112.24022"
id="text656"><tspan
sodipodi:role="line"
id="tspan654"
x="133.35365"
y="112.24022"
style="stroke-width:0.26458332">max = 10</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

View file

@ -0,0 +1,529 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="170.12708mm"
height="42.862499mm"
viewBox="0 0 170.12708 42.862499"
version="1.1"
id="svg8"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="2018-02-14-Sort-Run.svg">
<defs
id="defs2">
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker2049"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="scale(0.8) rotate(180) translate(12.5,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
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 "
id="path2047" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lend"
style="overflow:visible;"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path1766"
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 "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<linearGradient
inkscape:collect="always"
id="linearGradient405">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop401" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="1"
id="stop403" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient405"
id="linearGradient407"
x1="81.64286"
y1="47.006561"
x2="105.47425"
y2="47.006561"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0.93547713,1.9654658)" />
<filter
style="color-interpolation-filters:sRGB"
inkscape:label="Noise Fill"
id="filter453">
<feTurbulence
type="fractalNoise"
baseFrequency="0.02 0.04"
numOctaves="5"
seed="1"
result="turbulence"
id="feTurbulence437" />
<feComposite
in="SourceGraphic"
in2="turbulence"
operator="in"
result="composite1"
id="feComposite439" />
<feColorMatrix
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 3 -1 "
result="color"
id="feColorMatrix441" />
<feFlood
flood-opacity="1"
flood-color="rgb(21,40,57)"
result="flood"
id="feFlood443" />
<feMerge
result="merge"
id="feMerge449">
<feMergeNode
in="flood"
id="feMergeNode445" />
<feMergeNode
in="color"
id="feMergeNode447" />
</feMerge>
<feComposite
in2="SourceGraphic"
operator="in"
result="fbSourceGraphic"
id="feComposite451" />
<feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix797" />
<feTurbulence
id="feTurbulence799"
type="fractalNoise"
baseFrequency="9.06915 1e-05"
numOctaves="5"
seed="2"
result="turbulence" />
<feComposite
in2="turbulence"
id="feComposite801"
in="fbSourceGraphic"
operator="in"
result="composite1" />
<feColorMatrix
id="feColorMatrix803"
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 3 -1 "
result="color" />
<feFlood
id="feFlood805"
flood-opacity="1"
flood-color="rgb(255,255,255)"
result="flood" />
<feMerge
id="feMerge807"
result="merge">
<feMergeNode
id="feMergeNode809"
in="flood" />
<feMergeNode
id="feMergeNode811"
in="color" />
</feMerge>
<feComposite
in2="fbSourceGraphic"
id="feComposite813"
operator="in"
result="composite2" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient405"
id="linearGradient2293"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(63.868512,-7.2949509)"
x1="81.64286"
y1="47.006561"
x2="105.47425"
y2="47.006561" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="170.95333"
inkscape:cy="8.942663"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-bbox="false"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-9.4305,-23.836615)">
<g
id="g2399">
<g
transform="matrix(0.49602582,0,0,0.49602582,16.657356,29.215744)"
id="g2382">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:11.28888893px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="17.934965"
y="59.139587"
id="text2363"><tspan
sodipodi:role="line"
x="17.934965"
y="59.139587"
id="tspan2373">σ/π/⋈</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1.29556191;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 12.160206,62.203448 34.686018,27.680195 56.993582,62.208392 Z"
id="path2375"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
</g>
<text
id="text2386"
y="35.138103"
x="31.542107"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
y="35.138103"
x="31.542107"
id="tspan2388"
sodipodi:role="line">τ</tspan></text>
<path
inkscape:connector-curvature="0"
id="path2390"
d="M 33.862517,42.945835 V 36.083044"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
id="g1646"
transform="translate(-6.5716014,16.694717)"
class="fragment">
<rect
y="23.836615"
x="28.726189"
height="11.07471"
width="23.831392"
id="rect108"
style="fill:#000000;fill-opacity:1;stroke:#00ff00;stroke-width:3.20000005;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0;filter:url(#filter453)" />
<rect
y="23.836613"
x="28.726189"
height="11.07471"
width="23.831392"
id="rect1640"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.465;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g2312"
class="fragment">
<g
class=""
id="g1652"
transform="translate(53.852153,14.060707)">
<rect
y="23.836615"
x="28.726189"
height="11.07471"
width="23.831392"
id="rect1648"
style="fill:#000000;fill-opacity:1;stroke:#00ff00;stroke-width:3.20000005;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0;filter:url(#filter453)" />
<rect
y="23.836613"
x="28.726189"
height="11.07471"
width="23.831392"
id="rect1650"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.465;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<path
inkscape:connector-curvature="0"
id="path1761"
d="M 52.519784,43.453579 H 78.600142"
style="fill:none;stroke:#000000;stroke-width:0.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)" />
</g>
<rect
y="37.89732"
x="82.578346"
height="11.07471"
width="23.831392"
id="rect383"
style="fill:url(#linearGradient407);fill-opacity:1;stroke:#000000;stroke-width:0.465;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="fragment" />
<g
id="g2359"
class="fragment">
<image
width="43.127083"
height="42.862499"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKMAAACiCAYAAAAtMH0lAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABWWlUWHRYTUw6Y29tLmFkb2Jl
LnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1Q
IENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91
dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4w
LyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAg
IDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAAArHklE
QVR4Ae2dWcy1VZWgv59BRgFBRAHxRxlEZJDJgbHKKqqoIBQiOGBV0fGm0xd90TfedCVeV9LprnS8
6vR1V8o4xE68aFNRQ190p6JNNIhpo4mCqOCA88TQ63m/7zn/+hf7nc53vgNUvzt5z1p7zXvt9e53
POfs7CxtycCSgSUDSwaWDCwZWDKwZGDJwJKBJQNLBpYMLBlYMrBkYMnAkoElA0sGlgwsGVgysGRg
ycCSgSUDSwaWDCwZWDKwZGDJwJKBJQNLBpYMLBlYMrBkYMnAkoElA0sGlgwsGVgysGRgycCSgSUD
SwaWDCwZWDKwZGDJwFoZOLSW1gEp3Xfffa8I0xc+88wzFx86dOjKY4455hfPPvvsUwFfUnEe0PC3
Yva55557PnJ7ajg7/9hjj/3Hp5566v9+8YtffGYrzkecvCQm+bbbbjvurLPO+ldRdB+OZN0QMZ8Y
+M7zzz/fbZG8kWEs7KkZIKfkk/zGjv6bwP9n0P7zJz/5yf8+1cZByb3os3zPPfecFYn5j7H9FYOM
YuwKMBLV4SRuKcb1p7/mjmKkxarY5RUYuf5d5P3ff/rTn/4PwdoV6KS2+/GiFmMclk+KRPzDcccd
dxfFx0ayTj755J1zzz232375y1/u/Pa3v10VpMmcm6apemNyY/xWXHN0hmSHeC2/0KpO5LrL5RNP
PLHz85//vFshLczI/0c/9alP/V2frYOmv6jFeO+99/7bSMTfW4hnn332znve856da665ZudVr3pV
V5SslL///e8nF2NNfiuBQzIt3lRa9dXSU6bFy7SMo1P72hnitXQ80jz99NM7X/nKV3Y++9nP7vzi
F7/YoUij/SL4t3ziE594ONvfFv6iFeNdd911TiTgn6MYX/+HP/xh5zWvec3ORz/60Z03vvGNq7Gb
zHqoWQkkRNlEaqJT5IZkhng6HJLZNK/PXosuDcg5IwX45S9/eefjH//4zq9//eud448/nqPTP8b5
4wdiLFs/XB9rArcNL7/88vuiEP+alY/2kY98pFsRTVguQGhDGzaG+NvkDcXSx+ujE/c6vJZOppFb
+hyRzj///A5+7Wtf6wo0puLit7zlLf/j0Ucf/V43MVv86NbmLfrrXH3sYx87Jgb/QZISt3G61fDG
G29cHYpIEocOoIU0FmMuXmXRHWt9Mn107PXxDpre53uuX1bFV77yld1FDEelm2++eSdu7+w8+eST
O6+IFnPyQPj63/jbZntRivGRRx55WwzyZoqNPfTWW28lCR3O4H/605/u/OpXv1qdJ7YKzSQN8ZTp
myz46/D6dDZFH4qr5aNFG7OBDufl5D9uq3VHpc997nNdP3J6d1xcfizOHX+CnW21Y7blKPuJBLw/
DtEnkYjTTz+9S4R8Lla4embvpdA2sW3S1ibi0cZBx9VnH/pvfvObHVZFGoV5ww037JxwwgkdHvFd
EKvjHc7JtuDWizEuXF4Zg7+bBLAyxvnJzutf/3r3yC5JFKmNietrQ7w+nUrfhI1qs/YP2sc69sk/
Fy3ocqp0+PDhnYsvvrgrUIo1tgdui4cRdSwH2d96McYV3B/FQC+h4EhEDHg1PoqTPXad5K6M9CAH
YbO62oaP6nPdPrH+7ne/W52Xn3jiiTtvf/vbu9wzD9FujcP4m9e1v47etouRZe6D7HkMmBUxrqq7
uEkOhcheGofw0bFsY+L7fPTRR4N+CQpQkIyHvF911VXd+SMLRczByUH/0DZD3moxvve9770gBvin
DJaNm9unnXZah3PYcFWkWLc54dv0tc3JxVff2KCTZ87PyT3z8epXv3rnyiuvXK2Wof6X0c7YVsxb
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
"
id="image106"
x="136.4305"
y="23.836615" />
<rect
y="28.636904"
x="145.51138"
height="11.07471"
width="23.831392"
id="rect2291"
style="fill:url(#linearGradient2293);fill-opacity:1;stroke:#000000;stroke-width:0.465;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="" />
<path
inkscape:connector-curvature="0"
id="path2045"
d="m 108.64925,43.453579 h 26.08036"
style="fill:none;stroke:#000000;stroke-width:0.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2049)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

View file

@ -0,0 +1,359 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="141.67162mm"
height="80.71843mm"
viewBox="0 0 501.98604 286.01019"
id="svg4281"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="2019-02-13-2PassHashAgg.svg">
<defs
id="defs4283" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="158.64957"
inkscape:cy="109.11168"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata4286">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-60.364196,-146.85447)">
<g
id="g8400">
<rect
y="179.89833"
x="177.75493"
height="108.78987"
width="188.7899"
id="rect8348"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.61618328;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.61618328;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect8350"
width="188.7899"
height="108.78987"
x="177.75493"
y="291.3269" />
<text
id="text8352"
y="282.86465"
x="279.29282"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="282.86465"
x="279.29282"
id="tspan8354"
sodipodi:role="line"
style="font-size:20.00000191px;line-height:1.25">h(A) = 0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="279.29282"
y="394.29324"
id="text8356"><tspan
sodipodi:role="line"
id="tspan8358"
x="279.29282"
y="394.29324"
style="font-size:20.00000191px;line-height:1.25">h(A) = 1</tspan></text>
</g>
<g
id="g8474">
<g
class="fragment"
id="g4208">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10471"
width="96.428566"
height="64.285713"
x="61.250008"
y="148.79077" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="194.5051"
id="text5040"><tspan
sodipodi:role="line"
id="tspan5042"
x="107.99999"
y="194.5051"
style="font-size:40px;line-height:1.25">1</tspan></text>
</g>
<g
transform="matrix(0.37283942,0,0,0.37283942,188.92948,137.71923)"
id="g8368"
class="fragment">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect8370"
width="96.428566"
height="64.285713"
x="61.250008"
y="212.50505" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="260.21939"
id="text8372"><tspan
sodipodi:role="line"
id="tspan8374"
x="107.99999"
y="260.21939"
style="font-size:40px;line-height:1.25">1</tspan></text>
</g>
<g
class="fragment"
id="g4213">
<rect
y="212.50505"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect4837"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text5044"
y="260.21939"
x="107.99999"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="107.99999"
id="tspan5046"
sodipodi:role="line"
style="font-size:40px;line-height:1.25">3</tspan></text>
</g>
<g
id="g8392"
transform="matrix(0.37283942,0,0,0.37283942,240.7152,257.3621)"
class="fragment">
<rect
y="212.50505"
x="-77.6455"
height="64.285713"
width="96.428566"
id="rect8394"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text8396"
y="260.21939"
x="-30.895515"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="-30.895515"
id="tspan8398"
sodipodi:role="line"
style="font-size:40px;line-height:1.25">3</tspan></text>
</g>
<g
class="fragment"
id="g8341">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4839"
width="96.428566"
height="64.285713"
x="61.250008"
y="276.21933" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="323.07654"
id="text5048"><tspan
sodipodi:role="line"
id="tspan5050"
x="107.99999"
y="323.07654"
style="font-size:40px;line-height:1.25">2</tspan></text>
</g>
<g
id="g8376"
transform="matrix(0.37283942,0,0,0.37283942,228.2152,137.71923)"
class="fragment">
<rect
y="212.50505"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect8378"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text8380"
y="260.21939"
x="107.99999"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="107.99999"
id="tspan8382"
sodipodi:role="line"
style="font-size:40px;line-height:1.25">2</tspan></text>
</g>
<g
class="fragment"
id="g4223">
<rect
y="339.50504"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect4841"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text5052"
y="386.64798"
x="107.99999"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="386.64798"
x="107.99999"
id="tspan5054"
sodipodi:role="line"
style="font-size:40px;line-height:1.25">1</tspan></text>
</g>
<g
transform="matrix(0.37283942,0,0,0.37283942,266.78663,137.71923)"
id="g8384"
class="fragment">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect8386"
width="96.428566"
height="64.285713"
x="61.250008"
y="212.50505" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="260.21939"
id="text8388"><tspan
sodipodi:role="line"
id="tspan8390"
x="107.99999"
y="260.21939"
style="font-size:40px;line-height:1.25">1</tspan></text>
</g>
<text
class="fragment"
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="91.792862"
y="436.34125"
id="text8275"><tspan
sodipodi:role="line"
id="tspan8277"
x="91.792862"
y="436.34125"
style="font-size:40px;line-height:1.25">✔</tspan></text>
</g>
<g
id="g965"
class="fragment">
<path
style="fill:none;stroke:#000000;stroke-width:0.93750006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 367.06064,229.96287 64.28571,-31.47321"
id="path899"
inkscape:connector-curvature="0" />
<text
id="text943"
y="204.24858"
x="430.40887"
style="font-style:normal;font-weight:normal;font-size:37.5px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93750006"
xml:space="preserve"
transform="translate(-1.363885e-7,3.2148809e-6)"><tspan
style="font-size:20px;stroke-width:0.93750006"
y="204.24858"
x="430.40887"
id="tspan941"
sodipodi:role="line">1: Count = 2</tspan></text>
</g>
<g
id="g970"
class="fragment">
<path
inkscape:connector-curvature="0"
id="path901"
d="m 367.06064,235.98966 64.28571,31.47321"
style="fill:none;stroke:#000000;stroke-width:0.93750006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:37.5px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93750006"
x="430.40887"
y="273.6236"
id="text947"
transform="translate(-1.363885e-7,3.2148809e-6)"><tspan
sodipodi:role="line"
id="tspan945"
x="430.40887"
y="273.6236"
style="font-size:20px;stroke-width:0.93750006">2: Count = 1</tspan></text>
</g>
<g
id="g975"
class="fragment">
<path
style="fill:none;stroke:#000000;stroke-width:0.93750006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 367.06064,345.47626 h 64.28571"
id="path903"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
id="text951"
y="352.3736"
x="430.40887"
style="font-style:normal;font-weight:normal;font-size:37.5px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93750006"
xml:space="preserve"
transform="translate(-1.363885e-7,3.2148809e-6)"><tspan
style="font-size:20px;stroke-width:0.93750006"
y="352.3736"
x="430.40887"
id="tspan949"
sodipodi:role="line">3: Count = 1</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB