Compare commits
402 Commits
Author | SHA1 | Date | |
---|---|---|---|
b6864d8524 | |||
5ddc0d5485 | |||
3534a7cbc7 | |||
e2f5a63316 | |||
6475314ede | |||
535ee281e8 | |||
da843a7ace | |||
772cf8288c | |||
e81a40ba55 | |||
a52359a6be | |||
2fe0853fba | |||
de3630f76c | |||
ff9e388843 | |||
67a7995f04 | |||
f9d793023c | |||
99b2504b38 | |||
3f3aec29d1 | |||
7be8124b9e | |||
81259daa3f | |||
136fa5b561 | |||
63ca6118fa | |||
850d729739 | |||
62f9183d17 | |||
cfe3481ba4 | |||
788e9f321c | |||
265e88e734 | |||
e80c74d955 | |||
d3efe2317b | |||
05a661dd88 | |||
84090df770 | |||
3f7fe04124 | |||
ac4e3c2426 | |||
13af049988 | |||
bd07f9bdcb | |||
82927fee20 | |||
57d5534bab | |||
d2c15b596f | |||
5d8dc78718 | |||
c945e80618 | |||
0802793d37 | |||
a5c3750a58 | |||
dc1c5f8b1e | |||
653bec01f0 | |||
49c94fad60 | |||
98fd1b3fcb | |||
93301d1c81 | |||
5aa8ee8ede | |||
28f81bd0a3 | |||
1f4ae4318b | |||
bec1cf3145 | |||
5b4b086ebf | |||
0ef33b6462 | |||
e401bc6997 | |||
8ffd2c12a3 | |||
ec4134f26d | |||
35e7b2f975 | |||
3509f1158f | |||
1ca33d1967 | |||
19474ecaae | |||
e317940ebc | |||
fbbfa93524 | |||
c759a04fbc | |||
d1d37db717 | |||
4904b6a532 | |||
f80a657764 | |||
344c528b63 | |||
ee1300a671 | |||
6c2534a8be | |||
28a979c7d3 | |||
d071674b03 | |||
8c5f676df0 | |||
6f098e0145 | |||
f90bc20a8b | |||
60074c9d36 | |||
5d9354fca7 | |||
0ea09d75ed | |||
f475a46df6 | |||
5681a24896 | |||
214aba6d2f | |||
fa551e5fc1 | |||
d9a5a86d10 | |||
83ad921ad6 | |||
5753c719bd | |||
322e2e0c6a | |||
371fdc6495 | |||
d23f2b5754 | |||
a50a015542 | |||
353cfb1980 | |||
79d737e760 | |||
8745034cec | |||
db979b30c4 | |||
a92855c995 | |||
5b006eba57 | |||
32a728d585 | |||
1b3be91e3c | |||
2509002fe4 | |||
9c9a690d0d | |||
216cc34224 | |||
71f1459ef9 | |||
f84bdb7d81 | |||
ed59c58a72 | |||
de941f4074 | |||
b7fb050d09 | |||
9ee2e768d6 | |||
d6d3a3c3d8 | |||
3e229b248f | |||
0470072436 | |||
f74fa60c8b | |||
c189767090 | |||
c82c18353d | |||
da58a272dd | |||
001f5fbb6b | |||
63cd452ab5 | |||
6ee77e9754 | |||
cee22262fc | |||
0d13352916 | |||
78a9832f13 | |||
795cf14650 | |||
8c112e8bc4 | |||
8e6d213459 | |||
b33df42640 | |||
e0462e6933 | |||
1f5e30a366 | |||
633eeb1586 | |||
c1148a6da3 | |||
713e86670d | |||
c004c726e7 | |||
5ffb8631e0 | |||
fd32a0280e | |||
e76f202eb3 | |||
ba4558cb92 | |||
74e5577dd4 | |||
b878002cf5 | |||
f111250e3b | |||
3d91f650db | |||
91a88cda6a | |||
2128c17ed0 | |||
7b819c9b74 | |||
eec5c661af | |||
0398f6b87a | |||
f120449aae | |||
636f51c93c | |||
9bb47c8c61 | |||
8886db2000 | |||
a7040896f0 | |||
2ebfab8e07 | |||
9bd5888f5e | |||
8b7bbbc6af | |||
0383ffa5ab | |||
3c361eb759 | |||
37eaa6e4f9 | |||
0ae7e86fcb | |||
3f405d8908 | |||
0245847ea8 | |||
54f16ca2bf | |||
a096ade345 | |||
848fe51f3d | |||
e82db6fc2f | |||
4b3176a9a1 | |||
5e6c58716e | |||
e98132fd76 | |||
ff171baa67 | |||
05664d150b | |||
fcda972cec | |||
01f44f531e | |||
c5b076ec7e | |||
05cf5a38af | |||
bd22b641b3 | |||
6a9005645a | |||
7392505bd8 | |||
6aaf742dfe | |||
dcaf69a5d5 | |||
323673c3c0 | |||
e16ccf8cf8 | |||
434cde179f | |||
629a4b5bf8 | |||
6a8f6fb3cc | |||
807e930786 | |||
554188e88e | |||
585fca06a1 | |||
282667c4b5 | |||
8176470b7f | |||
acb7ce16ca | |||
12bdef51f5 | |||
84b07c81fd | |||
107360a001 | |||
3f541df669 | |||
da17783242 | |||
0ea2843ec9 | |||
7c92bf15e2 | |||
97589f77f8 | |||
504adcc8c8 | |||
f03ed9f5bf | |||
b22dc38ba1 | |||
7a7992ab0b | |||
3513f4ee84 | |||
f33703aefc | |||
389089859d | |||
844dddfee0 | |||
862e7a410d | |||
7ad64c8d45 | |||
5b50990879 | |||
71b93468d5 | |||
6b88da2b82 | |||
d01ea20273 | |||
f05860672c | |||
2b5e919a47 | |||
27c8df6140 | |||
9ac112104c | |||
98b80288ed | |||
ecdea54203 | |||
9d5a07bac4 | |||
7adc721d96 | |||
f5137028fa | |||
48f9b2fdcc | |||
b7d6ff6770 | |||
f7a87d5e52 | |||
75d1aa5135 | |||
49396a69bf | |||
d94041e98d | |||
cc5408482e | |||
115bf2613d | |||
1d172b07a8 | |||
777ae3c215 | |||
1b2a9270e8 | |||
e082418e4a | |||
83218c479a | |||
dbb8267b09 | |||
ea0ba19089 | |||
2db28cae41 | |||
dd54fff978 | |||
c4f3bb9b67 | |||
45487a91f9 | |||
dad5c62df5 | |||
a1ab81a896 | |||
1d0ba0d1f2 | |||
46a4ea8f67 | |||
42f2b14a74 | |||
bec5835289 | |||
0aa4dc904e | |||
f526c424c5 | |||
601d7a52e9 | |||
7f6fc74c36 | |||
9e2ce1751b | |||
8920ac02f6 | |||
06415de8ee | |||
12d471e2da | |||
7d6777a96f | |||
96c08cd295 | |||
f3633a2e04 | |||
feeb1cb566 | |||
146bc95c16 | |||
5792f5bfb5 | |||
11521dca08 | |||
6f457292ff | |||
696cb298ab | |||
6d2861f358 | |||
7879fa5095 | |||
a03062af4f | |||
19ecce1e32 | |||
5e0a69f68b | |||
a33bcac52f | |||
39cd6dff7d | |||
ed9cf3566c | |||
d4d246bfd1 | |||
c02a14c798 | |||
781ce30e27 | |||
4b68c7c154 | |||
daddd90058 | |||
5d2b27d916 | |||
7a37363817 | |||
bee3829960 | |||
e0600e5a91 | |||
b55b646f12 | |||
43e608af47 | |||
32d6d811c5 | |||
0d6fca5abc | |||
48a085c28f | |||
059e631f41 | |||
deb7ac549c | |||
891767c6b7 | |||
62810d769a | |||
5253c27ca8 | |||
1ffd6b4b4d | |||
6469606baf | |||
77cd292828 | |||
22d6951de5 | |||
33f7103eae | |||
c00216e3be | |||
42247e0e1a | |||
8a908a6864 | |||
2d6ed7142f | |||
9ecb844de7 | |||
3ab8185777 | |||
b8008ae1e9 | |||
ab9ec45c9d | |||
6a0d683f79 | |||
711487267d | |||
503bf69ab3 | |||
a60521269d | |||
fe96f85410 | |||
275fab003f | |||
edfb386ef0 | |||
186709ed75 | |||
b7d4330dd4 | |||
7c3be2ec9a | |||
8fac9102eb | |||
178854ac97 | |||
f4a089cc26 | |||
422eab5846 | |||
95e1404a2b | |||
cfc21e1225 | |||
3799190fa0 | |||
d6c3396182 | |||
a95d37ea25 | |||
d8e1a196bc | |||
1e2970b7e1 | |||
0d1fed78af | |||
709bda5939 | |||
8a28734603 | |||
9485eba73d | |||
23c4a7dc49 | |||
39b578fde9 | |||
8e16079157 | |||
eabd23fc07 | |||
c7932b710c | |||
9d7a926a8b | |||
0a390cbc91 | |||
76829457df | |||
703a5348e8 | |||
1a135fa30e | |||
e4d75c77bf | |||
75d505c431 | |||
b72c99e46a | |||
fae9c08815 | |||
c3e7deb4b6 | |||
c9245751e9 | |||
9b172879a2 | |||
9077a94dfe | |||
e2f07a5220 | |||
ae93d574c2 | |||
369f37a0a4 | |||
e1b7f40c2b | |||
94dcd3fe12 | |||
2dc1ae9026 | |||
7cfff75c3e | |||
a66a49d384 | |||
5f58e0661b | |||
f0a40862d6 | |||
f75c51ff71 | |||
d357192025 | |||
c996c8ff49 | |||
1af4e256c9 | |||
bc09365c98 | |||
ba688cf629 | |||
d5c8b26a45 | |||
d38f3f664f | |||
5ac435325b | |||
b874441a47 | |||
a35087a5ed | |||
1aeaf052a6 | |||
a0eafa12e3 | |||
757425a360 | |||
64d1e776f7 | |||
c6695a3120 | |||
076e384bb5 | |||
41cff1b49d | |||
6796b08909 | |||
f9df17d8d0 | |||
7f71a0ba37 | |||
0e2e13f018 | |||
bd099e2f4d | |||
42f56b9f86 | |||
704c50ea17 | |||
887bff572a | |||
1eaf71b5b4 | |||
0f872af502 | |||
b13696ea1a | |||
5fbbf7c748 | |||
e7fe0db051 | |||
dcb7bd8c74 | |||
92d485dd4d | |||
f4229a5d3e | |||
f97626346b | |||
7f4feaee08 | |||
5a30ef180a | |||
0a0412e47e | |||
57d4b50467 | |||
8d75efdc58 | |||
c706f9b2cd | |||
c810913861 | |||
2b13158e29 | |||
4fe1716c7a | |||
d7a82783be | |||
0a0f15baca | |||
58c144ee55 | |||
280315a314 | |||
506ff5809e | |||
acd1505050 | |||
578b56fc10 | |||
88cb0c6ae3 | |||
294662a1ce |
2
.github/stale.yml
vendored
@ -1,7 +1,7 @@
|
|||||||
only: pulls
|
only: pulls
|
||||||
|
|
||||||
# Number of days of inactivity before a pull request becomes stale
|
# Number of days of inactivity before a pull request becomes stale
|
||||||
daysUntilStale: 30
|
daysUntilStale: 7
|
||||||
|
|
||||||
# Number of days of inactivity before a stale pull request is closed
|
# Number of days of inactivity before a stale pull request is closed
|
||||||
daysUntilClose: 7
|
daysUntilClose: 7
|
||||||
|
1
.gitignore
vendored
@ -1,5 +1,6 @@
|
|||||||
/book/html/
|
/book/html/
|
||||||
/book/src/tests.ok
|
/book/src/tests.ok
|
||||||
|
/book/src/.gitbook/assets/*.svg
|
||||||
/farf/
|
/farf/
|
||||||
/solana-release/
|
/solana-release/
|
||||||
/solana-release.tar.bz2
|
/solana-release.tar.bz2
|
||||||
|
259
CONTRIBUTING.md
@ -1,23 +1,41 @@
|
|||||||
Solana Coding Guidelines
|
# Solana Coding Guidelines
|
||||||
===
|
|
||||||
|
|
||||||
The goal of these guidelines is to improve developer productivity by allowing developers to
|
The goal of these guidelines is to improve developer productivity by allowing
|
||||||
jump any file in the codebase and not need to adapt to inconsistencies in how the code is
|
developers to jump into any file in the codebase and not need to adapt to
|
||||||
written. The codebase should appear as if it had been authored by a single developer. If you
|
inconsistencies in how the code is written. The codebase should appear as if it
|
||||||
don't agree with a convention, submit a PR patching this document and let's discuss! Once
|
had been authored by a single developer. If you don't agree with a convention,
|
||||||
the PR is accepted, *all* code should be updated as soon as possible to reflect the new
|
submit a PR patching this document and let's discuss! Once the PR is accepted,
|
||||||
|
*all* code should be updated as soon as possible to reflect the new
|
||||||
conventions.
|
conventions.
|
||||||
|
|
||||||
Pull Requests
|
## Pull Requests
|
||||||
---
|
|
||||||
|
|
||||||
Small, frequent PRs are much preferred to large, infrequent ones. A large PR is difficult
|
Small, frequent PRs are much preferred to large, infrequent ones. A large PR is
|
||||||
to review, can block others from making progress, and can quickly get its author into
|
difficult to review, can block others from making progress, and can quickly get
|
||||||
"rebase hell". A large PR oftentimes arises when one change requires another, which requires
|
its author into "rebase hell". A large PR oftentimes arises when one change
|
||||||
another, and then another. When you notice those dependencies, put the fix into a commit of
|
requires another, which requires another, and then another. When you notice
|
||||||
its own, then checkout a new branch, and cherrypick it. Open a PR to start the review
|
those dependencies, put the fix into a commit of its own, then checkout a new
|
||||||
process and then jump back to your original branch to keep making progress. Once the commit
|
branch, and cherry-pick it.
|
||||||
is merged, you can use git-rebase to purge it from your original branch.
|
|
||||||
|
```bash
|
||||||
|
$ git commit -am "Fix foo, needed by bar"
|
||||||
|
$ git checkout master
|
||||||
|
$ git checkout -b fix-foo
|
||||||
|
$ git cherry-pick fix-bar
|
||||||
|
$ git push --set-upstream origin fix-foo
|
||||||
|
```
|
||||||
|
|
||||||
|
Open a PR to start the review process and then jump back to your original
|
||||||
|
branch to keep making progress. Consider rebasing to make your fix the first
|
||||||
|
commit:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ git checkout fix-bar
|
||||||
|
$ git rebase -i master <Move fix-foo to top>
|
||||||
|
```
|
||||||
|
|
||||||
|
Once the commit is merged, rebase the original branch to purge the
|
||||||
|
cherry-picked commit:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ git pull --rebase upstream master
|
$ git pull --rebase upstream master
|
||||||
@ -25,26 +43,137 @@ $ git pull --rebase upstream master
|
|||||||
|
|
||||||
### How big is too big?
|
### How big is too big?
|
||||||
|
|
||||||
If there are no functional changes, PRs can be very large and that's no problem. If,
|
If there are no functional changes, PRs can be very large and that's no
|
||||||
however, your changes are making meaningful changes or additions, then about 1,000 lines of
|
problem. If, however, your changes are making meaningful changes or additions,
|
||||||
changes is about the most you should ask a Solana maintainer to review.
|
then about 1,000 lines of changes is about the most you should ask a Solana
|
||||||
|
maintainer to review.
|
||||||
|
|
||||||
### Should I send small PRs as I develop large, new components?
|
### Should I send small PRs as I develop large, new components?
|
||||||
|
|
||||||
Add only code to the codebase that is ready to be deployed. If you are building a large
|
Add only code to the codebase that is ready to be deployed. If you are building
|
||||||
library, consider developing it in a separate git repository. When it is ready to be
|
a large library, consider developing it in a separate git repository. When it
|
||||||
integrated, the Solana maintainers will work with you to decide on a path forward. Smaller
|
is ready to be integrated, the Solana maintainers will work with you to decide
|
||||||
libraries may be copied in whereas very large ones may be pulled in with a package manager.
|
on a path forward. Smaller libraries may be copied in whereas very large ones
|
||||||
|
may be pulled in with a package manager.
|
||||||
|
|
||||||
|
## Getting Pull Requests Merged
|
||||||
|
|
||||||
|
There is no single person assigned to watching GitHub PR queue and ushering you
|
||||||
|
through the process. Typically, you will ask the person that wrote a component
|
||||||
|
to review changes to it. You can find the author using `git blame` or asking on
|
||||||
|
Discord. When working to get your PR merged, it's most important to understand
|
||||||
|
that changing the code is your priority and not necessarily a priority of the
|
||||||
|
person you need an approval from. Also, while you may interact the most with
|
||||||
|
the component author, you should aim to be inclusive of others. Providing a
|
||||||
|
detailed problem description is the most effective means of engaging both the
|
||||||
|
component author and other potentially interested parties.
|
||||||
|
|
||||||
|
Consider opening all PRs as Draft Pull Requests first. Using a draft PR allows
|
||||||
|
you to kickstart the CI automation, which typically takes between 10 and 30
|
||||||
|
minutes to execute. Use that time to write a detailed problem description. Once
|
||||||
|
the description is written and CI succeeds, click the "Ready to Review" button
|
||||||
|
and add reviewers. Adding reviewers before CI succeeds is a fast path to losing
|
||||||
|
reviewer engagement. Not only will they be notified and see the PR is not yet
|
||||||
|
ready for them, they will also be bombarded them with additional notifications
|
||||||
|
each time you push a commit to get past CI or until they "mute" the PR. Once
|
||||||
|
muted, you'll need to reach out over some other medium, such as Discord, to
|
||||||
|
request they have another look. When you use draft PRs, no notifications are
|
||||||
|
sent when you push commits and edit the PR description. Use draft PRs
|
||||||
|
liberally. Don't bug the humans until you have gotten past the bots.
|
||||||
|
|
||||||
|
### What should be in my PR description?
|
||||||
|
|
||||||
|
Reviewing code is hard work and generally involves an attempt to guess the
|
||||||
|
author's intent at various levels. Please assume reviewer time is scarce and do
|
||||||
|
what you can to make your PR as consumable as possible. Inspired by techniques
|
||||||
|
for writing good whitepapers, the guidance here aims to maximize reviewer
|
||||||
|
engagement.
|
||||||
|
|
||||||
|
Assume the reviewer will spend no more than a few seconds reading the PR title.
|
||||||
|
If it doesn't describe a noteworthy change, don't expect the reviewer to click
|
||||||
|
to see more.
|
||||||
|
|
||||||
|
Next, like the abstract of a whitepaper, the reviewer will spend ~30 seconds
|
||||||
|
reading the PR problem description. If what is described there doesn't look
|
||||||
|
more important than competing issues, don't expect the reviewer to read on.
|
||||||
|
|
||||||
|
Next, the reviewer will read the proposed changes. At this point, the reviewer
|
||||||
|
needs to be convinced the proposed changes are a *good* solution to the problem
|
||||||
|
described above. If the proposed changes, not the code changes, generates
|
||||||
|
discussion, consider closing the PR and returning with a design proposal
|
||||||
|
instead.
|
||||||
|
|
||||||
|
Finally, once the reviewer understands the problem and agrees with the approach
|
||||||
|
to solving it, the reviewer will view the code changes. At this point, the
|
||||||
|
reviewer is simply looking to see if the implementation actually implements
|
||||||
|
what was proposed and if that implementation is maintainable. When a concise,
|
||||||
|
readable test for each new code path is present, the reviewer can safely ignore
|
||||||
|
the details of its implementation. When those tests are missing, expect to
|
||||||
|
either lose engagement or get a pile of review comments as the reviewer
|
||||||
|
attempts to consider every ambiguity in your implementation.
|
||||||
|
|
||||||
|
### The PR Title
|
||||||
|
|
||||||
|
The PR title should contain a brief summary of the change, from the perspective
|
||||||
|
of the user. Examples of good titles:
|
||||||
|
|
||||||
|
* Add rent to accounts
|
||||||
|
* Fix out-of-memory error in validator
|
||||||
|
* Clean up `process_message()` in runtime
|
||||||
|
|
||||||
|
The conventions here are all the same as a good git commit title:
|
||||||
|
|
||||||
|
* First word capitalized and in the imperative mood, not past tense ("add", not
|
||||||
|
"added")
|
||||||
|
* No trailing period
|
||||||
|
* What was done, whom it was done to, and in what context
|
||||||
|
|
||||||
|
### The PR Problem Statement
|
||||||
|
|
||||||
|
The git repo implements a product with various features. The problem statement
|
||||||
|
should describe how the product is missing a feature, how a feature is
|
||||||
|
incomplete, or how the implementation of a feature is somehow undesirable. If
|
||||||
|
an issue being fixed already describes the problem, go ahead and copy-paste it.
|
||||||
|
As mentioned above, reviewer time is scarce. Given a queue of PRs to review,
|
||||||
|
the reviewer may ignore PRs that expect them to click through links to see if
|
||||||
|
the PR warrants attention.
|
||||||
|
|
||||||
|
### The Proposed Changes
|
||||||
|
|
||||||
|
Typically the content under the "Proposed changes" section will be a bulleted
|
||||||
|
list of steps taken to solve the problem. Oftentimes, the list is identical to
|
||||||
|
the subject lines of the git commits contained in the PR. It's especially
|
||||||
|
generous (and not expected) to rebase or reword commits such that each change
|
||||||
|
matches the logical flow in your PR description.
|
||||||
|
|
||||||
### When will my PR be reviewed?
|
### When will my PR be reviewed?
|
||||||
|
|
||||||
PRs are typically reviewed and merged in under 7 days. If your PR has been open for longer,
|
PRs are typically reviewed and merged in under 7 days. If your PR has been open
|
||||||
it's a strong indicator that the reviewers aren't confident the change meets the quality
|
for longer, it's a strong indicator that the reviewers aren't confident the
|
||||||
standards of the codebase. You might consider closing it and coming back with smaller PRs
|
change meets the quality standards of the codebase. You might consider closing
|
||||||
and longer descriptions detailing what problem it solves and how it solves it.
|
it and coming back with smaller PRs and longer descriptions detailing what
|
||||||
|
problem it solves and how it solves it. Old PRs will be marked stale and then
|
||||||
|
closed automatically 7 days later.
|
||||||
|
|
||||||
Draft Pull Requests
|
### How to manage review feedback?
|
||||||
---
|
|
||||||
|
After a reviewer provides feedback, you can quickly say "acknowledged, will
|
||||||
|
fix" using a thumb's up emoji. If you're confident your fix is exactly as
|
||||||
|
prescribed, add a reply "Fixed in COMMIT\_HASH" and mark the comment as
|
||||||
|
resolved. If you're not sure, reply "Is this what you had in mind?
|
||||||
|
COMMIT\_HASH" and if so, the reviewer will reply and mark the conversation as
|
||||||
|
resolved. Marking conversations as resolved is an excellent way to engage more
|
||||||
|
reviewers. Leaving conversations open may imply the PR is not yet ready for
|
||||||
|
additional review.
|
||||||
|
|
||||||
|
### When will my PR be re-reviewed?
|
||||||
|
|
||||||
|
Recall that once your PR is opened, a notification is sent every time you push
|
||||||
|
a commit. After a reviewer adds feedback, they won't be checking on the status
|
||||||
|
of that feedback after every new commit. Instead, directly mention the reviewer
|
||||||
|
when you feel your PR is ready for another pass.
|
||||||
|
|
||||||
|
## Draft Pull Requests
|
||||||
|
|
||||||
If you want early feedback on your PR, use GitHub's "Draft Pull Request"
|
If you want early feedback on your PR, use GitHub's "Draft Pull Request"
|
||||||
mechanism. Draft PRs are a convenient way to collaborate with the Solana
|
mechanism. Draft PRs are a convenient way to collaborate with the Solana
|
||||||
@ -52,67 +181,69 @@ maintainers without triggering notifications as you make changes. When you feel
|
|||||||
your PR is ready for a broader audience, you can transition your draft PR to a
|
your PR is ready for a broader audience, you can transition your draft PR to a
|
||||||
standard PR with the click of a button.
|
standard PR with the click of a button.
|
||||||
|
|
||||||
Do not add reviewers to draft PRs. GitHub doesn't automatically clear approvals
|
Do not add reviewers to draft PRs. GitHub doesn't automatically clear
|
||||||
when you click "Ready for Review", so a review that meant "I approve of the
|
approvals when you click "Ready for Review", so a review that meant "I approve
|
||||||
direction" suddenly has the appearance of "I approve of these changes." Instead,
|
of the direction" suddenly has the appearance of "I approve of these changes."
|
||||||
add a comment that mentions the usernames that you would like a review from. Ask
|
Instead, add a comment that mentions the usernames that you would like a review
|
||||||
explicitly what you would like feedback on.
|
from. Ask explicitly what you would like feedback on.
|
||||||
|
|
||||||
Rust coding conventions
|
## Rust coding conventions
|
||||||
---
|
|
||||||
|
|
||||||
* All Rust code is formatted using the latest version of `rustfmt`. Once installed, it will be
|
* All Rust code is formatted using the latest version of `rustfmt`. Once
|
||||||
updated automatically when you update the compiler with `rustup`.
|
installed, it will be updated automatically when you update the compiler with
|
||||||
|
`rustup`.
|
||||||
|
|
||||||
* All Rust code is linted with Clippy. If you'd prefer to ignore its advice, do so explicitly:
|
* All Rust code is linted with Clippy. If you'd prefer to ignore its advice, do
|
||||||
|
so explicitly:
|
||||||
|
|
||||||
```rust
|
```rust #[allow(clippy::too_many_arguments)] ```
|
||||||
#[allow(clippy::too_many_arguments)]
|
|
||||||
```
|
|
||||||
|
|
||||||
Note: Clippy defaults can be overridden in the top-level file `.clippy.toml`.
|
Note: Clippy defaults can be overridden in the top-level file `.clippy.toml`.
|
||||||
|
|
||||||
* For variable names, when in doubt, spell it out. The mapping from type names to variable names
|
* For variable names, when in doubt, spell it out. The mapping from type names
|
||||||
is to lowercase the type name, putting an underscore before each capital letter. Variable names
|
to variable names is to lowercase the type name, putting an underscore before
|
||||||
should *not* be abbreviated unless being used as closure arguments and the brevity improves
|
each capital letter. Variable names should *not* be abbreviated unless being
|
||||||
readability. When a function has multiple instances of the same type, qualify each with a
|
used as closure arguments and the brevity improves readability. When a function
|
||||||
prefix and underscore (i.e. alice_keypair) or a numeric suffix (i.e. tx0).
|
has multiple instances of the same type, qualify each with a prefix and
|
||||||
|
underscore (i.e. alice\_keypair) or a numeric suffix (i.e. tx0).
|
||||||
|
|
||||||
* For function and method names, use `<verb>_<subject>`. For unit tests, that verb should
|
* For function and method names, use `<verb>_<subject>`. For unit tests, that
|
||||||
always be `test` and for benchmarks the verb should always be `bench`. Avoid namespacing
|
verb should always be `test` and for benchmarks the verb should always be
|
||||||
function names with some arbitrary word. Avoid abbreviating words in function names.
|
`bench`. Avoid namespacing function names with some arbitrary word. Avoid
|
||||||
|
abbreviating words in function names.
|
||||||
|
|
||||||
* As they say, "When in Rome, do as the Romans do." A good patch should acknowledge the coding
|
* As they say, "When in Rome, do as the Romans do." A good patch should
|
||||||
conventions of the code that surrounds it, even in the case where that code has not yet been
|
acknowledge the coding conventions of the code that surrounds it, even in the
|
||||||
updated to meet the conventions described here.
|
case where that code has not yet been updated to meet the conventions described
|
||||||
|
here.
|
||||||
|
|
||||||
|
|
||||||
Terminology
|
## Terminology
|
||||||
---
|
|
||||||
|
|
||||||
Inventing new terms is allowed, but should only be done when the term is widely used and
|
Inventing new terms is allowed, but should only be done when the term is widely
|
||||||
understood. Avoid introducing new 3-letter terms, which can be confused with 3-letter acronyms.
|
used and understood. Avoid introducing new 3-letter terms, which can be
|
||||||
|
confused with 3-letter acronyms.
|
||||||
|
|
||||||
[Terms currently in use](book/src/terminology.md)
|
[Terms currently in use](book/src/terminology.md)
|
||||||
|
|
||||||
|
|
||||||
Design Proposals
|
## Design Proposals
|
||||||
---
|
|
||||||
|
|
||||||
Solana's architecture is described by a book generated from markdown files in
|
Solana's architecture is described by a book generated from markdown files in
|
||||||
the `book/src/` directory, maintained by an *editor* (currently @garious). To
|
the `book/src/` directory, maintained by an *editor* (currently @garious). To
|
||||||
add a design proposal, you'll need to at least propose a change the content
|
add a design proposal, you'll need to at least propose a change the content
|
||||||
under the [Accepted Design
|
under the [Accepted Design
|
||||||
Proposals](https://docs.solana.com/book/v/master/proposals) chapter.
|
Proposals](https://docs.solana.com/book/v/master/proposals) chapter. Here's
|
||||||
Here's the full process:
|
the full process:
|
||||||
|
|
||||||
1. Propose a design by creating a PR that adds a markdown document to the
|
1. Propose a design by creating a PR that adds a markdown document to the
|
||||||
directory `book/src/` and references it from the [table of
|
directory `book/src/` and references it from the [table of
|
||||||
contents](book/src/SUMMARY.md). Add any relevant *maintainers* to the PR review.
|
contents](book/src/SUMMARY.md). Add any relevant *maintainers* to the PR
|
||||||
|
review.
|
||||||
2. The PR being merged indicates your proposed change was accepted and that the
|
2. The PR being merged indicates your proposed change was accepted and that the
|
||||||
maintainers support your plan of attack.
|
maintainers support your plan of attack.
|
||||||
3. Submit PRs that implement the proposal. When the implementation reveals the
|
3. Submit PRs that implement the proposal. When the implementation reveals the
|
||||||
need for tweaks to the proposal, be sure to update the proposal and have
|
need for tweaks to the proposal, be sure to update the proposal and have that
|
||||||
that change reviewed by the same people as in step 1.
|
change reviewed by the same people as in step 1.
|
||||||
4. Once the implementation is complete, submit a PR that moves the link from
|
4. Once the implementation is complete, submit a PR that moves the link from
|
||||||
the Accepted Proposals to the Implemented Proposals section.
|
the Accepted Proposals to the Implemented Proposals section.
|
||||||
|
1522
Cargo.lock
generated
12
Cargo.toml
@ -7,7 +7,7 @@ members = [
|
|||||||
"chacha-sys",
|
"chacha-sys",
|
||||||
"client",
|
"client",
|
||||||
"core",
|
"core",
|
||||||
"drone",
|
"faucet",
|
||||||
"perf",
|
"perf",
|
||||||
"validator",
|
"validator",
|
||||||
"genesis",
|
"genesis",
|
||||||
@ -29,31 +29,31 @@ members = [
|
|||||||
"programs/btc_spv",
|
"programs/btc_spv",
|
||||||
"programs/btc_spv_bin",
|
"programs/btc_spv_bin",
|
||||||
"programs/config",
|
"programs/config",
|
||||||
"programs/config_tests",
|
|
||||||
"programs/exchange",
|
"programs/exchange",
|
||||||
"programs/failure",
|
"programs/failure",
|
||||||
"programs/noop",
|
"programs/noop",
|
||||||
"programs/ownable_api",
|
"programs/ownable",
|
||||||
"programs/stake",
|
"programs/stake",
|
||||||
"programs/stake_tests",
|
|
||||||
"programs/storage",
|
"programs/storage",
|
||||||
"programs/storage_tests",
|
|
||||||
"programs/vest",
|
"programs/vest",
|
||||||
"programs/vote",
|
"programs/vote",
|
||||||
"archiver",
|
"archiver",
|
||||||
"runtime",
|
"runtime",
|
||||||
"sdk",
|
"sdk",
|
||||||
"sdk-c",
|
"sdk-c",
|
||||||
|
"scripts",
|
||||||
|
"sys-tuner",
|
||||||
"upload-perf",
|
"upload-perf",
|
||||||
"net-utils",
|
"net-utils",
|
||||||
"fixed-buf",
|
"fixed-buf",
|
||||||
"vote-signer",
|
"vote-signer",
|
||||||
"cli",
|
"cli",
|
||||||
"rayon-threadlimit",
|
"rayon-threadlimit",
|
||||||
|
"watchtower",
|
||||||
]
|
]
|
||||||
|
|
||||||
exclude = [
|
exclude = [
|
||||||
"programs/bpf",
|
"programs/bpf",
|
||||||
"programs/move_loader",
|
"programs/move_loader",
|
||||||
"programs/librapay_api",
|
"programs/librapay",
|
||||||
]
|
]
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-archiver"
|
name = "solana-archiver"
|
||||||
version = "0.21.0"
|
version = "0.22.10"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@ -10,10 +10,10 @@ homepage = "https://solana.com/"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
clap = "2.33.0"
|
clap = "2.33.0"
|
||||||
console = "0.9.1"
|
console = "0.9.1"
|
||||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.0" }
|
solana-clap-utils = { path = "../clap-utils", version = "0.22.10" }
|
||||||
solana-core = { path = "../core", version = "0.21.0" }
|
solana-core = { path = "../core", version = "0.22.10" }
|
||||||
solana-logger = { path = "../logger", version = "0.21.0" }
|
solana-logger = { path = "../logger", version = "0.22.10" }
|
||||||
solana-metrics = { path = "../metrics", version = "0.21.0" }
|
solana-metrics = { path = "../metrics", version = "0.22.10" }
|
||||||
solana-net-utils = { path = "../net-utils", version = "0.21.0" }
|
solana-net-utils = { path = "../net-utils", version = "0.22.10" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.21.0" }
|
solana-sdk = { path = "../sdk", version = "0.22.10" }
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-banking-bench"
|
name = "solana-banking-bench"
|
||||||
version = "0.21.0"
|
version = "0.22.10"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@ -10,11 +10,11 @@ homepage = "https://solana.com/"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4.6"
|
log = "0.4.6"
|
||||||
rayon = "1.2.0"
|
rayon = "1.2.0"
|
||||||
solana-core = { path = "../core", version = "0.21.0" }
|
solana-core = { path = "../core", version = "0.22.10" }
|
||||||
solana-ledger = { path = "../ledger", version = "0.21.0" }
|
solana-ledger = { path = "../ledger", version = "0.22.10" }
|
||||||
solana-logger = { path = "../logger", version = "0.21.0" }
|
solana-logger = { path = "../logger", version = "0.22.10" }
|
||||||
solana-runtime = { path = "../runtime", version = "0.21.0" }
|
solana-runtime = { path = "../runtime", version = "0.22.10" }
|
||||||
solana-measure = { path = "../measure", version = "0.21.0" }
|
solana-measure = { path = "../measure", version = "0.22.10" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.21.0" }
|
solana-sdk = { path = "../sdk", version = "0.22.10" }
|
||||||
rand = "0.6.5"
|
rand = "0.6.5"
|
||||||
crossbeam-channel = "0.3"
|
crossbeam-channel = "0.3"
|
||||||
|
@ -10,7 +10,7 @@ use solana_core::packet::to_packets_chunked;
|
|||||||
use solana_core::poh_recorder::PohRecorder;
|
use solana_core::poh_recorder::PohRecorder;
|
||||||
use solana_core::poh_recorder::WorkingBankEntry;
|
use solana_core::poh_recorder::WorkingBankEntry;
|
||||||
use solana_ledger::bank_forks::BankForks;
|
use solana_ledger::bank_forks::BankForks;
|
||||||
use solana_ledger::{blocktree::Blocktree, get_tmp_ledger_path};
|
use solana_ledger::{blockstore::Blockstore, get_tmp_ledger_path};
|
||||||
use solana_measure::measure::Measure;
|
use solana_measure::measure::Measure;
|
||||||
use solana_runtime::bank::Bank;
|
use solana_runtime::bank::Bank;
|
||||||
use solana_sdk::hash::Hash;
|
use solana_sdk::hash::Hash;
|
||||||
@ -139,11 +139,11 @@ fn main() {
|
|||||||
let mut verified: Vec<_> = to_packets_chunked(&transactions.clone(), PACKETS_PER_BATCH);
|
let mut verified: Vec<_> = to_packets_chunked(&transactions.clone(), PACKETS_PER_BATCH);
|
||||||
let ledger_path = get_tmp_ledger_path!();
|
let ledger_path = get_tmp_ledger_path!();
|
||||||
{
|
{
|
||||||
let blocktree = Arc::new(
|
let blockstore = Arc::new(
|
||||||
Blocktree::open(&ledger_path).expect("Expected to be able to open database ledger"),
|
Blockstore::open(&ledger_path).expect("Expected to be able to open database ledger"),
|
||||||
);
|
);
|
||||||
let (exit, poh_recorder, poh_service, signal_receiver) =
|
let (exit, poh_recorder, poh_service, signal_receiver) =
|
||||||
create_test_recorder(&bank, &blocktree, None);
|
create_test_recorder(&bank, &blockstore, None);
|
||||||
let cluster_info = ClusterInfo::new_with_invalid_keypair(Node::new_localhost().info);
|
let cluster_info = ClusterInfo::new_with_invalid_keypair(Node::new_localhost().info);
|
||||||
let cluster_info = Arc::new(RwLock::new(cluster_info));
|
let cluster_info = Arc::new(RwLock::new(cluster_info));
|
||||||
let banking_stage = BankingStage::new(
|
let banking_stage = BankingStage::new(
|
||||||
@ -162,7 +162,6 @@ fn main() {
|
|||||||
// If it is dropped before poh_service, then poh_service will error when
|
// If it is dropped before poh_service, then poh_service will error when
|
||||||
// calling send() on the channel.
|
// calling send() on the channel.
|
||||||
let signal_receiver = Arc::new(signal_receiver);
|
let signal_receiver = Arc::new(signal_receiver);
|
||||||
let signal_receiver2 = signal_receiver.clone();
|
|
||||||
let mut total = 0;
|
let mut total = 0;
|
||||||
let mut tx_total = 0;
|
let mut tx_total = 0;
|
||||||
let mut txs_processed = 0;
|
let mut txs_processed = 0;
|
||||||
@ -215,7 +214,7 @@ fn main() {
|
|||||||
sleep(Duration::from_millis(5));
|
sleep(Duration::from_millis(5));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if check_txs(&signal_receiver2, txes / CHUNKS, &poh_recorder) {
|
if check_txs(&signal_receiver, txes / CHUNKS, &poh_recorder) {
|
||||||
debug!(
|
debug!(
|
||||||
"resetting bank {} tx count: {} txs_proc: {}",
|
"resetting bank {} tx count: {} txs_proc: {}",
|
||||||
bank.slot(),
|
bank.slot(),
|
||||||
@ -301,5 +300,5 @@ fn main() {
|
|||||||
sleep(Duration::from_secs(1));
|
sleep(Duration::from_secs(1));
|
||||||
debug!("waited for poh_service");
|
debug!("waited for poh_service");
|
||||||
}
|
}
|
||||||
let _unused = Blocktree::destroy(&ledger_path);
|
let _unused = Blockstore::destroy(&ledger_path);
|
||||||
}
|
}
|
||||||
|
@ -2,14 +2,14 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-bench-exchange"
|
name = "solana-bench-exchange"
|
||||||
version = "0.21.0"
|
version = "0.22.10"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bincode = "1.2.0"
|
bincode = "1.2.1"
|
||||||
bs58 = "0.3.0"
|
bs58 = "0.3.0"
|
||||||
clap = "2.32.0"
|
clap = "2.32.0"
|
||||||
env_logger = "0.7.1"
|
env_logger = "0.7.1"
|
||||||
@ -19,23 +19,23 @@ num-derive = "0.3"
|
|||||||
num-traits = "0.2"
|
num-traits = "0.2"
|
||||||
rand = "0.6.5"
|
rand = "0.6.5"
|
||||||
rayon = "1.2.0"
|
rayon = "1.2.0"
|
||||||
serde = "1.0.102"
|
serde = "1.0.104"
|
||||||
serde_derive = "1.0.102"
|
serde_derive = "1.0.103"
|
||||||
serde_json = "1.0.41"
|
serde_json = "1.0.44"
|
||||||
serde_yaml = "0.8.11"
|
serde_yaml = "0.8.11"
|
||||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.0" }
|
solana-clap-utils = { path = "../clap-utils", version = "0.22.10" }
|
||||||
solana-core = { path = "../core", version = "0.21.0" }
|
solana-core = { path = "../core", version = "0.22.10" }
|
||||||
solana-genesis = { path = "../genesis", version = "0.21.0" }
|
solana-genesis = { path = "../genesis", version = "0.22.10" }
|
||||||
solana-client = { path = "../client", version = "0.21.0" }
|
solana-client = { path = "../client", version = "0.22.10" }
|
||||||
solana-drone = { path = "../drone", version = "0.21.0" }
|
solana-faucet = { path = "../faucet", version = "0.22.10" }
|
||||||
solana-exchange-program = { path = "../programs/exchange", version = "0.21.0" }
|
solana-exchange-program = { path = "../programs/exchange", version = "0.22.10" }
|
||||||
solana-logger = { path = "../logger", version = "0.21.0" }
|
solana-logger = { path = "../logger", version = "0.22.10" }
|
||||||
solana-metrics = { path = "../metrics", version = "0.21.0" }
|
solana-metrics = { path = "../metrics", version = "0.22.10" }
|
||||||
solana-net-utils = { path = "../net-utils", version = "0.21.0" }
|
solana-net-utils = { path = "../net-utils", version = "0.22.10" }
|
||||||
solana-runtime = { path = "../runtime", version = "0.21.0" }
|
solana-runtime = { path = "../runtime", version = "0.22.10" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.21.0" }
|
solana-sdk = { path = "../sdk", version = "0.22.10" }
|
||||||
untrusted = "0.7.0"
|
untrusted = "0.7.0"
|
||||||
ws = "0.9.1"
|
ws = "0.9.1"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
solana-local-cluster = { path = "../local-cluster", version = "0.21.0" }
|
solana-local-cluster = { path = "../local-cluster", version = "0.22.10" }
|
||||||
|
@ -7,8 +7,8 @@ use rand::{thread_rng, Rng};
|
|||||||
use rayon::prelude::*;
|
use rayon::prelude::*;
|
||||||
use solana_client::perf_utils::{sample_txs, SampleStats};
|
use solana_client::perf_utils::{sample_txs, SampleStats};
|
||||||
use solana_core::gen_keys::GenKeys;
|
use solana_core::gen_keys::GenKeys;
|
||||||
use solana_drone::drone::request_airdrop_transaction;
|
|
||||||
use solana_exchange_program::{exchange_instruction, exchange_state::*, id};
|
use solana_exchange_program::{exchange_instruction, exchange_state::*, id};
|
||||||
|
use solana_faucet::faucet::request_airdrop_transaction;
|
||||||
use solana_genesis::Base64Account;
|
use solana_genesis::Base64Account;
|
||||||
use solana_metrics::datapoint_info;
|
use solana_metrics::datapoint_info;
|
||||||
use solana_sdk::{
|
use solana_sdk::{
|
||||||
@ -256,7 +256,7 @@ where
|
|||||||
trace!("Start trader thread");
|
trace!("Start trader thread");
|
||||||
let trader_thread = {
|
let trader_thread = {
|
||||||
let exit_signal = exit_signal.clone();
|
let exit_signal = exit_signal.clone();
|
||||||
let shared_txs = shared_txs.clone();
|
|
||||||
let client = clients[0].clone();
|
let client = clients[0].clone();
|
||||||
Builder::new()
|
Builder::new()
|
||||||
.name("solana-exchange-trader".to_string())
|
.name("solana-exchange-trader".to_string())
|
||||||
@ -968,7 +968,7 @@ fn generate_keypairs(num: u64) -> Vec<Keypair> {
|
|||||||
rnd.gen_n_keypairs(num)
|
rnd.gen_n_keypairs(num)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn airdrop_lamports(client: &dyn Client, drone_addr: &SocketAddr, id: &Keypair, amount: u64) {
|
pub fn airdrop_lamports(client: &dyn Client, faucet_addr: &SocketAddr, id: &Keypair, amount: u64) {
|
||||||
let balance = client.get_balance_with_commitment(&id.pubkey(), CommitmentConfig::recent());
|
let balance = client.get_balance_with_commitment(&id.pubkey(), CommitmentConfig::recent());
|
||||||
let balance = balance.unwrap_or(0);
|
let balance = balance.unwrap_or(0);
|
||||||
if balance >= amount {
|
if balance >= amount {
|
||||||
@ -980,7 +980,7 @@ pub fn airdrop_lamports(client: &dyn Client, drone_addr: &SocketAddr, id: &Keypa
|
|||||||
info!(
|
info!(
|
||||||
"Airdropping {:?} lamports from {} for {}",
|
"Airdropping {:?} lamports from {} for {}",
|
||||||
amount_to_drop,
|
amount_to_drop,
|
||||||
drone_addr,
|
faucet_addr,
|
||||||
id.pubkey(),
|
id.pubkey(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -989,7 +989,7 @@ pub fn airdrop_lamports(client: &dyn Client, drone_addr: &SocketAddr, id: &Keypa
|
|||||||
let (blockhash, _fee_calculator) = client
|
let (blockhash, _fee_calculator) = client
|
||||||
.get_recent_blockhash_with_commitment(CommitmentConfig::recent())
|
.get_recent_blockhash_with_commitment(CommitmentConfig::recent())
|
||||||
.expect("Failed to get blockhash");
|
.expect("Failed to get blockhash");
|
||||||
match request_airdrop_transaction(&drone_addr, &id.pubkey(), amount_to_drop, blockhash) {
|
match request_airdrop_transaction(&faucet_addr, &id.pubkey(), amount_to_drop, blockhash) {
|
||||||
Ok(transaction) => {
|
Ok(transaction) => {
|
||||||
let signature = client.async_send_transaction(transaction).unwrap();
|
let signature = client.async_send_transaction(transaction).unwrap();
|
||||||
|
|
||||||
@ -1013,7 +1013,7 @@ pub fn airdrop_lamports(client: &dyn Client, drone_addr: &SocketAddr, id: &Keypa
|
|||||||
Err(err) => {
|
Err(err) => {
|
||||||
panic!(
|
panic!(
|
||||||
"Error requesting airdrop: {:?} to addr: {:?} amount: {}",
|
"Error requesting airdrop: {:?} to addr: {:?} amount: {}",
|
||||||
err, drone_addr, amount
|
err, faucet_addr, amount
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use clap::{crate_description, crate_name, value_t, App, Arg, ArgMatches};
|
use clap::{crate_description, crate_name, value_t, App, Arg, ArgMatches};
|
||||||
use solana_core::gen_keys::GenKeys;
|
use solana_core::gen_keys::GenKeys;
|
||||||
use solana_drone::drone::DRONE_PORT;
|
use solana_faucet::faucet::FAUCET_PORT;
|
||||||
use solana_sdk::signature::{read_keypair_file, Keypair, KeypairUtil};
|
use solana_sdk::signature::{read_keypair_file, Keypair, KeypairUtil};
|
||||||
use std::net::SocketAddr;
|
use std::net::SocketAddr;
|
||||||
use std::process::exit;
|
use std::process::exit;
|
||||||
@ -8,7 +8,7 @@ use std::time::Duration;
|
|||||||
|
|
||||||
pub struct Config {
|
pub struct Config {
|
||||||
pub entrypoint_addr: SocketAddr,
|
pub entrypoint_addr: SocketAddr,
|
||||||
pub drone_addr: SocketAddr,
|
pub faucet_addr: SocketAddr,
|
||||||
pub identity: Keypair,
|
pub identity: Keypair,
|
||||||
pub threads: usize,
|
pub threads: usize,
|
||||||
pub num_nodes: usize,
|
pub num_nodes: usize,
|
||||||
@ -27,7 +27,7 @@ impl Default for Config {
|
|||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self {
|
Self {
|
||||||
entrypoint_addr: SocketAddr::from(([127, 0, 0, 1], 8001)),
|
entrypoint_addr: SocketAddr::from(([127, 0, 0, 1], 8001)),
|
||||||
drone_addr: SocketAddr::from(([127, 0, 0, 1], DRONE_PORT)),
|
faucet_addr: SocketAddr::from(([127, 0, 0, 1], FAUCET_PORT)),
|
||||||
identity: Keypair::new(),
|
identity: Keypair::new(),
|
||||||
num_nodes: 1,
|
num_nodes: 1,
|
||||||
threads: 4,
|
threads: 4,
|
||||||
@ -59,14 +59,14 @@ pub fn build_args<'a, 'b>(version: &'b str) -> App<'a, 'b> {
|
|||||||
.help("Cluster entry point; defaults to 127.0.0.1:8001"),
|
.help("Cluster entry point; defaults to 127.0.0.1:8001"),
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
Arg::with_name("drone")
|
Arg::with_name("faucet")
|
||||||
.short("d")
|
.short("d")
|
||||||
.long("drone")
|
.long("faucet")
|
||||||
.value_name("HOST:PORT")
|
.value_name("HOST:PORT")
|
||||||
.takes_value(true)
|
.takes_value(true)
|
||||||
.required(false)
|
.required(false)
|
||||||
.default_value("127.0.0.1:9900")
|
.default_value("127.0.0.1:9900")
|
||||||
.help("Location of the drone; defaults to 127.0.0.1:9900"),
|
.help("Location of the faucet; defaults to 127.0.0.1:9900"),
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
Arg::with_name("identity")
|
Arg::with_name("identity")
|
||||||
@ -174,9 +174,9 @@ pub fn extract_args<'a>(matches: &ArgMatches<'a>) -> Config {
|
|||||||
exit(1)
|
exit(1)
|
||||||
});
|
});
|
||||||
|
|
||||||
args.drone_addr = solana_net_utils::parse_host_port(matches.value_of("drone").unwrap())
|
args.faucet_addr = solana_net_utils::parse_host_port(matches.value_of("faucet").unwrap())
|
||||||
.unwrap_or_else(|e| {
|
.unwrap_or_else(|e| {
|
||||||
eprintln!("failed to parse drone address: {}", e);
|
eprintln!("failed to parse faucet address: {}", e);
|
||||||
exit(1)
|
exit(1)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ fn main() {
|
|||||||
|
|
||||||
let cli::Config {
|
let cli::Config {
|
||||||
entrypoint_addr,
|
entrypoint_addr,
|
||||||
drone_addr,
|
faucet_addr,
|
||||||
identity,
|
identity,
|
||||||
threads,
|
threads,
|
||||||
num_nodes,
|
num_nodes,
|
||||||
@ -73,7 +73,7 @@ fn main() {
|
|||||||
const NUM_SIGNERS: u64 = 2;
|
const NUM_SIGNERS: u64 = 2;
|
||||||
airdrop_lamports(
|
airdrop_lamports(
|
||||||
&client,
|
&client,
|
||||||
&drone_addr,
|
&faucet_addr,
|
||||||
&config.identity,
|
&config.identity,
|
||||||
fund_amount * (accounts_in_groups + 1) as u64 * NUM_SIGNERS,
|
fund_amount * (accounts_in_groups + 1) as u64 * NUM_SIGNERS,
|
||||||
);
|
);
|
||||||
|
@ -2,10 +2,10 @@ use log::*;
|
|||||||
use solana_bench_exchange::bench::{airdrop_lamports, do_bench_exchange, Config};
|
use solana_bench_exchange::bench::{airdrop_lamports, do_bench_exchange, Config};
|
||||||
use solana_core::gossip_service::{discover_cluster, get_multi_client};
|
use solana_core::gossip_service::{discover_cluster, get_multi_client};
|
||||||
use solana_core::validator::ValidatorConfig;
|
use solana_core::validator::ValidatorConfig;
|
||||||
use solana_drone::drone::run_local_drone;
|
|
||||||
use solana_exchange_program::exchange_processor::process_instruction;
|
use solana_exchange_program::exchange_processor::process_instruction;
|
||||||
use solana_exchange_program::id;
|
use solana_exchange_program::id;
|
||||||
use solana_exchange_program::solana_exchange_program;
|
use solana_exchange_program::solana_exchange_program;
|
||||||
|
use solana_faucet::faucet::run_local_faucet;
|
||||||
use solana_local_cluster::local_cluster::{ClusterConfig, LocalCluster};
|
use solana_local_cluster::local_cluster::{ClusterConfig, LocalCluster};
|
||||||
use solana_runtime::bank::Bank;
|
use solana_runtime::bank::Bank;
|
||||||
use solana_runtime::bank_client::BankClient;
|
use solana_runtime::bank_client::BankClient;
|
||||||
@ -46,16 +46,16 @@ fn test_exchange_local_cluster() {
|
|||||||
..ClusterConfig::default()
|
..ClusterConfig::default()
|
||||||
});
|
});
|
||||||
|
|
||||||
let drone_keypair = Keypair::new();
|
let faucet_keypair = Keypair::new();
|
||||||
cluster.transfer(
|
cluster.transfer(
|
||||||
&cluster.funding_keypair,
|
&cluster.funding_keypair,
|
||||||
&drone_keypair.pubkey(),
|
&faucet_keypair.pubkey(),
|
||||||
2_000_000_000_000,
|
2_000_000_000_000,
|
||||||
);
|
);
|
||||||
|
|
||||||
let (addr_sender, addr_receiver) = channel();
|
let (addr_sender, addr_receiver) = channel();
|
||||||
run_local_drone(drone_keypair, addr_sender, Some(1_000_000_000_000));
|
run_local_faucet(faucet_keypair, addr_sender, Some(1_000_000_000_000));
|
||||||
let drone_addr = addr_receiver.recv_timeout(Duration::from_secs(2)).unwrap();
|
let faucet_addr = addr_receiver.recv_timeout(Duration::from_secs(2)).unwrap();
|
||||||
|
|
||||||
info!("Connecting to the cluster");
|
info!("Connecting to the cluster");
|
||||||
let (nodes, _) =
|
let (nodes, _) =
|
||||||
@ -72,7 +72,7 @@ fn test_exchange_local_cluster() {
|
|||||||
const NUM_SIGNERS: u64 = 2;
|
const NUM_SIGNERS: u64 = 2;
|
||||||
airdrop_lamports(
|
airdrop_lamports(
|
||||||
&client,
|
&client,
|
||||||
&drone_addr,
|
&faucet_addr,
|
||||||
&config.identity,
|
&config.identity,
|
||||||
fund_amount * (accounts_in_groups + 1) as u64 * NUM_SIGNERS,
|
fund_amount * (accounts_in_groups + 1) as u64 * NUM_SIGNERS,
|
||||||
);
|
);
|
||||||
|
@ -2,14 +2,14 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-bench-streamer"
|
name = "solana-bench-streamer"
|
||||||
version = "0.21.0"
|
version = "0.22.10"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
clap = "2.33.0"
|
clap = "2.33.0"
|
||||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.0" }
|
solana-clap-utils = { path = "../clap-utils", version = "0.22.10" }
|
||||||
solana-core = { path = "../core", version = "0.21.0" }
|
solana-core = { path = "../core", version = "0.22.10" }
|
||||||
solana-logger = { path = "../logger", version = "0.21.0" }
|
solana-logger = { path = "../logger", version = "0.22.10" }
|
||||||
solana-net-utils = { path = "../net-utils", version = "0.21.0" }
|
solana-net-utils = { path = "../net-utils", version = "0.22.10" }
|
||||||
|
@ -2,38 +2,38 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-bench-tps"
|
name = "solana-bench-tps"
|
||||||
version = "0.21.0"
|
version = "0.22.10"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bincode = "1.2.0"
|
bincode = "1.2.1"
|
||||||
clap = "2.33.0"
|
clap = "2.33.0"
|
||||||
log = "0.4.8"
|
log = "0.4.8"
|
||||||
rayon = "1.2.0"
|
rayon = "1.2.0"
|
||||||
serde = "1.0.102"
|
serde = "1.0.104"
|
||||||
serde_derive = "1.0.102"
|
serde_derive = "1.0.103"
|
||||||
serde_json = "1.0.41"
|
serde_json = "1.0.44"
|
||||||
serde_yaml = "0.8.11"
|
serde_yaml = "0.8.11"
|
||||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.0" }
|
solana-clap-utils = { path = "../clap-utils", version = "0.22.10" }
|
||||||
solana-core = { path = "../core", version = "0.21.0" }
|
solana-core = { path = "../core", version = "0.22.10" }
|
||||||
solana-genesis = { path = "../genesis", version = "0.21.0" }
|
solana-genesis = { path = "../genesis", version = "0.22.10" }
|
||||||
solana-client = { path = "../client", version = "0.21.0" }
|
solana-client = { path = "../client", version = "0.22.10" }
|
||||||
solana-drone = { path = "../drone", version = "0.21.0" }
|
solana-faucet = { path = "../faucet", version = "0.22.10" }
|
||||||
solana-librapay-api = { path = "../programs/librapay_api", version = "0.21.0", optional = true }
|
solana-librapay = { path = "../programs/librapay", version = "0.22.10", optional = true }
|
||||||
solana-logger = { path = "../logger", version = "0.21.0" }
|
solana-logger = { path = "../logger", version = "0.22.10" }
|
||||||
solana-metrics = { path = "../metrics", version = "0.21.0" }
|
solana-metrics = { path = "../metrics", version = "0.22.10" }
|
||||||
solana-measure = { path = "../measure", version = "0.21.0" }
|
solana-measure = { path = "../measure", version = "0.22.10" }
|
||||||
solana-net-utils = { path = "../net-utils", version = "0.21.0" }
|
solana-net-utils = { path = "../net-utils", version = "0.22.10" }
|
||||||
solana-runtime = { path = "../runtime", version = "0.21.0" }
|
solana-runtime = { path = "../runtime", version = "0.22.10" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.21.0" }
|
solana-sdk = { path = "../sdk", version = "0.22.10" }
|
||||||
solana-move-loader-program = { path = "../programs/move_loader", version = "0.21.0", optional = true }
|
solana-move-loader-program = { path = "../programs/move_loader", version = "0.22.10", optional = true }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
serial_test = "0.2.0"
|
serial_test = "0.3.2"
|
||||||
serial_test_derive = "0.2.0"
|
serial_test_derive = "0.3.1"
|
||||||
solana-local-cluster = { path = "../local-cluster", version = "0.21.0" }
|
solana-local-cluster = { path = "../local-cluster", version = "0.22.10" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
move = ["solana-librapay-api", "solana-move-loader-program"]
|
move = ["solana-librapay", "solana-move-loader-program"]
|
||||||
|
@ -3,9 +3,9 @@ use log::*;
|
|||||||
use rayon::prelude::*;
|
use rayon::prelude::*;
|
||||||
use solana_client::perf_utils::{sample_txs, SampleStats};
|
use solana_client::perf_utils::{sample_txs, SampleStats};
|
||||||
use solana_core::gen_keys::GenKeys;
|
use solana_core::gen_keys::GenKeys;
|
||||||
use solana_drone::drone::request_airdrop_transaction;
|
use solana_faucet::faucet::request_airdrop_transaction;
|
||||||
#[cfg(feature = "move")]
|
#[cfg(feature = "move")]
|
||||||
use solana_librapay_api::{create_genesis, upload_mint_script, upload_payment_script};
|
use solana_librapay::{create_genesis, upload_mint_script, upload_payment_script};
|
||||||
use solana_measure::measure::Measure;
|
use solana_measure::measure::Measure;
|
||||||
use solana_metrics::{self, datapoint_debug};
|
use solana_metrics::{self, datapoint_debug};
|
||||||
use solana_sdk::{
|
use solana_sdk::{
|
||||||
@ -21,9 +21,9 @@ use solana_sdk::{
|
|||||||
transaction::Transaction,
|
transaction::Transaction,
|
||||||
};
|
};
|
||||||
use std::{
|
use std::{
|
||||||
cmp,
|
collections::{HashSet, VecDeque},
|
||||||
collections::VecDeque,
|
|
||||||
net::SocketAddr,
|
net::SocketAddr,
|
||||||
|
process::exit,
|
||||||
sync::{
|
sync::{
|
||||||
atomic::{AtomicBool, AtomicIsize, AtomicUsize, Ordering},
|
atomic::{AtomicBool, AtomicIsize, AtomicUsize, Ordering},
|
||||||
Arc, RwLock,
|
Arc, RwLock,
|
||||||
@ -37,7 +37,7 @@ const MAX_TX_QUEUE_AGE: u64 =
|
|||||||
MAX_PROCESSING_AGE as u64 * DEFAULT_TICKS_PER_SLOT / DEFAULT_TICKS_PER_SECOND;
|
MAX_PROCESSING_AGE as u64 * DEFAULT_TICKS_PER_SLOT / DEFAULT_TICKS_PER_SECOND;
|
||||||
|
|
||||||
#[cfg(feature = "move")]
|
#[cfg(feature = "move")]
|
||||||
use solana_librapay_api::librapay_transaction;
|
use solana_librapay::librapay_transaction;
|
||||||
|
|
||||||
pub const MAX_SPENDS_PER_TX: u64 = 4;
|
pub const MAX_SPENDS_PER_TX: u64 = 4;
|
||||||
|
|
||||||
@ -65,10 +65,9 @@ fn get_recent_blockhash<T: Client>(client: &T) -> (Hash, FeeCalculator) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn do_bench_tps<T>(
|
pub fn do_bench_tps<T>(
|
||||||
clients: Vec<T>,
|
client: Arc<T>,
|
||||||
config: Config,
|
config: Config,
|
||||||
gen_keypairs: Vec<Keypair>,
|
gen_keypairs: Vec<Keypair>,
|
||||||
keypair0_balance: u64,
|
|
||||||
libra_args: Option<LibraKeys>,
|
libra_args: Option<LibraKeys>,
|
||||||
) -> u64
|
) -> u64
|
||||||
where
|
where
|
||||||
@ -81,15 +80,16 @@ where
|
|||||||
duration,
|
duration,
|
||||||
tx_count,
|
tx_count,
|
||||||
sustained,
|
sustained,
|
||||||
num_lamports_per_account,
|
|
||||||
..
|
..
|
||||||
} = config;
|
} = config;
|
||||||
|
|
||||||
let clients: Vec<_> = clients.into_iter().map(Arc::new).collect();
|
let mut source_keypair_chunks: Vec<Vec<&Keypair>> = Vec::new();
|
||||||
let client = &clients[0];
|
let mut dest_keypair_chunks: Vec<VecDeque<&Keypair>> = Vec::new();
|
||||||
|
assert!(gen_keypairs.len() >= 2 * tx_count);
|
||||||
let start = gen_keypairs.len() - (tx_count * 2) as usize;
|
for chunk in gen_keypairs.chunks_exact(2 * tx_count) {
|
||||||
let keypairs = &gen_keypairs[start..];
|
source_keypair_chunks.push(chunk[..tx_count].iter().collect());
|
||||||
|
dest_keypair_chunks.push(chunk[tx_count..].iter().collect());
|
||||||
|
}
|
||||||
|
|
||||||
let first_tx_count = loop {
|
let first_tx_count = loop {
|
||||||
match client.get_transaction_count() {
|
match client.get_transaction_count() {
|
||||||
@ -109,26 +109,37 @@ where
|
|||||||
let maxes = Arc::new(RwLock::new(Vec::new()));
|
let maxes = Arc::new(RwLock::new(Vec::new()));
|
||||||
let sample_period = 1; // in seconds
|
let sample_period = 1; // in seconds
|
||||||
info!("Sampling TPS every {} second...", sample_period);
|
info!("Sampling TPS every {} second...", sample_period);
|
||||||
let v_threads: Vec<_> = clients
|
let sample_thread = {
|
||||||
.iter()
|
let exit_signal = exit_signal.clone();
|
||||||
.map(|client| {
|
let maxes = maxes.clone();
|
||||||
let exit_signal = exit_signal.clone();
|
let client = client.clone();
|
||||||
let maxes = maxes.clone();
|
Builder::new()
|
||||||
let client = client.clone();
|
.name("solana-client-sample".to_string())
|
||||||
Builder::new()
|
.spawn(move || {
|
||||||
.name("solana-client-sample".to_string())
|
sample_txs(&exit_signal, &maxes, sample_period, &client);
|
||||||
.spawn(move || {
|
})
|
||||||
sample_txs(&exit_signal, &maxes, sample_period, &client);
|
.unwrap()
|
||||||
})
|
};
|
||||||
.unwrap()
|
|
||||||
})
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
let shared_txs: SharedTransactions = Arc::new(RwLock::new(VecDeque::new()));
|
let shared_txs: SharedTransactions = Arc::new(RwLock::new(VecDeque::new()));
|
||||||
|
|
||||||
|
let recent_blockhash = Arc::new(RwLock::new(get_recent_blockhash(client.as_ref()).0));
|
||||||
let shared_tx_active_thread_count = Arc::new(AtomicIsize::new(0));
|
let shared_tx_active_thread_count = Arc::new(AtomicIsize::new(0));
|
||||||
let total_tx_sent_count = Arc::new(AtomicUsize::new(0));
|
let total_tx_sent_count = Arc::new(AtomicUsize::new(0));
|
||||||
|
|
||||||
|
let blockhash_thread = {
|
||||||
|
let exit_signal = exit_signal.clone();
|
||||||
|
let recent_blockhash = recent_blockhash.clone();
|
||||||
|
let client = client.clone();
|
||||||
|
let id = id.pubkey();
|
||||||
|
Builder::new()
|
||||||
|
.name("solana-blockhash-poller".to_string())
|
||||||
|
.spawn(move || {
|
||||||
|
poll_blockhash(&exit_signal, &recent_blockhash, &client, &id);
|
||||||
|
})
|
||||||
|
.unwrap()
|
||||||
|
};
|
||||||
|
|
||||||
let s_threads: Vec<_> = (0..threads)
|
let s_threads: Vec<_> = (0..threads)
|
||||||
.map(|_| {
|
.map(|_| {
|
||||||
let exit_signal = exit_signal.clone();
|
let exit_signal = exit_signal.clone();
|
||||||
@ -154,58 +165,42 @@ where
|
|||||||
|
|
||||||
// generate and send transactions for the specified duration
|
// generate and send transactions for the specified duration
|
||||||
let start = Instant::now();
|
let start = Instant::now();
|
||||||
|
let keypair_chunks = source_keypair_chunks.len();
|
||||||
let mut reclaim_lamports_back_to_source_account = false;
|
let mut reclaim_lamports_back_to_source_account = false;
|
||||||
let mut i = keypair0_balance;
|
let mut chunk_index = 0;
|
||||||
let mut blockhash = Hash::default();
|
|
||||||
let mut blockhash_time;
|
|
||||||
while start.elapsed() < duration {
|
while start.elapsed() < duration {
|
||||||
// ping-pong between source and destination accounts for each loop iteration
|
|
||||||
// this seems to be faster than trying to determine the balance of individual
|
|
||||||
// accounts
|
|
||||||
let len = tx_count as usize;
|
|
||||||
blockhash_time = Instant::now();
|
|
||||||
if let Ok((new_blockhash, _fee_calculator)) = client.get_new_blockhash(&blockhash) {
|
|
||||||
blockhash = new_blockhash;
|
|
||||||
} else {
|
|
||||||
if blockhash_time.elapsed().as_secs() > 30 {
|
|
||||||
panic!("Blockhash is not updating");
|
|
||||||
}
|
|
||||||
sleep(Duration::from_millis(100));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
datapoint_debug!(
|
|
||||||
"bench-tps-get_blockhash",
|
|
||||||
("duration", duration_as_us(&blockhash_time.elapsed()), i64)
|
|
||||||
);
|
|
||||||
|
|
||||||
blockhash_time = Instant::now();
|
|
||||||
let balance = client.get_balance(&id.pubkey()).unwrap_or(0);
|
|
||||||
metrics_submit_lamport_balance(balance);
|
|
||||||
datapoint_debug!(
|
|
||||||
"bench-tps-get_balance",
|
|
||||||
("duration", duration_as_us(&blockhash_time.elapsed()), i64)
|
|
||||||
);
|
|
||||||
|
|
||||||
generate_txs(
|
generate_txs(
|
||||||
&shared_txs,
|
&shared_txs,
|
||||||
&blockhash,
|
&recent_blockhash,
|
||||||
&keypairs[..len],
|
&source_keypair_chunks[chunk_index],
|
||||||
&keypairs[len..],
|
&dest_keypair_chunks[chunk_index],
|
||||||
threads,
|
threads,
|
||||||
reclaim_lamports_back_to_source_account,
|
reclaim_lamports_back_to_source_account,
|
||||||
&libra_args,
|
&libra_args,
|
||||||
);
|
);
|
||||||
// In sustained mode overlap the transfers with generation
|
|
||||||
// this has higher average performance but lower peak performance
|
// In sustained mode, overlap the transfers with generation. This has higher average
|
||||||
// in tested environments.
|
// performance but lower peak performance in tested environments.
|
||||||
if !sustained {
|
if sustained {
|
||||||
|
// Ensure that we don't generate more transactions than we can handle.
|
||||||
|
while shared_txs.read().unwrap().len() > 2 * threads {
|
||||||
|
sleep(Duration::from_millis(1));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
while shared_tx_active_thread_count.load(Ordering::Relaxed) > 0 {
|
while shared_tx_active_thread_count.load(Ordering::Relaxed) > 0 {
|
||||||
sleep(Duration::from_millis(1));
|
sleep(Duration::from_millis(1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
i += 1;
|
// Rotate destination keypairs so that the next round of transactions will have different
|
||||||
if should_switch_directions(num_lamports_per_account, i) {
|
// transaction signatures even when blockhash is reused.
|
||||||
|
dest_keypair_chunks[chunk_index].rotate_left(1);
|
||||||
|
|
||||||
|
// Move on to next chunk
|
||||||
|
chunk_index = (chunk_index + 1) % keypair_chunks;
|
||||||
|
|
||||||
|
// Switch directions after transfering for each "chunk"
|
||||||
|
if chunk_index == 0 {
|
||||||
reclaim_lamports_back_to_source_account = !reclaim_lamports_back_to_source_account;
|
reclaim_lamports_back_to_source_account = !reclaim_lamports_back_to_source_account;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -213,11 +208,9 @@ where
|
|||||||
// Stop the sampling threads so it will collect the stats
|
// Stop the sampling threads so it will collect the stats
|
||||||
exit_signal.store(true, Ordering::Relaxed);
|
exit_signal.store(true, Ordering::Relaxed);
|
||||||
|
|
||||||
info!("Waiting for validator threads...");
|
info!("Waiting for sampler threads...");
|
||||||
for t in v_threads {
|
if let Err(err) = sample_thread.join() {
|
||||||
if let Err(err) = t.join() {
|
info!(" join() failed with: {:?}", err);
|
||||||
info!(" join() failed with: {:?}", err);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// join the tx send threads
|
// join the tx send threads
|
||||||
@ -228,6 +221,11 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
info!("Waiting for blockhash thread...");
|
||||||
|
if let Err(err) = blockhash_thread.join() {
|
||||||
|
info!(" join() failed with: {:?}", err);
|
||||||
|
}
|
||||||
|
|
||||||
let balance = client.get_balance(&id.pubkey()).unwrap_or(0);
|
let balance = client.get_balance(&id.pubkey()).unwrap_or(0);
|
||||||
metrics_submit_lamport_balance(balance);
|
metrics_submit_lamport_balance(balance);
|
||||||
|
|
||||||
@ -252,8 +250,8 @@ fn metrics_submit_lamport_balance(lamport_balance: u64) {
|
|||||||
|
|
||||||
#[cfg(feature = "move")]
|
#[cfg(feature = "move")]
|
||||||
fn generate_move_txs(
|
fn generate_move_txs(
|
||||||
source: &[Keypair],
|
source: &[&Keypair],
|
||||||
dest: &[Keypair],
|
dest: &VecDeque<&Keypair>,
|
||||||
reclaim: bool,
|
reclaim: bool,
|
||||||
move_keypairs: &[Keypair],
|
move_keypairs: &[Keypair],
|
||||||
libra_pay_program_id: &Pubkey,
|
libra_pay_program_id: &Pubkey,
|
||||||
@ -297,8 +295,8 @@ fn generate_move_txs(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn generate_system_txs(
|
fn generate_system_txs(
|
||||||
source: &[Keypair],
|
source: &[&Keypair],
|
||||||
dest: &[Keypair],
|
dest: &VecDeque<&Keypair>,
|
||||||
reclaim: bool,
|
reclaim: bool,
|
||||||
blockhash: &Hash,
|
blockhash: &Hash,
|
||||||
) -> Vec<(Transaction, u64)> {
|
) -> Vec<(Transaction, u64)> {
|
||||||
@ -321,15 +319,19 @@ fn generate_system_txs(
|
|||||||
|
|
||||||
fn generate_txs(
|
fn generate_txs(
|
||||||
shared_txs: &SharedTransactions,
|
shared_txs: &SharedTransactions,
|
||||||
blockhash: &Hash,
|
blockhash: &Arc<RwLock<Hash>>,
|
||||||
source: &[Keypair],
|
source: &[&Keypair],
|
||||||
dest: &[Keypair],
|
dest: &VecDeque<&Keypair>,
|
||||||
threads: usize,
|
threads: usize,
|
||||||
reclaim: bool,
|
reclaim: bool,
|
||||||
libra_args: &Option<LibraKeys>,
|
libra_args: &Option<LibraKeys>,
|
||||||
) {
|
) {
|
||||||
|
let blockhash = *blockhash.read().unwrap();
|
||||||
let tx_count = source.len();
|
let tx_count = source.len();
|
||||||
info!("Signing transactions... {} (reclaim={})", tx_count, reclaim);
|
info!(
|
||||||
|
"Signing transactions... {} (reclaim={}, blockhash={})",
|
||||||
|
tx_count, reclaim, &blockhash
|
||||||
|
);
|
||||||
let signing_start = Instant::now();
|
let signing_start = Instant::now();
|
||||||
|
|
||||||
let transactions = if let Some((
|
let transactions = if let Some((
|
||||||
@ -353,11 +355,11 @@ fn generate_txs(
|
|||||||
&_libra_keys,
|
&_libra_keys,
|
||||||
_libra_pay_program_id,
|
_libra_pay_program_id,
|
||||||
&_libra_genesis_keypair.pubkey(),
|
&_libra_genesis_keypair.pubkey(),
|
||||||
blockhash,
|
&blockhash,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
generate_system_txs(source, dest, reclaim, blockhash)
|
generate_system_txs(source, dest, reclaim, &blockhash)
|
||||||
};
|
};
|
||||||
|
|
||||||
let duration = signing_start.elapsed();
|
let duration = signing_start.elapsed();
|
||||||
@ -386,6 +388,48 @@ fn generate_txs(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn poll_blockhash<T: Client>(
|
||||||
|
exit_signal: &Arc<AtomicBool>,
|
||||||
|
blockhash: &Arc<RwLock<Hash>>,
|
||||||
|
client: &Arc<T>,
|
||||||
|
id: &Pubkey,
|
||||||
|
) {
|
||||||
|
let mut blockhash_last_updated = Instant::now();
|
||||||
|
let mut last_error_log = Instant::now();
|
||||||
|
loop {
|
||||||
|
let blockhash_updated = {
|
||||||
|
let old_blockhash = *blockhash.read().unwrap();
|
||||||
|
if let Ok((new_blockhash, _fee)) = client.get_new_blockhash(&old_blockhash) {
|
||||||
|
*blockhash.write().unwrap() = new_blockhash;
|
||||||
|
blockhash_last_updated = Instant::now();
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
if blockhash_last_updated.elapsed().as_secs() > 120 {
|
||||||
|
eprintln!("Blockhash is stuck");
|
||||||
|
exit(1)
|
||||||
|
} else if blockhash_last_updated.elapsed().as_secs() > 30
|
||||||
|
&& last_error_log.elapsed().as_secs() >= 1
|
||||||
|
{
|
||||||
|
last_error_log = Instant::now();
|
||||||
|
error!("Blockhash is not updating");
|
||||||
|
}
|
||||||
|
false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if blockhash_updated {
|
||||||
|
let balance = client.get_balance(id).unwrap_or(0);
|
||||||
|
metrics_submit_lamport_balance(balance);
|
||||||
|
}
|
||||||
|
|
||||||
|
if exit_signal.load(Ordering::Relaxed) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
sleep(Duration::from_millis(50));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn do_tx_transfers<T: Client>(
|
fn do_tx_transfers<T: Client>(
|
||||||
exit_signal: &Arc<AtomicBool>,
|
exit_signal: &Arc<AtomicBool>,
|
||||||
shared_txs: &SharedTransactions,
|
shared_txs: &SharedTransactions,
|
||||||
@ -398,11 +442,10 @@ fn do_tx_transfers<T: Client>(
|
|||||||
if thread_batch_sleep_ms > 0 {
|
if thread_batch_sleep_ms > 0 {
|
||||||
sleep(Duration::from_millis(thread_batch_sleep_ms as u64));
|
sleep(Duration::from_millis(thread_batch_sleep_ms as u64));
|
||||||
}
|
}
|
||||||
let txs;
|
let txs = {
|
||||||
{
|
|
||||||
let mut shared_txs_wl = shared_txs.write().expect("write lock in do_tx_transfers");
|
let mut shared_txs_wl = shared_txs.write().expect("write lock in do_tx_transfers");
|
||||||
txs = shared_txs_wl.pop_front();
|
shared_txs_wl.pop_front()
|
||||||
}
|
};
|
||||||
if let Some(txs0) = txs {
|
if let Some(txs0) = txs {
|
||||||
shared_tx_thread_count.fetch_add(1, Ordering::Relaxed);
|
shared_tx_thread_count.fetch_add(1, Ordering::Relaxed);
|
||||||
info!(
|
info!(
|
||||||
@ -448,201 +491,242 @@ fn do_tx_transfers<T: Client>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn verify_funding_transfer<T: Client>(client: &T, tx: &Transaction, amount: u64) -> bool {
|
fn verify_funding_transfer<T: Client>(client: &Arc<T>, tx: &Transaction, amount: u64) -> bool {
|
||||||
for a in &tx.message().account_keys[1..] {
|
for a in &tx.message().account_keys[1..] {
|
||||||
if client
|
match client.get_balance_with_commitment(a, CommitmentConfig::recent()) {
|
||||||
.get_balance_with_commitment(a, CommitmentConfig::recent())
|
Ok(balance) => return balance >= amount,
|
||||||
.unwrap_or(0)
|
Err(err) => error!("failed to get balance {:?}", err),
|
||||||
>= amount
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trait FundingTransactions<'a> {
|
||||||
|
fn fund<T: 'static + Client + Send + Sync>(
|
||||||
|
&mut self,
|
||||||
|
client: &Arc<T>,
|
||||||
|
to_fund: &[(&'a Keypair, Vec<(Pubkey, u64)>)],
|
||||||
|
to_lamports: u64,
|
||||||
|
);
|
||||||
|
fn make(&mut self, to_fund: &[(&'a Keypair, Vec<(Pubkey, u64)>)]);
|
||||||
|
fn sign(&mut self, blockhash: Hash);
|
||||||
|
fn send<T: Client>(&self, client: &Arc<T>);
|
||||||
|
fn verify<T: 'static + Client + Send + Sync>(&mut self, client: &Arc<T>, to_lamports: u64);
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> FundingTransactions<'a> for Vec<(&'a Keypair, Transaction)> {
|
||||||
|
fn fund<T: 'static + Client + Send + Sync>(
|
||||||
|
&mut self,
|
||||||
|
client: &Arc<T>,
|
||||||
|
to_fund: &[(&'a Keypair, Vec<(Pubkey, u64)>)],
|
||||||
|
to_lamports: u64,
|
||||||
|
) {
|
||||||
|
self.make(to_fund);
|
||||||
|
|
||||||
|
let mut tries = 0;
|
||||||
|
while !self.is_empty() {
|
||||||
|
info!(
|
||||||
|
"{} {} each to {} accounts in {} txs",
|
||||||
|
if tries == 0 {
|
||||||
|
"transferring"
|
||||||
|
} else {
|
||||||
|
" retrying"
|
||||||
|
},
|
||||||
|
to_lamports,
|
||||||
|
self.len() * MAX_SPENDS_PER_TX as usize,
|
||||||
|
self.len(),
|
||||||
|
);
|
||||||
|
|
||||||
|
let (blockhash, _fee_calculator) = get_recent_blockhash(client.as_ref());
|
||||||
|
|
||||||
|
// re-sign retained to_fund_txes with updated blockhash
|
||||||
|
self.sign(blockhash);
|
||||||
|
self.send(&client);
|
||||||
|
|
||||||
|
// Sleep a few slots to allow transactions to process
|
||||||
|
sleep(Duration::from_secs(1));
|
||||||
|
|
||||||
|
self.verify(&client, to_lamports);
|
||||||
|
|
||||||
|
// retry anything that seems to have dropped through cracks
|
||||||
|
// again since these txs are all or nothing, they're fine to
|
||||||
|
// retry
|
||||||
|
tries += 1;
|
||||||
|
}
|
||||||
|
info!("transferred");
|
||||||
|
}
|
||||||
|
|
||||||
|
fn make(&mut self, to_fund: &[(&'a Keypair, Vec<(Pubkey, u64)>)]) {
|
||||||
|
let mut make_txs = Measure::start("make_txs");
|
||||||
|
let to_fund_txs: Vec<(&Keypair, Transaction)> = to_fund
|
||||||
|
.par_iter()
|
||||||
|
.map(|(k, t)| {
|
||||||
|
let tx = Transaction::new_unsigned_instructions(system_instruction::transfer_many(
|
||||||
|
&k.pubkey(),
|
||||||
|
&t,
|
||||||
|
));
|
||||||
|
(*k, tx)
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
make_txs.stop();
|
||||||
|
debug!(
|
||||||
|
"make {} unsigned txs: {}us",
|
||||||
|
to_fund_txs.len(),
|
||||||
|
make_txs.as_us()
|
||||||
|
);
|
||||||
|
self.extend(to_fund_txs);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn sign(&mut self, blockhash: Hash) {
|
||||||
|
let mut sign_txs = Measure::start("sign_txs");
|
||||||
|
self.par_iter_mut().for_each(|(k, tx)| {
|
||||||
|
tx.sign(&[*k], blockhash);
|
||||||
|
});
|
||||||
|
sign_txs.stop();
|
||||||
|
debug!("sign {} txs: {}us", self.len(), sign_txs.as_us());
|
||||||
|
}
|
||||||
|
|
||||||
|
fn send<T: Client>(&self, client: &Arc<T>) {
|
||||||
|
let mut send_txs = Measure::start("send_txs");
|
||||||
|
self.iter().for_each(|(_, tx)| {
|
||||||
|
client.async_send_transaction(tx.clone()).expect("transfer");
|
||||||
|
});
|
||||||
|
send_txs.stop();
|
||||||
|
debug!("send {} txs: {}us", self.len(), send_txs.as_us());
|
||||||
|
}
|
||||||
|
|
||||||
|
fn verify<T: 'static + Client + Send + Sync>(&mut self, client: &Arc<T>, to_lamports: u64) {
|
||||||
|
let starting_txs = self.len();
|
||||||
|
let verified_txs = Arc::new(AtomicUsize::new(0));
|
||||||
|
let too_many_failures = Arc::new(AtomicBool::new(false));
|
||||||
|
let loops = if starting_txs < 1000 { 3 } else { 1 };
|
||||||
|
// Only loop multiple times for small (quick) transaction batches
|
||||||
|
for _ in 0..loops {
|
||||||
|
let failed_verify = Arc::new(AtomicUsize::new(0));
|
||||||
|
let client = client.clone();
|
||||||
|
let verified_txs = &verified_txs;
|
||||||
|
let failed_verify = &failed_verify;
|
||||||
|
let too_many_failures = &too_many_failures;
|
||||||
|
let verified_set: HashSet<Pubkey> = self
|
||||||
|
.par_iter()
|
||||||
|
.filter_map(move |(k, tx)| {
|
||||||
|
if too_many_failures.load(Ordering::Relaxed) {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
|
||||||
|
let verified = if verify_funding_transfer(&client, &tx, to_lamports) {
|
||||||
|
verified_txs.fetch_add(1, Ordering::Relaxed);
|
||||||
|
Some(k.pubkey())
|
||||||
|
} else {
|
||||||
|
failed_verify.fetch_add(1, Ordering::Relaxed);
|
||||||
|
None
|
||||||
|
};
|
||||||
|
|
||||||
|
let verified_txs = verified_txs.load(Ordering::Relaxed);
|
||||||
|
let failed_verify = failed_verify.load(Ordering::Relaxed);
|
||||||
|
let remaining_count = starting_txs.saturating_sub(verified_txs + failed_verify);
|
||||||
|
if failed_verify > 100 && failed_verify > verified_txs {
|
||||||
|
too_many_failures.store(true, Ordering::Relaxed);
|
||||||
|
warn!(
|
||||||
|
"Too many failed transfers... {} remaining, {} verified, {} failures",
|
||||||
|
remaining_count, verified_txs, failed_verify
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if remaining_count % 100 == 0 {
|
||||||
|
info!(
|
||||||
|
"Verifying transfers... {} remaining, {} verified, {} failures",
|
||||||
|
remaining_count, verified_txs, failed_verify
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
verified
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
self.retain(|(k, _)| !verified_set.contains(&k.pubkey()));
|
||||||
|
if self.is_empty() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
info!("Looping verifications");
|
||||||
|
|
||||||
|
let verified_txs = verified_txs.load(Ordering::Relaxed);
|
||||||
|
let failed_verify = failed_verify.load(Ordering::Relaxed);
|
||||||
|
let remaining_count = starting_txs.saturating_sub(verified_txs + failed_verify);
|
||||||
|
info!(
|
||||||
|
"Verifying transfers... {} remaining, {} verified, {} failures",
|
||||||
|
remaining_count, verified_txs, failed_verify
|
||||||
|
);
|
||||||
|
sleep(Duration::from_millis(100));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// fund the dests keys by spending all of the source keys into MAX_SPENDS_PER_TX
|
/// fund the dests keys by spending all of the source keys into MAX_SPENDS_PER_TX
|
||||||
/// on every iteration. This allows us to replay the transfers because the source is either empty,
|
/// on every iteration. This allows us to replay the transfers because the source is either empty,
|
||||||
/// or full
|
/// or full
|
||||||
pub fn fund_keys<T: Client>(
|
pub fn fund_keys<T: 'static + Client + Send + Sync>(
|
||||||
client: &T,
|
client: Arc<T>,
|
||||||
source: &Keypair,
|
source: &Keypair,
|
||||||
dests: &[Keypair],
|
dests: &[Keypair],
|
||||||
total: u64,
|
total: u64,
|
||||||
max_fee: u64,
|
max_fee: u64,
|
||||||
mut extra: u64,
|
lamports_per_account: u64,
|
||||||
) {
|
) {
|
||||||
let mut funded: Vec<(&Keypair, u64)> = vec![(source, total)];
|
let mut funded: Vec<&Keypair> = vec![source];
|
||||||
let mut notfunded: Vec<&Keypair> = dests.iter().collect();
|
let mut funded_funds = total;
|
||||||
let lamports_per_account = (total - (extra * max_fee)) / (notfunded.len() as u64 + 1);
|
let mut not_funded: Vec<&Keypair> = dests.iter().collect();
|
||||||
|
while !not_funded.is_empty() {
|
||||||
info!(
|
// Build to fund list and prepare funding sources for next iteration
|
||||||
"funding keys {} with lamports: {:?} total: {}",
|
let mut new_funded: Vec<&Keypair> = vec![];
|
||||||
dests.len(),
|
let mut to_fund: Vec<(&Keypair, Vec<(Pubkey, u64)>)> = vec![];
|
||||||
client.get_balance(&source.pubkey()),
|
let to_lamports = (funded_funds - lamports_per_account - max_fee) / MAX_SPENDS_PER_TX;
|
||||||
total
|
for f in funded {
|
||||||
);
|
let start = not_funded.len() - MAX_SPENDS_PER_TX as usize;
|
||||||
while !notfunded.is_empty() {
|
let dests: Vec<_> = not_funded.drain(start..).collect();
|
||||||
let mut new_funded: Vec<(&Keypair, u64)> = vec![];
|
let spends: Vec<_> = dests.iter().map(|k| (k.pubkey(), to_lamports)).collect();
|
||||||
let mut to_fund = vec![];
|
to_fund.push((f, spends));
|
||||||
info!("creating from... {}", funded.len());
|
new_funded.extend(dests.into_iter());
|
||||||
let mut build_to_fund = Measure::start("build_to_fund");
|
|
||||||
for f in &mut funded {
|
|
||||||
let max_units = cmp::min(notfunded.len() as u64, MAX_SPENDS_PER_TX);
|
|
||||||
if max_units == 0 {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
let start = notfunded.len() - max_units as usize;
|
|
||||||
let fees = if extra > 0 { max_fee } else { 0 };
|
|
||||||
let per_unit = (f.1 - lamports_per_account - fees) / max_units;
|
|
||||||
let moves: Vec<_> = notfunded[start..]
|
|
||||||
.iter()
|
|
||||||
.map(|k| (k.pubkey(), per_unit))
|
|
||||||
.collect();
|
|
||||||
notfunded[start..]
|
|
||||||
.iter()
|
|
||||||
.for_each(|k| new_funded.push((k, per_unit)));
|
|
||||||
notfunded.truncate(start);
|
|
||||||
if !moves.is_empty() {
|
|
||||||
to_fund.push((f.0, moves));
|
|
||||||
}
|
|
||||||
extra -= 1;
|
|
||||||
}
|
}
|
||||||
build_to_fund.stop();
|
|
||||||
debug!("build to_fund vec: {}us", build_to_fund.as_us());
|
|
||||||
|
|
||||||
// try to transfer a "few" at a time with recent blockhash
|
// try to transfer a "few" at a time with recent blockhash
|
||||||
// assume 4MB network buffers, and 512 byte packets
|
// assume 4MB network buffers, and 512 byte packets
|
||||||
const FUND_CHUNK_LEN: usize = 4 * 1024 * 1024 / 512;
|
const FUND_CHUNK_LEN: usize = 4 * 1024 * 1024 / 512;
|
||||||
|
|
||||||
to_fund.chunks(FUND_CHUNK_LEN).for_each(|chunk| {
|
to_fund.chunks(FUND_CHUNK_LEN).for_each(|chunk| {
|
||||||
let mut tries = 0;
|
Vec::<(&Keypair, Transaction)>::with_capacity(chunk.len()).fund(
|
||||||
|
&client,
|
||||||
let mut make_txs = Measure::start("make_txs");
|
chunk,
|
||||||
// this set of transactions just initializes us for bookkeeping
|
to_lamports,
|
||||||
#[allow(clippy::clone_double_ref)] // sigh
|
|
||||||
let mut to_fund_txs: Vec<_> = chunk
|
|
||||||
.par_iter()
|
|
||||||
.map(|(k, m)| {
|
|
||||||
let tx = Transaction::new_unsigned_instructions(
|
|
||||||
system_instruction::transfer_many(&k.pubkey(), &m),
|
|
||||||
);
|
|
||||||
(k.clone(), tx)
|
|
||||||
})
|
|
||||||
.collect();
|
|
||||||
make_txs.stop();
|
|
||||||
debug!(
|
|
||||||
"make {} unsigned txs: {}us",
|
|
||||||
to_fund_txs.len(),
|
|
||||||
make_txs.as_us()
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let amount = chunk[0].1[0].1;
|
|
||||||
|
|
||||||
while !to_fund_txs.is_empty() {
|
|
||||||
let receivers = to_fund_txs
|
|
||||||
.iter()
|
|
||||||
.fold(0, |len, (_, tx)| len + tx.message().instructions.len());
|
|
||||||
|
|
||||||
info!(
|
|
||||||
"{} {} to {} in {} txs",
|
|
||||||
if tries == 0 {
|
|
||||||
"transferring"
|
|
||||||
} else {
|
|
||||||
" retrying"
|
|
||||||
},
|
|
||||||
amount,
|
|
||||||
receivers,
|
|
||||||
to_fund_txs.len(),
|
|
||||||
);
|
|
||||||
|
|
||||||
let (blockhash, _fee_calculator) = get_recent_blockhash(client);
|
|
||||||
|
|
||||||
// re-sign retained to_fund_txes with updated blockhash
|
|
||||||
let mut sign_txs = Measure::start("sign_txs");
|
|
||||||
to_fund_txs.par_iter_mut().for_each(|(k, tx)| {
|
|
||||||
tx.sign(&[*k], blockhash);
|
|
||||||
});
|
|
||||||
sign_txs.stop();
|
|
||||||
debug!("sign {} txs: {}us", to_fund_txs.len(), sign_txs.as_us());
|
|
||||||
|
|
||||||
let mut send_txs = Measure::start("send_txs");
|
|
||||||
to_fund_txs.iter().for_each(|(_, tx)| {
|
|
||||||
client.async_send_transaction(tx.clone()).expect("transfer");
|
|
||||||
});
|
|
||||||
send_txs.stop();
|
|
||||||
debug!("send {} txs: {}us", to_fund_txs.len(), send_txs.as_us());
|
|
||||||
|
|
||||||
let mut verify_txs = Measure::start("verify_txs");
|
|
||||||
let mut starting_txs = to_fund_txs.len();
|
|
||||||
let mut verified_txs = 0;
|
|
||||||
let mut failed_verify = 0;
|
|
||||||
// Only loop multiple times for small (quick) transaction batches
|
|
||||||
for _ in 0..(if starting_txs < 1000 { 3 } else { 1 }) {
|
|
||||||
let mut timer = Instant::now();
|
|
||||||
to_fund_txs.retain(|(_, tx)| {
|
|
||||||
if timer.elapsed() >= Duration::from_secs(5) {
|
|
||||||
if failed_verify > 0 {
|
|
||||||
debug!("total txs failed verify: {}", failed_verify);
|
|
||||||
}
|
|
||||||
info!(
|
|
||||||
"Verifying transfers... {} remaining",
|
|
||||||
starting_txs - verified_txs
|
|
||||||
);
|
|
||||||
timer = Instant::now();
|
|
||||||
}
|
|
||||||
let verified = verify_funding_transfer(client, &tx, amount);
|
|
||||||
if verified {
|
|
||||||
verified_txs += 1;
|
|
||||||
} else {
|
|
||||||
failed_verify += 1;
|
|
||||||
}
|
|
||||||
!verified
|
|
||||||
});
|
|
||||||
if to_fund_txs.is_empty() {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
debug!("Looping verifications");
|
|
||||||
info!("Verifying transfers... {} remaining", to_fund_txs.len());
|
|
||||||
sleep(Duration::from_millis(100));
|
|
||||||
}
|
|
||||||
starting_txs -= to_fund_txs.len();
|
|
||||||
verify_txs.stop();
|
|
||||||
debug!("verified {} txs: {}us", starting_txs, verify_txs.as_us());
|
|
||||||
|
|
||||||
// retry anything that seems to have dropped through cracks
|
|
||||||
// again since these txs are all or nothing, they're fine to
|
|
||||||
// retry
|
|
||||||
tries += 1;
|
|
||||||
}
|
|
||||||
info!("transferred");
|
|
||||||
});
|
});
|
||||||
info!("funded: {} left: {}", new_funded.len(), notfunded.len());
|
|
||||||
|
info!("funded: {} left: {}", new_funded.len(), not_funded.len());
|
||||||
funded = new_funded;
|
funded = new_funded;
|
||||||
|
funded_funds = to_lamports;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn airdrop_lamports<T: Client>(
|
pub fn airdrop_lamports<T: Client>(
|
||||||
client: &T,
|
client: &T,
|
||||||
drone_addr: &SocketAddr,
|
faucet_addr: &SocketAddr,
|
||||||
id: &Keypair,
|
id: &Keypair,
|
||||||
tx_count: u64,
|
desired_balance: u64,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let starting_balance = client.get_balance(&id.pubkey()).unwrap_or(0);
|
let starting_balance = client.get_balance(&id.pubkey()).unwrap_or(0);
|
||||||
metrics_submit_lamport_balance(starting_balance);
|
metrics_submit_lamport_balance(starting_balance);
|
||||||
info!("starting balance {}", starting_balance);
|
info!("starting balance {}", starting_balance);
|
||||||
|
|
||||||
if starting_balance < tx_count {
|
if starting_balance < desired_balance {
|
||||||
let airdrop_amount = tx_count - starting_balance;
|
let airdrop_amount = desired_balance - starting_balance;
|
||||||
info!(
|
info!(
|
||||||
"Airdropping {:?} lamports from {} for {}",
|
"Airdropping {:?} lamports from {} for {}",
|
||||||
airdrop_amount,
|
airdrop_amount,
|
||||||
drone_addr,
|
faucet_addr,
|
||||||
id.pubkey(),
|
id.pubkey(),
|
||||||
);
|
);
|
||||||
|
|
||||||
let (blockhash, _fee_calculator) = get_recent_blockhash(client);
|
let (blockhash, _fee_calculator) = get_recent_blockhash(client);
|
||||||
match request_airdrop_transaction(&drone_addr, &id.pubkey(), airdrop_amount, blockhash) {
|
match request_airdrop_transaction(&faucet_addr, &id.pubkey(), airdrop_amount, blockhash) {
|
||||||
Ok(transaction) => {
|
Ok(transaction) => {
|
||||||
let mut tries = 0;
|
let mut tries = 0;
|
||||||
loop {
|
loop {
|
||||||
@ -656,7 +740,7 @@ pub fn airdrop_lamports<T: Client>(
|
|||||||
if tries >= 5 {
|
if tries >= 5 {
|
||||||
panic!(
|
panic!(
|
||||||
"Error requesting airdrop: to addr: {:?} amount: {} {:?}",
|
"Error requesting airdrop: to addr: {:?} amount: {} {:?}",
|
||||||
drone_addr, airdrop_amount, result
|
faucet_addr, airdrop_amount, result
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -664,7 +748,7 @@ pub fn airdrop_lamports<T: Client>(
|
|||||||
Err(err) => {
|
Err(err) => {
|
||||||
panic!(
|
panic!(
|
||||||
"Error requesting airdrop: {:?} to addr: {:?} amount: {}",
|
"Error requesting airdrop: {:?} to addr: {:?} amount: {}",
|
||||||
err, drone_addr, airdrop_amount
|
err, faucet_addr, airdrop_amount
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -758,13 +842,6 @@ fn compute_and_report_stats(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// First transfer 3/4 of the lamports to the dest accounts
|
|
||||||
// then ping-pong 1/4 of the lamports back to the other account
|
|
||||||
// this leaves 1/4 lamport buffer in each account
|
|
||||||
fn should_switch_directions(num_lamports_per_account: u64, i: u64) -> bool {
|
|
||||||
i % (num_lamports_per_account / 4) == 0 && (i >= (3 * num_lamports_per_account) / 4)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn generate_keypairs(seed_keypair: &Keypair, count: u64) -> (Vec<Keypair>, u64) {
|
pub fn generate_keypairs(seed_keypair: &Keypair, count: u64) -> (Vec<Keypair>, u64) {
|
||||||
let mut seed = [0u8; 32];
|
let mut seed = [0u8; 32];
|
||||||
seed.copy_from_slice(&seed_keypair.to_bytes()[..32]);
|
seed.copy_from_slice(&seed_keypair.to_bytes()[..32]);
|
||||||
@ -897,9 +974,12 @@ fn fund_move_keys<T: Client>(
|
|||||||
info!("funded libra funding key {}", i);
|
info!("funded libra funding key {}", i);
|
||||||
}
|
}
|
||||||
|
|
||||||
let tx_count = keypairs.len();
|
let keypair_count = keypairs.len();
|
||||||
let amount = total / (tx_count as u64);
|
let amount = total / (keypair_count as u64);
|
||||||
for (i, keys) in keypairs[..tx_count].chunks(NUM_FUNDING_KEYS).enumerate() {
|
for (i, keys) in keypairs[..keypair_count]
|
||||||
|
.chunks(NUM_FUNDING_KEYS)
|
||||||
|
.enumerate()
|
||||||
|
{
|
||||||
for (j, key) in keys.iter().enumerate() {
|
for (j, key) in keys.iter().enumerate() {
|
||||||
let tx = librapay_transaction::transfer(
|
let tx = librapay_transaction::transfer(
|
||||||
libra_pay_program_id,
|
libra_pay_program_id,
|
||||||
@ -945,23 +1025,25 @@ fn fund_move_keys<T: Client>(
|
|||||||
info!("done funding keys, took {} ms", funding_time.as_ms());
|
info!("done funding keys, took {} ms", funding_time.as_ms());
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn generate_and_fund_keypairs<T: Client>(
|
pub fn generate_and_fund_keypairs<T: 'static + Client + Send + Sync>(
|
||||||
client: &T,
|
client: Arc<T>,
|
||||||
drone_addr: Option<SocketAddr>,
|
faucet_addr: Option<SocketAddr>,
|
||||||
funding_key: &Keypair,
|
funding_key: &Keypair,
|
||||||
tx_count: usize,
|
keypair_count: usize,
|
||||||
lamports_per_account: u64,
|
lamports_per_account: u64,
|
||||||
use_move: bool,
|
use_move: bool,
|
||||||
) -> Result<(Vec<Keypair>, Option<LibraKeys>, u64)> {
|
) -> Result<(Vec<Keypair>, Option<LibraKeys>)> {
|
||||||
info!("Creating {} keypairs...", tx_count * 2);
|
info!("Creating {} keypairs...", keypair_count);
|
||||||
let (mut keypairs, extra) = generate_keypairs(funding_key, tx_count as u64 * 2);
|
let (mut keypairs, extra) = generate_keypairs(funding_key, keypair_count as u64);
|
||||||
info!("Get lamports...");
|
info!("Get lamports...");
|
||||||
|
|
||||||
// Sample the first keypair, see if it has lamports, if so then resume.
|
// Sample the first keypair, to prevent lamport loss on repeated solana-bench-tps executions
|
||||||
// This logic is to prevent lamport loss on repeated solana-bench-tps executions
|
let first_key = keypairs[0].pubkey();
|
||||||
let last_keypair_balance = client
|
let first_keypair_balance = client.get_balance(&first_key).unwrap_or(0);
|
||||||
.get_balance(&keypairs[tx_count * 2 - 1].pubkey())
|
|
||||||
.unwrap_or(0);
|
// Sample the last keypair, to check if funding was already completed
|
||||||
|
let last_key = keypairs[keypair_count - 1].pubkey();
|
||||||
|
let last_keypair_balance = client.get_balance(&last_key).unwrap_or(0);
|
||||||
|
|
||||||
#[cfg(feature = "move")]
|
#[cfg(feature = "move")]
|
||||||
let mut move_keypairs_ret = None;
|
let mut move_keypairs_ret = None;
|
||||||
@ -969,39 +1051,46 @@ pub fn generate_and_fund_keypairs<T: Client>(
|
|||||||
#[cfg(not(feature = "move"))]
|
#[cfg(not(feature = "move"))]
|
||||||
let move_keypairs_ret = None;
|
let move_keypairs_ret = None;
|
||||||
|
|
||||||
if lamports_per_account > last_keypair_balance {
|
// Repeated runs will eat up keypair balances from transaction fees. In order to quickly
|
||||||
let (_blockhash, fee_calculator) = get_recent_blockhash(client);
|
// start another bench-tps run without re-funding all of the keypairs, check if the
|
||||||
let account_desired_balance =
|
// keypairs still have at least 80% of the expected funds. That should be enough to
|
||||||
lamports_per_account - last_keypair_balance + fee_calculator.max_lamports_per_signature;
|
// pay for the transaction fees in a new run.
|
||||||
let extra_fees = extra * fee_calculator.max_lamports_per_signature;
|
let enough_lamports = 8 * lamports_per_account / 10;
|
||||||
let mut total = account_desired_balance * (1 + keypairs.len() as u64) + extra_fees;
|
if first_keypair_balance < enough_lamports || last_keypair_balance < enough_lamports {
|
||||||
|
let (_blockhash, fee_calculator) = get_recent_blockhash(client.as_ref());
|
||||||
|
let max_fee = fee_calculator.max_lamports_per_signature;
|
||||||
|
let extra_fees = extra * max_fee;
|
||||||
|
let total_keypairs = keypairs.len() as u64 + 1; // Add one for funding keypair
|
||||||
|
let mut total = lamports_per_account * total_keypairs + extra_fees;
|
||||||
if use_move {
|
if use_move {
|
||||||
total *= 3;
|
total *= 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
info!("Previous key balance: {} max_fee: {} lamports_per_account: {} extra: {} desired_balance: {} total: {}",
|
let funding_key_balance = client.get_balance(&funding_key.pubkey()).unwrap_or(0);
|
||||||
last_keypair_balance, fee_calculator.max_lamports_per_signature, lamports_per_account, extra,
|
info!(
|
||||||
account_desired_balance, total
|
"Funding keypair balance: {} max_fee: {} lamports_per_account: {} extra: {} total: {}",
|
||||||
);
|
funding_key_balance, max_fee, lamports_per_account, extra, total
|
||||||
|
);
|
||||||
|
|
||||||
if client.get_balance(&funding_key.pubkey()).unwrap_or(0) < total {
|
if client.get_balance(&funding_key.pubkey()).unwrap_or(0) < total {
|
||||||
airdrop_lamports(client, &drone_addr.unwrap(), funding_key, total)?;
|
airdrop_lamports(client.as_ref(), &faucet_addr.unwrap(), funding_key, total)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "move")]
|
#[cfg(feature = "move")]
|
||||||
{
|
{
|
||||||
if use_move {
|
if use_move {
|
||||||
let libra_genesis_keypair = create_genesis(&funding_key, client, 10_000_000);
|
let libra_genesis_keypair =
|
||||||
let libra_mint_program_id = upload_mint_script(&funding_key, client);
|
create_genesis(&funding_key, client.as_ref(), 10_000_000);
|
||||||
let libra_pay_program_id = upload_payment_script(&funding_key, client);
|
let libra_mint_program_id = upload_mint_script(&funding_key, client.as_ref());
|
||||||
|
let libra_pay_program_id = upload_payment_script(&funding_key, client.as_ref());
|
||||||
|
|
||||||
// Generate another set of keypairs for move accounts.
|
// Generate another set of keypairs for move accounts.
|
||||||
// Still fund the solana ones which will be used for fees.
|
// Still fund the solana ones which will be used for fees.
|
||||||
let seed = [0u8; 32];
|
let seed = [0u8; 32];
|
||||||
let mut rnd = GenKeys::new(seed);
|
let mut rnd = GenKeys::new(seed);
|
||||||
let move_keypairs = rnd.gen_n_keypairs(tx_count as u64 * 2);
|
let move_keypairs = rnd.gen_n_keypairs(keypair_count as u64);
|
||||||
fund_move_keys(
|
fund_move_keys(
|
||||||
client,
|
client.as_ref(),
|
||||||
funding_key,
|
funding_key,
|
||||||
&move_keypairs,
|
&move_keypairs,
|
||||||
total / 3,
|
total / 3,
|
||||||
@ -1026,15 +1115,15 @@ pub fn generate_and_fund_keypairs<T: Client>(
|
|||||||
funding_key,
|
funding_key,
|
||||||
&keypairs,
|
&keypairs,
|
||||||
total,
|
total,
|
||||||
fee_calculator.max_lamports_per_signature,
|
max_fee,
|
||||||
extra,
|
lamports_per_account,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 'generate_keypairs' generates extra keys to be able to have size-aligned funding batches for fund_keys.
|
// 'generate_keypairs' generates extra keys to be able to have size-aligned funding batches for fund_keys.
|
||||||
keypairs.truncate(2 * tx_count);
|
keypairs.truncate(keypair_count);
|
||||||
|
|
||||||
Ok((keypairs, move_keypairs_ret, last_keypair_balance))
|
Ok((keypairs, move_keypairs_ret))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
@ -1046,49 +1135,36 @@ mod tests {
|
|||||||
use solana_sdk::fee_calculator::FeeCalculator;
|
use solana_sdk::fee_calculator::FeeCalculator;
|
||||||
use solana_sdk::genesis_config::create_genesis_config;
|
use solana_sdk::genesis_config::create_genesis_config;
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_switch_directions() {
|
|
||||||
assert_eq!(should_switch_directions(20, 0), false);
|
|
||||||
assert_eq!(should_switch_directions(20, 1), false);
|
|
||||||
assert_eq!(should_switch_directions(20, 14), false);
|
|
||||||
assert_eq!(should_switch_directions(20, 15), true);
|
|
||||||
assert_eq!(should_switch_directions(20, 16), false);
|
|
||||||
assert_eq!(should_switch_directions(20, 19), false);
|
|
||||||
assert_eq!(should_switch_directions(20, 20), true);
|
|
||||||
assert_eq!(should_switch_directions(20, 21), false);
|
|
||||||
assert_eq!(should_switch_directions(20, 99), false);
|
|
||||||
assert_eq!(should_switch_directions(20, 100), true);
|
|
||||||
assert_eq!(should_switch_directions(20, 101), false);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_bench_tps_bank_client() {
|
fn test_bench_tps_bank_client() {
|
||||||
let (genesis_config, id) = create_genesis_config(10_000);
|
let (genesis_config, id) = create_genesis_config(10_000);
|
||||||
let bank = Bank::new(&genesis_config);
|
let bank = Bank::new(&genesis_config);
|
||||||
let clients = vec![BankClient::new(bank)];
|
let client = Arc::new(BankClient::new(bank));
|
||||||
|
|
||||||
let mut config = Config::default();
|
let mut config = Config::default();
|
||||||
config.id = id;
|
config.id = id;
|
||||||
config.tx_count = 10;
|
config.tx_count = 10;
|
||||||
config.duration = Duration::from_secs(5);
|
config.duration = Duration::from_secs(5);
|
||||||
|
|
||||||
let (keypairs, _move_keypairs, _keypair_balance) =
|
let keypair_count = config.tx_count * config.keypair_multiplier;
|
||||||
generate_and_fund_keypairs(&clients[0], None, &config.id, config.tx_count, 20, false)
|
let (keypairs, _move_keypairs) =
|
||||||
|
generate_and_fund_keypairs(client.clone(), None, &config.id, keypair_count, 20, false)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
do_bench_tps(clients, config, keypairs, 0, None);
|
do_bench_tps(client, config, keypairs, None);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_bench_tps_fund_keys() {
|
fn test_bench_tps_fund_keys() {
|
||||||
let (genesis_config, id) = create_genesis_config(10_000);
|
let (genesis_config, id) = create_genesis_config(10_000);
|
||||||
let bank = Bank::new(&genesis_config);
|
let bank = Bank::new(&genesis_config);
|
||||||
let client = BankClient::new(bank);
|
let client = Arc::new(BankClient::new(bank));
|
||||||
let tx_count = 10;
|
let keypair_count = 20;
|
||||||
let lamports = 20;
|
let lamports = 20;
|
||||||
|
|
||||||
let (keypairs, _move_keypairs, _keypair_balance) =
|
let (keypairs, _move_keypairs) =
|
||||||
generate_and_fund_keypairs(&client, None, &id, tx_count, lamports, false).unwrap();
|
generate_and_fund_keypairs(client.clone(), None, &id, keypair_count, lamports, false)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
for kp in &keypairs {
|
for kp in &keypairs {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
@ -1106,23 +1182,16 @@ mod tests {
|
|||||||
let fee_calculator = FeeCalculator::new(11, 0);
|
let fee_calculator = FeeCalculator::new(11, 0);
|
||||||
genesis_config.fee_calculator = fee_calculator;
|
genesis_config.fee_calculator = fee_calculator;
|
||||||
let bank = Bank::new(&genesis_config);
|
let bank = Bank::new(&genesis_config);
|
||||||
let client = BankClient::new(bank);
|
let client = Arc::new(BankClient::new(bank));
|
||||||
let tx_count = 10;
|
let keypair_count = 20;
|
||||||
let lamports = 20;
|
let lamports = 20;
|
||||||
|
|
||||||
let (keypairs, _move_keypairs, _keypair_balance) =
|
let (keypairs, _move_keypairs) =
|
||||||
generate_and_fund_keypairs(&client, None, &id, tx_count, lamports, false).unwrap();
|
generate_and_fund_keypairs(client.clone(), None, &id, keypair_count, lamports, false)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
let max_fee = client
|
|
||||||
.get_recent_blockhash_with_commitment(CommitmentConfig::recent())
|
|
||||||
.unwrap()
|
|
||||||
.1
|
|
||||||
.max_lamports_per_signature;
|
|
||||||
for kp in &keypairs {
|
for kp in &keypairs {
|
||||||
assert_eq!(
|
assert_eq!(client.get_balance(&kp.pubkey()).unwrap(), lamports);
|
||||||
client.get_balance(&kp.pubkey()).unwrap(),
|
|
||||||
lamports + max_fee
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
use clap::{crate_description, crate_name, App, Arg, ArgMatches};
|
use clap::{crate_description, crate_name, App, Arg, ArgMatches};
|
||||||
use solana_drone::drone::DRONE_PORT;
|
use solana_faucet::faucet::FAUCET_PORT;
|
||||||
use solana_sdk::fee_calculator::FeeCalculator;
|
use solana_sdk::fee_calculator::FeeCalculator;
|
||||||
use solana_sdk::signature::{read_keypair_file, Keypair, KeypairUtil};
|
use solana_sdk::signature::{read_keypair_file, Keypair, KeypairUtil};
|
||||||
use std::{net::SocketAddr, process::exit, time::Duration};
|
use std::{net::SocketAddr, process::exit, time::Duration};
|
||||||
@ -9,12 +9,13 @@ const NUM_LAMPORTS_PER_ACCOUNT_DEFAULT: u64 = solana_sdk::native_token::SOL_LAMP
|
|||||||
/// Holds the configuration for a single run of the benchmark
|
/// Holds the configuration for a single run of the benchmark
|
||||||
pub struct Config {
|
pub struct Config {
|
||||||
pub entrypoint_addr: SocketAddr,
|
pub entrypoint_addr: SocketAddr,
|
||||||
pub drone_addr: SocketAddr,
|
pub faucet_addr: SocketAddr,
|
||||||
pub id: Keypair,
|
pub id: Keypair,
|
||||||
pub threads: usize,
|
pub threads: usize,
|
||||||
pub num_nodes: usize,
|
pub num_nodes: usize,
|
||||||
pub duration: Duration,
|
pub duration: Duration,
|
||||||
pub tx_count: usize,
|
pub tx_count: usize,
|
||||||
|
pub keypair_multiplier: usize,
|
||||||
pub thread_batch_sleep_ms: usize,
|
pub thread_batch_sleep_ms: usize,
|
||||||
pub sustained: bool,
|
pub sustained: bool,
|
||||||
pub client_ids_and_stake_file: String,
|
pub client_ids_and_stake_file: String,
|
||||||
@ -30,12 +31,13 @@ impl Default for Config {
|
|||||||
fn default() -> Config {
|
fn default() -> Config {
|
||||||
Config {
|
Config {
|
||||||
entrypoint_addr: SocketAddr::from(([127, 0, 0, 1], 8001)),
|
entrypoint_addr: SocketAddr::from(([127, 0, 0, 1], 8001)),
|
||||||
drone_addr: SocketAddr::from(([127, 0, 0, 1], DRONE_PORT)),
|
faucet_addr: SocketAddr::from(([127, 0, 0, 1], FAUCET_PORT)),
|
||||||
id: Keypair::new(),
|
id: Keypair::new(),
|
||||||
threads: 4,
|
threads: 4,
|
||||||
num_nodes: 1,
|
num_nodes: 1,
|
||||||
duration: Duration::new(std::u64::MAX, 0),
|
duration: Duration::new(std::u64::MAX, 0),
|
||||||
tx_count: 50_000,
|
tx_count: 50_000,
|
||||||
|
keypair_multiplier: 8,
|
||||||
thread_batch_sleep_ms: 1000,
|
thread_batch_sleep_ms: 1000,
|
||||||
sustained: false,
|
sustained: false,
|
||||||
client_ids_and_stake_file: String::new(),
|
client_ids_and_stake_file: String::new(),
|
||||||
@ -62,12 +64,12 @@ pub fn build_args<'a, 'b>(version: &'b str) -> App<'a, 'b> {
|
|||||||
.help("Rendezvous with the cluster at this entry point; defaults to 127.0.0.1:8001"),
|
.help("Rendezvous with the cluster at this entry point; defaults to 127.0.0.1:8001"),
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
Arg::with_name("drone")
|
Arg::with_name("faucet")
|
||||||
.short("d")
|
.short("d")
|
||||||
.long("drone")
|
.long("faucet")
|
||||||
.value_name("HOST:PORT")
|
.value_name("HOST:PORT")
|
||||||
.takes_value(true)
|
.takes_value(true)
|
||||||
.help("Location of the drone; defaults to entrypoint:DRONE_PORT"),
|
.help("Location of the faucet; defaults to entrypoint:FAUCET_PORT"),
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
Arg::with_name("identity")
|
Arg::with_name("identity")
|
||||||
@ -122,6 +124,13 @@ pub fn build_args<'a, 'b>(version: &'b str) -> App<'a, 'b> {
|
|||||||
.takes_value(true)
|
.takes_value(true)
|
||||||
.help("Number of transactions to send per batch")
|
.help("Number of transactions to send per batch")
|
||||||
)
|
)
|
||||||
|
.arg(
|
||||||
|
Arg::with_name("keypair_multiplier")
|
||||||
|
.long("keypair-multiplier")
|
||||||
|
.value_name("NUM")
|
||||||
|
.takes_value(true)
|
||||||
|
.help("Multiply by transaction count to determine number of keypairs to create")
|
||||||
|
)
|
||||||
.arg(
|
.arg(
|
||||||
Arg::with_name("thread-batch-sleep-ms")
|
Arg::with_name("thread-batch-sleep-ms")
|
||||||
.short("z")
|
.short("z")
|
||||||
@ -180,9 +189,9 @@ pub fn extract_args<'a>(matches: &ArgMatches<'a>) -> Config {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(addr) = matches.value_of("drone") {
|
if let Some(addr) = matches.value_of("faucet") {
|
||||||
args.drone_addr = solana_net_utils::parse_host_port(addr).unwrap_or_else(|e| {
|
args.faucet_addr = solana_net_utils::parse_host_port(addr).unwrap_or_else(|e| {
|
||||||
eprintln!("failed to parse drone address: {}", e);
|
eprintln!("failed to parse faucet address: {}", e);
|
||||||
exit(1)
|
exit(1)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -208,7 +217,15 @@ pub fn extract_args<'a>(matches: &ArgMatches<'a>) -> Config {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let Some(s) = matches.value_of("tx_count") {
|
if let Some(s) = matches.value_of("tx_count") {
|
||||||
args.tx_count = s.to_string().parse().expect("can't parse tx_account");
|
args.tx_count = s.to_string().parse().expect("can't parse tx_count");
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(s) = matches.value_of("keypair_multiplier") {
|
||||||
|
args.keypair_multiplier = s
|
||||||
|
.to_string()
|
||||||
|
.parse()
|
||||||
|
.expect("can't parse keypair-multiplier");
|
||||||
|
assert!(args.keypair_multiplier >= 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(t) = matches.value_of("thread-batch-sleep-ms") {
|
if let Some(t) = matches.value_of("thread-batch-sleep-ms") {
|
||||||
|
@ -6,7 +6,7 @@ use solana_genesis::Base64Account;
|
|||||||
use solana_sdk::fee_calculator::FeeCalculator;
|
use solana_sdk::fee_calculator::FeeCalculator;
|
||||||
use solana_sdk::signature::{Keypair, KeypairUtil};
|
use solana_sdk::signature::{Keypair, KeypairUtil};
|
||||||
use solana_sdk::system_program;
|
use solana_sdk::system_program;
|
||||||
use std::{collections::HashMap, fs::File, io::prelude::*, path::Path, process::exit};
|
use std::{collections::HashMap, fs::File, io::prelude::*, path::Path, process::exit, sync::Arc};
|
||||||
|
|
||||||
/// Number of signatures for all transactions in ~1 week at ~100K TPS
|
/// Number of signatures for all transactions in ~1 week at ~100K TPS
|
||||||
pub const NUM_SIGNATURES_FOR_TXS: u64 = 100_000 * 60 * 60 * 24 * 7;
|
pub const NUM_SIGNATURES_FOR_TXS: u64 = 100_000 * 60 * 60 * 24 * 7;
|
||||||
@ -20,10 +20,11 @@ fn main() {
|
|||||||
|
|
||||||
let cli::Config {
|
let cli::Config {
|
||||||
entrypoint_addr,
|
entrypoint_addr,
|
||||||
drone_addr,
|
faucet_addr,
|
||||||
id,
|
id,
|
||||||
num_nodes,
|
num_nodes,
|
||||||
tx_count,
|
tx_count,
|
||||||
|
keypair_multiplier,
|
||||||
client_ids_and_stake_file,
|
client_ids_and_stake_file,
|
||||||
write_to_client_file,
|
write_to_client_file,
|
||||||
read_from_client_file,
|
read_from_client_file,
|
||||||
@ -34,9 +35,10 @@ fn main() {
|
|||||||
..
|
..
|
||||||
} = &cli_config;
|
} = &cli_config;
|
||||||
|
|
||||||
|
let keypair_count = *tx_count * keypair_multiplier;
|
||||||
if *write_to_client_file {
|
if *write_to_client_file {
|
||||||
info!("Generating {} keypairs", *tx_count * 2);
|
info!("Generating {} keypairs", keypair_count);
|
||||||
let (keypairs, _) = generate_keypairs(&id, *tx_count as u64 * 2);
|
let (keypairs, _) = generate_keypairs(&id, keypair_count as u64);
|
||||||
let num_accounts = keypairs.len() as u64;
|
let num_accounts = keypairs.len() as u64;
|
||||||
let max_fee =
|
let max_fee =
|
||||||
FeeCalculator::new(*target_lamports_per_signature, 0).max_lamports_per_signature;
|
FeeCalculator::new(*target_lamports_per_signature, 0).max_lamports_per_signature;
|
||||||
@ -80,12 +82,12 @@ fn main() {
|
|||||||
);
|
);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
client
|
Arc::new(client)
|
||||||
} else {
|
} else {
|
||||||
get_client(&nodes)
|
Arc::new(get_client(&nodes))
|
||||||
};
|
};
|
||||||
|
|
||||||
let (keypairs, move_keypairs, keypair_balance) = if *read_from_client_file && !use_move {
|
let (keypairs, move_keypairs) = if *read_from_client_file && !use_move {
|
||||||
let path = Path::new(&client_ids_and_stake_file);
|
let path = Path::new(&client_ids_and_stake_file);
|
||||||
let file = File::open(path).unwrap();
|
let file = File::open(path).unwrap();
|
||||||
|
|
||||||
@ -102,10 +104,10 @@ fn main() {
|
|||||||
last_balance = primordial_account.balance;
|
last_balance = primordial_account.balance;
|
||||||
});
|
});
|
||||||
|
|
||||||
if keypairs.len() < tx_count * 2 {
|
if keypairs.len() < keypair_count {
|
||||||
eprintln!(
|
eprintln!(
|
||||||
"Expected {} accounts in {}, only received {} (--tx_count mismatch?)",
|
"Expected {} accounts in {}, only received {} (--tx_count mismatch?)",
|
||||||
tx_count * 2,
|
keypair_count,
|
||||||
client_ids_and_stake_file,
|
client_ids_and_stake_file,
|
||||||
keypairs.len(),
|
keypairs.len(),
|
||||||
);
|
);
|
||||||
@ -115,13 +117,13 @@ fn main() {
|
|||||||
// This prevents the amount of storage needed for bench-tps accounts from creeping up
|
// This prevents the amount of storage needed for bench-tps accounts from creeping up
|
||||||
// across multiple runs.
|
// across multiple runs.
|
||||||
keypairs.sort_by(|x, y| x.pubkey().to_string().cmp(&y.pubkey().to_string()));
|
keypairs.sort_by(|x, y| x.pubkey().to_string().cmp(&y.pubkey().to_string()));
|
||||||
(keypairs, None, last_balance)
|
(keypairs, None)
|
||||||
} else {
|
} else {
|
||||||
generate_and_fund_keypairs(
|
generate_and_fund_keypairs(
|
||||||
&client,
|
client.clone(),
|
||||||
Some(*drone_addr),
|
Some(*faucet_addr),
|
||||||
&id,
|
&id,
|
||||||
*tx_count,
|
keypair_count,
|
||||||
*num_lamports_per_account,
|
*num_lamports_per_account,
|
||||||
*use_move,
|
*use_move,
|
||||||
)
|
)
|
||||||
@ -131,11 +133,5 @@ fn main() {
|
|||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
do_bench_tps(
|
do_bench_tps(client, cli_config, keypairs, move_keypairs);
|
||||||
vec![client],
|
|
||||||
cli_config,
|
|
||||||
keypairs,
|
|
||||||
keypair_balance,
|
|
||||||
move_keypairs,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
@ -4,12 +4,12 @@ use solana_bench_tps::cli::Config;
|
|||||||
use solana_client::thin_client::create_client;
|
use solana_client::thin_client::create_client;
|
||||||
use solana_core::cluster_info::VALIDATOR_PORT_RANGE;
|
use solana_core::cluster_info::VALIDATOR_PORT_RANGE;
|
||||||
use solana_core::validator::ValidatorConfig;
|
use solana_core::validator::ValidatorConfig;
|
||||||
use solana_drone::drone::run_local_drone;
|
use solana_faucet::faucet::run_local_faucet;
|
||||||
use solana_local_cluster::local_cluster::{ClusterConfig, LocalCluster};
|
use solana_local_cluster::local_cluster::{ClusterConfig, LocalCluster};
|
||||||
#[cfg(feature = "move")]
|
#[cfg(feature = "move")]
|
||||||
use solana_sdk::move_loader::solana_move_loader_program;
|
use solana_sdk::move_loader::solana_move_loader_program;
|
||||||
use solana_sdk::signature::{Keypair, KeypairUtil};
|
use solana_sdk::signature::{Keypair, KeypairUtil};
|
||||||
use std::sync::mpsc::channel;
|
use std::sync::{mpsc::channel, Arc};
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
fn test_bench_tps_local_cluster(config: Config) {
|
fn test_bench_tps_local_cluster(config: Config) {
|
||||||
@ -29,35 +29,36 @@ fn test_bench_tps_local_cluster(config: Config) {
|
|||||||
..ClusterConfig::default()
|
..ClusterConfig::default()
|
||||||
});
|
});
|
||||||
|
|
||||||
let drone_keypair = Keypair::new();
|
let faucet_keypair = Keypair::new();
|
||||||
cluster.transfer(
|
cluster.transfer(
|
||||||
&cluster.funding_keypair,
|
&cluster.funding_keypair,
|
||||||
&drone_keypair.pubkey(),
|
&faucet_keypair.pubkey(),
|
||||||
100_000_000,
|
100_000_000,
|
||||||
);
|
);
|
||||||
|
|
||||||
let client = create_client(
|
let client = Arc::new(create_client(
|
||||||
(cluster.entry_point_info.rpc, cluster.entry_point_info.tpu),
|
(cluster.entry_point_info.rpc, cluster.entry_point_info.tpu),
|
||||||
VALIDATOR_PORT_RANGE,
|
VALIDATOR_PORT_RANGE,
|
||||||
);
|
));
|
||||||
|
|
||||||
let (addr_sender, addr_receiver) = channel();
|
let (addr_sender, addr_receiver) = channel();
|
||||||
run_local_drone(drone_keypair, addr_sender, None);
|
run_local_faucet(faucet_keypair, addr_sender, None);
|
||||||
let drone_addr = addr_receiver.recv_timeout(Duration::from_secs(2)).unwrap();
|
let faucet_addr = addr_receiver.recv_timeout(Duration::from_secs(2)).unwrap();
|
||||||
|
|
||||||
let lamports_per_account = 100;
|
let lamports_per_account = 100;
|
||||||
|
|
||||||
let (keypairs, move_keypairs, _keypair_balance) = generate_and_fund_keypairs(
|
let keypair_count = config.tx_count * config.keypair_multiplier;
|
||||||
&client,
|
let (keypairs, move_keypairs) = generate_and_fund_keypairs(
|
||||||
Some(drone_addr),
|
client.clone(),
|
||||||
|
Some(faucet_addr),
|
||||||
&config.id,
|
&config.id,
|
||||||
config.tx_count,
|
keypair_count,
|
||||||
lamports_per_account,
|
lamports_per_account,
|
||||||
config.use_move,
|
config.use_move,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let _total = do_bench_tps(vec![client], config, keypairs, 0, move_keypairs);
|
let _total = do_bench_tps(client, config, keypairs, move_keypairs);
|
||||||
|
|
||||||
#[cfg(not(debug_assertions))]
|
#[cfg(not(debug_assertions))]
|
||||||
assert!(_total > 100);
|
assert!(_total > 100);
|
||||||
|
@ -18,9 +18,9 @@
|
|||||||
| | `-------` `--------` `--+---------` | | | | |
|
| | `-------` `--------` `--+---------` | | | | |
|
||||||
| | ^ ^ | | | `------------` |
|
| | ^ ^ | | | `------------` |
|
||||||
| | | | v | | |
|
| | | | v | | |
|
||||||
| | | .--+--------. | | |
|
| | | .--+---------. | | |
|
||||||
| | | | Blocktree | | | |
|
| | | | Blockstore | | | |
|
||||||
| | | `-----------` | | .------------. |
|
| | | `------------` | | .------------. |
|
||||||
| | | ^ | | | | |
|
| | | ^ | | | | |
|
||||||
| | | | | | | Downstream | |
|
| | | | | | | Downstream | |
|
||||||
| | .--+--. .-------+---. | | | Validators | |
|
| | .--+--. .-------+---. | | | Validators | |
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
cd "$(dirname "$0")"
|
|
||||||
|
|
||||||
make -j"$(nproc)" -B svg
|
|
||||||
|
|
||||||
#TODO figure out why book wants to change, but local and CI differ
|
|
||||||
exit 0
|
|
||||||
if [[ -n $CI ]]; then
|
|
||||||
# In CI confirm that no svgs need to be built
|
|
||||||
git diff --exit-code
|
|
||||||
fi
|
|
@ -1,192 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="288" width="736" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="288" width="736" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="216" y2="280"/>
|
|
||||||
<line x1="4" x2="156" y1="216" y2="216"/>
|
|
||||||
<line x1="4" x2="172" y1="280" y2="280"/>
|
|
||||||
<line x1="156" x2="172" y1="216" y2="216"/>
|
|
||||||
<line x1="172" x2="172" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="168"/>
|
|
||||||
<line x1="124" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="156" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="156" x2="156" y1="168" y2="204"/>
|
|
||||||
<line x1="156" x2="204" y1="168" y2="168"/>
|
|
||||||
<line x1="204" x2="292" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="168" y2="204"/>
|
|
||||||
<line x1="204" x2="292" y1="168" y2="168"/>
|
|
||||||
<line x1="292" x2="292" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="216" y2="280"/>
|
|
||||||
<line x1="188" x2="204" y1="216" y2="216"/>
|
|
||||||
<line x1="188" x2="356" y1="280" y2="280"/>
|
|
||||||
<line x1="204" x2="356" y1="216" y2="216"/>
|
|
||||||
<line x1="356" x2="356" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="40" y2="92"/>
|
|
||||||
<line x1="204" x2="276" y1="40" y2="40"/>
|
|
||||||
<line x1="276" x2="276" y1="8" y2="40"/>
|
|
||||||
<line x1="276" x2="444" y1="8" y2="8"/>
|
|
||||||
<line x1="276" x2="276" y1="40" y2="72"/>
|
|
||||||
<line x1="276" x2="444" y1="72" y2="72"/>
|
|
||||||
<line x1="444" x2="444" y1="8" y2="40"/>
|
|
||||||
<line x1="444" x2="444" y1="40" y2="72"/>
|
|
||||||
<line x1="444" x2="532" y1="40" y2="40"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="40" y2="92"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="380" x2="380" y1="216" y2="280"/>
|
|
||||||
<line x1="380" x2="532" y1="216" y2="216"/>
|
|
||||||
<line x1="380" x2="548" y1="280" y2="280"/>
|
|
||||||
<line x1="532" x2="548" y1="216" y2="216"/>
|
|
||||||
<line x1="548" x2="548" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="444" x2="444" y1="104" y2="168"/>
|
|
||||||
<line x1="444" x2="532" y1="104" y2="104"/>
|
|
||||||
<line x1="444" x2="532" y1="168" y2="168"/>
|
|
||||||
<line x1="532" x2="612" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="168" y2="204"/>
|
|
||||||
<line x1="532" x2="580" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="580" x2="580" y1="168" y2="204"/>
|
|
||||||
<line x1="580" x2="612" y1="168" y2="168"/>
|
|
||||||
<line x1="612" x2="612" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="564" x2="564" y1="216" y2="280"/>
|
|
||||||
<line x1="564" x2="580" y1="216" y2="216"/>
|
|
||||||
<line x1="564" x2="732" y1="280" y2="280"/>
|
|
||||||
<line x1="580" x2="732" y1="216" y2="216"/>
|
|
||||||
<line x1="732" x2="732" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="252">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="153" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="252">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="252">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="140">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="697" y="252">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.9 KiB |
@ -1,192 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="288" width="736" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="288" width="736" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="216" y2="280"/>
|
|
||||||
<line x1="4" x2="156" y1="216" y2="216"/>
|
|
||||||
<line x1="4" x2="172" y1="280" y2="280"/>
|
|
||||||
<line x1="156" x2="172" y1="216" y2="216"/>
|
|
||||||
<line x1="172" x2="172" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="168"/>
|
|
||||||
<line x1="124" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="156" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="156" x2="156" y1="168" y2="204"/>
|
|
||||||
<line x1="156" x2="204" y1="168" y2="168"/>
|
|
||||||
<line x1="204" x2="292" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="168" y2="204"/>
|
|
||||||
<line x1="204" x2="292" y1="168" y2="168"/>
|
|
||||||
<line x1="292" x2="292" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="216" y2="280"/>
|
|
||||||
<line x1="188" x2="204" y1="216" y2="216"/>
|
|
||||||
<line x1="188" x2="356" y1="280" y2="280"/>
|
|
||||||
<line x1="204" x2="356" y1="216" y2="216"/>
|
|
||||||
<line x1="356" x2="356" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="40" y2="92"/>
|
|
||||||
<line x1="204" x2="276" y1="40" y2="40"/>
|
|
||||||
<line x1="276" x2="276" y1="8" y2="40"/>
|
|
||||||
<line x1="276" x2="444" y1="8" y2="8"/>
|
|
||||||
<line x1="276" x2="276" y1="40" y2="72"/>
|
|
||||||
<line x1="276" x2="444" y1="72" y2="72"/>
|
|
||||||
<line x1="444" x2="444" y1="8" y2="40"/>
|
|
||||||
<line x1="444" x2="444" y1="40" y2="72"/>
|
|
||||||
<line x1="444" x2="532" y1="40" y2="40"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="40" y2="92"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="380" x2="380" y1="216" y2="280"/>
|
|
||||||
<line x1="380" x2="532" y1="216" y2="216"/>
|
|
||||||
<line x1="380" x2="548" y1="280" y2="280"/>
|
|
||||||
<line x1="532" x2="548" y1="216" y2="216"/>
|
|
||||||
<line x1="548" x2="548" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="444" x2="444" y1="104" y2="168"/>
|
|
||||||
<line x1="444" x2="532" y1="104" y2="104"/>
|
|
||||||
<line x1="444" x2="532" y1="168" y2="168"/>
|
|
||||||
<line x1="532" x2="612" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="168" y2="204"/>
|
|
||||||
<line x1="532" x2="580" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="580" x2="580" y1="168" y2="204"/>
|
|
||||||
<line x1="580" x2="612" y1="168" y2="168"/>
|
|
||||||
<line x1="612" x2="612" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="564" x2="564" y1="216" y2="280"/>
|
|
||||||
<line x1="564" x2="580" y1="216" y2="216"/>
|
|
||||||
<line x1="564" x2="732" y1="280" y2="280"/>
|
|
||||||
<line x1="580" x2="732" y1="216" y2="216"/>
|
|
||||||
<line x1="732" x2="732" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="252">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="153" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="252">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="252">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="140">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="697" y="252">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.9 KiB |
@ -1,192 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="288" width="736" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="288" width="736" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="216" y2="280"/>
|
|
||||||
<line x1="4" x2="156" y1="216" y2="216"/>
|
|
||||||
<line x1="4" x2="172" y1="280" y2="280"/>
|
|
||||||
<line x1="156" x2="172" y1="216" y2="216"/>
|
|
||||||
<line x1="172" x2="172" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="168"/>
|
|
||||||
<line x1="124" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="156" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="156" x2="156" y1="168" y2="204"/>
|
|
||||||
<line x1="156" x2="204" y1="168" y2="168"/>
|
|
||||||
<line x1="204" x2="292" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="168" y2="204"/>
|
|
||||||
<line x1="204" x2="292" y1="168" y2="168"/>
|
|
||||||
<line x1="292" x2="292" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="216" y2="280"/>
|
|
||||||
<line x1="188" x2="204" y1="216" y2="216"/>
|
|
||||||
<line x1="188" x2="356" y1="280" y2="280"/>
|
|
||||||
<line x1="204" x2="356" y1="216" y2="216"/>
|
|
||||||
<line x1="356" x2="356" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="40" y2="92"/>
|
|
||||||
<line x1="204" x2="276" y1="40" y2="40"/>
|
|
||||||
<line x1="276" x2="276" y1="8" y2="40"/>
|
|
||||||
<line x1="276" x2="444" y1="8" y2="8"/>
|
|
||||||
<line x1="276" x2="276" y1="40" y2="72"/>
|
|
||||||
<line x1="276" x2="444" y1="72" y2="72"/>
|
|
||||||
<line x1="444" x2="444" y1="8" y2="40"/>
|
|
||||||
<line x1="444" x2="444" y1="40" y2="72"/>
|
|
||||||
<line x1="444" x2="532" y1="40" y2="40"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="40" y2="92"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="380" x2="380" y1="216" y2="280"/>
|
|
||||||
<line x1="380" x2="532" y1="216" y2="216"/>
|
|
||||||
<line x1="380" x2="548" y1="280" y2="280"/>
|
|
||||||
<line x1="532" x2="548" y1="216" y2="216"/>
|
|
||||||
<line x1="548" x2="548" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="444" x2="444" y1="104" y2="168"/>
|
|
||||||
<line x1="444" x2="532" y1="104" y2="104"/>
|
|
||||||
<line x1="444" x2="532" y1="168" y2="168"/>
|
|
||||||
<line x1="532" x2="612" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="168" y2="204"/>
|
|
||||||
<line x1="532" x2="580" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="580" x2="580" y1="168" y2="204"/>
|
|
||||||
<line x1="580" x2="612" y1="168" y2="168"/>
|
|
||||||
<line x1="612" x2="612" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="564" x2="564" y1="216" y2="280"/>
|
|
||||||
<line x1="564" x2="580" y1="216" y2="216"/>
|
|
||||||
<line x1="564" x2="732" y1="280" y2="280"/>
|
|
||||||
<line x1="580" x2="732" y1="216" y2="216"/>
|
|
||||||
<line x1="732" x2="732" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="252">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="153" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="252">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="252">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="140">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="697" y="252">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.9 KiB |
@ -1,192 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="288" width="736" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="288" width="736" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="216" y2="280"/>
|
|
||||||
<line x1="4" x2="156" y1="216" y2="216"/>
|
|
||||||
<line x1="4" x2="172" y1="280" y2="280"/>
|
|
||||||
<line x1="156" x2="172" y1="216" y2="216"/>
|
|
||||||
<line x1="172" x2="172" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="168"/>
|
|
||||||
<line x1="124" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="156" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="156" x2="156" y1="168" y2="204"/>
|
|
||||||
<line x1="156" x2="204" y1="168" y2="168"/>
|
|
||||||
<line x1="204" x2="292" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="168" y2="204"/>
|
|
||||||
<line x1="204" x2="292" y1="168" y2="168"/>
|
|
||||||
<line x1="292" x2="292" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="216" y2="280"/>
|
|
||||||
<line x1="188" x2="204" y1="216" y2="216"/>
|
|
||||||
<line x1="188" x2="356" y1="280" y2="280"/>
|
|
||||||
<line x1="204" x2="356" y1="216" y2="216"/>
|
|
||||||
<line x1="356" x2="356" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="40" y2="92"/>
|
|
||||||
<line x1="204" x2="276" y1="40" y2="40"/>
|
|
||||||
<line x1="276" x2="276" y1="8" y2="40"/>
|
|
||||||
<line x1="276" x2="444" y1="8" y2="8"/>
|
|
||||||
<line x1="276" x2="276" y1="40" y2="72"/>
|
|
||||||
<line x1="276" x2="444" y1="72" y2="72"/>
|
|
||||||
<line x1="444" x2="444" y1="8" y2="40"/>
|
|
||||||
<line x1="444" x2="444" y1="40" y2="72"/>
|
|
||||||
<line x1="444" x2="532" y1="40" y2="40"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="40" y2="92"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="380" x2="380" y1="216" y2="280"/>
|
|
||||||
<line x1="380" x2="532" y1="216" y2="216"/>
|
|
||||||
<line x1="380" x2="548" y1="280" y2="280"/>
|
|
||||||
<line x1="532" x2="548" y1="216" y2="216"/>
|
|
||||||
<line x1="548" x2="548" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="444" x2="444" y1="104" y2="168"/>
|
|
||||||
<line x1="444" x2="532" y1="104" y2="104"/>
|
|
||||||
<line x1="444" x2="532" y1="168" y2="168"/>
|
|
||||||
<line x1="532" x2="612" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="168" y2="204"/>
|
|
||||||
<line x1="532" x2="580" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="580" x2="580" y1="168" y2="204"/>
|
|
||||||
<line x1="580" x2="612" y1="168" y2="168"/>
|
|
||||||
<line x1="612" x2="612" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="564" x2="564" y1="216" y2="280"/>
|
|
||||||
<line x1="564" x2="580" y1="216" y2="216"/>
|
|
||||||
<line x1="564" x2="732" y1="280" y2="280"/>
|
|
||||||
<line x1="580" x2="732" y1="216" y2="216"/>
|
|
||||||
<line x1="732" x2="732" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="252">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="153" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="252">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="252">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="140">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="697" y="252">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.9 KiB |
@ -1,210 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="288" width="736" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon class="fg_fill" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon class="bg_fill" points="2,2 2,12 18,7 2,2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="fg_fill" cx="10" cy="10" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect class="fg_fill" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="bg_fill" cx="10" cy="10" r="4"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle class="bg_fill" cx="20" cy="20" r="6"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
rect.backdrop {
|
|
||||||
fill: white;
|
|
||||||
}
|
|
||||||
text{
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
circle {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
line {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
path {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fg_fill {
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.bg_fill {
|
|
||||||
fill: white;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect class="backdrop" height="288" width="736" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="216" y2="280"/>
|
|
||||||
<line x1="4" x2="156" y1="216" y2="216"/>
|
|
||||||
<line x1="4" x2="172" y1="280" y2="280"/>
|
|
||||||
<line x1="156" x2="172" y1="216" y2="216"/>
|
|
||||||
<line x1="172" x2="172" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="168"/>
|
|
||||||
<line x1="124" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="156" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="156" x2="156" y1="168" y2="204"/>
|
|
||||||
<line x1="156" x2="204" y1="168" y2="168"/>
|
|
||||||
<line x1="204" x2="292" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="168" y2="204"/>
|
|
||||||
<line x1="204" x2="292" y1="168" y2="168"/>
|
|
||||||
<line x1="292" x2="292" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="216" y2="280"/>
|
|
||||||
<line x1="188" x2="204" y1="216" y2="216"/>
|
|
||||||
<line x1="188" x2="356" y1="280" y2="280"/>
|
|
||||||
<line x1="204" x2="356" y1="216" y2="216"/>
|
|
||||||
<line x1="356" x2="356" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="40" y2="92"/>
|
|
||||||
<line x1="204" x2="276" y1="40" y2="40"/>
|
|
||||||
<line x1="276" x2="276" y1="8" y2="40"/>
|
|
||||||
<line x1="276" x2="444" y1="8" y2="8"/>
|
|
||||||
<line x1="276" x2="276" y1="40" y2="72"/>
|
|
||||||
<line x1="276" x2="444" y1="72" y2="72"/>
|
|
||||||
<line x1="444" x2="444" y1="8" y2="40"/>
|
|
||||||
<line x1="444" x2="444" y1="40" y2="72"/>
|
|
||||||
<line x1="444" x2="532" y1="40" y2="40"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="40" y2="92"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="380" x2="380" y1="216" y2="280"/>
|
|
||||||
<line x1="380" x2="532" y1="216" y2="216"/>
|
|
||||||
<line x1="380" x2="548" y1="280" y2="280"/>
|
|
||||||
<line x1="532" x2="548" y1="216" y2="216"/>
|
|
||||||
<line x1="548" x2="548" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="444" x2="444" y1="104" y2="168"/>
|
|
||||||
<line x1="444" x2="532" y1="104" y2="104"/>
|
|
||||||
<line x1="444" x2="532" y1="168" y2="168"/>
|
|
||||||
<line x1="532" x2="612" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="168" y2="204"/>
|
|
||||||
<line x1="532" x2="580" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="580" x2="580" y1="168" y2="204"/>
|
|
||||||
<line x1="580" x2="612" y1="168" y2="168"/>
|
|
||||||
<line x1="612" x2="612" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="564" x2="564" y1="216" y2="280"/>
|
|
||||||
<line x1="564" x2="580" y1="216" y2="216"/>
|
|
||||||
<line x1="564" x2="732" y1="280" y2="280"/>
|
|
||||||
<line x1="580" x2="732" y1="216" y2="216"/>
|
|
||||||
<line x1="732" x2="732" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="252">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="153" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="252">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="252">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="140">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="697" y="252">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.8 KiB |
@ -1,192 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="288" width="736" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="288" width="736" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="216" y2="280"/>
|
|
||||||
<line x1="4" x2="156" y1="216" y2="216"/>
|
|
||||||
<line x1="4" x2="172" y1="280" y2="280"/>
|
|
||||||
<line x1="156" x2="172" y1="216" y2="216"/>
|
|
||||||
<line x1="172" x2="172" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="168"/>
|
|
||||||
<line x1="124" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="156" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="156" x2="156" y1="168" y2="204"/>
|
|
||||||
<line x1="156" x2="204" y1="168" y2="168"/>
|
|
||||||
<line x1="204" x2="292" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="168" y2="204"/>
|
|
||||||
<line x1="204" x2="292" y1="168" y2="168"/>
|
|
||||||
<line x1="292" x2="292" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="216" y2="280"/>
|
|
||||||
<line x1="188" x2="204" y1="216" y2="216"/>
|
|
||||||
<line x1="188" x2="356" y1="280" y2="280"/>
|
|
||||||
<line x1="204" x2="356" y1="216" y2="216"/>
|
|
||||||
<line x1="356" x2="356" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="40" y2="92"/>
|
|
||||||
<line x1="204" x2="276" y1="40" y2="40"/>
|
|
||||||
<line x1="276" x2="276" y1="8" y2="40"/>
|
|
||||||
<line x1="276" x2="444" y1="8" y2="8"/>
|
|
||||||
<line x1="276" x2="276" y1="40" y2="72"/>
|
|
||||||
<line x1="276" x2="444" y1="72" y2="72"/>
|
|
||||||
<line x1="444" x2="444" y1="8" y2="40"/>
|
|
||||||
<line x1="444" x2="444" y1="40" y2="72"/>
|
|
||||||
<line x1="444" x2="532" y1="40" y2="40"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="40" y2="92"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="380" x2="380" y1="216" y2="280"/>
|
|
||||||
<line x1="380" x2="532" y1="216" y2="216"/>
|
|
||||||
<line x1="380" x2="548" y1="280" y2="280"/>
|
|
||||||
<line x1="532" x2="548" y1="216" y2="216"/>
|
|
||||||
<line x1="548" x2="548" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="444" x2="444" y1="104" y2="168"/>
|
|
||||||
<line x1="444" x2="532" y1="104" y2="104"/>
|
|
||||||
<line x1="444" x2="532" y1="168" y2="168"/>
|
|
||||||
<line x1="532" x2="612" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="168" y2="204"/>
|
|
||||||
<line x1="532" x2="580" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="580" x2="580" y1="168" y2="204"/>
|
|
||||||
<line x1="580" x2="612" y1="168" y2="168"/>
|
|
||||||
<line x1="612" x2="612" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="564" x2="564" y1="216" y2="280"/>
|
|
||||||
<line x1="564" x2="580" y1="216" y2="216"/>
|
|
||||||
<line x1="564" x2="732" y1="280" y2="280"/>
|
|
||||||
<line x1="580" x2="732" y1="216" y2="216"/>
|
|
||||||
<line x1="732" x2="732" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="252">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="153" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="252">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="252">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="140">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="697" y="252">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.9 KiB |
@ -1,183 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="304" width="544" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="304" width="544" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="184"/>
|
|
||||||
<line x1="4" x2="540" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="540" y1="184" y2="184"/>
|
|
||||||
<line x1="540" x2="540" y1="8" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="28" x2="28" y1="232" y2="296"/>
|
|
||||||
<line x1="28" x2="108" y1="232" y2="232"/>
|
|
||||||
<line x1="28" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="108" x2="164" y1="232" y2="232"/>
|
|
||||||
<line x1="164" x2="196" y1="232" y2="232"/>
|
|
||||||
<line x1="196" x2="196" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="36" x2="36" y1="40" y2="104"/>
|
|
||||||
<line x1="36" x2="180" y1="40" y2="40"/>
|
|
||||||
<line x1="36" x2="108" y1="104" y2="104"/>
|
|
||||||
<line x1="108" x2="108" y1="104" y2="176"/>
|
|
||||||
<line x1="108" x2="124" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="136"/>
|
|
||||||
<line x1="124" x2="180" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="364" y1="136" y2="136"/>
|
|
||||||
<line x1="180" x2="180" y1="40" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="56" y2="88"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="180" x2="356" y1="56" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="88" y2="104"/>
|
|
||||||
<line x1="180" x2="184" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="136" y2="152"/>
|
|
||||||
<line x1="364" x2="364" y1="152" y2="176"/>
|
|
||||||
<line x1="364" x2="420" y1="152" y2="152"/>
|
|
||||||
<line x1="420" x2="420" y1="104" y2="152"/>
|
|
||||||
<line x1="420" x2="436" y1="104" y2="104"/>
|
|
||||||
<line x1="436" x2="436" y1="104" y2="176"/>
|
|
||||||
<line x1="436" x2="508" y1="104" y2="104"/>
|
|
||||||
<line x1="508" x2="508" y1="40" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="108" x2="108" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="176"/>
|
|
||||||
<line x1="164" x2="364" y1="152" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="164" x2="164" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="192" x2="188" y1="88" y2="88"/>
|
|
||||||
<line x1="192" x2="364" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="56" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="88" y2="104"/>
|
|
||||||
<line x1="364" x2="420" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="232" y2="296"/>
|
|
||||||
<line x1="348" x2="364" y1="232" y2="232"/>
|
|
||||||
<line x1="348" x2="516" y1="296" y2="296"/>
|
|
||||||
<line x1="364" x2="436" y1="232" y2="232"/>
|
|
||||||
<line x1="436" x2="516" y1="232" y2="232"/>
|
|
||||||
<line x1="516" x2="516" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="364" x2="364" y1="40" y2="56"/>
|
|
||||||
<line x1="364" x2="508" y1="40" y2="40"/>
|
|
||||||
<line x1="364" x2="360" y1="56" y2="56"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="364" x2="364" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="436" x2="436" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="57" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="145" y="76">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="268">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="76">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="481" y="268">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.8 KiB |
@ -1,201 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="304" width="544" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon class="fg_fill" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon class="bg_fill" points="2,2 2,12 18,7 2,2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="fg_fill" cx="10" cy="10" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect class="fg_fill" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="bg_fill" cx="10" cy="10" r="4"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle class="bg_fill" cx="20" cy="20" r="6"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
rect.backdrop {
|
|
||||||
fill: white;
|
|
||||||
}
|
|
||||||
text{
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
circle {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
line {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
path {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fg_fill {
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.bg_fill {
|
|
||||||
fill: white;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect class="backdrop" height="304" width="544" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="184"/>
|
|
||||||
<line x1="4" x2="540" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="540" y1="184" y2="184"/>
|
|
||||||
<line x1="540" x2="540" y1="8" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="28" x2="28" y1="232" y2="296"/>
|
|
||||||
<line x1="28" x2="108" y1="232" y2="232"/>
|
|
||||||
<line x1="28" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="108" x2="164" y1="232" y2="232"/>
|
|
||||||
<line x1="164" x2="196" y1="232" y2="232"/>
|
|
||||||
<line x1="196" x2="196" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="36" x2="36" y1="40" y2="104"/>
|
|
||||||
<line x1="36" x2="180" y1="40" y2="40"/>
|
|
||||||
<line x1="36" x2="108" y1="104" y2="104"/>
|
|
||||||
<line x1="108" x2="108" y1="104" y2="176"/>
|
|
||||||
<line x1="108" x2="124" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="136"/>
|
|
||||||
<line x1="124" x2="180" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="364" y1="136" y2="136"/>
|
|
||||||
<line x1="180" x2="180" y1="40" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="56" y2="88"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="180" x2="356" y1="56" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="88" y2="104"/>
|
|
||||||
<line x1="180" x2="184" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="136" y2="152"/>
|
|
||||||
<line x1="364" x2="364" y1="152" y2="176"/>
|
|
||||||
<line x1="364" x2="420" y1="152" y2="152"/>
|
|
||||||
<line x1="420" x2="420" y1="104" y2="152"/>
|
|
||||||
<line x1="420" x2="436" y1="104" y2="104"/>
|
|
||||||
<line x1="436" x2="436" y1="104" y2="176"/>
|
|
||||||
<line x1="436" x2="508" y1="104" y2="104"/>
|
|
||||||
<line x1="508" x2="508" y1="40" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="108" x2="108" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="176"/>
|
|
||||||
<line x1="164" x2="364" y1="152" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="164" x2="164" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="192" x2="188" y1="88" y2="88"/>
|
|
||||||
<line x1="192" x2="364" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="56" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="88" y2="104"/>
|
|
||||||
<line x1="364" x2="420" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="232" y2="296"/>
|
|
||||||
<line x1="348" x2="364" y1="232" y2="232"/>
|
|
||||||
<line x1="348" x2="516" y1="296" y2="296"/>
|
|
||||||
<line x1="364" x2="436" y1="232" y2="232"/>
|
|
||||||
<line x1="436" x2="516" y1="232" y2="232"/>
|
|
||||||
<line x1="516" x2="516" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="364" x2="364" y1="40" y2="56"/>
|
|
||||||
<line x1="364" x2="508" y1="40" y2="40"/>
|
|
||||||
<line x1="364" x2="360" y1="56" y2="56"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="364" x2="364" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="436" x2="436" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="57" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="145" y="76">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="268">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="76">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="481" y="268">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.7 KiB |
@ -1,183 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="304" width="544" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="304" width="544" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="184"/>
|
|
||||||
<line x1="4" x2="540" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="540" y1="184" y2="184"/>
|
|
||||||
<line x1="540" x2="540" y1="8" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="28" x2="28" y1="232" y2="296"/>
|
|
||||||
<line x1="28" x2="108" y1="232" y2="232"/>
|
|
||||||
<line x1="28" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="108" x2="164" y1="232" y2="232"/>
|
|
||||||
<line x1="164" x2="196" y1="232" y2="232"/>
|
|
||||||
<line x1="196" x2="196" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="36" x2="36" y1="40" y2="104"/>
|
|
||||||
<line x1="36" x2="180" y1="40" y2="40"/>
|
|
||||||
<line x1="36" x2="108" y1="104" y2="104"/>
|
|
||||||
<line x1="108" x2="108" y1="104" y2="176"/>
|
|
||||||
<line x1="108" x2="124" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="136"/>
|
|
||||||
<line x1="124" x2="180" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="364" y1="136" y2="136"/>
|
|
||||||
<line x1="180" x2="180" y1="40" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="56" y2="88"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="180" x2="356" y1="56" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="88" y2="104"/>
|
|
||||||
<line x1="180" x2="184" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="136" y2="152"/>
|
|
||||||
<line x1="364" x2="364" y1="152" y2="176"/>
|
|
||||||
<line x1="364" x2="420" y1="152" y2="152"/>
|
|
||||||
<line x1="420" x2="420" y1="104" y2="152"/>
|
|
||||||
<line x1="420" x2="436" y1="104" y2="104"/>
|
|
||||||
<line x1="436" x2="436" y1="104" y2="176"/>
|
|
||||||
<line x1="436" x2="508" y1="104" y2="104"/>
|
|
||||||
<line x1="508" x2="508" y1="40" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="108" x2="108" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="176"/>
|
|
||||||
<line x1="164" x2="364" y1="152" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="164" x2="164" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="192" x2="188" y1="88" y2="88"/>
|
|
||||||
<line x1="192" x2="364" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="56" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="88" y2="104"/>
|
|
||||||
<line x1="364" x2="420" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="232" y2="296"/>
|
|
||||||
<line x1="348" x2="364" y1="232" y2="232"/>
|
|
||||||
<line x1="348" x2="516" y1="296" y2="296"/>
|
|
||||||
<line x1="364" x2="436" y1="232" y2="232"/>
|
|
||||||
<line x1="436" x2="516" y1="232" y2="232"/>
|
|
||||||
<line x1="516" x2="516" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="364" x2="364" y1="40" y2="56"/>
|
|
||||||
<line x1="364" x2="508" y1="40" y2="40"/>
|
|
||||||
<line x1="364" x2="360" y1="56" y2="56"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="364" x2="364" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="436" x2="436" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="57" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="145" y="76">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="268">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="76">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="481" y="268">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.8 KiB |
@ -1,183 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="304" width="544" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="304" width="544" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="184"/>
|
|
||||||
<line x1="4" x2="540" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="540" y1="184" y2="184"/>
|
|
||||||
<line x1="540" x2="540" y1="8" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="28" x2="28" y1="232" y2="296"/>
|
|
||||||
<line x1="28" x2="108" y1="232" y2="232"/>
|
|
||||||
<line x1="28" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="108" x2="164" y1="232" y2="232"/>
|
|
||||||
<line x1="164" x2="196" y1="232" y2="232"/>
|
|
||||||
<line x1="196" x2="196" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="36" x2="36" y1="40" y2="104"/>
|
|
||||||
<line x1="36" x2="180" y1="40" y2="40"/>
|
|
||||||
<line x1="36" x2="108" y1="104" y2="104"/>
|
|
||||||
<line x1="108" x2="108" y1="104" y2="176"/>
|
|
||||||
<line x1="108" x2="124" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="136"/>
|
|
||||||
<line x1="124" x2="180" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="364" y1="136" y2="136"/>
|
|
||||||
<line x1="180" x2="180" y1="40" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="56" y2="88"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="180" x2="356" y1="56" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="88" y2="104"/>
|
|
||||||
<line x1="180" x2="184" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="136" y2="152"/>
|
|
||||||
<line x1="364" x2="364" y1="152" y2="176"/>
|
|
||||||
<line x1="364" x2="420" y1="152" y2="152"/>
|
|
||||||
<line x1="420" x2="420" y1="104" y2="152"/>
|
|
||||||
<line x1="420" x2="436" y1="104" y2="104"/>
|
|
||||||
<line x1="436" x2="436" y1="104" y2="176"/>
|
|
||||||
<line x1="436" x2="508" y1="104" y2="104"/>
|
|
||||||
<line x1="508" x2="508" y1="40" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="108" x2="108" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="176"/>
|
|
||||||
<line x1="164" x2="364" y1="152" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="164" x2="164" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="192" x2="188" y1="88" y2="88"/>
|
|
||||||
<line x1="192" x2="364" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="56" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="88" y2="104"/>
|
|
||||||
<line x1="364" x2="420" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="232" y2="296"/>
|
|
||||||
<line x1="348" x2="364" y1="232" y2="232"/>
|
|
||||||
<line x1="348" x2="516" y1="296" y2="296"/>
|
|
||||||
<line x1="364" x2="436" y1="232" y2="232"/>
|
|
||||||
<line x1="436" x2="516" y1="232" y2="232"/>
|
|
||||||
<line x1="516" x2="516" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="364" x2="364" y1="40" y2="56"/>
|
|
||||||
<line x1="364" x2="508" y1="40" y2="40"/>
|
|
||||||
<line x1="364" x2="360" y1="56" y2="56"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="364" x2="364" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="436" x2="436" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="57" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="145" y="76">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="268">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="76">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="481" y="268">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.8 KiB |
@ -1,183 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="304" width="544" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="304" width="544" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="184"/>
|
|
||||||
<line x1="4" x2="540" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="540" y1="184" y2="184"/>
|
|
||||||
<line x1="540" x2="540" y1="8" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="28" x2="28" y1="232" y2="296"/>
|
|
||||||
<line x1="28" x2="108" y1="232" y2="232"/>
|
|
||||||
<line x1="28" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="108" x2="164" y1="232" y2="232"/>
|
|
||||||
<line x1="164" x2="196" y1="232" y2="232"/>
|
|
||||||
<line x1="196" x2="196" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="36" x2="36" y1="40" y2="104"/>
|
|
||||||
<line x1="36" x2="180" y1="40" y2="40"/>
|
|
||||||
<line x1="36" x2="108" y1="104" y2="104"/>
|
|
||||||
<line x1="108" x2="108" y1="104" y2="176"/>
|
|
||||||
<line x1="108" x2="124" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="136"/>
|
|
||||||
<line x1="124" x2="180" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="364" y1="136" y2="136"/>
|
|
||||||
<line x1="180" x2="180" y1="40" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="56" y2="88"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="180" x2="356" y1="56" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="88" y2="104"/>
|
|
||||||
<line x1="180" x2="184" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="136" y2="152"/>
|
|
||||||
<line x1="364" x2="364" y1="152" y2="176"/>
|
|
||||||
<line x1="364" x2="420" y1="152" y2="152"/>
|
|
||||||
<line x1="420" x2="420" y1="104" y2="152"/>
|
|
||||||
<line x1="420" x2="436" y1="104" y2="104"/>
|
|
||||||
<line x1="436" x2="436" y1="104" y2="176"/>
|
|
||||||
<line x1="436" x2="508" y1="104" y2="104"/>
|
|
||||||
<line x1="508" x2="508" y1="40" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="108" x2="108" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="176"/>
|
|
||||||
<line x1="164" x2="364" y1="152" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="164" x2="164" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="192" x2="188" y1="88" y2="88"/>
|
|
||||||
<line x1="192" x2="364" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="56" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="88" y2="104"/>
|
|
||||||
<line x1="364" x2="420" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="232" y2="296"/>
|
|
||||||
<line x1="348" x2="364" y1="232" y2="232"/>
|
|
||||||
<line x1="348" x2="516" y1="296" y2="296"/>
|
|
||||||
<line x1="364" x2="436" y1="232" y2="232"/>
|
|
||||||
<line x1="436" x2="516" y1="232" y2="232"/>
|
|
||||||
<line x1="516" x2="516" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="364" x2="364" y1="40" y2="56"/>
|
|
||||||
<line x1="364" x2="508" y1="40" y2="40"/>
|
|
||||||
<line x1="364" x2="360" y1="56" y2="56"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="364" x2="364" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="436" x2="436" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="57" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="145" y="76">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="268">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="76">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="481" y="268">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.8 KiB |
@ -1,183 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="304" width="544" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="304" width="544" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="184"/>
|
|
||||||
<line x1="4" x2="540" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="540" y1="184" y2="184"/>
|
|
||||||
<line x1="540" x2="540" y1="8" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="28" x2="28" y1="232" y2="296"/>
|
|
||||||
<line x1="28" x2="108" y1="232" y2="232"/>
|
|
||||||
<line x1="28" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="108" x2="164" y1="232" y2="232"/>
|
|
||||||
<line x1="164" x2="196" y1="232" y2="232"/>
|
|
||||||
<line x1="196" x2="196" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="36" x2="36" y1="40" y2="104"/>
|
|
||||||
<line x1="36" x2="180" y1="40" y2="40"/>
|
|
||||||
<line x1="36" x2="108" y1="104" y2="104"/>
|
|
||||||
<line x1="108" x2="108" y1="104" y2="176"/>
|
|
||||||
<line x1="108" x2="124" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="136"/>
|
|
||||||
<line x1="124" x2="180" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="364" y1="136" y2="136"/>
|
|
||||||
<line x1="180" x2="180" y1="40" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="56" y2="88"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="180" x2="356" y1="56" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="88" y2="104"/>
|
|
||||||
<line x1="180" x2="184" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="136" y2="152"/>
|
|
||||||
<line x1="364" x2="364" y1="152" y2="176"/>
|
|
||||||
<line x1="364" x2="420" y1="152" y2="152"/>
|
|
||||||
<line x1="420" x2="420" y1="104" y2="152"/>
|
|
||||||
<line x1="420" x2="436" y1="104" y2="104"/>
|
|
||||||
<line x1="436" x2="436" y1="104" y2="176"/>
|
|
||||||
<line x1="436" x2="508" y1="104" y2="104"/>
|
|
||||||
<line x1="508" x2="508" y1="40" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="108" x2="108" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="176"/>
|
|
||||||
<line x1="164" x2="364" y1="152" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="164" x2="164" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="192" x2="188" y1="88" y2="88"/>
|
|
||||||
<line x1="192" x2="364" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="56" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="88" y2="104"/>
|
|
||||||
<line x1="364" x2="420" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="232" y2="296"/>
|
|
||||||
<line x1="348" x2="364" y1="232" y2="232"/>
|
|
||||||
<line x1="348" x2="516" y1="296" y2="296"/>
|
|
||||||
<line x1="364" x2="436" y1="232" y2="232"/>
|
|
||||||
<line x1="436" x2="516" y1="232" y2="232"/>
|
|
||||||
<line x1="516" x2="516" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="364" x2="364" y1="40" y2="56"/>
|
|
||||||
<line x1="364" x2="508" y1="40" y2="40"/>
|
|
||||||
<line x1="364" x2="360" y1="56" y2="56"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="364" x2="364" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="436" x2="436" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="57" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="145" y="76">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="268">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="76">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="481" y="268">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.8 KiB |
@ -1,183 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="304" width="544" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="304" width="544" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="184"/>
|
|
||||||
<line x1="4" x2="540" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="540" y1="184" y2="184"/>
|
|
||||||
<line x1="540" x2="540" y1="8" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="28" x2="28" y1="232" y2="296"/>
|
|
||||||
<line x1="28" x2="108" y1="232" y2="232"/>
|
|
||||||
<line x1="28" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="108" x2="164" y1="232" y2="232"/>
|
|
||||||
<line x1="164" x2="196" y1="232" y2="232"/>
|
|
||||||
<line x1="196" x2="196" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="36" x2="36" y1="40" y2="104"/>
|
|
||||||
<line x1="36" x2="180" y1="40" y2="40"/>
|
|
||||||
<line x1="36" x2="108" y1="104" y2="104"/>
|
|
||||||
<line x1="108" x2="108" y1="104" y2="176"/>
|
|
||||||
<line x1="108" x2="124" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="136"/>
|
|
||||||
<line x1="124" x2="180" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="364" y1="136" y2="136"/>
|
|
||||||
<line x1="180" x2="180" y1="40" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="56" y2="88"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="180" x2="356" y1="56" y2="56"/>
|
|
||||||
<line x1="180" x2="180" y1="88" y2="104"/>
|
|
||||||
<line x1="180" x2="184" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="136" y2="152"/>
|
|
||||||
<line x1="364" x2="364" y1="152" y2="176"/>
|
|
||||||
<line x1="364" x2="420" y1="152" y2="152"/>
|
|
||||||
<line x1="420" x2="420" y1="104" y2="152"/>
|
|
||||||
<line x1="420" x2="436" y1="104" y2="104"/>
|
|
||||||
<line x1="436" x2="436" y1="104" y2="176"/>
|
|
||||||
<line x1="436" x2="508" y1="104" y2="104"/>
|
|
||||||
<line x1="508" x2="508" y1="40" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="108" x2="108" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="176"/>
|
|
||||||
<line x1="164" x2="364" y1="152" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="164" x2="164" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="192" x2="188" y1="88" y2="88"/>
|
|
||||||
<line x1="192" x2="364" y1="88" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="56" y2="88"/>
|
|
||||||
<line x1="364" x2="364" y1="88" y2="104"/>
|
|
||||||
<line x1="364" x2="420" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="232" y2="296"/>
|
|
||||||
<line x1="348" x2="364" y1="232" y2="232"/>
|
|
||||||
<line x1="348" x2="516" y1="296" y2="296"/>
|
|
||||||
<line x1="364" x2="436" y1="232" y2="232"/>
|
|
||||||
<line x1="436" x2="516" y1="232" y2="232"/>
|
|
||||||
<line x1="516" x2="516" y1="232" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="364" x2="364" y1="40" y2="56"/>
|
|
||||||
<line x1="364" x2="508" y1="40" y2="40"/>
|
|
||||||
<line x1="364" x2="360" y1="56" y2="56"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="364" x2="364" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="436" x2="436" y1="192" y2="220"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="57" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="145" y="76">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="268">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="76">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="481" y="268">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.8 KiB |
@ -1,340 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="400" width="856" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon class="fg_fill" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon class="bg_fill" points="2,2 2,12 18,7 2,2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="fg_fill" cx="10" cy="10" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect class="fg_fill" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="bg_fill" cx="10" cy="10" r="4"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle class="bg_fill" cx="20" cy="20" r="6"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
rect.backdrop {
|
|
||||||
fill: white;
|
|
||||||
}
|
|
||||||
text{
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
circle {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
line {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
path {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fg_fill {
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.bg_fill {
|
|
||||||
fill: white;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect class="backdrop" height="400" width="856" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="152"/>
|
|
||||||
<line x1="4" x2="852" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="852" y1="152" y2="152"/>
|
|
||||||
<line x1="852" x2="852" y1="8" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="248" y2="392"/>
|
|
||||||
<line x1="4" x2="852" y1="248" y2="248"/>
|
|
||||||
<line x1="4" x2="852" y1="392" y2="392"/>
|
|
||||||
<line x1="852" x2="852" y1="248" y2="392"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="56" y2="120"/>
|
|
||||||
<line x1="60" x2="196" y1="56" y2="56"/>
|
|
||||||
<line x1="60" x2="84" y1="120" y2="120"/>
|
|
||||||
<line x1="84" x2="84" y1="120" y2="144"/>
|
|
||||||
<line x1="84" x2="196" y1="120" y2="120"/>
|
|
||||||
<line x1="196" x2="196" y1="56" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="72" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="104" y2="120"/>
|
|
||||||
<line x1="196" x2="200" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="296" y2="360"/>
|
|
||||||
<line x1="60" x2="84" y1="296" y2="296"/>
|
|
||||||
<line x1="60" x2="196" y1="360" y2="360"/>
|
|
||||||
<line x1="84" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="196" x2="196" y1="296" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="312" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="344" y2="360"/>
|
|
||||||
<line x1="196" x2="200" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="84" x2="84" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="84" x2="84" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="208" x2="260" y1="104" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="72" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="104" y2="120"/>
|
|
||||||
<line x1="260" x2="284" y1="120" y2="120"/>
|
|
||||||
<line x1="284" x2="284" y1="120" y2="144"/>
|
|
||||||
<line x1="284" x2="396" y1="120" y2="120"/>
|
|
||||||
<line x1="396" x2="396" y1="104" y2="120"/>
|
|
||||||
<line x1="396" x2="400" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="344" y2="344"/>
|
|
||||||
<line x1="208" x2="260" y1="344" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="312" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="344" y2="360"/>
|
|
||||||
<line x1="260" x2="396" y1="360" y2="360"/>
|
|
||||||
<line x1="396" x2="396" y1="344" y2="360"/>
|
|
||||||
<line x1="396" x2="400" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="56" y2="72"/>
|
|
||||||
<line x1="260" x2="396" y1="56" y2="56"/>
|
|
||||||
<line x1="260" x2="256" y1="72" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="56" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="296" y2="312"/>
|
|
||||||
<line x1="260" x2="284" y1="296" y2="296"/>
|
|
||||||
<line x1="260" x2="256" y1="312" y2="312"/>
|
|
||||||
<line x1="284" x2="396" y1="296" y2="296"/>
|
|
||||||
<line x1="396" x2="396" y1="296" y2="312"/>
|
|
||||||
<line x1="396" x2="396" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="284" x2="284" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="284" x2="284" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="104" y2="104"/>
|
|
||||||
<line x1="408" x2="460" y1="104" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="72" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="104" y2="120"/>
|
|
||||||
<line x1="460" x2="508" y1="120" y2="120"/>
|
|
||||||
<line x1="508" x2="508" y1="120" y2="144"/>
|
|
||||||
<line x1="508" x2="596" y1="120" y2="120"/>
|
|
||||||
<line x1="596" x2="596" y1="104" y2="120"/>
|
|
||||||
<line x1="596" x2="600" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="344" y2="344"/>
|
|
||||||
<line x1="408" x2="460" y1="344" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="312" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="344" y2="360"/>
|
|
||||||
<line x1="460" x2="596" y1="360" y2="360"/>
|
|
||||||
<line x1="596" x2="596" y1="344" y2="360"/>
|
|
||||||
<line x1="596" x2="600" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="56" y2="72"/>
|
|
||||||
<line x1="460" x2="596" y1="56" y2="56"/>
|
|
||||||
<line x1="460" x2="456" y1="72" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="56" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="296" y2="312"/>
|
|
||||||
<line x1="460" x2="508" y1="296" y2="296"/>
|
|
||||||
<line x1="460" x2="456" y1="312" y2="312"/>
|
|
||||||
<line x1="508" x2="596" y1="296" y2="296"/>
|
|
||||||
<line x1="596" x2="596" y1="296" y2="312"/>
|
|
||||||
<line x1="596" x2="596" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="508" x2="508" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="508" x2="508" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="104" y2="104"/>
|
|
||||||
<line x1="608" x2="660" y1="104" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="72" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="104" y2="120"/>
|
|
||||||
<line x1="660" x2="684" y1="120" y2="120"/>
|
|
||||||
<line x1="684" x2="684" y1="120" y2="144"/>
|
|
||||||
<line x1="684" x2="796" y1="120" y2="120"/>
|
|
||||||
<line x1="796" x2="796" y1="56" y2="120"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="344" y2="344"/>
|
|
||||||
<line x1="608" x2="660" y1="344" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="312" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="344" y2="360"/>
|
|
||||||
<line x1="660" x2="796" y1="360" y2="360"/>
|
|
||||||
<line x1="796" x2="796" y1="296" y2="360"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="56" y2="72"/>
|
|
||||||
<line x1="660" x2="796" y1="56" y2="56"/>
|
|
||||||
<line x1="660" x2="656" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="296" y2="312"/>
|
|
||||||
<line x1="660" x2="684" y1="296" y2="296"/>
|
|
||||||
<line x1="660" x2="656" y1="312" y2="312"/>
|
|
||||||
<line x1="684" x2="796" y1="296" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="684" x2="684" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="684" x2="684" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="92">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="332">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="28">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="92">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="332">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="28">
|
|
||||||
Above
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="268">
|
|
||||||
Below
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="92">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="332">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="92">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="332">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 8.2 KiB |
@ -1,322 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="400" width="856" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="400" width="856" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="152"/>
|
|
||||||
<line x1="4" x2="852" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="852" y1="152" y2="152"/>
|
|
||||||
<line x1="852" x2="852" y1="8" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="248" y2="392"/>
|
|
||||||
<line x1="4" x2="852" y1="248" y2="248"/>
|
|
||||||
<line x1="4" x2="852" y1="392" y2="392"/>
|
|
||||||
<line x1="852" x2="852" y1="248" y2="392"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="56" y2="120"/>
|
|
||||||
<line x1="60" x2="196" y1="56" y2="56"/>
|
|
||||||
<line x1="60" x2="84" y1="120" y2="120"/>
|
|
||||||
<line x1="84" x2="84" y1="120" y2="144"/>
|
|
||||||
<line x1="84" x2="196" y1="120" y2="120"/>
|
|
||||||
<line x1="196" x2="196" y1="56" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="72" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="104" y2="120"/>
|
|
||||||
<line x1="196" x2="200" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="296" y2="360"/>
|
|
||||||
<line x1="60" x2="84" y1="296" y2="296"/>
|
|
||||||
<line x1="60" x2="196" y1="360" y2="360"/>
|
|
||||||
<line x1="84" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="196" x2="196" y1="296" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="312" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="344" y2="360"/>
|
|
||||||
<line x1="196" x2="200" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="84" x2="84" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="84" x2="84" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="208" x2="260" y1="104" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="72" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="104" y2="120"/>
|
|
||||||
<line x1="260" x2="284" y1="120" y2="120"/>
|
|
||||||
<line x1="284" x2="284" y1="120" y2="144"/>
|
|
||||||
<line x1="284" x2="396" y1="120" y2="120"/>
|
|
||||||
<line x1="396" x2="396" y1="104" y2="120"/>
|
|
||||||
<line x1="396" x2="400" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="344" y2="344"/>
|
|
||||||
<line x1="208" x2="260" y1="344" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="312" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="344" y2="360"/>
|
|
||||||
<line x1="260" x2="396" y1="360" y2="360"/>
|
|
||||||
<line x1="396" x2="396" y1="344" y2="360"/>
|
|
||||||
<line x1="396" x2="400" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="56" y2="72"/>
|
|
||||||
<line x1="260" x2="396" y1="56" y2="56"/>
|
|
||||||
<line x1="260" x2="256" y1="72" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="56" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="296" y2="312"/>
|
|
||||||
<line x1="260" x2="284" y1="296" y2="296"/>
|
|
||||||
<line x1="260" x2="256" y1="312" y2="312"/>
|
|
||||||
<line x1="284" x2="396" y1="296" y2="296"/>
|
|
||||||
<line x1="396" x2="396" y1="296" y2="312"/>
|
|
||||||
<line x1="396" x2="396" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="284" x2="284" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="284" x2="284" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="104" y2="104"/>
|
|
||||||
<line x1="408" x2="460" y1="104" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="72" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="104" y2="120"/>
|
|
||||||
<line x1="460" x2="508" y1="120" y2="120"/>
|
|
||||||
<line x1="508" x2="508" y1="120" y2="144"/>
|
|
||||||
<line x1="508" x2="596" y1="120" y2="120"/>
|
|
||||||
<line x1="596" x2="596" y1="104" y2="120"/>
|
|
||||||
<line x1="596" x2="600" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="344" y2="344"/>
|
|
||||||
<line x1="408" x2="460" y1="344" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="312" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="344" y2="360"/>
|
|
||||||
<line x1="460" x2="596" y1="360" y2="360"/>
|
|
||||||
<line x1="596" x2="596" y1="344" y2="360"/>
|
|
||||||
<line x1="596" x2="600" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="56" y2="72"/>
|
|
||||||
<line x1="460" x2="596" y1="56" y2="56"/>
|
|
||||||
<line x1="460" x2="456" y1="72" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="56" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="296" y2="312"/>
|
|
||||||
<line x1="460" x2="508" y1="296" y2="296"/>
|
|
||||||
<line x1="460" x2="456" y1="312" y2="312"/>
|
|
||||||
<line x1="508" x2="596" y1="296" y2="296"/>
|
|
||||||
<line x1="596" x2="596" y1="296" y2="312"/>
|
|
||||||
<line x1="596" x2="596" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="508" x2="508" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="508" x2="508" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="104" y2="104"/>
|
|
||||||
<line x1="608" x2="660" y1="104" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="72" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="104" y2="120"/>
|
|
||||||
<line x1="660" x2="684" y1="120" y2="120"/>
|
|
||||||
<line x1="684" x2="684" y1="120" y2="144"/>
|
|
||||||
<line x1="684" x2="796" y1="120" y2="120"/>
|
|
||||||
<line x1="796" x2="796" y1="56" y2="120"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="344" y2="344"/>
|
|
||||||
<line x1="608" x2="660" y1="344" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="312" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="344" y2="360"/>
|
|
||||||
<line x1="660" x2="796" y1="360" y2="360"/>
|
|
||||||
<line x1="796" x2="796" y1="296" y2="360"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="56" y2="72"/>
|
|
||||||
<line x1="660" x2="796" y1="56" y2="56"/>
|
|
||||||
<line x1="660" x2="656" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="296" y2="312"/>
|
|
||||||
<line x1="660" x2="684" y1="296" y2="296"/>
|
|
||||||
<line x1="660" x2="656" y1="312" y2="312"/>
|
|
||||||
<line x1="684" x2="796" y1="296" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="684" x2="684" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="684" x2="684" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="92">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="332">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="28">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="92">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="332">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="28">
|
|
||||||
Above
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="268">
|
|
||||||
Below
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="92">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="332">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="92">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="332">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 8.3 KiB |
@ -1,322 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="400" width="856" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="400" width="856" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="152"/>
|
|
||||||
<line x1="4" x2="852" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="852" y1="152" y2="152"/>
|
|
||||||
<line x1="852" x2="852" y1="8" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="248" y2="392"/>
|
|
||||||
<line x1="4" x2="852" y1="248" y2="248"/>
|
|
||||||
<line x1="4" x2="852" y1="392" y2="392"/>
|
|
||||||
<line x1="852" x2="852" y1="248" y2="392"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="56" y2="120"/>
|
|
||||||
<line x1="60" x2="196" y1="56" y2="56"/>
|
|
||||||
<line x1="60" x2="84" y1="120" y2="120"/>
|
|
||||||
<line x1="84" x2="84" y1="120" y2="144"/>
|
|
||||||
<line x1="84" x2="196" y1="120" y2="120"/>
|
|
||||||
<line x1="196" x2="196" y1="56" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="72" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="104" y2="120"/>
|
|
||||||
<line x1="196" x2="200" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="296" y2="360"/>
|
|
||||||
<line x1="60" x2="84" y1="296" y2="296"/>
|
|
||||||
<line x1="60" x2="196" y1="360" y2="360"/>
|
|
||||||
<line x1="84" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="196" x2="196" y1="296" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="312" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="344" y2="360"/>
|
|
||||||
<line x1="196" x2="200" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="84" x2="84" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="84" x2="84" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="208" x2="260" y1="104" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="72" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="104" y2="120"/>
|
|
||||||
<line x1="260" x2="284" y1="120" y2="120"/>
|
|
||||||
<line x1="284" x2="284" y1="120" y2="144"/>
|
|
||||||
<line x1="284" x2="396" y1="120" y2="120"/>
|
|
||||||
<line x1="396" x2="396" y1="104" y2="120"/>
|
|
||||||
<line x1="396" x2="400" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="344" y2="344"/>
|
|
||||||
<line x1="208" x2="260" y1="344" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="312" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="344" y2="360"/>
|
|
||||||
<line x1="260" x2="396" y1="360" y2="360"/>
|
|
||||||
<line x1="396" x2="396" y1="344" y2="360"/>
|
|
||||||
<line x1="396" x2="400" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="56" y2="72"/>
|
|
||||||
<line x1="260" x2="396" y1="56" y2="56"/>
|
|
||||||
<line x1="260" x2="256" y1="72" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="56" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="296" y2="312"/>
|
|
||||||
<line x1="260" x2="284" y1="296" y2="296"/>
|
|
||||||
<line x1="260" x2="256" y1="312" y2="312"/>
|
|
||||||
<line x1="284" x2="396" y1="296" y2="296"/>
|
|
||||||
<line x1="396" x2="396" y1="296" y2="312"/>
|
|
||||||
<line x1="396" x2="396" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="284" x2="284" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="284" x2="284" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="104" y2="104"/>
|
|
||||||
<line x1="408" x2="460" y1="104" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="72" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="104" y2="120"/>
|
|
||||||
<line x1="460" x2="508" y1="120" y2="120"/>
|
|
||||||
<line x1="508" x2="508" y1="120" y2="144"/>
|
|
||||||
<line x1="508" x2="596" y1="120" y2="120"/>
|
|
||||||
<line x1="596" x2="596" y1="104" y2="120"/>
|
|
||||||
<line x1="596" x2="600" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="344" y2="344"/>
|
|
||||||
<line x1="408" x2="460" y1="344" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="312" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="344" y2="360"/>
|
|
||||||
<line x1="460" x2="596" y1="360" y2="360"/>
|
|
||||||
<line x1="596" x2="596" y1="344" y2="360"/>
|
|
||||||
<line x1="596" x2="600" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="56" y2="72"/>
|
|
||||||
<line x1="460" x2="596" y1="56" y2="56"/>
|
|
||||||
<line x1="460" x2="456" y1="72" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="56" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="296" y2="312"/>
|
|
||||||
<line x1="460" x2="508" y1="296" y2="296"/>
|
|
||||||
<line x1="460" x2="456" y1="312" y2="312"/>
|
|
||||||
<line x1="508" x2="596" y1="296" y2="296"/>
|
|
||||||
<line x1="596" x2="596" y1="296" y2="312"/>
|
|
||||||
<line x1="596" x2="596" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="508" x2="508" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="508" x2="508" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="104" y2="104"/>
|
|
||||||
<line x1="608" x2="660" y1="104" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="72" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="104" y2="120"/>
|
|
||||||
<line x1="660" x2="684" y1="120" y2="120"/>
|
|
||||||
<line x1="684" x2="684" y1="120" y2="144"/>
|
|
||||||
<line x1="684" x2="796" y1="120" y2="120"/>
|
|
||||||
<line x1="796" x2="796" y1="56" y2="120"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="344" y2="344"/>
|
|
||||||
<line x1="608" x2="660" y1="344" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="312" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="344" y2="360"/>
|
|
||||||
<line x1="660" x2="796" y1="360" y2="360"/>
|
|
||||||
<line x1="796" x2="796" y1="296" y2="360"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="56" y2="72"/>
|
|
||||||
<line x1="660" x2="796" y1="56" y2="56"/>
|
|
||||||
<line x1="660" x2="656" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="296" y2="312"/>
|
|
||||||
<line x1="660" x2="684" y1="296" y2="296"/>
|
|
||||||
<line x1="660" x2="656" y1="312" y2="312"/>
|
|
||||||
<line x1="684" x2="796" y1="296" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="684" x2="684" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="684" x2="684" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="92">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="332">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="28">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="92">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="332">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="28">
|
|
||||||
Above
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="268">
|
|
||||||
Below
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="92">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="332">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="92">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="332">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 8.3 KiB |
@ -1,322 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="400" width="856" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="400" width="856" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="152"/>
|
|
||||||
<line x1="4" x2="852" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="852" y1="152" y2="152"/>
|
|
||||||
<line x1="852" x2="852" y1="8" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="248" y2="392"/>
|
|
||||||
<line x1="4" x2="852" y1="248" y2="248"/>
|
|
||||||
<line x1="4" x2="852" y1="392" y2="392"/>
|
|
||||||
<line x1="852" x2="852" y1="248" y2="392"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="56" y2="120"/>
|
|
||||||
<line x1="60" x2="196" y1="56" y2="56"/>
|
|
||||||
<line x1="60" x2="84" y1="120" y2="120"/>
|
|
||||||
<line x1="84" x2="84" y1="120" y2="144"/>
|
|
||||||
<line x1="84" x2="196" y1="120" y2="120"/>
|
|
||||||
<line x1="196" x2="196" y1="56" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="72" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="104" y2="120"/>
|
|
||||||
<line x1="196" x2="200" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="296" y2="360"/>
|
|
||||||
<line x1="60" x2="84" y1="296" y2="296"/>
|
|
||||||
<line x1="60" x2="196" y1="360" y2="360"/>
|
|
||||||
<line x1="84" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="196" x2="196" y1="296" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="312" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="344" y2="360"/>
|
|
||||||
<line x1="196" x2="200" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="84" x2="84" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="84" x2="84" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="208" x2="260" y1="104" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="72" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="104" y2="120"/>
|
|
||||||
<line x1="260" x2="284" y1="120" y2="120"/>
|
|
||||||
<line x1="284" x2="284" y1="120" y2="144"/>
|
|
||||||
<line x1="284" x2="396" y1="120" y2="120"/>
|
|
||||||
<line x1="396" x2="396" y1="104" y2="120"/>
|
|
||||||
<line x1="396" x2="400" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="344" y2="344"/>
|
|
||||||
<line x1="208" x2="260" y1="344" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="312" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="344" y2="360"/>
|
|
||||||
<line x1="260" x2="396" y1="360" y2="360"/>
|
|
||||||
<line x1="396" x2="396" y1="344" y2="360"/>
|
|
||||||
<line x1="396" x2="400" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="56" y2="72"/>
|
|
||||||
<line x1="260" x2="396" y1="56" y2="56"/>
|
|
||||||
<line x1="260" x2="256" y1="72" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="56" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="296" y2="312"/>
|
|
||||||
<line x1="260" x2="284" y1="296" y2="296"/>
|
|
||||||
<line x1="260" x2="256" y1="312" y2="312"/>
|
|
||||||
<line x1="284" x2="396" y1="296" y2="296"/>
|
|
||||||
<line x1="396" x2="396" y1="296" y2="312"/>
|
|
||||||
<line x1="396" x2="396" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="284" x2="284" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="284" x2="284" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="104" y2="104"/>
|
|
||||||
<line x1="408" x2="460" y1="104" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="72" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="104" y2="120"/>
|
|
||||||
<line x1="460" x2="508" y1="120" y2="120"/>
|
|
||||||
<line x1="508" x2="508" y1="120" y2="144"/>
|
|
||||||
<line x1="508" x2="596" y1="120" y2="120"/>
|
|
||||||
<line x1="596" x2="596" y1="104" y2="120"/>
|
|
||||||
<line x1="596" x2="600" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="344" y2="344"/>
|
|
||||||
<line x1="408" x2="460" y1="344" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="312" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="344" y2="360"/>
|
|
||||||
<line x1="460" x2="596" y1="360" y2="360"/>
|
|
||||||
<line x1="596" x2="596" y1="344" y2="360"/>
|
|
||||||
<line x1="596" x2="600" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="56" y2="72"/>
|
|
||||||
<line x1="460" x2="596" y1="56" y2="56"/>
|
|
||||||
<line x1="460" x2="456" y1="72" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="56" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="296" y2="312"/>
|
|
||||||
<line x1="460" x2="508" y1="296" y2="296"/>
|
|
||||||
<line x1="460" x2="456" y1="312" y2="312"/>
|
|
||||||
<line x1="508" x2="596" y1="296" y2="296"/>
|
|
||||||
<line x1="596" x2="596" y1="296" y2="312"/>
|
|
||||||
<line x1="596" x2="596" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="508" x2="508" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="508" x2="508" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="104" y2="104"/>
|
|
||||||
<line x1="608" x2="660" y1="104" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="72" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="104" y2="120"/>
|
|
||||||
<line x1="660" x2="684" y1="120" y2="120"/>
|
|
||||||
<line x1="684" x2="684" y1="120" y2="144"/>
|
|
||||||
<line x1="684" x2="796" y1="120" y2="120"/>
|
|
||||||
<line x1="796" x2="796" y1="56" y2="120"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="344" y2="344"/>
|
|
||||||
<line x1="608" x2="660" y1="344" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="312" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="344" y2="360"/>
|
|
||||||
<line x1="660" x2="796" y1="360" y2="360"/>
|
|
||||||
<line x1="796" x2="796" y1="296" y2="360"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="56" y2="72"/>
|
|
||||||
<line x1="660" x2="796" y1="56" y2="56"/>
|
|
||||||
<line x1="660" x2="656" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="296" y2="312"/>
|
|
||||||
<line x1="660" x2="684" y1="296" y2="296"/>
|
|
||||||
<line x1="660" x2="656" y1="312" y2="312"/>
|
|
||||||
<line x1="684" x2="796" y1="296" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="684" x2="684" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="684" x2="684" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="92">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="332">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="28">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="92">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="332">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="28">
|
|
||||||
Above
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="268">
|
|
||||||
Below
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="92">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="332">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="92">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="332">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 8.3 KiB |
@ -1,322 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="400" width="856" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="400" width="856" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="152"/>
|
|
||||||
<line x1="4" x2="852" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="852" y1="152" y2="152"/>
|
|
||||||
<line x1="852" x2="852" y1="8" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="248" y2="392"/>
|
|
||||||
<line x1="4" x2="852" y1="248" y2="248"/>
|
|
||||||
<line x1="4" x2="852" y1="392" y2="392"/>
|
|
||||||
<line x1="852" x2="852" y1="248" y2="392"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="56" y2="120"/>
|
|
||||||
<line x1="60" x2="196" y1="56" y2="56"/>
|
|
||||||
<line x1="60" x2="84" y1="120" y2="120"/>
|
|
||||||
<line x1="84" x2="84" y1="120" y2="144"/>
|
|
||||||
<line x1="84" x2="196" y1="120" y2="120"/>
|
|
||||||
<line x1="196" x2="196" y1="56" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="72" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="104" y2="120"/>
|
|
||||||
<line x1="196" x2="200" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="296" y2="360"/>
|
|
||||||
<line x1="60" x2="84" y1="296" y2="296"/>
|
|
||||||
<line x1="60" x2="196" y1="360" y2="360"/>
|
|
||||||
<line x1="84" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="196" x2="196" y1="296" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="312" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="344" y2="360"/>
|
|
||||||
<line x1="196" x2="200" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="84" x2="84" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="84" x2="84" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="208" x2="260" y1="104" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="72" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="104" y2="120"/>
|
|
||||||
<line x1="260" x2="284" y1="120" y2="120"/>
|
|
||||||
<line x1="284" x2="284" y1="120" y2="144"/>
|
|
||||||
<line x1="284" x2="396" y1="120" y2="120"/>
|
|
||||||
<line x1="396" x2="396" y1="104" y2="120"/>
|
|
||||||
<line x1="396" x2="400" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="344" y2="344"/>
|
|
||||||
<line x1="208" x2="260" y1="344" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="312" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="344" y2="360"/>
|
|
||||||
<line x1="260" x2="396" y1="360" y2="360"/>
|
|
||||||
<line x1="396" x2="396" y1="344" y2="360"/>
|
|
||||||
<line x1="396" x2="400" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="56" y2="72"/>
|
|
||||||
<line x1="260" x2="396" y1="56" y2="56"/>
|
|
||||||
<line x1="260" x2="256" y1="72" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="56" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="296" y2="312"/>
|
|
||||||
<line x1="260" x2="284" y1="296" y2="296"/>
|
|
||||||
<line x1="260" x2="256" y1="312" y2="312"/>
|
|
||||||
<line x1="284" x2="396" y1="296" y2="296"/>
|
|
||||||
<line x1="396" x2="396" y1="296" y2="312"/>
|
|
||||||
<line x1="396" x2="396" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="284" x2="284" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="284" x2="284" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="104" y2="104"/>
|
|
||||||
<line x1="408" x2="460" y1="104" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="72" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="104" y2="120"/>
|
|
||||||
<line x1="460" x2="508" y1="120" y2="120"/>
|
|
||||||
<line x1="508" x2="508" y1="120" y2="144"/>
|
|
||||||
<line x1="508" x2="596" y1="120" y2="120"/>
|
|
||||||
<line x1="596" x2="596" y1="104" y2="120"/>
|
|
||||||
<line x1="596" x2="600" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="344" y2="344"/>
|
|
||||||
<line x1="408" x2="460" y1="344" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="312" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="344" y2="360"/>
|
|
||||||
<line x1="460" x2="596" y1="360" y2="360"/>
|
|
||||||
<line x1="596" x2="596" y1="344" y2="360"/>
|
|
||||||
<line x1="596" x2="600" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="56" y2="72"/>
|
|
||||||
<line x1="460" x2="596" y1="56" y2="56"/>
|
|
||||||
<line x1="460" x2="456" y1="72" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="56" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="296" y2="312"/>
|
|
||||||
<line x1="460" x2="508" y1="296" y2="296"/>
|
|
||||||
<line x1="460" x2="456" y1="312" y2="312"/>
|
|
||||||
<line x1="508" x2="596" y1="296" y2="296"/>
|
|
||||||
<line x1="596" x2="596" y1="296" y2="312"/>
|
|
||||||
<line x1="596" x2="596" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="508" x2="508" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="508" x2="508" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="104" y2="104"/>
|
|
||||||
<line x1="608" x2="660" y1="104" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="72" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="104" y2="120"/>
|
|
||||||
<line x1="660" x2="684" y1="120" y2="120"/>
|
|
||||||
<line x1="684" x2="684" y1="120" y2="144"/>
|
|
||||||
<line x1="684" x2="796" y1="120" y2="120"/>
|
|
||||||
<line x1="796" x2="796" y1="56" y2="120"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="344" y2="344"/>
|
|
||||||
<line x1="608" x2="660" y1="344" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="312" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="344" y2="360"/>
|
|
||||||
<line x1="660" x2="796" y1="360" y2="360"/>
|
|
||||||
<line x1="796" x2="796" y1="296" y2="360"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="56" y2="72"/>
|
|
||||||
<line x1="660" x2="796" y1="56" y2="56"/>
|
|
||||||
<line x1="660" x2="656" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="296" y2="312"/>
|
|
||||||
<line x1="660" x2="684" y1="296" y2="296"/>
|
|
||||||
<line x1="660" x2="656" y1="312" y2="312"/>
|
|
||||||
<line x1="684" x2="796" y1="296" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="684" x2="684" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="684" x2="684" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="92">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="332">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="28">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="92">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="332">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="28">
|
|
||||||
Above
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="268">
|
|
||||||
Below
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="92">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="332">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="92">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="332">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 8.3 KiB |
@ -1,322 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="400" width="856" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="400" width="856" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="152"/>
|
|
||||||
<line x1="4" x2="852" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="852" y1="152" y2="152"/>
|
|
||||||
<line x1="852" x2="852" y1="8" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="248" y2="392"/>
|
|
||||||
<line x1="4" x2="852" y1="248" y2="248"/>
|
|
||||||
<line x1="4" x2="852" y1="392" y2="392"/>
|
|
||||||
<line x1="852" x2="852" y1="248" y2="392"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="56" y2="120"/>
|
|
||||||
<line x1="60" x2="196" y1="56" y2="56"/>
|
|
||||||
<line x1="60" x2="84" y1="120" y2="120"/>
|
|
||||||
<line x1="84" x2="84" y1="120" y2="144"/>
|
|
||||||
<line x1="84" x2="196" y1="120" y2="120"/>
|
|
||||||
<line x1="196" x2="196" y1="56" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="72" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="104" y2="120"/>
|
|
||||||
<line x1="196" x2="200" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="296" y2="360"/>
|
|
||||||
<line x1="60" x2="84" y1="296" y2="296"/>
|
|
||||||
<line x1="60" x2="196" y1="360" y2="360"/>
|
|
||||||
<line x1="84" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="196" x2="196" y1="296" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="312" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="344" y2="360"/>
|
|
||||||
<line x1="196" x2="200" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="84" x2="84" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="84" x2="84" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="208" x2="260" y1="104" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="72" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="104" y2="120"/>
|
|
||||||
<line x1="260" x2="284" y1="120" y2="120"/>
|
|
||||||
<line x1="284" x2="284" y1="120" y2="144"/>
|
|
||||||
<line x1="284" x2="396" y1="120" y2="120"/>
|
|
||||||
<line x1="396" x2="396" y1="104" y2="120"/>
|
|
||||||
<line x1="396" x2="400" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="344" y2="344"/>
|
|
||||||
<line x1="208" x2="260" y1="344" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="312" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="344" y2="360"/>
|
|
||||||
<line x1="260" x2="396" y1="360" y2="360"/>
|
|
||||||
<line x1="396" x2="396" y1="344" y2="360"/>
|
|
||||||
<line x1="396" x2="400" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="56" y2="72"/>
|
|
||||||
<line x1="260" x2="396" y1="56" y2="56"/>
|
|
||||||
<line x1="260" x2="256" y1="72" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="56" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="296" y2="312"/>
|
|
||||||
<line x1="260" x2="284" y1="296" y2="296"/>
|
|
||||||
<line x1="260" x2="256" y1="312" y2="312"/>
|
|
||||||
<line x1="284" x2="396" y1="296" y2="296"/>
|
|
||||||
<line x1="396" x2="396" y1="296" y2="312"/>
|
|
||||||
<line x1="396" x2="396" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="284" x2="284" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="284" x2="284" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="104" y2="104"/>
|
|
||||||
<line x1="408" x2="460" y1="104" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="72" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="104" y2="120"/>
|
|
||||||
<line x1="460" x2="508" y1="120" y2="120"/>
|
|
||||||
<line x1="508" x2="508" y1="120" y2="144"/>
|
|
||||||
<line x1="508" x2="596" y1="120" y2="120"/>
|
|
||||||
<line x1="596" x2="596" y1="104" y2="120"/>
|
|
||||||
<line x1="596" x2="600" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="344" y2="344"/>
|
|
||||||
<line x1="408" x2="460" y1="344" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="312" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="344" y2="360"/>
|
|
||||||
<line x1="460" x2="596" y1="360" y2="360"/>
|
|
||||||
<line x1="596" x2="596" y1="344" y2="360"/>
|
|
||||||
<line x1="596" x2="600" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="56" y2="72"/>
|
|
||||||
<line x1="460" x2="596" y1="56" y2="56"/>
|
|
||||||
<line x1="460" x2="456" y1="72" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="56" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="296" y2="312"/>
|
|
||||||
<line x1="460" x2="508" y1="296" y2="296"/>
|
|
||||||
<line x1="460" x2="456" y1="312" y2="312"/>
|
|
||||||
<line x1="508" x2="596" y1="296" y2="296"/>
|
|
||||||
<line x1="596" x2="596" y1="296" y2="312"/>
|
|
||||||
<line x1="596" x2="596" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="508" x2="508" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="508" x2="508" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="104" y2="104"/>
|
|
||||||
<line x1="608" x2="660" y1="104" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="72" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="104" y2="120"/>
|
|
||||||
<line x1="660" x2="684" y1="120" y2="120"/>
|
|
||||||
<line x1="684" x2="684" y1="120" y2="144"/>
|
|
||||||
<line x1="684" x2="796" y1="120" y2="120"/>
|
|
||||||
<line x1="796" x2="796" y1="56" y2="120"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="344" y2="344"/>
|
|
||||||
<line x1="608" x2="660" y1="344" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="312" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="344" y2="360"/>
|
|
||||||
<line x1="660" x2="796" y1="360" y2="360"/>
|
|
||||||
<line x1="796" x2="796" y1="296" y2="360"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="56" y2="72"/>
|
|
||||||
<line x1="660" x2="796" y1="56" y2="56"/>
|
|
||||||
<line x1="660" x2="656" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="296" y2="312"/>
|
|
||||||
<line x1="660" x2="684" y1="296" y2="296"/>
|
|
||||||
<line x1="660" x2="656" y1="312" y2="312"/>
|
|
||||||
<line x1="684" x2="796" y1="296" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="684" x2="684" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="684" x2="684" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="92">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="332">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="28">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="92">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="332">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="28">
|
|
||||||
Above
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="268">
|
|
||||||
Below
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="92">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="332">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="92">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="332">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 8.3 KiB |
@ -1,322 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="400" width="856" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="400" width="856" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="8" y2="152"/>
|
|
||||||
<line x1="4" x2="852" y1="8" y2="8"/>
|
|
||||||
<line x1="4" x2="852" y1="152" y2="152"/>
|
|
||||||
<line x1="852" x2="852" y1="8" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="248" y2="392"/>
|
|
||||||
<line x1="4" x2="852" y1="248" y2="248"/>
|
|
||||||
<line x1="4" x2="852" y1="392" y2="392"/>
|
|
||||||
<line x1="852" x2="852" y1="248" y2="392"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="56" y2="120"/>
|
|
||||||
<line x1="60" x2="196" y1="56" y2="56"/>
|
|
||||||
<line x1="60" x2="84" y1="120" y2="120"/>
|
|
||||||
<line x1="84" x2="84" y1="120" y2="144"/>
|
|
||||||
<line x1="84" x2="196" y1="120" y2="120"/>
|
|
||||||
<line x1="196" x2="196" y1="56" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="72" y2="72"/>
|
|
||||||
<line x1="196" x2="196" y1="104" y2="120"/>
|
|
||||||
<line x1="196" x2="200" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="60" x2="60" y1="296" y2="360"/>
|
|
||||||
<line x1="60" x2="84" y1="296" y2="296"/>
|
|
||||||
<line x1="60" x2="196" y1="360" y2="360"/>
|
|
||||||
<line x1="84" x2="196" y1="296" y2="296"/>
|
|
||||||
<line x1="196" x2="196" y1="296" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="196" x2="252" y1="312" y2="312"/>
|
|
||||||
<line x1="196" x2="196" y1="344" y2="360"/>
|
|
||||||
<line x1="196" x2="200" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="84" x2="84" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="84" x2="84" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="208" x2="260" y1="104" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="72" y2="104"/>
|
|
||||||
<line x1="260" x2="260" y1="104" y2="120"/>
|
|
||||||
<line x1="260" x2="284" y1="120" y2="120"/>
|
|
||||||
<line x1="284" x2="284" y1="120" y2="144"/>
|
|
||||||
<line x1="284" x2="396" y1="120" y2="120"/>
|
|
||||||
<line x1="396" x2="396" y1="104" y2="120"/>
|
|
||||||
<line x1="396" x2="400" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="208" x2="204" y1="344" y2="344"/>
|
|
||||||
<line x1="208" x2="260" y1="344" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="312" y2="344"/>
|
|
||||||
<line x1="260" x2="260" y1="344" y2="360"/>
|
|
||||||
<line x1="260" x2="396" y1="360" y2="360"/>
|
|
||||||
<line x1="396" x2="396" y1="344" y2="360"/>
|
|
||||||
<line x1="396" x2="400" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="56" y2="72"/>
|
|
||||||
<line x1="260" x2="396" y1="56" y2="56"/>
|
|
||||||
<line x1="260" x2="256" y1="72" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="56" y2="72"/>
|
|
||||||
<line x1="396" x2="396" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="296" y2="312"/>
|
|
||||||
<line x1="260" x2="284" y1="296" y2="296"/>
|
|
||||||
<line x1="260" x2="256" y1="312" y2="312"/>
|
|
||||||
<line x1="284" x2="396" y1="296" y2="296"/>
|
|
||||||
<line x1="396" x2="396" y1="296" y2="312"/>
|
|
||||||
<line x1="396" x2="396" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="396" x2="452" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="284" x2="284" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="284" x2="284" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="104" y2="104"/>
|
|
||||||
<line x1="408" x2="460" y1="104" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="72" y2="104"/>
|
|
||||||
<line x1="460" x2="460" y1="104" y2="120"/>
|
|
||||||
<line x1="460" x2="508" y1="120" y2="120"/>
|
|
||||||
<line x1="508" x2="508" y1="120" y2="144"/>
|
|
||||||
<line x1="508" x2="596" y1="120" y2="120"/>
|
|
||||||
<line x1="596" x2="596" y1="104" y2="120"/>
|
|
||||||
<line x1="596" x2="600" y1="104" y2="104"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="408" x2="404" y1="344" y2="344"/>
|
|
||||||
<line x1="408" x2="460" y1="344" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="312" y2="344"/>
|
|
||||||
<line x1="460" x2="460" y1="344" y2="360"/>
|
|
||||||
<line x1="460" x2="596" y1="360" y2="360"/>
|
|
||||||
<line x1="596" x2="596" y1="344" y2="360"/>
|
|
||||||
<line x1="596" x2="600" y1="344" y2="344"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="56" y2="72"/>
|
|
||||||
<line x1="460" x2="596" y1="56" y2="56"/>
|
|
||||||
<line x1="460" x2="456" y1="72" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="56" y2="72"/>
|
|
||||||
<line x1="596" x2="596" y1="72" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="296" y2="312"/>
|
|
||||||
<line x1="460" x2="508" y1="296" y2="296"/>
|
|
||||||
<line x1="460" x2="456" y1="312" y2="312"/>
|
|
||||||
<line x1="508" x2="596" y1="296" y2="296"/>
|
|
||||||
<line x1="596" x2="596" y1="296" y2="312"/>
|
|
||||||
<line x1="596" x2="596" y1="312" y2="344"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="596" x2="652" y1="312" y2="312"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="508" x2="508" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="508" x2="508" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="104" y2="104"/>
|
|
||||||
<line x1="608" x2="660" y1="104" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="72" y2="104"/>
|
|
||||||
<line x1="660" x2="660" y1="104" y2="120"/>
|
|
||||||
<line x1="660" x2="684" y1="120" y2="120"/>
|
|
||||||
<line x1="684" x2="684" y1="120" y2="144"/>
|
|
||||||
<line x1="684" x2="796" y1="120" y2="120"/>
|
|
||||||
<line x1="796" x2="796" y1="56" y2="120"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="608" x2="604" y1="344" y2="344"/>
|
|
||||||
<line x1="608" x2="660" y1="344" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="312" y2="344"/>
|
|
||||||
<line x1="660" x2="660" y1="344" y2="360"/>
|
|
||||||
<line x1="660" x2="796" y1="360" y2="360"/>
|
|
||||||
<line x1="796" x2="796" y1="296" y2="360"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="56" y2="72"/>
|
|
||||||
<line x1="660" x2="796" y1="56" y2="56"/>
|
|
||||||
<line x1="660" x2="656" y1="72" y2="72"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="660" x2="660" y1="296" y2="312"/>
|
|
||||||
<line x1="660" x2="684" y1="296" y2="296"/>
|
|
||||||
<line x1="660" x2="656" y1="312" y2="312"/>
|
|
||||||
<line x1="684" x2="796" y1="296" y2="296"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="684" x2="684" y1="160" y2="240"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="684" x2="684" y1="256" y2="284"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="92">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="161" y="332">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="28">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="353" y="268">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="92">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="332">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="28">
|
|
||||||
Above
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="457" y="268">
|
|
||||||
Below
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="489" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="92">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="561" y="332">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="92">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="689" y="332">
|
|
||||||
Neighbor
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="92">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="761" y="332">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 8.3 KiB |
@ -1,138 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="240" width="544" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="240" width="544" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="104" y2="232"/>
|
|
||||||
<line x1="4" x2="108" y1="104" y2="104"/>
|
|
||||||
<line x1="4" x2="540" y1="232" y2="232"/>
|
|
||||||
<line x1="108" x2="436" y1="104" y2="104"/>
|
|
||||||
<line x1="436" x2="540" y1="104" y2="104"/>
|
|
||||||
<line x1="540" x2="540" y1="104" y2="232"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="36" x2="36" y1="136" y2="200"/>
|
|
||||||
<line x1="36" x2="180" y1="136" y2="136"/>
|
|
||||||
<line x1="36" x2="180" y1="200" y2="200"/>
|
|
||||||
<line x1="180" x2="180" y1="136" y2="152"/>
|
|
||||||
<line x1="180" x2="180" y1="152" y2="184"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="180" x2="356" y1="152" y2="152"/>
|
|
||||||
<line x1="180" x2="180" y1="184" y2="200"/>
|
|
||||||
<line x1="180" x2="184" y1="184" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="108" x2="108" y1="40" y2="92"/>
|
|
||||||
<line x1="108" x2="212" y1="40" y2="40"/>
|
|
||||||
<line x1="212" x2="212" y1="8" y2="40"/>
|
|
||||||
<line x1="212" x2="332" y1="8" y2="8"/>
|
|
||||||
<line x1="212" x2="212" y1="40" y2="72"/>
|
|
||||||
<line x1="212" x2="332" y1="72" y2="72"/>
|
|
||||||
<line x1="332" x2="332" y1="8" y2="40"/>
|
|
||||||
<line x1="332" x2="332" y1="40" y2="72"/>
|
|
||||||
<line x1="332" x2="436" y1="40" y2="40"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="436" x2="436" y1="40" y2="92"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="192" x2="188" y1="184" y2="184"/>
|
|
||||||
<line x1="192" x2="364" y1="184" y2="184"/>
|
|
||||||
<line x1="364" x2="364" y1="152" y2="184"/>
|
|
||||||
<line x1="364" x2="364" y1="184" y2="200"/>
|
|
||||||
<line x1="364" x2="508" y1="200" y2="200"/>
|
|
||||||
<line x1="508" x2="508" y1="136" y2="200"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="364" x2="364" y1="136" y2="152"/>
|
|
||||||
<line x1="364" x2="508" y1="136" y2="136"/>
|
|
||||||
<line x1="364" x2="360" y1="152" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="172">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="145" y="172">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="249" y="44">
|
|
||||||
Leader
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="140">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="172">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="172">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 3.8 KiB |
@ -1,138 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="240" width="544" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="240" width="544" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="104" y2="232"/>
|
|
||||||
<line x1="4" x2="108" y1="104" y2="104"/>
|
|
||||||
<line x1="4" x2="540" y1="232" y2="232"/>
|
|
||||||
<line x1="108" x2="436" y1="104" y2="104"/>
|
|
||||||
<line x1="436" x2="540" y1="104" y2="104"/>
|
|
||||||
<line x1="540" x2="540" y1="104" y2="232"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="36" x2="36" y1="136" y2="200"/>
|
|
||||||
<line x1="36" x2="180" y1="136" y2="136"/>
|
|
||||||
<line x1="36" x2="180" y1="200" y2="200"/>
|
|
||||||
<line x1="180" x2="180" y1="136" y2="152"/>
|
|
||||||
<line x1="180" x2="180" y1="152" y2="184"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="180" x2="356" y1="152" y2="152"/>
|
|
||||||
<line x1="180" x2="180" y1="184" y2="200"/>
|
|
||||||
<line x1="180" x2="184" y1="184" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="108" x2="108" y1="40" y2="92"/>
|
|
||||||
<line x1="108" x2="212" y1="40" y2="40"/>
|
|
||||||
<line x1="212" x2="212" y1="8" y2="40"/>
|
|
||||||
<line x1="212" x2="332" y1="8" y2="8"/>
|
|
||||||
<line x1="212" x2="212" y1="40" y2="72"/>
|
|
||||||
<line x1="212" x2="332" y1="72" y2="72"/>
|
|
||||||
<line x1="332" x2="332" y1="8" y2="40"/>
|
|
||||||
<line x1="332" x2="332" y1="40" y2="72"/>
|
|
||||||
<line x1="332" x2="436" y1="40" y2="40"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="436" x2="436" y1="40" y2="92"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="192" x2="188" y1="184" y2="184"/>
|
|
||||||
<line x1="192" x2="364" y1="184" y2="184"/>
|
|
||||||
<line x1="364" x2="364" y1="152" y2="184"/>
|
|
||||||
<line x1="364" x2="364" y1="184" y2="200"/>
|
|
||||||
<line x1="364" x2="508" y1="200" y2="200"/>
|
|
||||||
<line x1="508" x2="508" y1="136" y2="200"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="364" x2="364" y1="136" y2="152"/>
|
|
||||||
<line x1="364" x2="508" y1="136" y2="136"/>
|
|
||||||
<line x1="364" x2="360" y1="152" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="172">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="145" y="172">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="249" y="44">
|
|
||||||
Leader
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="140">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="172">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="172">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 3.8 KiB |
@ -1,156 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="240" width="544" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon class="fg_fill" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon class="bg_fill" points="2,2 2,12 18,7 2,2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="fg_fill" cx="10" cy="10" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect class="fg_fill" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="bg_fill" cx="10" cy="10" r="4"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle class="bg_fill" cx="20" cy="20" r="6"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
rect.backdrop {
|
|
||||||
fill: white;
|
|
||||||
}
|
|
||||||
text{
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
circle {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
line {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
path {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fg_fill {
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.bg_fill {
|
|
||||||
fill: white;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect class="backdrop" height="240" width="544" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="104" y2="232"/>
|
|
||||||
<line x1="4" x2="108" y1="104" y2="104"/>
|
|
||||||
<line x1="4" x2="540" y1="232" y2="232"/>
|
|
||||||
<line x1="108" x2="436" y1="104" y2="104"/>
|
|
||||||
<line x1="436" x2="540" y1="104" y2="104"/>
|
|
||||||
<line x1="540" x2="540" y1="104" y2="232"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="36" x2="36" y1="136" y2="200"/>
|
|
||||||
<line x1="36" x2="180" y1="136" y2="136"/>
|
|
||||||
<line x1="36" x2="180" y1="200" y2="200"/>
|
|
||||||
<line x1="180" x2="180" y1="136" y2="152"/>
|
|
||||||
<line x1="180" x2="180" y1="152" y2="184"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="180" x2="356" y1="152" y2="152"/>
|
|
||||||
<line x1="180" x2="180" y1="184" y2="200"/>
|
|
||||||
<line x1="180" x2="184" y1="184" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="108" x2="108" y1="40" y2="92"/>
|
|
||||||
<line x1="108" x2="212" y1="40" y2="40"/>
|
|
||||||
<line x1="212" x2="212" y1="8" y2="40"/>
|
|
||||||
<line x1="212" x2="332" y1="8" y2="8"/>
|
|
||||||
<line x1="212" x2="212" y1="40" y2="72"/>
|
|
||||||
<line x1="212" x2="332" y1="72" y2="72"/>
|
|
||||||
<line x1="332" x2="332" y1="8" y2="40"/>
|
|
||||||
<line x1="332" x2="332" y1="40" y2="72"/>
|
|
||||||
<line x1="332" x2="436" y1="40" y2="40"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="436" x2="436" y1="40" y2="92"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="192" x2="188" y1="184" y2="184"/>
|
|
||||||
<line x1="192" x2="364" y1="184" y2="184"/>
|
|
||||||
<line x1="364" x2="364" y1="152" y2="184"/>
|
|
||||||
<line x1="364" x2="364" y1="184" y2="200"/>
|
|
||||||
<line x1="364" x2="508" y1="200" y2="200"/>
|
|
||||||
<line x1="508" x2="508" y1="136" y2="200"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="364" x2="364" y1="136" y2="152"/>
|
|
||||||
<line x1="364" x2="508" y1="136" y2="136"/>
|
|
||||||
<line x1="364" x2="360" y1="152" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="172">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="145" y="172">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="249" y="44">
|
|
||||||
Leader
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="140">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="172">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="172">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 3.7 KiB |
@ -1,138 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="240" width="544" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="240" width="544" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="104" y2="232"/>
|
|
||||||
<line x1="4" x2="108" y1="104" y2="104"/>
|
|
||||||
<line x1="4" x2="540" y1="232" y2="232"/>
|
|
||||||
<line x1="108" x2="436" y1="104" y2="104"/>
|
|
||||||
<line x1="436" x2="540" y1="104" y2="104"/>
|
|
||||||
<line x1="540" x2="540" y1="104" y2="232"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="36" x2="36" y1="136" y2="200"/>
|
|
||||||
<line x1="36" x2="180" y1="136" y2="136"/>
|
|
||||||
<line x1="36" x2="180" y1="200" y2="200"/>
|
|
||||||
<line x1="180" x2="180" y1="136" y2="152"/>
|
|
||||||
<line x1="180" x2="180" y1="152" y2="184"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="180" x2="356" y1="152" y2="152"/>
|
|
||||||
<line x1="180" x2="180" y1="184" y2="200"/>
|
|
||||||
<line x1="180" x2="184" y1="184" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="108" x2="108" y1="40" y2="92"/>
|
|
||||||
<line x1="108" x2="212" y1="40" y2="40"/>
|
|
||||||
<line x1="212" x2="212" y1="8" y2="40"/>
|
|
||||||
<line x1="212" x2="332" y1="8" y2="8"/>
|
|
||||||
<line x1="212" x2="212" y1="40" y2="72"/>
|
|
||||||
<line x1="212" x2="332" y1="72" y2="72"/>
|
|
||||||
<line x1="332" x2="332" y1="8" y2="40"/>
|
|
||||||
<line x1="332" x2="332" y1="40" y2="72"/>
|
|
||||||
<line x1="332" x2="436" y1="40" y2="40"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="436" x2="436" y1="40" y2="92"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="192" x2="188" y1="184" y2="184"/>
|
|
||||||
<line x1="192" x2="364" y1="184" y2="184"/>
|
|
||||||
<line x1="364" x2="364" y1="152" y2="184"/>
|
|
||||||
<line x1="364" x2="364" y1="184" y2="200"/>
|
|
||||||
<line x1="364" x2="508" y1="200" y2="200"/>
|
|
||||||
<line x1="508" x2="508" y1="136" y2="200"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="364" x2="364" y1="136" y2="152"/>
|
|
||||||
<line x1="364" x2="508" y1="136" y2="136"/>
|
|
||||||
<line x1="364" x2="360" y1="152" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="172">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="145" y="172">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="249" y="44">
|
|
||||||
Leader
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="140">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="172">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="172">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 3.8 KiB |
@ -1,138 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="240" width="544" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="240" width="544" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="104" y2="232"/>
|
|
||||||
<line x1="4" x2="108" y1="104" y2="104"/>
|
|
||||||
<line x1="4" x2="540" y1="232" y2="232"/>
|
|
||||||
<line x1="108" x2="436" y1="104" y2="104"/>
|
|
||||||
<line x1="436" x2="540" y1="104" y2="104"/>
|
|
||||||
<line x1="540" x2="540" y1="104" y2="232"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="36" x2="36" y1="136" y2="200"/>
|
|
||||||
<line x1="36" x2="180" y1="136" y2="136"/>
|
|
||||||
<line x1="36" x2="180" y1="200" y2="200"/>
|
|
||||||
<line x1="180" x2="180" y1="136" y2="152"/>
|
|
||||||
<line x1="180" x2="180" y1="152" y2="184"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="180" x2="356" y1="152" y2="152"/>
|
|
||||||
<line x1="180" x2="180" y1="184" y2="200"/>
|
|
||||||
<line x1="180" x2="184" y1="184" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="108" x2="108" y1="40" y2="92"/>
|
|
||||||
<line x1="108" x2="212" y1="40" y2="40"/>
|
|
||||||
<line x1="212" x2="212" y1="8" y2="40"/>
|
|
||||||
<line x1="212" x2="332" y1="8" y2="8"/>
|
|
||||||
<line x1="212" x2="212" y1="40" y2="72"/>
|
|
||||||
<line x1="212" x2="332" y1="72" y2="72"/>
|
|
||||||
<line x1="332" x2="332" y1="8" y2="40"/>
|
|
||||||
<line x1="332" x2="332" y1="40" y2="72"/>
|
|
||||||
<line x1="332" x2="436" y1="40" y2="40"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="436" x2="436" y1="40" y2="92"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="192" x2="188" y1="184" y2="184"/>
|
|
||||||
<line x1="192" x2="364" y1="184" y2="184"/>
|
|
||||||
<line x1="364" x2="364" y1="152" y2="184"/>
|
|
||||||
<line x1="364" x2="364" y1="184" y2="200"/>
|
|
||||||
<line x1="364" x2="508" y1="200" y2="200"/>
|
|
||||||
<line x1="508" x2="508" y1="136" y2="200"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="364" x2="364" y1="136" y2="152"/>
|
|
||||||
<line x1="364" x2="508" y1="136" y2="136"/>
|
|
||||||
<line x1="364" x2="360" y1="152" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="172">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="145" y="172">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="249" y="44">
|
|
||||||
Leader
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="140">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="172">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="172">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 3.8 KiB |
@ -1,138 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="240" width="544" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="240" width="544" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="104" y2="232"/>
|
|
||||||
<line x1="4" x2="108" y1="104" y2="104"/>
|
|
||||||
<line x1="4" x2="540" y1="232" y2="232"/>
|
|
||||||
<line x1="108" x2="436" y1="104" y2="104"/>
|
|
||||||
<line x1="436" x2="540" y1="104" y2="104"/>
|
|
||||||
<line x1="540" x2="540" y1="104" y2="232"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="36" x2="36" y1="136" y2="200"/>
|
|
||||||
<line x1="36" x2="180" y1="136" y2="136"/>
|
|
||||||
<line x1="36" x2="180" y1="200" y2="200"/>
|
|
||||||
<line x1="180" x2="180" y1="136" y2="152"/>
|
|
||||||
<line x1="180" x2="180" y1="152" y2="184"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="180" x2="356" y1="152" y2="152"/>
|
|
||||||
<line x1="180" x2="180" y1="184" y2="200"/>
|
|
||||||
<line x1="180" x2="184" y1="184" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="108" x2="108" y1="40" y2="92"/>
|
|
||||||
<line x1="108" x2="212" y1="40" y2="40"/>
|
|
||||||
<line x1="212" x2="212" y1="8" y2="40"/>
|
|
||||||
<line x1="212" x2="332" y1="8" y2="8"/>
|
|
||||||
<line x1="212" x2="212" y1="40" y2="72"/>
|
|
||||||
<line x1="212" x2="332" y1="72" y2="72"/>
|
|
||||||
<line x1="332" x2="332" y1="8" y2="40"/>
|
|
||||||
<line x1="332" x2="332" y1="40" y2="72"/>
|
|
||||||
<line x1="332" x2="436" y1="40" y2="40"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="436" x2="436" y1="40" y2="92"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="192" x2="188" y1="184" y2="184"/>
|
|
||||||
<line x1="192" x2="364" y1="184" y2="184"/>
|
|
||||||
<line x1="364" x2="364" y1="152" y2="184"/>
|
|
||||||
<line x1="364" x2="364" y1="184" y2="200"/>
|
|
||||||
<line x1="364" x2="508" y1="200" y2="200"/>
|
|
||||||
<line x1="508" x2="508" y1="136" y2="200"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="364" x2="364" y1="136" y2="152"/>
|
|
||||||
<line x1="364" x2="508" y1="136" y2="136"/>
|
|
||||||
<line x1="364" x2="360" y1="152" y2="152"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="172">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="145" y="172">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="249" y="44">
|
|
||||||
Leader
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="140">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="172">
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="172">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 3.8 KiB |
@ -1,192 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="288" width="736" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="288" width="736" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="4" x2="4" y1="216" y2="280"/>
|
|
||||||
<line x1="4" x2="156" y1="216" y2="216"/>
|
|
||||||
<line x1="4" x2="172" y1="280" y2="280"/>
|
|
||||||
<line x1="156" x2="172" y1="216" y2="216"/>
|
|
||||||
<line x1="172" x2="172" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="104" y2="168"/>
|
|
||||||
<line x1="124" x2="204" y1="104" y2="104"/>
|
|
||||||
<line x1="124" x2="156" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="156" x2="156" y1="168" y2="204"/>
|
|
||||||
<line x1="156" x2="204" y1="168" y2="168"/>
|
|
||||||
<line x1="204" x2="292" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="168" y2="204"/>
|
|
||||||
<line x1="204" x2="292" y1="168" y2="168"/>
|
|
||||||
<line x1="292" x2="292" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="216" y2="280"/>
|
|
||||||
<line x1="188" x2="204" y1="216" y2="216"/>
|
|
||||||
<line x1="188" x2="356" y1="280" y2="280"/>
|
|
||||||
<line x1="204" x2="356" y1="216" y2="216"/>
|
|
||||||
<line x1="356" x2="356" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="204" x2="204" y1="40" y2="92"/>
|
|
||||||
<line x1="204" x2="276" y1="40" y2="40"/>
|
|
||||||
<line x1="276" x2="276" y1="8" y2="40"/>
|
|
||||||
<line x1="276" x2="444" y1="8" y2="8"/>
|
|
||||||
<line x1="276" x2="276" y1="40" y2="72"/>
|
|
||||||
<line x1="276" x2="444" y1="72" y2="72"/>
|
|
||||||
<line x1="444" x2="444" y1="8" y2="40"/>
|
|
||||||
<line x1="444" x2="444" y1="40" y2="72"/>
|
|
||||||
<line x1="444" x2="532" y1="40" y2="40"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="40" y2="92"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="380" x2="380" y1="216" y2="280"/>
|
|
||||||
<line x1="380" x2="532" y1="216" y2="216"/>
|
|
||||||
<line x1="380" x2="548" y1="280" y2="280"/>
|
|
||||||
<line x1="532" x2="548" y1="216" y2="216"/>
|
|
||||||
<line x1="548" x2="548" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="444" x2="444" y1="104" y2="168"/>
|
|
||||||
<line x1="444" x2="532" y1="104" y2="104"/>
|
|
||||||
<line x1="444" x2="532" y1="168" y2="168"/>
|
|
||||||
<line x1="532" x2="612" y1="104" y2="104"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="532" x2="532" y1="168" y2="204"/>
|
|
||||||
<line x1="532" x2="580" y1="168" y2="168"/>
|
|
||||||
<line marker-end="url(#triangle)" x1="580" x2="580" y1="168" y2="204"/>
|
|
||||||
<line x1="580" x2="612" y1="168" y2="168"/>
|
|
||||||
<line x1="612" x2="612" y1="104" y2="168"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="564" x2="564" y1="216" y2="280"/>
|
|
||||||
<line x1="564" x2="580" y1="216" y2="216"/>
|
|
||||||
<line x1="564" x2="732" y1="280" y2="280"/>
|
|
||||||
<line x1="580" x2="732" y1="216" y2="216"/>
|
|
||||||
<line x1="732" x2="732" y1="216" y2="280"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="252">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="153" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="217" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="44">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="321" y="252">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="44">
|
|
||||||
0
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="473" y="140">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="252">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="140">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="252">
|
|
||||||
Neighborhood
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="697" y="252">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.9 KiB |
@ -1,330 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="208" width="768" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="208" width="768" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="76" x2="76" y1="32" y2="172"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="24" y2="56"/>
|
|
||||||
<line x1="124" x2="164" y1="24" y2="24"/>
|
|
||||||
<line x1="124" x2="124" y1="56" y2="88"/>
|
|
||||||
<line x1="124" x2="164" y1="56" y2="56"/>
|
|
||||||
<line x1="124" x2="124" y1="88" y2="120"/>
|
|
||||||
<line x1="124" x2="164" y1="88" y2="88"/>
|
|
||||||
<line x1="124" x2="124" y1="120" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="120" y2="120"/>
|
|
||||||
<line x1="124" x2="124" y1="152" y2="184"/>
|
|
||||||
<line x1="124" x2="164" y1="152" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="184" y2="184"/>
|
|
||||||
<line x1="164" x2="164" y1="24" y2="56"/>
|
|
||||||
<line x1="164" x2="164" y1="56" y2="88"/>
|
|
||||||
<line x1="164" x2="164" y1="88" y2="120"/>
|
|
||||||
<line x1="164" x2="164" y1="120" y2="152"/>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="200" x2="208" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="224" x2="236" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="232" x2="240" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="236" x2="236" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="264" x2="272" y1="64" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="304" x2="316" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="316" x2="316" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="360" y1="136" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="368" x2="376" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="384" y1="48" y2="64"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="388" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="388" x2="388" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="416" x2="424" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="420" x2="420" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="436" x2="420" y1="104" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="448" x2="460" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="512" x2="640" y1="24" y2="24"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="108">
|
|
||||||
time
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="44">
|
|
||||||
L1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="76">
|
|
||||||
L2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="108">
|
|
||||||
L3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="140">
|
|
||||||
L4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="172">
|
|
||||||
L5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="140">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="209" y="108">
|
|
||||||
E3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="225" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="249" y="76">
|
|
||||||
E2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="108">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="172">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="313" y="44">
|
|
||||||
E1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="337" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="108">
|
|
||||||
E3'
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="449" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="12">
|
|
||||||
validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="60">
|
|
||||||
vote(E1)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="92">
|
|
||||||
vote(E2)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="124">
|
|
||||||
slash(E3)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="156">
|
|
||||||
vote(E4)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="188">
|
|
||||||
hang
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="553" y="188">
|
|
||||||
on
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="188">
|
|
||||||
to
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="12">
|
|
||||||
action
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="601" y="188">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="625" y="188">
|
|
||||||
and
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="657" y="188">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="681" y="188">
|
|
||||||
for
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="713" y="188">
|
|
||||||
more...
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 5.5 KiB |
@ -1,330 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="208" width="768" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="208" width="768" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="76" x2="76" y1="32" y2="172"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="24" y2="56"/>
|
|
||||||
<line x1="124" x2="164" y1="24" y2="24"/>
|
|
||||||
<line x1="124" x2="124" y1="56" y2="88"/>
|
|
||||||
<line x1="124" x2="164" y1="56" y2="56"/>
|
|
||||||
<line x1="124" x2="124" y1="88" y2="120"/>
|
|
||||||
<line x1="124" x2="164" y1="88" y2="88"/>
|
|
||||||
<line x1="124" x2="124" y1="120" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="120" y2="120"/>
|
|
||||||
<line x1="124" x2="124" y1="152" y2="184"/>
|
|
||||||
<line x1="124" x2="164" y1="152" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="184" y2="184"/>
|
|
||||||
<line x1="164" x2="164" y1="24" y2="56"/>
|
|
||||||
<line x1="164" x2="164" y1="56" y2="88"/>
|
|
||||||
<line x1="164" x2="164" y1="88" y2="120"/>
|
|
||||||
<line x1="164" x2="164" y1="120" y2="152"/>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="200" x2="208" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="224" x2="236" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="232" x2="240" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="236" x2="236" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="264" x2="272" y1="64" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="304" x2="316" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="316" x2="316" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="360" y1="136" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="368" x2="376" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="384" y1="48" y2="64"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="388" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="388" x2="388" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="416" x2="424" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="420" x2="420" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="436" x2="420" y1="104" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="448" x2="460" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="512" x2="640" y1="24" y2="24"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="108">
|
|
||||||
time
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="44">
|
|
||||||
L1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="76">
|
|
||||||
L2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="108">
|
|
||||||
L3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="140">
|
|
||||||
L4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="172">
|
|
||||||
L5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="140">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="209" y="108">
|
|
||||||
E3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="225" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="249" y="76">
|
|
||||||
E2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="108">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="172">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="313" y="44">
|
|
||||||
E1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="337" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="108">
|
|
||||||
E3'
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="449" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="12">
|
|
||||||
validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="60">
|
|
||||||
vote(E1)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="92">
|
|
||||||
vote(E2)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="124">
|
|
||||||
slash(E3)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="156">
|
|
||||||
vote(E4)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="188">
|
|
||||||
hang
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="553" y="188">
|
|
||||||
on
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="188">
|
|
||||||
to
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="12">
|
|
||||||
action
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="601" y="188">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="625" y="188">
|
|
||||||
and
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="657" y="188">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="681" y="188">
|
|
||||||
for
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="713" y="188">
|
|
||||||
more...
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 5.5 KiB |
@ -1,330 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="208" width="768" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="208" width="768" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="76" x2="76" y1="32" y2="172"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="24" y2="56"/>
|
|
||||||
<line x1="124" x2="164" y1="24" y2="24"/>
|
|
||||||
<line x1="124" x2="124" y1="56" y2="88"/>
|
|
||||||
<line x1="124" x2="164" y1="56" y2="56"/>
|
|
||||||
<line x1="124" x2="124" y1="88" y2="120"/>
|
|
||||||
<line x1="124" x2="164" y1="88" y2="88"/>
|
|
||||||
<line x1="124" x2="124" y1="120" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="120" y2="120"/>
|
|
||||||
<line x1="124" x2="124" y1="152" y2="184"/>
|
|
||||||
<line x1="124" x2="164" y1="152" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="184" y2="184"/>
|
|
||||||
<line x1="164" x2="164" y1="24" y2="56"/>
|
|
||||||
<line x1="164" x2="164" y1="56" y2="88"/>
|
|
||||||
<line x1="164" x2="164" y1="88" y2="120"/>
|
|
||||||
<line x1="164" x2="164" y1="120" y2="152"/>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="200" x2="208" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="224" x2="236" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="232" x2="240" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="236" x2="236" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="264" x2="272" y1="64" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="304" x2="316" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="316" x2="316" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="360" y1="136" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="368" x2="376" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="384" y1="48" y2="64"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="388" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="388" x2="388" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="416" x2="424" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="420" x2="420" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="436" x2="420" y1="104" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="448" x2="460" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="512" x2="640" y1="24" y2="24"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="108">
|
|
||||||
time
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="44">
|
|
||||||
L1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="76">
|
|
||||||
L2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="108">
|
|
||||||
L3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="140">
|
|
||||||
L4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="172">
|
|
||||||
L5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="140">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="209" y="108">
|
|
||||||
E3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="225" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="249" y="76">
|
|
||||||
E2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="108">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="172">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="313" y="44">
|
|
||||||
E1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="337" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="108">
|
|
||||||
E3'
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="449" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="12">
|
|
||||||
validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="60">
|
|
||||||
vote(E1)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="92">
|
|
||||||
vote(E2)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="124">
|
|
||||||
slash(E3)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="156">
|
|
||||||
vote(E4)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="188">
|
|
||||||
hang
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="553" y="188">
|
|
||||||
on
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="188">
|
|
||||||
to
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="12">
|
|
||||||
action
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="601" y="188">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="625" y="188">
|
|
||||||
and
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="657" y="188">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="681" y="188">
|
|
||||||
for
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="713" y="188">
|
|
||||||
more...
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 5.5 KiB |
@ -1,348 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="208" width="768" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon class="fg_fill" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon class="bg_fill" points="2,2 2,12 18,7 2,2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="fg_fill" cx="10" cy="10" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect class="fg_fill" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="bg_fill" cx="10" cy="10" r="4"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle class="bg_fill" cx="20" cy="20" r="6"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
rect.backdrop {
|
|
||||||
fill: white;
|
|
||||||
}
|
|
||||||
text{
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
circle {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
line {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
path {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fg_fill {
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.bg_fill {
|
|
||||||
fill: white;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect class="backdrop" height="208" width="768" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="76" x2="76" y1="32" y2="172"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="24" y2="56"/>
|
|
||||||
<line x1="124" x2="164" y1="24" y2="24"/>
|
|
||||||
<line x1="124" x2="124" y1="56" y2="88"/>
|
|
||||||
<line x1="124" x2="164" y1="56" y2="56"/>
|
|
||||||
<line x1="124" x2="124" y1="88" y2="120"/>
|
|
||||||
<line x1="124" x2="164" y1="88" y2="88"/>
|
|
||||||
<line x1="124" x2="124" y1="120" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="120" y2="120"/>
|
|
||||||
<line x1="124" x2="124" y1="152" y2="184"/>
|
|
||||||
<line x1="124" x2="164" y1="152" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="184" y2="184"/>
|
|
||||||
<line x1="164" x2="164" y1="24" y2="56"/>
|
|
||||||
<line x1="164" x2="164" y1="56" y2="88"/>
|
|
||||||
<line x1="164" x2="164" y1="88" y2="120"/>
|
|
||||||
<line x1="164" x2="164" y1="120" y2="152"/>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="200" x2="208" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="224" x2="236" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="232" x2="240" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="236" x2="236" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="264" x2="272" y1="64" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="304" x2="316" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="316" x2="316" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="360" y1="136" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="368" x2="376" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="384" y1="48" y2="64"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="388" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="388" x2="388" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="416" x2="424" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="420" x2="420" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="436" x2="420" y1="104" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="448" x2="460" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="512" x2="640" y1="24" y2="24"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="108">
|
|
||||||
time
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="44">
|
|
||||||
L1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="76">
|
|
||||||
L2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="108">
|
|
||||||
L3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="140">
|
|
||||||
L4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="172">
|
|
||||||
L5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="140">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="209" y="108">
|
|
||||||
E3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="225" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="249" y="76">
|
|
||||||
E2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="108">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="172">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="313" y="44">
|
|
||||||
E1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="337" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="108">
|
|
||||||
E3'
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="449" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="12">
|
|
||||||
validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="60">
|
|
||||||
vote(E1)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="92">
|
|
||||||
vote(E2)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="124">
|
|
||||||
slash(E3)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="156">
|
|
||||||
vote(E4)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="188">
|
|
||||||
hang
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="553" y="188">
|
|
||||||
on
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="188">
|
|
||||||
to
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="12">
|
|
||||||
action
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="601" y="188">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="625" y="188">
|
|
||||||
and
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="657" y="188">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="681" y="188">
|
|
||||||
for
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="713" y="188">
|
|
||||||
more...
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 5.4 KiB |
@ -1,330 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="208" width="768" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="208" width="768" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="76" x2="76" y1="32" y2="172"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="24" y2="56"/>
|
|
||||||
<line x1="124" x2="164" y1="24" y2="24"/>
|
|
||||||
<line x1="124" x2="124" y1="56" y2="88"/>
|
|
||||||
<line x1="124" x2="164" y1="56" y2="56"/>
|
|
||||||
<line x1="124" x2="124" y1="88" y2="120"/>
|
|
||||||
<line x1="124" x2="164" y1="88" y2="88"/>
|
|
||||||
<line x1="124" x2="124" y1="120" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="120" y2="120"/>
|
|
||||||
<line x1="124" x2="124" y1="152" y2="184"/>
|
|
||||||
<line x1="124" x2="164" y1="152" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="184" y2="184"/>
|
|
||||||
<line x1="164" x2="164" y1="24" y2="56"/>
|
|
||||||
<line x1="164" x2="164" y1="56" y2="88"/>
|
|
||||||
<line x1="164" x2="164" y1="88" y2="120"/>
|
|
||||||
<line x1="164" x2="164" y1="120" y2="152"/>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="200" x2="208" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="224" x2="236" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="232" x2="240" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="236" x2="236" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="264" x2="272" y1="64" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="304" x2="316" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="316" x2="316" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="360" y1="136" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="368" x2="376" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="384" y1="48" y2="64"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="388" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="388" x2="388" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="416" x2="424" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="420" x2="420" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="436" x2="420" y1="104" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="448" x2="460" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="512" x2="640" y1="24" y2="24"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="108">
|
|
||||||
time
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="44">
|
|
||||||
L1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="76">
|
|
||||||
L2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="108">
|
|
||||||
L3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="140">
|
|
||||||
L4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="172">
|
|
||||||
L5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="140">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="209" y="108">
|
|
||||||
E3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="225" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="249" y="76">
|
|
||||||
E2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="108">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="172">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="313" y="44">
|
|
||||||
E1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="337" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="108">
|
|
||||||
E3'
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="449" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="12">
|
|
||||||
validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="60">
|
|
||||||
vote(E1)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="92">
|
|
||||||
vote(E2)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="124">
|
|
||||||
slash(E3)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="156">
|
|
||||||
vote(E4)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="188">
|
|
||||||
hang
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="553" y="188">
|
|
||||||
on
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="188">
|
|
||||||
to
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="12">
|
|
||||||
action
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="601" y="188">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="625" y="188">
|
|
||||||
and
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="657" y="188">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="681" y="188">
|
|
||||||
for
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="713" y="188">
|
|
||||||
more...
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 5.5 KiB |
@ -1,330 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="208" width="768" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="208" width="768" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="76" x2="76" y1="32" y2="172"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="24" y2="56"/>
|
|
||||||
<line x1="124" x2="164" y1="24" y2="24"/>
|
|
||||||
<line x1="124" x2="124" y1="56" y2="88"/>
|
|
||||||
<line x1="124" x2="164" y1="56" y2="56"/>
|
|
||||||
<line x1="124" x2="124" y1="88" y2="120"/>
|
|
||||||
<line x1="124" x2="164" y1="88" y2="88"/>
|
|
||||||
<line x1="124" x2="124" y1="120" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="120" y2="120"/>
|
|
||||||
<line x1="124" x2="124" y1="152" y2="184"/>
|
|
||||||
<line x1="124" x2="164" y1="152" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="184" y2="184"/>
|
|
||||||
<line x1="164" x2="164" y1="24" y2="56"/>
|
|
||||||
<line x1="164" x2="164" y1="56" y2="88"/>
|
|
||||||
<line x1="164" x2="164" y1="88" y2="120"/>
|
|
||||||
<line x1="164" x2="164" y1="120" y2="152"/>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="200" x2="208" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="224" x2="236" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="232" x2="240" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="236" x2="236" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="264" x2="272" y1="64" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="304" x2="316" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="316" x2="316" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="360" y1="136" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="368" x2="376" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="384" y1="48" y2="64"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="388" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="388" x2="388" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="416" x2="424" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="420" x2="420" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="436" x2="420" y1="104" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="448" x2="460" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="512" x2="640" y1="24" y2="24"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="108">
|
|
||||||
time
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="44">
|
|
||||||
L1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="76">
|
|
||||||
L2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="108">
|
|
||||||
L3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="140">
|
|
||||||
L4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="172">
|
|
||||||
L5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="140">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="209" y="108">
|
|
||||||
E3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="225" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="249" y="76">
|
|
||||||
E2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="108">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="172">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="313" y="44">
|
|
||||||
E1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="337" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="108">
|
|
||||||
E3'
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="449" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="12">
|
|
||||||
validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="60">
|
|
||||||
vote(E1)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="92">
|
|
||||||
vote(E2)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="124">
|
|
||||||
slash(E3)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="156">
|
|
||||||
vote(E4)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="188">
|
|
||||||
hang
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="553" y="188">
|
|
||||||
on
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="188">
|
|
||||||
to
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="12">
|
|
||||||
action
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="601" y="188">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="625" y="188">
|
|
||||||
and
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="657" y="188">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="681" y="188">
|
|
||||||
for
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="713" y="188">
|
|
||||||
more...
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 5.5 KiB |
@ -1,330 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="208" width="768" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="208" width="768" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line marker-end="url(#triangle)" x1="76" x2="76" y1="32" y2="172"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="124" x2="124" y1="24" y2="56"/>
|
|
||||||
<line x1="124" x2="164" y1="24" y2="24"/>
|
|
||||||
<line x1="124" x2="124" y1="56" y2="88"/>
|
|
||||||
<line x1="124" x2="164" y1="56" y2="56"/>
|
|
||||||
<line x1="124" x2="124" y1="88" y2="120"/>
|
|
||||||
<line x1="124" x2="164" y1="88" y2="88"/>
|
|
||||||
<line x1="124" x2="124" y1="120" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="120" y2="120"/>
|
|
||||||
<line x1="124" x2="124" y1="152" y2="184"/>
|
|
||||||
<line x1="124" x2="164" y1="152" y2="152"/>
|
|
||||||
<line x1="124" x2="164" y1="184" y2="184"/>
|
|
||||||
<line x1="164" x2="164" y1="24" y2="56"/>
|
|
||||||
<line x1="164" x2="164" y1="56" y2="88"/>
|
|
||||||
<line x1="164" x2="164" y1="88" y2="120"/>
|
|
||||||
<line x1="164" x2="164" y1="120" y2="152"/>
|
|
||||||
<line x1="164" x2="164" y1="152" y2="184"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="188" x2="188" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="200" x2="208" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="224" x2="236" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="232" x2="240" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="236" x2="236" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="260" x2="260" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="264" x2="272" y1="64" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="272" x2="280" y1="128" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="304" x2="316" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="316" x2="316" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="360" y1="136" y2="112"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="348" x2="348" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="368" x2="376" y1="96" y2="80"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="384" y1="48" y2="64"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="376" x2="388" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="388" x2="388" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="416" x2="424" y1="80" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="420" x2="420" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="436" x2="420" y1="104" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="448" x2="460" y1="112" y2="136"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="460" x2="460" y1="144" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="512" x2="640" y1="24" y2="24"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="108">
|
|
||||||
time
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="44">
|
|
||||||
L1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="76">
|
|
||||||
L2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="108">
|
|
||||||
L3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="140">
|
|
||||||
L4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="137" y="172">
|
|
||||||
L5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="140">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="185" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="209" y="108">
|
|
||||||
E3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="225" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="249" y="76">
|
|
||||||
E2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="140">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="257" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="289" y="108">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="305" y="172">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="313" y="44">
|
|
||||||
E1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="337" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="361" y="108">
|
|
||||||
E3'
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="377" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="393" y="76">
|
|
||||||
x
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="409" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="449" y="172">
|
|
||||||
xx
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="12">
|
|
||||||
validator
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="60">
|
|
||||||
vote(E1)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="92">
|
|
||||||
vote(E2)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="124">
|
|
||||||
slash(E3)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="156">
|
|
||||||
vote(E4)
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="513" y="188">
|
|
||||||
hang
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="553" y="188">
|
|
||||||
on
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="577" y="188">
|
|
||||||
to
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="593" y="12">
|
|
||||||
action
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="601" y="188">
|
|
||||||
E4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="625" y="188">
|
|
||||||
and
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="657" y="188">
|
|
||||||
E5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="681" y="188">
|
|
||||||
for
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="713" y="188">
|
|
||||||
more...
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 5.5 KiB |
@ -1,122 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="208" width="96" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="208" width="96" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="20" x2="24" y1="88" y2="80"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="88"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="128"/>
|
|
||||||
<line x1="24" x2="40" y1="80" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="48" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="48" x2="64" y1="16" y2="48"/>
|
|
||||||
<line x1="68" x2="64" y1="56" y2="48"/>
|
|
||||||
<line x1="68" x2="68" y1="64" y2="56"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="68" x2="68" y1="80" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="72" x2="80" y1="80" y2="96"/>
|
|
||||||
<line x1="80" x2="88" y1="96" y2="112"/>
|
|
||||||
<line x1="92" x2="88" y1="120" y2="112"/>
|
|
||||||
<line x1="92" x2="92" y1="128" y2="120"/>
|
|
||||||
<line x1="92" x2="92" y1="128" y2="192"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="140">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="44">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="108">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="76">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="172">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="204">
|
|
||||||
7
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.9 KiB |
@ -1,140 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="208" width="96" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon class="fg_fill" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon class="bg_fill" points="2,2 2,12 18,7 2,2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="fg_fill" cx="10" cy="10" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect class="fg_fill" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="bg_fill" cx="10" cy="10" r="4"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle class="bg_fill" cx="20" cy="20" r="6"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
rect.backdrop {
|
|
||||||
fill: white;
|
|
||||||
}
|
|
||||||
text{
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
circle {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
line {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
path {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fg_fill {
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.bg_fill {
|
|
||||||
fill: white;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect class="backdrop" height="208" width="96" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="20" x2="24" y1="88" y2="80"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="88"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="128"/>
|
|
||||||
<line x1="24" x2="40" y1="80" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="48" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="48" x2="64" y1="16" y2="48"/>
|
|
||||||
<line x1="68" x2="64" y1="56" y2="48"/>
|
|
||||||
<line x1="68" x2="68" y1="64" y2="56"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="68" x2="68" y1="80" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="72" x2="80" y1="80" y2="96"/>
|
|
||||||
<line x1="80" x2="88" y1="96" y2="112"/>
|
|
||||||
<line x1="92" x2="88" y1="120" y2="112"/>
|
|
||||||
<line x1="92" x2="92" y1="128" y2="120"/>
|
|
||||||
<line x1="92" x2="92" y1="128" y2="192"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="140">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="44">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="108">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="76">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="172">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="204">
|
|
||||||
7
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.8 KiB |
@ -1,122 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="208" width="96" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="208" width="96" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="20" x2="24" y1="88" y2="80"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="88"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="128"/>
|
|
||||||
<line x1="24" x2="40" y1="80" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="48" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="48" x2="64" y1="16" y2="48"/>
|
|
||||||
<line x1="68" x2="64" y1="56" y2="48"/>
|
|
||||||
<line x1="68" x2="68" y1="64" y2="56"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="68" x2="68" y1="80" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="72" x2="80" y1="80" y2="96"/>
|
|
||||||
<line x1="80" x2="88" y1="96" y2="112"/>
|
|
||||||
<line x1="92" x2="88" y1="120" y2="112"/>
|
|
||||||
<line x1="92" x2="92" y1="128" y2="120"/>
|
|
||||||
<line x1="92" x2="92" y1="128" y2="192"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="140">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="44">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="108">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="76">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="172">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="204">
|
|
||||||
7
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.9 KiB |
@ -1,122 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="208" width="96" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="208" width="96" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="20" x2="24" y1="88" y2="80"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="88"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="128"/>
|
|
||||||
<line x1="24" x2="40" y1="80" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="48" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="48" x2="64" y1="16" y2="48"/>
|
|
||||||
<line x1="68" x2="64" y1="56" y2="48"/>
|
|
||||||
<line x1="68" x2="68" y1="64" y2="56"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="68" x2="68" y1="80" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="72" x2="80" y1="80" y2="96"/>
|
|
||||||
<line x1="80" x2="88" y1="96" y2="112"/>
|
|
||||||
<line x1="92" x2="88" y1="120" y2="112"/>
|
|
||||||
<line x1="92" x2="92" y1="128" y2="120"/>
|
|
||||||
<line x1="92" x2="92" y1="128" y2="192"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="140">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="44">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="108">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="76">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="172">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="204">
|
|
||||||
7
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.9 KiB |
@ -1,122 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="208" width="96" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="208" width="96" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="20" x2="24" y1="88" y2="80"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="88"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="128"/>
|
|
||||||
<line x1="24" x2="40" y1="80" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="48" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="48" x2="64" y1="16" y2="48"/>
|
|
||||||
<line x1="68" x2="64" y1="56" y2="48"/>
|
|
||||||
<line x1="68" x2="68" y1="64" y2="56"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="68" x2="68" y1="80" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="72" x2="80" y1="80" y2="96"/>
|
|
||||||
<line x1="80" x2="88" y1="96" y2="112"/>
|
|
||||||
<line x1="92" x2="88" y1="120" y2="112"/>
|
|
||||||
<line x1="92" x2="92" y1="128" y2="120"/>
|
|
||||||
<line x1="92" x2="92" y1="128" y2="192"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="140">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="44">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="108">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="76">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="172">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="204">
|
|
||||||
7
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.9 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="144" width="48" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="144" width="48" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="20" x2="24" y1="88" y2="80"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="88"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="128"/>
|
|
||||||
<line x1="24" x2="40" y1="80" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="48" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="140">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="44">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="108">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="144" width="48" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="144" width="48" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="20" x2="24" y1="88" y2="80"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="88"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="128"/>
|
|
||||||
<line x1="24" x2="40" y1="80" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="48" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="140">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="44">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="108">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="144" width="48" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="144" width="48" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="20" x2="24" y1="88" y2="80"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="88"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="128"/>
|
|
||||||
<line x1="24" x2="40" y1="80" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="48" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="140">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="44">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="108">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="144" width="48" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="144" width="48" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="20" x2="24" y1="88" y2="80"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="88"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="128"/>
|
|
||||||
<line x1="24" x2="40" y1="80" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="48" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="140">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="44">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="108">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="144" width="48" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="144" width="48" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="20" x2="24" y1="88" y2="80"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="88"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="128"/>
|
|
||||||
<line x1="24" x2="40" y1="80" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="48" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="140">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="44">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="108">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="144" width="48" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="144" width="48" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="20" x2="24" y1="88" y2="80"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="88"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="128"/>
|
|
||||||
<line x1="24" x2="40" y1="80" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="48" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="140">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="44">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="108">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="144" width="48" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="144" width="48" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="20" x2="24" y1="88" y2="80"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="88"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="128"/>
|
|
||||||
<line x1="24" x2="40" y1="80" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="48" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="140">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="44">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="108">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="176" width="40" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="176" width="40" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="48" y2="128"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="16" x2="32" y1="48" y2="80"/>
|
|
||||||
<line x1="36" x2="32" y1="88" y2="80"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="88"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="44">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="140">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="172">
|
|
||||||
7
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="176" width="40" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="176" width="40" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="48" y2="128"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="16" x2="32" y1="48" y2="80"/>
|
|
||||||
<line x1="36" x2="32" y1="88" y2="80"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="88"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="44">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="140">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="172">
|
|
||||||
7
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="176" width="40" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="176" width="40" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="48" y2="128"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="16" x2="32" y1="48" y2="80"/>
|
|
||||||
<line x1="36" x2="32" y1="88" y2="80"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="88"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="44">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="140">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="172">
|
|
||||||
7
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,110 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="176" width="40" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon class="fg_fill" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon class="bg_fill" points="2,2 2,12 18,7 2,2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="fg_fill" cx="10" cy="10" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect class="fg_fill" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle class="bg_fill" cx="10" cy="10" r="4"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle class="bg_fill" cx="20" cy="20" r="6"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
rect.backdrop {
|
|
||||||
fill: white;
|
|
||||||
}
|
|
||||||
text{
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
circle {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
line {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
path {
|
|
||||||
fill: none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fg_fill {
|
|
||||||
fill: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.bg_fill {
|
|
||||||
fill: white;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect class="backdrop" height="176" width="40" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="48" y2="128"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="16" x2="32" y1="48" y2="80"/>
|
|
||||||
<line x1="36" x2="32" y1="88" y2="80"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="88"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="44">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="140">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="172">
|
|
||||||
7
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.3 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="176" width="40" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="176" width="40" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="48" y2="128"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="16" x2="32" y1="48" y2="80"/>
|
|
||||||
<line x1="36" x2="32" y1="88" y2="80"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="88"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="44">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="140">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="172">
|
|
||||||
7
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="176" width="40" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="176" width="40" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="48" y2="128"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="16" x2="32" y1="48" y2="80"/>
|
|
||||||
<line x1="36" x2="32" y1="88" y2="80"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="88"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="44">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="140">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="172">
|
|
||||||
7
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="176" width="40" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="176" width="40" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="12" x2="12" y1="48" y2="128"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="16" x2="32" y1="48" y2="80"/>
|
|
||||||
<line x1="36" x2="32" y1="88" y2="80"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="88"/>
|
|
||||||
<line x1="36" x2="36" y1="96" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="44">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="9" y="140">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="33" y="172">
|
|
||||||
7
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,122 +0,0 @@
|
|||||||
<svg class="bob" font-family="arial" font-size="14" height="208" width="96" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<marker id="triangle" markerHeight="8" markerWidth="8" orient="auto" refX="4" refY="2" viewBox="0 0 8 4">
|
|
||||||
<polygon fill="black" points="0,0 0,4 8,2 0,0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="clear_triangle" markerHeight="10" markerWidth="10" orient="auto" refX="1" refY="7" viewBox="0 0 20 14">
|
|
||||||
<polygon fill="none" points="2,2 2,12 18,7 2,2" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="circle" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="black" r="8"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="square" markerHeight="5" markerWidth="5" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<rect fill="black" height="20" width="20" x="0" y="0"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="open_circle" markerHeight="10" markerWidth="10" orient="auto" refX="10" refY="10" viewBox="0 0 20 20">
|
|
||||||
<circle cx="10" cy="10" fill="white" r="4" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="big_open_circle" markerHeight="20" markerWidth="20" orient="auto" refX="20" refY="20" viewBox="0 0 40 40">
|
|
||||||
<circle cx="20" cy="20" fill="white" r="6" stroke="black" stroke-width="2"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
<style type="text/css">
|
|
||||||
|
|
||||||
line,path {
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
line.dashed {
|
|
||||||
stroke-dasharray: 5;
|
|
||||||
}
|
|
||||||
circle.solid {
|
|
||||||
fill:black;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
circle.open {
|
|
||||||
fill:none;
|
|
||||||
stroke: black;
|
|
||||||
stroke-width: 2;
|
|
||||||
stroke-opacity: 1;
|
|
||||||
fill-opacity: 1;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: miter;
|
|
||||||
}
|
|
||||||
tspan.head{
|
|
||||||
fill: none;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<rect fill="white" height="208" width="96" x="0" y="0"/>
|
|
||||||
<g>
|
|
||||||
<line x1="20" x2="24" y1="88" y2="80"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="88"/>
|
|
||||||
<line x1="20" x2="20" y1="96" y2="128"/>
|
|
||||||
<line x1="24" x2="40" y1="80" y2="48"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="16" y2="32"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="44" x2="44" y1="48" y2="96"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="48" x2="64" y1="16" y2="48"/>
|
|
||||||
<line x1="68" x2="64" y1="56" y2="48"/>
|
|
||||||
<line x1="68" x2="68" y1="64" y2="56"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="68" x2="68" y1="80" y2="160"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<line x1="72" x2="80" y1="80" y2="96"/>
|
|
||||||
<line x1="80" x2="88" y1="96" y2="112"/>
|
|
||||||
<line x1="92" x2="88" y1="120" y2="112"/>
|
|
||||||
<line x1="92" x2="92" y1="128" y2="120"/>
|
|
||||||
<line x1="92" x2="92" y1="128" y2="192"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="17" y="140">
|
|
||||||
5
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="12">
|
|
||||||
1
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="44">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="41" y="108">
|
|
||||||
4
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="76">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="65" y="172">
|
|
||||||
6
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<text x="89" y="204">
|
|
||||||
7
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.9 KiB |
BIN
book/src/.gitbook/assets/p_ex_interest.png
Executable file
After Width: | Height: | Size: 542 KiB |
Before Width: | Height: | Size: 256 KiB |
Before Width: | Height: | Size: 256 KiB |
Before Width: | Height: | Size: 256 KiB |
Before Width: | Height: | Size: 256 KiB |
Before Width: | Height: | Size: 256 KiB |
Before Width: | Height: | Size: 256 KiB |
Before Width: | Height: | Size: 256 KiB |
Before Width: | Height: | Size: 256 KiB |
Before Width: | Height: | Size: 256 KiB |
Before Width: | Height: | Size: 269 KiB |
Before Width: | Height: | Size: 269 KiB |
Before Width: | Height: | Size: 269 KiB |
Before Width: | Height: | Size: 269 KiB |
Before Width: | Height: | Size: 269 KiB |
Before Width: | Height: | Size: 269 KiB |
Before Width: | Height: | Size: 269 KiB |
Before Width: | Height: | Size: 269 KiB |
Before Width: | Height: | Size: 269 KiB |
@ -1,238 +0,0 @@
|
|||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1"
|
|
||||||
width="1320px" height="487px"
|
|
||||||
viewBox="0 0 1320 487"
|
|
||||||
xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges"
|
|
||||||
stroke-width="1" text-rendering="geometricPrecision">
|
|
||||||
<polygon fill="white" points="101,7 161,7 161,16 101,16"/>
|
|
||||||
<text x="132" y="16" textLength="59" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
VoteSigner
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="371,7 419,7 419,16 371,16"/>
|
|
||||||
<text x="396" y="16" textLength="47" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="639,7 679,7 679,16 639,16"/>
|
|
||||||
<text x="660" y="16" textLength="38" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
Cluster
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="901,7 945,7 945,16 901,16"/>
|
|
||||||
<text x="924" y="16" textLength="43" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
StakerX
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="1165,7 1209,7 1209,16 1165,16"/>
|
|
||||||
<text x="1188" y="16" textLength="43" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
StakerY
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="22" x2="132" y2="39" stroke="black"/>
|
|
||||||
<line x1="396" y1="22" x2="396" y2="39" stroke="black"/>
|
|
||||||
<line x1="660" y1="22" x2="660" y2="39" stroke="black"/>
|
|
||||||
<line x1="924" y1="22" x2="924" y2="39" stroke="black"/>
|
|
||||||
<line x1="1188" y1="22" x2="1188" y2="39" stroke="black"/>
|
|
||||||
<line x1="132" y1="39" x2="132" y2="67" stroke="black"/>
|
|
||||||
<line x1="396" y1="39" x2="396" y2="67" stroke="black"/>
|
|
||||||
<line x1="660" y1="39" x2="660" y2="67" stroke="black"/>
|
|
||||||
<line x1="924" y1="39" x2="924" y2="67" stroke="black"/>
|
|
||||||
<line x1="1188" y1="39" x2="1188" y2="67" stroke="black"/>
|
|
||||||
<polygon fill="white" points="272,39 520,39 520,61 272,61"/>
|
|
||||||
<line x1="272" y1="39" x2="520" y2="39" stroke="black"/>
|
|
||||||
<line x1="272" y1="61" x2="520" y2="61" stroke="black"/>
|
|
||||||
<line x1="272" y1="39" x2="272" y2="61" stroke="black"/>
|
|
||||||
<line x1="520" y1="39" x2="520" y2="61" stroke="black"/>
|
|
||||||
<polygon fill="white" points="379,46 411,46 411,55 379,55"/>
|
|
||||||
<text x="380" y="55" textLength="30" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
boot..
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="67" x2="132" y2="106" stroke="black"/>
|
|
||||||
<line x1="396" y1="67" x2="396" y2="106" stroke="black"/>
|
|
||||||
<line x1="660" y1="67" x2="660" y2="106" stroke="black"/>
|
|
||||||
<line x1="924" y1="67" x2="924" y2="106" stroke="black"/>
|
|
||||||
<line x1="1188" y1="67" x2="1188" y2="106" stroke="black"/>
|
|
||||||
<line x1="132" y1="82" x2="396" y2="82" stroke="black"/>
|
|
||||||
<line x1="132" y1="84" x2="396" y2="84" stroke="black"/>
|
|
||||||
<polygon fill="black" points="396,83 386,89 386,77"/>
|
|
||||||
<polygon fill="black" points="132,83 142,89 142,77"/>
|
|
||||||
<polygon fill="white" points="242,68 284,68 284,77 242,77"/>
|
|
||||||
<text x="243" y="77" textLength="40" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
register
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="262,79 264,79 264,88 262,88"/>
|
|
||||||
<text x="263" y="88" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="237,90 289,90 289,99 237,99"/>
|
|
||||||
<text x="238" y="99" textLength="50" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
(optional)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="106" x2="132" y2="134" stroke="black"/>
|
|
||||||
<line x1="396" y1="106" x2="396" y2="134" stroke="black"/>
|
|
||||||
<line x1="660" y1="106" x2="660" y2="134" stroke="black"/>
|
|
||||||
<line x1="924" y1="106" x2="924" y2="134" stroke="black"/>
|
|
||||||
<line x1="1188" y1="106" x2="1188" y2="134" stroke="black"/>
|
|
||||||
<line x1="396" y1="117" x2="660" y2="117" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,117 650,123 650,111"/>
|
|
||||||
<polygon fill="white" points="441,107 613,107 613,116 441,116"/>
|
|
||||||
<text x="442" y="116" textLength="170" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
VoteState::Initialize(VoteSigner)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="134" x2="132" y2="162" stroke="black"/>
|
|
||||||
<line x1="396" y1="134" x2="396" y2="162" stroke="black"/>
|
|
||||||
<line x1="660" y1="134" x2="660" y2="162" stroke="black"/>
|
|
||||||
<line x1="924" y1="134" x2="924" y2="162" stroke="black"/>
|
|
||||||
<line x1="1188" y1="134" x2="1188" y2="162" stroke="black"/>
|
|
||||||
<line x1="924" y1="145" x2="660" y2="145" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,145 670,151 670,139"/>
|
|
||||||
<polygon fill="white" points="706,135 877,135 877,144 706,144"/>
|
|
||||||
<text x="707" y="144" textLength="169" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::Delegate(Validator)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="162" x2="132" y2="190" stroke="black"/>
|
|
||||||
<line x1="396" y1="162" x2="396" y2="190" stroke="black"/>
|
|
||||||
<line x1="660" y1="162" x2="660" y2="190" stroke="black"/>
|
|
||||||
<line x1="924" y1="162" x2="924" y2="190" stroke="black"/>
|
|
||||||
<line x1="1188" y1="162" x2="1188" y2="190" stroke="black"/>
|
|
||||||
<line x1="1188" y1="173" x2="660" y2="173" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,173 670,179 670,167"/>
|
|
||||||
<polygon fill="white" points="838,163 1009,163 1009,172 838,172"/>
|
|
||||||
<text x="839" y="172" textLength="169" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::Delegate(Validator)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="190" x2="132" y2="207" stroke="black"/>
|
|
||||||
<line x1="396" y1="190" x2="396" y2="207" stroke="black"/>
|
|
||||||
<line x1="660" y1="190" x2="660" y2="207" stroke="black"/>
|
|
||||||
<line x1="924" y1="190" x2="924" y2="207" stroke="black"/>
|
|
||||||
<line x1="1188" y1="190" x2="1188" y2="207" stroke="black"/>
|
|
||||||
<line x1="132" y1="207" x2="132" y2="246" stroke="black"/>
|
|
||||||
<line x1="396" y1="207" x2="396" y2="246" stroke="black"/>
|
|
||||||
<line x1="660" y1="207" x2="660" y2="246" stroke="black"/>
|
|
||||||
<line x1="924" y1="207" x2="924" y2="246" stroke="black"/>
|
|
||||||
<line x1="1188" y1="207" x2="1188" y2="246" stroke="black"/>
|
|
||||||
<polygon fill="white" points="272,207 784,207 784,240 272,240"/>
|
|
||||||
<line x1="272" y1="207" x2="784" y2="207" stroke="black"/>
|
|
||||||
<line x1="272" y1="240" x2="784" y2="240" stroke="black"/>
|
|
||||||
<line x1="272" y1="207" x2="272" y2="240" stroke="black"/>
|
|
||||||
<line x1="784" y1="207" x2="784" y2="240" stroke="black"/>
|
|
||||||
<polygon fill="white" points="526,208 528,208 528,217 526,217"/>
|
|
||||||
<text x="527" y="217" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="506,219 549,219 549,228 506,228"/>
|
|
||||||
<text x="507" y="228" textLength="41" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
validate
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="526,230 528,230 528,239 526,239"/>
|
|
||||||
<text x="527" y="239" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="246" x2="132" y2="274" stroke="black"/>
|
|
||||||
<line x1="396" y1="246" x2="396" y2="274" stroke="black"/>
|
|
||||||
<line x1="660" y1="246" x2="660" y2="274" stroke="black"/>
|
|
||||||
<line x1="924" y1="246" x2="924" y2="274" stroke="black"/>
|
|
||||||
<line x1="1188" y1="246" x2="1188" y2="274" stroke="black"/>
|
|
||||||
<line x1="396" y1="257" x2="132" y2="257" stroke="black"/>
|
|
||||||
<polygon fill="black" points="132,257 142,263 142,251"/>
|
|
||||||
<polygon fill="white" points="236,247 291,247 291,256 236,256"/>
|
|
||||||
<text x="237" y="256" textLength="53" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
sign(vote)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="274" x2="132" y2="302" stroke="black"/>
|
|
||||||
<line x1="396" y1="274" x2="396" y2="302" stroke="black"/>
|
|
||||||
<line x1="660" y1="274" x2="660" y2="302" stroke="black"/>
|
|
||||||
<line x1="924" y1="274" x2="924" y2="302" stroke="black"/>
|
|
||||||
<line x1="1188" y1="274" x2="1188" y2="302" stroke="black"/>
|
|
||||||
<line x1="132" y1="285" x2="396" y2="285" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<polygon fill="black" points="396,285 386,291 386,279"/>
|
|
||||||
<polygon fill="white" points="232,275 295,275 295,284 232,284"/>
|
|
||||||
<text x="233" y="284" textLength="61" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
signed vote
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="302" x2="132" y2="330" stroke="black"/>
|
|
||||||
<line x1="396" y1="302" x2="396" y2="330" stroke="black"/>
|
|
||||||
<line x1="660" y1="302" x2="660" y2="330" stroke="black"/>
|
|
||||||
<line x1="924" y1="302" x2="924" y2="330" stroke="black"/>
|
|
||||||
<line x1="1188" y1="302" x2="1188" y2="330" stroke="black"/>
|
|
||||||
<line x1="396" y1="313" x2="660" y2="313" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,313 650,319 650,307"/>
|
|
||||||
<polygon fill="white" points="494,303 561,303 561,312 494,312"/>
|
|
||||||
<text x="495" y="312" textLength="65" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
gossip(vote)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="330" x2="132" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="396" y1="330" x2="396" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="660" y1="330" x2="660" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="924" y1="330" x2="924" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="1188" y1="330" x2="1188" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="132" y1="347" x2="132" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="396" y1="347" x2="396" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="660" y1="347" x2="660" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="924" y1="347" x2="924" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="1188" y1="347" x2="1188" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="132" y1="364" x2="132" y2="414" stroke="black"/>
|
|
||||||
<line x1="396" y1="364" x2="396" y2="414" stroke="black"/>
|
|
||||||
<line x1="660" y1="364" x2="660" y2="414" stroke="black"/>
|
|
||||||
<line x1="924" y1="364" x2="924" y2="414" stroke="black"/>
|
|
||||||
<line x1="1188" y1="364" x2="1188" y2="414" stroke="black"/>
|
|
||||||
<polygon fill="white" points="278,364 514,364 514,408 278,408"/>
|
|
||||||
<polygon fill="white" points="278,364 278,408 272,386"/>
|
|
||||||
<polygon fill="white" points="514,364 514,408 520,386"/>
|
|
||||||
<line x1="278" y1="364" x2="514" y2="364" stroke="black"/>
|
|
||||||
<line x1="278" y1="408" x2="514" y2="408" stroke="black"/>
|
|
||||||
<line x1="278" y1="364" x2="272" y2="386" stroke="black"/>
|
|
||||||
<line x1="272" y1="386" x2="278" y2="408" stroke="black"/>
|
|
||||||
<line x1="514" y1="364" x2="520" y2="386" stroke="black"/>
|
|
||||||
<line x1="520" y1="386" x2="514" y2="408" stroke="black"/>
|
|
||||||
<polygon fill="white" points="394,365 396,365 396,374 394,374"/>
|
|
||||||
<text x="395" y="374" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="383,376 408,376 408,385 383,385"/>
|
|
||||||
<text x="384" y="385" textLength="23" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
max
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="375,387 415,387 415,396 375,396"/>
|
|
||||||
<text x="376" y="396" textLength="38" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
lockout
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="394,398 396,398 396,407 394,407"/>
|
|
||||||
<text x="395" y="407" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="414" x2="132" y2="431" stroke="black"/>
|
|
||||||
<line x1="396" y1="414" x2="396" y2="431" stroke="black"/>
|
|
||||||
<line x1="660" y1="414" x2="660" y2="431" stroke="black"/>
|
|
||||||
<line x1="924" y1="414" x2="924" y2="431" stroke="black"/>
|
|
||||||
<line x1="1188" y1="414" x2="1188" y2="431" stroke="black"/>
|
|
||||||
<line x1="132" y1="431" x2="132" y2="459" stroke="black"/>
|
|
||||||
<line x1="396" y1="431" x2="396" y2="459" stroke="black"/>
|
|
||||||
<line x1="660" y1="431" x2="660" y2="459" stroke="black"/>
|
|
||||||
<line x1="924" y1="431" x2="924" y2="459" stroke="black"/>
|
|
||||||
<line x1="1188" y1="431" x2="1188" y2="459" stroke="black"/>
|
|
||||||
<line x1="924" y1="442" x2="660" y2="442" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,442 670,448 670,436"/>
|
|
||||||
<polygon fill="white" points="712,432 871,432 871,441 712,441"/>
|
|
||||||
<text x="713" y="441" textLength="157" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::RedeemCredits()
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="459" x2="132" y2="487" stroke="black"/>
|
|
||||||
<line x1="396" y1="459" x2="396" y2="487" stroke="black"/>
|
|
||||||
<line x1="660" y1="459" x2="660" y2="487" stroke="black"/>
|
|
||||||
<line x1="924" y1="459" x2="924" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="459" x2="1188" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="470" x2="660" y2="470" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,470 670,476 670,464"/>
|
|
||||||
<polygon fill="white" points="844,460 1003,460 1003,469 844,469"/>
|
|
||||||
<text x="845" y="469" textLength="157" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::RedeemCredits()
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="481" x2="132" y2="487" stroke="black"/>
|
|
||||||
<line x1="396" y1="481" x2="396" y2="487" stroke="black"/>
|
|
||||||
<line x1="660" y1="481" x2="660" y2="487" stroke="black"/>
|
|
||||||
<line x1="924" y1="481" x2="924" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="481" x2="1188" y2="487" stroke="black"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 12 KiB |
@ -1,238 +0,0 @@
|
|||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1"
|
|
||||||
width="1320px" height="487px"
|
|
||||||
viewBox="0 0 1320 487"
|
|
||||||
xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges"
|
|
||||||
stroke-width="1" text-rendering="geometricPrecision">
|
|
||||||
<polygon fill="white" points="101,7 161,7 161,16 101,16"/>
|
|
||||||
<text x="132" y="16" textLength="59" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
VoteSigner
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="371,7 419,7 419,16 371,16"/>
|
|
||||||
<text x="396" y="16" textLength="47" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="639,7 679,7 679,16 639,16"/>
|
|
||||||
<text x="660" y="16" textLength="38" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
Cluster
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="901,7 945,7 945,16 901,16"/>
|
|
||||||
<text x="924" y="16" textLength="43" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
StakerX
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="1165,7 1209,7 1209,16 1165,16"/>
|
|
||||||
<text x="1188" y="16" textLength="43" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
StakerY
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="22" x2="132" y2="39" stroke="black"/>
|
|
||||||
<line x1="396" y1="22" x2="396" y2="39" stroke="black"/>
|
|
||||||
<line x1="660" y1="22" x2="660" y2="39" stroke="black"/>
|
|
||||||
<line x1="924" y1="22" x2="924" y2="39" stroke="black"/>
|
|
||||||
<line x1="1188" y1="22" x2="1188" y2="39" stroke="black"/>
|
|
||||||
<line x1="132" y1="39" x2="132" y2="67" stroke="black"/>
|
|
||||||
<line x1="396" y1="39" x2="396" y2="67" stroke="black"/>
|
|
||||||
<line x1="660" y1="39" x2="660" y2="67" stroke="black"/>
|
|
||||||
<line x1="924" y1="39" x2="924" y2="67" stroke="black"/>
|
|
||||||
<line x1="1188" y1="39" x2="1188" y2="67" stroke="black"/>
|
|
||||||
<polygon fill="white" points="272,39 520,39 520,61 272,61"/>
|
|
||||||
<line x1="272" y1="39" x2="520" y2="39" stroke="black"/>
|
|
||||||
<line x1="272" y1="61" x2="520" y2="61" stroke="black"/>
|
|
||||||
<line x1="272" y1="39" x2="272" y2="61" stroke="black"/>
|
|
||||||
<line x1="520" y1="39" x2="520" y2="61" stroke="black"/>
|
|
||||||
<polygon fill="white" points="379,46 411,46 411,55 379,55"/>
|
|
||||||
<text x="380" y="55" textLength="30" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
boot..
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="67" x2="132" y2="106" stroke="black"/>
|
|
||||||
<line x1="396" y1="67" x2="396" y2="106" stroke="black"/>
|
|
||||||
<line x1="660" y1="67" x2="660" y2="106" stroke="black"/>
|
|
||||||
<line x1="924" y1="67" x2="924" y2="106" stroke="black"/>
|
|
||||||
<line x1="1188" y1="67" x2="1188" y2="106" stroke="black"/>
|
|
||||||
<line x1="132" y1="82" x2="396" y2="82" stroke="black"/>
|
|
||||||
<line x1="132" y1="84" x2="396" y2="84" stroke="black"/>
|
|
||||||
<polygon fill="black" points="396,83 386,89 386,77"/>
|
|
||||||
<polygon fill="black" points="132,83 142,89 142,77"/>
|
|
||||||
<polygon fill="white" points="242,68 284,68 284,77 242,77"/>
|
|
||||||
<text x="243" y="77" textLength="40" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
register
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="262,79 264,79 264,88 262,88"/>
|
|
||||||
<text x="263" y="88" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="237,90 289,90 289,99 237,99"/>
|
|
||||||
<text x="238" y="99" textLength="50" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
(optional)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="106" x2="132" y2="134" stroke="black"/>
|
|
||||||
<line x1="396" y1="106" x2="396" y2="134" stroke="black"/>
|
|
||||||
<line x1="660" y1="106" x2="660" y2="134" stroke="black"/>
|
|
||||||
<line x1="924" y1="106" x2="924" y2="134" stroke="black"/>
|
|
||||||
<line x1="1188" y1="106" x2="1188" y2="134" stroke="black"/>
|
|
||||||
<line x1="396" y1="117" x2="660" y2="117" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,117 650,123 650,111"/>
|
|
||||||
<polygon fill="white" points="441,107 613,107 613,116 441,116"/>
|
|
||||||
<text x="442" y="116" textLength="170" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
VoteState::Initialize(VoteSigner)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="134" x2="132" y2="162" stroke="black"/>
|
|
||||||
<line x1="396" y1="134" x2="396" y2="162" stroke="black"/>
|
|
||||||
<line x1="660" y1="134" x2="660" y2="162" stroke="black"/>
|
|
||||||
<line x1="924" y1="134" x2="924" y2="162" stroke="black"/>
|
|
||||||
<line x1="1188" y1="134" x2="1188" y2="162" stroke="black"/>
|
|
||||||
<line x1="924" y1="145" x2="660" y2="145" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,145 670,151 670,139"/>
|
|
||||||
<polygon fill="white" points="706,135 877,135 877,144 706,144"/>
|
|
||||||
<text x="707" y="144" textLength="169" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::Delegate(Validator)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="162" x2="132" y2="190" stroke="black"/>
|
|
||||||
<line x1="396" y1="162" x2="396" y2="190" stroke="black"/>
|
|
||||||
<line x1="660" y1="162" x2="660" y2="190" stroke="black"/>
|
|
||||||
<line x1="924" y1="162" x2="924" y2="190" stroke="black"/>
|
|
||||||
<line x1="1188" y1="162" x2="1188" y2="190" stroke="black"/>
|
|
||||||
<line x1="1188" y1="173" x2="660" y2="173" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,173 670,179 670,167"/>
|
|
||||||
<polygon fill="white" points="838,163 1009,163 1009,172 838,172"/>
|
|
||||||
<text x="839" y="172" textLength="169" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::Delegate(Validator)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="190" x2="132" y2="207" stroke="black"/>
|
|
||||||
<line x1="396" y1="190" x2="396" y2="207" stroke="black"/>
|
|
||||||
<line x1="660" y1="190" x2="660" y2="207" stroke="black"/>
|
|
||||||
<line x1="924" y1="190" x2="924" y2="207" stroke="black"/>
|
|
||||||
<line x1="1188" y1="190" x2="1188" y2="207" stroke="black"/>
|
|
||||||
<line x1="132" y1="207" x2="132" y2="246" stroke="black"/>
|
|
||||||
<line x1="396" y1="207" x2="396" y2="246" stroke="black"/>
|
|
||||||
<line x1="660" y1="207" x2="660" y2="246" stroke="black"/>
|
|
||||||
<line x1="924" y1="207" x2="924" y2="246" stroke="black"/>
|
|
||||||
<line x1="1188" y1="207" x2="1188" y2="246" stroke="black"/>
|
|
||||||
<polygon fill="white" points="272,207 784,207 784,240 272,240"/>
|
|
||||||
<line x1="272" y1="207" x2="784" y2="207" stroke="black"/>
|
|
||||||
<line x1="272" y1="240" x2="784" y2="240" stroke="black"/>
|
|
||||||
<line x1="272" y1="207" x2="272" y2="240" stroke="black"/>
|
|
||||||
<line x1="784" y1="207" x2="784" y2="240" stroke="black"/>
|
|
||||||
<polygon fill="white" points="526,208 528,208 528,217 526,217"/>
|
|
||||||
<text x="527" y="217" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="506,219 549,219 549,228 506,228"/>
|
|
||||||
<text x="507" y="228" textLength="41" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
validate
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="526,230 528,230 528,239 526,239"/>
|
|
||||||
<text x="527" y="239" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="246" x2="132" y2="274" stroke="black"/>
|
|
||||||
<line x1="396" y1="246" x2="396" y2="274" stroke="black"/>
|
|
||||||
<line x1="660" y1="246" x2="660" y2="274" stroke="black"/>
|
|
||||||
<line x1="924" y1="246" x2="924" y2="274" stroke="black"/>
|
|
||||||
<line x1="1188" y1="246" x2="1188" y2="274" stroke="black"/>
|
|
||||||
<line x1="396" y1="257" x2="132" y2="257" stroke="black"/>
|
|
||||||
<polygon fill="black" points="132,257 142,263 142,251"/>
|
|
||||||
<polygon fill="white" points="236,247 291,247 291,256 236,256"/>
|
|
||||||
<text x="237" y="256" textLength="53" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
sign(vote)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="274" x2="132" y2="302" stroke="black"/>
|
|
||||||
<line x1="396" y1="274" x2="396" y2="302" stroke="black"/>
|
|
||||||
<line x1="660" y1="274" x2="660" y2="302" stroke="black"/>
|
|
||||||
<line x1="924" y1="274" x2="924" y2="302" stroke="black"/>
|
|
||||||
<line x1="1188" y1="274" x2="1188" y2="302" stroke="black"/>
|
|
||||||
<line x1="132" y1="285" x2="396" y2="285" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<polygon fill="black" points="396,285 386,291 386,279"/>
|
|
||||||
<polygon fill="white" points="232,275 295,275 295,284 232,284"/>
|
|
||||||
<text x="233" y="284" textLength="61" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
signed vote
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="302" x2="132" y2="330" stroke="black"/>
|
|
||||||
<line x1="396" y1="302" x2="396" y2="330" stroke="black"/>
|
|
||||||
<line x1="660" y1="302" x2="660" y2="330" stroke="black"/>
|
|
||||||
<line x1="924" y1="302" x2="924" y2="330" stroke="black"/>
|
|
||||||
<line x1="1188" y1="302" x2="1188" y2="330" stroke="black"/>
|
|
||||||
<line x1="396" y1="313" x2="660" y2="313" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,313 650,319 650,307"/>
|
|
||||||
<polygon fill="white" points="494,303 561,303 561,312 494,312"/>
|
|
||||||
<text x="495" y="312" textLength="65" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
gossip(vote)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="330" x2="132" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="396" y1="330" x2="396" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="660" y1="330" x2="660" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="924" y1="330" x2="924" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="1188" y1="330" x2="1188" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="132" y1="347" x2="132" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="396" y1="347" x2="396" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="660" y1="347" x2="660" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="924" y1="347" x2="924" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="1188" y1="347" x2="1188" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="132" y1="364" x2="132" y2="414" stroke="black"/>
|
|
||||||
<line x1="396" y1="364" x2="396" y2="414" stroke="black"/>
|
|
||||||
<line x1="660" y1="364" x2="660" y2="414" stroke="black"/>
|
|
||||||
<line x1="924" y1="364" x2="924" y2="414" stroke="black"/>
|
|
||||||
<line x1="1188" y1="364" x2="1188" y2="414" stroke="black"/>
|
|
||||||
<polygon fill="white" points="278,364 514,364 514,408 278,408"/>
|
|
||||||
<polygon fill="white" points="278,364 278,408 272,386"/>
|
|
||||||
<polygon fill="white" points="514,364 514,408 520,386"/>
|
|
||||||
<line x1="278" y1="364" x2="514" y2="364" stroke="black"/>
|
|
||||||
<line x1="278" y1="408" x2="514" y2="408" stroke="black"/>
|
|
||||||
<line x1="278" y1="364" x2="272" y2="386" stroke="black"/>
|
|
||||||
<line x1="272" y1="386" x2="278" y2="408" stroke="black"/>
|
|
||||||
<line x1="514" y1="364" x2="520" y2="386" stroke="black"/>
|
|
||||||
<line x1="520" y1="386" x2="514" y2="408" stroke="black"/>
|
|
||||||
<polygon fill="white" points="394,365 396,365 396,374 394,374"/>
|
|
||||||
<text x="395" y="374" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="383,376 408,376 408,385 383,385"/>
|
|
||||||
<text x="384" y="385" textLength="23" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
max
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="375,387 415,387 415,396 375,396"/>
|
|
||||||
<text x="376" y="396" textLength="38" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
lockout
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="394,398 396,398 396,407 394,407"/>
|
|
||||||
<text x="395" y="407" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="414" x2="132" y2="431" stroke="black"/>
|
|
||||||
<line x1="396" y1="414" x2="396" y2="431" stroke="black"/>
|
|
||||||
<line x1="660" y1="414" x2="660" y2="431" stroke="black"/>
|
|
||||||
<line x1="924" y1="414" x2="924" y2="431" stroke="black"/>
|
|
||||||
<line x1="1188" y1="414" x2="1188" y2="431" stroke="black"/>
|
|
||||||
<line x1="132" y1="431" x2="132" y2="459" stroke="black"/>
|
|
||||||
<line x1="396" y1="431" x2="396" y2="459" stroke="black"/>
|
|
||||||
<line x1="660" y1="431" x2="660" y2="459" stroke="black"/>
|
|
||||||
<line x1="924" y1="431" x2="924" y2="459" stroke="black"/>
|
|
||||||
<line x1="1188" y1="431" x2="1188" y2="459" stroke="black"/>
|
|
||||||
<line x1="924" y1="442" x2="660" y2="442" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,442 670,448 670,436"/>
|
|
||||||
<polygon fill="white" points="712,432 871,432 871,441 712,441"/>
|
|
||||||
<text x="713" y="441" textLength="157" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::RedeemCredits()
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="459" x2="132" y2="487" stroke="black"/>
|
|
||||||
<line x1="396" y1="459" x2="396" y2="487" stroke="black"/>
|
|
||||||
<line x1="660" y1="459" x2="660" y2="487" stroke="black"/>
|
|
||||||
<line x1="924" y1="459" x2="924" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="459" x2="1188" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="470" x2="660" y2="470" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,470 670,476 670,464"/>
|
|
||||||
<polygon fill="white" points="844,460 1003,460 1003,469 844,469"/>
|
|
||||||
<text x="845" y="469" textLength="157" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::RedeemCredits()
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="481" x2="132" y2="487" stroke="black"/>
|
|
||||||
<line x1="396" y1="481" x2="396" y2="487" stroke="black"/>
|
|
||||||
<line x1="660" y1="481" x2="660" y2="487" stroke="black"/>
|
|
||||||
<line x1="924" y1="481" x2="924" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="481" x2="1188" y2="487" stroke="black"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 12 KiB |
@ -1,238 +0,0 @@
|
|||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1"
|
|
||||||
width="1320px" height="487px"
|
|
||||||
viewBox="0 0 1320 487"
|
|
||||||
xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges"
|
|
||||||
stroke-width="1" text-rendering="geometricPrecision">
|
|
||||||
<polygon fill="white" points="101,7 161,7 161,16 101,16"/>
|
|
||||||
<text x="132" y="16" textLength="59" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
VoteSigner
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="371,7 419,7 419,16 371,16"/>
|
|
||||||
<text x="396" y="16" textLength="47" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="639,7 679,7 679,16 639,16"/>
|
|
||||||
<text x="660" y="16" textLength="38" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
Cluster
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="901,7 945,7 945,16 901,16"/>
|
|
||||||
<text x="924" y="16" textLength="43" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
StakerX
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="1165,7 1209,7 1209,16 1165,16"/>
|
|
||||||
<text x="1188" y="16" textLength="43" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
StakerY
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="22" x2="132" y2="39" stroke="black"/>
|
|
||||||
<line x1="396" y1="22" x2="396" y2="39" stroke="black"/>
|
|
||||||
<line x1="660" y1="22" x2="660" y2="39" stroke="black"/>
|
|
||||||
<line x1="924" y1="22" x2="924" y2="39" stroke="black"/>
|
|
||||||
<line x1="1188" y1="22" x2="1188" y2="39" stroke="black"/>
|
|
||||||
<line x1="132" y1="39" x2="132" y2="67" stroke="black"/>
|
|
||||||
<line x1="396" y1="39" x2="396" y2="67" stroke="black"/>
|
|
||||||
<line x1="660" y1="39" x2="660" y2="67" stroke="black"/>
|
|
||||||
<line x1="924" y1="39" x2="924" y2="67" stroke="black"/>
|
|
||||||
<line x1="1188" y1="39" x2="1188" y2="67" stroke="black"/>
|
|
||||||
<polygon fill="white" points="272,39 520,39 520,61 272,61"/>
|
|
||||||
<line x1="272" y1="39" x2="520" y2="39" stroke="black"/>
|
|
||||||
<line x1="272" y1="61" x2="520" y2="61" stroke="black"/>
|
|
||||||
<line x1="272" y1="39" x2="272" y2="61" stroke="black"/>
|
|
||||||
<line x1="520" y1="39" x2="520" y2="61" stroke="black"/>
|
|
||||||
<polygon fill="white" points="379,46 411,46 411,55 379,55"/>
|
|
||||||
<text x="380" y="55" textLength="30" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
boot..
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="67" x2="132" y2="106" stroke="black"/>
|
|
||||||
<line x1="396" y1="67" x2="396" y2="106" stroke="black"/>
|
|
||||||
<line x1="660" y1="67" x2="660" y2="106" stroke="black"/>
|
|
||||||
<line x1="924" y1="67" x2="924" y2="106" stroke="black"/>
|
|
||||||
<line x1="1188" y1="67" x2="1188" y2="106" stroke="black"/>
|
|
||||||
<line x1="132" y1="82" x2="396" y2="82" stroke="black"/>
|
|
||||||
<line x1="132" y1="84" x2="396" y2="84" stroke="black"/>
|
|
||||||
<polygon fill="black" points="396,83 386,89 386,77"/>
|
|
||||||
<polygon fill="black" points="132,83 142,89 142,77"/>
|
|
||||||
<polygon fill="white" points="242,68 284,68 284,77 242,77"/>
|
|
||||||
<text x="243" y="77" textLength="40" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
register
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="262,79 264,79 264,88 262,88"/>
|
|
||||||
<text x="263" y="88" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="237,90 289,90 289,99 237,99"/>
|
|
||||||
<text x="238" y="99" textLength="50" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
(optional)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="106" x2="132" y2="134" stroke="black"/>
|
|
||||||
<line x1="396" y1="106" x2="396" y2="134" stroke="black"/>
|
|
||||||
<line x1="660" y1="106" x2="660" y2="134" stroke="black"/>
|
|
||||||
<line x1="924" y1="106" x2="924" y2="134" stroke="black"/>
|
|
||||||
<line x1="1188" y1="106" x2="1188" y2="134" stroke="black"/>
|
|
||||||
<line x1="396" y1="117" x2="660" y2="117" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,117 650,123 650,111"/>
|
|
||||||
<polygon fill="white" points="441,107 613,107 613,116 441,116"/>
|
|
||||||
<text x="442" y="116" textLength="170" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
VoteState::Initialize(VoteSigner)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="134" x2="132" y2="162" stroke="black"/>
|
|
||||||
<line x1="396" y1="134" x2="396" y2="162" stroke="black"/>
|
|
||||||
<line x1="660" y1="134" x2="660" y2="162" stroke="black"/>
|
|
||||||
<line x1="924" y1="134" x2="924" y2="162" stroke="black"/>
|
|
||||||
<line x1="1188" y1="134" x2="1188" y2="162" stroke="black"/>
|
|
||||||
<line x1="924" y1="145" x2="660" y2="145" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,145 670,151 670,139"/>
|
|
||||||
<polygon fill="white" points="706,135 877,135 877,144 706,144"/>
|
|
||||||
<text x="707" y="144" textLength="169" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::Delegate(Validator)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="162" x2="132" y2="190" stroke="black"/>
|
|
||||||
<line x1="396" y1="162" x2="396" y2="190" stroke="black"/>
|
|
||||||
<line x1="660" y1="162" x2="660" y2="190" stroke="black"/>
|
|
||||||
<line x1="924" y1="162" x2="924" y2="190" stroke="black"/>
|
|
||||||
<line x1="1188" y1="162" x2="1188" y2="190" stroke="black"/>
|
|
||||||
<line x1="1188" y1="173" x2="660" y2="173" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,173 670,179 670,167"/>
|
|
||||||
<polygon fill="white" points="838,163 1009,163 1009,172 838,172"/>
|
|
||||||
<text x="839" y="172" textLength="169" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::Delegate(Validator)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="190" x2="132" y2="207" stroke="black"/>
|
|
||||||
<line x1="396" y1="190" x2="396" y2="207" stroke="black"/>
|
|
||||||
<line x1="660" y1="190" x2="660" y2="207" stroke="black"/>
|
|
||||||
<line x1="924" y1="190" x2="924" y2="207" stroke="black"/>
|
|
||||||
<line x1="1188" y1="190" x2="1188" y2="207" stroke="black"/>
|
|
||||||
<line x1="132" y1="207" x2="132" y2="246" stroke="black"/>
|
|
||||||
<line x1="396" y1="207" x2="396" y2="246" stroke="black"/>
|
|
||||||
<line x1="660" y1="207" x2="660" y2="246" stroke="black"/>
|
|
||||||
<line x1="924" y1="207" x2="924" y2="246" stroke="black"/>
|
|
||||||
<line x1="1188" y1="207" x2="1188" y2="246" stroke="black"/>
|
|
||||||
<polygon fill="white" points="272,207 784,207 784,240 272,240"/>
|
|
||||||
<line x1="272" y1="207" x2="784" y2="207" stroke="black"/>
|
|
||||||
<line x1="272" y1="240" x2="784" y2="240" stroke="black"/>
|
|
||||||
<line x1="272" y1="207" x2="272" y2="240" stroke="black"/>
|
|
||||||
<line x1="784" y1="207" x2="784" y2="240" stroke="black"/>
|
|
||||||
<polygon fill="white" points="526,208 528,208 528,217 526,217"/>
|
|
||||||
<text x="527" y="217" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="506,219 549,219 549,228 506,228"/>
|
|
||||||
<text x="507" y="228" textLength="41" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
validate
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="526,230 528,230 528,239 526,239"/>
|
|
||||||
<text x="527" y="239" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="246" x2="132" y2="274" stroke="black"/>
|
|
||||||
<line x1="396" y1="246" x2="396" y2="274" stroke="black"/>
|
|
||||||
<line x1="660" y1="246" x2="660" y2="274" stroke="black"/>
|
|
||||||
<line x1="924" y1="246" x2="924" y2="274" stroke="black"/>
|
|
||||||
<line x1="1188" y1="246" x2="1188" y2="274" stroke="black"/>
|
|
||||||
<line x1="396" y1="257" x2="132" y2="257" stroke="black"/>
|
|
||||||
<polygon fill="black" points="132,257 142,263 142,251"/>
|
|
||||||
<polygon fill="white" points="236,247 291,247 291,256 236,256"/>
|
|
||||||
<text x="237" y="256" textLength="53" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
sign(vote)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="274" x2="132" y2="302" stroke="black"/>
|
|
||||||
<line x1="396" y1="274" x2="396" y2="302" stroke="black"/>
|
|
||||||
<line x1="660" y1="274" x2="660" y2="302" stroke="black"/>
|
|
||||||
<line x1="924" y1="274" x2="924" y2="302" stroke="black"/>
|
|
||||||
<line x1="1188" y1="274" x2="1188" y2="302" stroke="black"/>
|
|
||||||
<line x1="132" y1="285" x2="396" y2="285" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<polygon fill="black" points="396,285 386,291 386,279"/>
|
|
||||||
<polygon fill="white" points="232,275 295,275 295,284 232,284"/>
|
|
||||||
<text x="233" y="284" textLength="61" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
signed vote
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="302" x2="132" y2="330" stroke="black"/>
|
|
||||||
<line x1="396" y1="302" x2="396" y2="330" stroke="black"/>
|
|
||||||
<line x1="660" y1="302" x2="660" y2="330" stroke="black"/>
|
|
||||||
<line x1="924" y1="302" x2="924" y2="330" stroke="black"/>
|
|
||||||
<line x1="1188" y1="302" x2="1188" y2="330" stroke="black"/>
|
|
||||||
<line x1="396" y1="313" x2="660" y2="313" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,313 650,319 650,307"/>
|
|
||||||
<polygon fill="white" points="494,303 561,303 561,312 494,312"/>
|
|
||||||
<text x="495" y="312" textLength="65" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
gossip(vote)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="330" x2="132" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="396" y1="330" x2="396" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="660" y1="330" x2="660" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="924" y1="330" x2="924" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="1188" y1="330" x2="1188" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="132" y1="347" x2="132" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="396" y1="347" x2="396" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="660" y1="347" x2="660" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="924" y1="347" x2="924" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="1188" y1="347" x2="1188" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="132" y1="364" x2="132" y2="414" stroke="black"/>
|
|
||||||
<line x1="396" y1="364" x2="396" y2="414" stroke="black"/>
|
|
||||||
<line x1="660" y1="364" x2="660" y2="414" stroke="black"/>
|
|
||||||
<line x1="924" y1="364" x2="924" y2="414" stroke="black"/>
|
|
||||||
<line x1="1188" y1="364" x2="1188" y2="414" stroke="black"/>
|
|
||||||
<polygon fill="white" points="278,364 514,364 514,408 278,408"/>
|
|
||||||
<polygon fill="white" points="278,364 278,408 272,386"/>
|
|
||||||
<polygon fill="white" points="514,364 514,408 520,386"/>
|
|
||||||
<line x1="278" y1="364" x2="514" y2="364" stroke="black"/>
|
|
||||||
<line x1="278" y1="408" x2="514" y2="408" stroke="black"/>
|
|
||||||
<line x1="278" y1="364" x2="272" y2="386" stroke="black"/>
|
|
||||||
<line x1="272" y1="386" x2="278" y2="408" stroke="black"/>
|
|
||||||
<line x1="514" y1="364" x2="520" y2="386" stroke="black"/>
|
|
||||||
<line x1="520" y1="386" x2="514" y2="408" stroke="black"/>
|
|
||||||
<polygon fill="white" points="394,365 396,365 396,374 394,374"/>
|
|
||||||
<text x="395" y="374" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="383,376 408,376 408,385 383,385"/>
|
|
||||||
<text x="384" y="385" textLength="23" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
max
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="375,387 415,387 415,396 375,396"/>
|
|
||||||
<text x="376" y="396" textLength="38" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
lockout
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="394,398 396,398 396,407 394,407"/>
|
|
||||||
<text x="395" y="407" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="414" x2="132" y2="431" stroke="black"/>
|
|
||||||
<line x1="396" y1="414" x2="396" y2="431" stroke="black"/>
|
|
||||||
<line x1="660" y1="414" x2="660" y2="431" stroke="black"/>
|
|
||||||
<line x1="924" y1="414" x2="924" y2="431" stroke="black"/>
|
|
||||||
<line x1="1188" y1="414" x2="1188" y2="431" stroke="black"/>
|
|
||||||
<line x1="132" y1="431" x2="132" y2="459" stroke="black"/>
|
|
||||||
<line x1="396" y1="431" x2="396" y2="459" stroke="black"/>
|
|
||||||
<line x1="660" y1="431" x2="660" y2="459" stroke="black"/>
|
|
||||||
<line x1="924" y1="431" x2="924" y2="459" stroke="black"/>
|
|
||||||
<line x1="1188" y1="431" x2="1188" y2="459" stroke="black"/>
|
|
||||||
<line x1="924" y1="442" x2="660" y2="442" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,442 670,448 670,436"/>
|
|
||||||
<polygon fill="white" points="712,432 871,432 871,441 712,441"/>
|
|
||||||
<text x="713" y="441" textLength="157" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::RedeemCredits()
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="459" x2="132" y2="487" stroke="black"/>
|
|
||||||
<line x1="396" y1="459" x2="396" y2="487" stroke="black"/>
|
|
||||||
<line x1="660" y1="459" x2="660" y2="487" stroke="black"/>
|
|
||||||
<line x1="924" y1="459" x2="924" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="459" x2="1188" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="470" x2="660" y2="470" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,470 670,476 670,464"/>
|
|
||||||
<polygon fill="white" points="844,460 1003,460 1003,469 844,469"/>
|
|
||||||
<text x="845" y="469" textLength="157" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::RedeemCredits()
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="481" x2="132" y2="487" stroke="black"/>
|
|
||||||
<line x1="396" y1="481" x2="396" y2="487" stroke="black"/>
|
|
||||||
<line x1="660" y1="481" x2="660" y2="487" stroke="black"/>
|
|
||||||
<line x1="924" y1="481" x2="924" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="481" x2="1188" y2="487" stroke="black"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 12 KiB |
@ -1,238 +0,0 @@
|
|||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1"
|
|
||||||
width="1320px" height="487px"
|
|
||||||
viewBox="0 0 1320 487"
|
|
||||||
xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges"
|
|
||||||
stroke-width="1" text-rendering="geometricPrecision">
|
|
||||||
<polygon fill="white" points="101,7 161,7 161,16 101,16"/>
|
|
||||||
<text x="132" y="16" textLength="59" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
VoteSigner
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="371,7 419,7 419,16 371,16"/>
|
|
||||||
<text x="396" y="16" textLength="47" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="639,7 679,7 679,16 639,16"/>
|
|
||||||
<text x="660" y="16" textLength="38" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
Cluster
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="901,7 945,7 945,16 901,16"/>
|
|
||||||
<text x="924" y="16" textLength="43" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
StakerX
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="1165,7 1209,7 1209,16 1165,16"/>
|
|
||||||
<text x="1188" y="16" textLength="43" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
StakerY
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="22" x2="132" y2="39" stroke="black"/>
|
|
||||||
<line x1="396" y1="22" x2="396" y2="39" stroke="black"/>
|
|
||||||
<line x1="660" y1="22" x2="660" y2="39" stroke="black"/>
|
|
||||||
<line x1="924" y1="22" x2="924" y2="39" stroke="black"/>
|
|
||||||
<line x1="1188" y1="22" x2="1188" y2="39" stroke="black"/>
|
|
||||||
<line x1="132" y1="39" x2="132" y2="67" stroke="black"/>
|
|
||||||
<line x1="396" y1="39" x2="396" y2="67" stroke="black"/>
|
|
||||||
<line x1="660" y1="39" x2="660" y2="67" stroke="black"/>
|
|
||||||
<line x1="924" y1="39" x2="924" y2="67" stroke="black"/>
|
|
||||||
<line x1="1188" y1="39" x2="1188" y2="67" stroke="black"/>
|
|
||||||
<polygon fill="white" points="272,39 520,39 520,61 272,61"/>
|
|
||||||
<line x1="272" y1="39" x2="520" y2="39" stroke="black"/>
|
|
||||||
<line x1="272" y1="61" x2="520" y2="61" stroke="black"/>
|
|
||||||
<line x1="272" y1="39" x2="272" y2="61" stroke="black"/>
|
|
||||||
<line x1="520" y1="39" x2="520" y2="61" stroke="black"/>
|
|
||||||
<polygon fill="white" points="379,46 411,46 411,55 379,55"/>
|
|
||||||
<text x="380" y="55" textLength="30" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
boot..
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="67" x2="132" y2="106" stroke="black"/>
|
|
||||||
<line x1="396" y1="67" x2="396" y2="106" stroke="black"/>
|
|
||||||
<line x1="660" y1="67" x2="660" y2="106" stroke="black"/>
|
|
||||||
<line x1="924" y1="67" x2="924" y2="106" stroke="black"/>
|
|
||||||
<line x1="1188" y1="67" x2="1188" y2="106" stroke="black"/>
|
|
||||||
<line x1="132" y1="82" x2="396" y2="82" stroke="black"/>
|
|
||||||
<line x1="132" y1="84" x2="396" y2="84" stroke="black"/>
|
|
||||||
<polygon fill="black" points="396,83 386,89 386,77"/>
|
|
||||||
<polygon fill="black" points="132,83 142,89 142,77"/>
|
|
||||||
<polygon fill="white" points="242,68 284,68 284,77 242,77"/>
|
|
||||||
<text x="243" y="77" textLength="40" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
register
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="262,79 264,79 264,88 262,88"/>
|
|
||||||
<text x="263" y="88" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="237,90 289,90 289,99 237,99"/>
|
|
||||||
<text x="238" y="99" textLength="50" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
(optional)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="106" x2="132" y2="134" stroke="black"/>
|
|
||||||
<line x1="396" y1="106" x2="396" y2="134" stroke="black"/>
|
|
||||||
<line x1="660" y1="106" x2="660" y2="134" stroke="black"/>
|
|
||||||
<line x1="924" y1="106" x2="924" y2="134" stroke="black"/>
|
|
||||||
<line x1="1188" y1="106" x2="1188" y2="134" stroke="black"/>
|
|
||||||
<line x1="396" y1="117" x2="660" y2="117" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,117 650,123 650,111"/>
|
|
||||||
<polygon fill="white" points="441,107 613,107 613,116 441,116"/>
|
|
||||||
<text x="442" y="116" textLength="170" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
VoteState::Initialize(VoteSigner)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="134" x2="132" y2="162" stroke="black"/>
|
|
||||||
<line x1="396" y1="134" x2="396" y2="162" stroke="black"/>
|
|
||||||
<line x1="660" y1="134" x2="660" y2="162" stroke="black"/>
|
|
||||||
<line x1="924" y1="134" x2="924" y2="162" stroke="black"/>
|
|
||||||
<line x1="1188" y1="134" x2="1188" y2="162" stroke="black"/>
|
|
||||||
<line x1="924" y1="145" x2="660" y2="145" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,145 670,151 670,139"/>
|
|
||||||
<polygon fill="white" points="706,135 877,135 877,144 706,144"/>
|
|
||||||
<text x="707" y="144" textLength="169" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::Delegate(Validator)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="162" x2="132" y2="190" stroke="black"/>
|
|
||||||
<line x1="396" y1="162" x2="396" y2="190" stroke="black"/>
|
|
||||||
<line x1="660" y1="162" x2="660" y2="190" stroke="black"/>
|
|
||||||
<line x1="924" y1="162" x2="924" y2="190" stroke="black"/>
|
|
||||||
<line x1="1188" y1="162" x2="1188" y2="190" stroke="black"/>
|
|
||||||
<line x1="1188" y1="173" x2="660" y2="173" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,173 670,179 670,167"/>
|
|
||||||
<polygon fill="white" points="838,163 1009,163 1009,172 838,172"/>
|
|
||||||
<text x="839" y="172" textLength="169" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::Delegate(Validator)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="190" x2="132" y2="207" stroke="black"/>
|
|
||||||
<line x1="396" y1="190" x2="396" y2="207" stroke="black"/>
|
|
||||||
<line x1="660" y1="190" x2="660" y2="207" stroke="black"/>
|
|
||||||
<line x1="924" y1="190" x2="924" y2="207" stroke="black"/>
|
|
||||||
<line x1="1188" y1="190" x2="1188" y2="207" stroke="black"/>
|
|
||||||
<line x1="132" y1="207" x2="132" y2="246" stroke="black"/>
|
|
||||||
<line x1="396" y1="207" x2="396" y2="246" stroke="black"/>
|
|
||||||
<line x1="660" y1="207" x2="660" y2="246" stroke="black"/>
|
|
||||||
<line x1="924" y1="207" x2="924" y2="246" stroke="black"/>
|
|
||||||
<line x1="1188" y1="207" x2="1188" y2="246" stroke="black"/>
|
|
||||||
<polygon fill="white" points="272,207 784,207 784,240 272,240"/>
|
|
||||||
<line x1="272" y1="207" x2="784" y2="207" stroke="black"/>
|
|
||||||
<line x1="272" y1="240" x2="784" y2="240" stroke="black"/>
|
|
||||||
<line x1="272" y1="207" x2="272" y2="240" stroke="black"/>
|
|
||||||
<line x1="784" y1="207" x2="784" y2="240" stroke="black"/>
|
|
||||||
<polygon fill="white" points="526,208 528,208 528,217 526,217"/>
|
|
||||||
<text x="527" y="217" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="506,219 549,219 549,228 506,228"/>
|
|
||||||
<text x="507" y="228" textLength="41" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
validate
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="526,230 528,230 528,239 526,239"/>
|
|
||||||
<text x="527" y="239" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="246" x2="132" y2="274" stroke="black"/>
|
|
||||||
<line x1="396" y1="246" x2="396" y2="274" stroke="black"/>
|
|
||||||
<line x1="660" y1="246" x2="660" y2="274" stroke="black"/>
|
|
||||||
<line x1="924" y1="246" x2="924" y2="274" stroke="black"/>
|
|
||||||
<line x1="1188" y1="246" x2="1188" y2="274" stroke="black"/>
|
|
||||||
<line x1="396" y1="257" x2="132" y2="257" stroke="black"/>
|
|
||||||
<polygon fill="black" points="132,257 142,263 142,251"/>
|
|
||||||
<polygon fill="white" points="236,247 291,247 291,256 236,256"/>
|
|
||||||
<text x="237" y="256" textLength="53" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
sign(vote)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="274" x2="132" y2="302" stroke="black"/>
|
|
||||||
<line x1="396" y1="274" x2="396" y2="302" stroke="black"/>
|
|
||||||
<line x1="660" y1="274" x2="660" y2="302" stroke="black"/>
|
|
||||||
<line x1="924" y1="274" x2="924" y2="302" stroke="black"/>
|
|
||||||
<line x1="1188" y1="274" x2="1188" y2="302" stroke="black"/>
|
|
||||||
<line x1="132" y1="285" x2="396" y2="285" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<polygon fill="black" points="396,285 386,291 386,279"/>
|
|
||||||
<polygon fill="white" points="232,275 295,275 295,284 232,284"/>
|
|
||||||
<text x="233" y="284" textLength="61" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
signed vote
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="302" x2="132" y2="330" stroke="black"/>
|
|
||||||
<line x1="396" y1="302" x2="396" y2="330" stroke="black"/>
|
|
||||||
<line x1="660" y1="302" x2="660" y2="330" stroke="black"/>
|
|
||||||
<line x1="924" y1="302" x2="924" y2="330" stroke="black"/>
|
|
||||||
<line x1="1188" y1="302" x2="1188" y2="330" stroke="black"/>
|
|
||||||
<line x1="396" y1="313" x2="660" y2="313" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,313 650,319 650,307"/>
|
|
||||||
<polygon fill="white" points="494,303 561,303 561,312 494,312"/>
|
|
||||||
<text x="495" y="312" textLength="65" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
gossip(vote)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="330" x2="132" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="396" y1="330" x2="396" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="660" y1="330" x2="660" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="924" y1="330" x2="924" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="1188" y1="330" x2="1188" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="132" y1="347" x2="132" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="396" y1="347" x2="396" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="660" y1="347" x2="660" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="924" y1="347" x2="924" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="1188" y1="347" x2="1188" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="132" y1="364" x2="132" y2="414" stroke="black"/>
|
|
||||||
<line x1="396" y1="364" x2="396" y2="414" stroke="black"/>
|
|
||||||
<line x1="660" y1="364" x2="660" y2="414" stroke="black"/>
|
|
||||||
<line x1="924" y1="364" x2="924" y2="414" stroke="black"/>
|
|
||||||
<line x1="1188" y1="364" x2="1188" y2="414" stroke="black"/>
|
|
||||||
<polygon fill="white" points="278,364 514,364 514,408 278,408"/>
|
|
||||||
<polygon fill="white" points="278,364 278,408 272,386"/>
|
|
||||||
<polygon fill="white" points="514,364 514,408 520,386"/>
|
|
||||||
<line x1="278" y1="364" x2="514" y2="364" stroke="black"/>
|
|
||||||
<line x1="278" y1="408" x2="514" y2="408" stroke="black"/>
|
|
||||||
<line x1="278" y1="364" x2="272" y2="386" stroke="black"/>
|
|
||||||
<line x1="272" y1="386" x2="278" y2="408" stroke="black"/>
|
|
||||||
<line x1="514" y1="364" x2="520" y2="386" stroke="black"/>
|
|
||||||
<line x1="520" y1="386" x2="514" y2="408" stroke="black"/>
|
|
||||||
<polygon fill="white" points="394,365 396,365 396,374 394,374"/>
|
|
||||||
<text x="395" y="374" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="383,376 408,376 408,385 383,385"/>
|
|
||||||
<text x="384" y="385" textLength="23" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
max
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="375,387 415,387 415,396 375,396"/>
|
|
||||||
<text x="376" y="396" textLength="38" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
lockout
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="394,398 396,398 396,407 394,407"/>
|
|
||||||
<text x="395" y="407" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="414" x2="132" y2="431" stroke="black"/>
|
|
||||||
<line x1="396" y1="414" x2="396" y2="431" stroke="black"/>
|
|
||||||
<line x1="660" y1="414" x2="660" y2="431" stroke="black"/>
|
|
||||||
<line x1="924" y1="414" x2="924" y2="431" stroke="black"/>
|
|
||||||
<line x1="1188" y1="414" x2="1188" y2="431" stroke="black"/>
|
|
||||||
<line x1="132" y1="431" x2="132" y2="459" stroke="black"/>
|
|
||||||
<line x1="396" y1="431" x2="396" y2="459" stroke="black"/>
|
|
||||||
<line x1="660" y1="431" x2="660" y2="459" stroke="black"/>
|
|
||||||
<line x1="924" y1="431" x2="924" y2="459" stroke="black"/>
|
|
||||||
<line x1="1188" y1="431" x2="1188" y2="459" stroke="black"/>
|
|
||||||
<line x1="924" y1="442" x2="660" y2="442" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,442 670,448 670,436"/>
|
|
||||||
<polygon fill="white" points="712,432 871,432 871,441 712,441"/>
|
|
||||||
<text x="713" y="441" textLength="157" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::RedeemCredits()
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="459" x2="132" y2="487" stroke="black"/>
|
|
||||||
<line x1="396" y1="459" x2="396" y2="487" stroke="black"/>
|
|
||||||
<line x1="660" y1="459" x2="660" y2="487" stroke="black"/>
|
|
||||||
<line x1="924" y1="459" x2="924" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="459" x2="1188" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="470" x2="660" y2="470" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,470 670,476 670,464"/>
|
|
||||||
<polygon fill="white" points="844,460 1003,460 1003,469 844,469"/>
|
|
||||||
<text x="845" y="469" textLength="157" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::RedeemCredits()
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="481" x2="132" y2="487" stroke="black"/>
|
|
||||||
<line x1="396" y1="481" x2="396" y2="487" stroke="black"/>
|
|
||||||
<line x1="660" y1="481" x2="660" y2="487" stroke="black"/>
|
|
||||||
<line x1="924" y1="481" x2="924" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="481" x2="1188" y2="487" stroke="black"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 12 KiB |
@ -1,238 +0,0 @@
|
|||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1"
|
|
||||||
width="1320px" height="487px"
|
|
||||||
viewBox="0 0 1320 487"
|
|
||||||
xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges"
|
|
||||||
stroke-width="1" text-rendering="geometricPrecision">
|
|
||||||
<polygon fill="white" points="101,7 161,7 161,16 101,16"/>
|
|
||||||
<text x="132" y="16" textLength="59" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
VoteSigner
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="371,7 419,7 419,16 371,16"/>
|
|
||||||
<text x="396" y="16" textLength="47" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="639,7 679,7 679,16 639,16"/>
|
|
||||||
<text x="660" y="16" textLength="38" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
Cluster
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="901,7 945,7 945,16 901,16"/>
|
|
||||||
<text x="924" y="16" textLength="43" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
StakerX
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="1165,7 1209,7 1209,16 1165,16"/>
|
|
||||||
<text x="1188" y="16" textLength="43" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
StakerY
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="22" x2="132" y2="39" stroke="black"/>
|
|
||||||
<line x1="396" y1="22" x2="396" y2="39" stroke="black"/>
|
|
||||||
<line x1="660" y1="22" x2="660" y2="39" stroke="black"/>
|
|
||||||
<line x1="924" y1="22" x2="924" y2="39" stroke="black"/>
|
|
||||||
<line x1="1188" y1="22" x2="1188" y2="39" stroke="black"/>
|
|
||||||
<line x1="132" y1="39" x2="132" y2="67" stroke="black"/>
|
|
||||||
<line x1="396" y1="39" x2="396" y2="67" stroke="black"/>
|
|
||||||
<line x1="660" y1="39" x2="660" y2="67" stroke="black"/>
|
|
||||||
<line x1="924" y1="39" x2="924" y2="67" stroke="black"/>
|
|
||||||
<line x1="1188" y1="39" x2="1188" y2="67" stroke="black"/>
|
|
||||||
<polygon fill="white" points="272,39 520,39 520,61 272,61"/>
|
|
||||||
<line x1="272" y1="39" x2="520" y2="39" stroke="black"/>
|
|
||||||
<line x1="272" y1="61" x2="520" y2="61" stroke="black"/>
|
|
||||||
<line x1="272" y1="39" x2="272" y2="61" stroke="black"/>
|
|
||||||
<line x1="520" y1="39" x2="520" y2="61" stroke="black"/>
|
|
||||||
<polygon fill="white" points="379,46 411,46 411,55 379,55"/>
|
|
||||||
<text x="380" y="55" textLength="30" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
boot..
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="67" x2="132" y2="106" stroke="black"/>
|
|
||||||
<line x1="396" y1="67" x2="396" y2="106" stroke="black"/>
|
|
||||||
<line x1="660" y1="67" x2="660" y2="106" stroke="black"/>
|
|
||||||
<line x1="924" y1="67" x2="924" y2="106" stroke="black"/>
|
|
||||||
<line x1="1188" y1="67" x2="1188" y2="106" stroke="black"/>
|
|
||||||
<line x1="132" y1="82" x2="396" y2="82" stroke="black"/>
|
|
||||||
<line x1="132" y1="84" x2="396" y2="84" stroke="black"/>
|
|
||||||
<polygon fill="black" points="396,83 386,89 386,77"/>
|
|
||||||
<polygon fill="black" points="132,83 142,89 142,77"/>
|
|
||||||
<polygon fill="white" points="242,68 284,68 284,77 242,77"/>
|
|
||||||
<text x="243" y="77" textLength="40" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
register
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="262,79 264,79 264,88 262,88"/>
|
|
||||||
<text x="263" y="88" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="237,90 289,90 289,99 237,99"/>
|
|
||||||
<text x="238" y="99" textLength="50" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
(optional)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="106" x2="132" y2="134" stroke="black"/>
|
|
||||||
<line x1="396" y1="106" x2="396" y2="134" stroke="black"/>
|
|
||||||
<line x1="660" y1="106" x2="660" y2="134" stroke="black"/>
|
|
||||||
<line x1="924" y1="106" x2="924" y2="134" stroke="black"/>
|
|
||||||
<line x1="1188" y1="106" x2="1188" y2="134" stroke="black"/>
|
|
||||||
<line x1="396" y1="117" x2="660" y2="117" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,117 650,123 650,111"/>
|
|
||||||
<polygon fill="white" points="441,107 613,107 613,116 441,116"/>
|
|
||||||
<text x="442" y="116" textLength="170" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
VoteState::Initialize(VoteSigner)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="134" x2="132" y2="162" stroke="black"/>
|
|
||||||
<line x1="396" y1="134" x2="396" y2="162" stroke="black"/>
|
|
||||||
<line x1="660" y1="134" x2="660" y2="162" stroke="black"/>
|
|
||||||
<line x1="924" y1="134" x2="924" y2="162" stroke="black"/>
|
|
||||||
<line x1="1188" y1="134" x2="1188" y2="162" stroke="black"/>
|
|
||||||
<line x1="924" y1="145" x2="660" y2="145" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,145 670,151 670,139"/>
|
|
||||||
<polygon fill="white" points="706,135 877,135 877,144 706,144"/>
|
|
||||||
<text x="707" y="144" textLength="169" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::Delegate(Validator)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="162" x2="132" y2="190" stroke="black"/>
|
|
||||||
<line x1="396" y1="162" x2="396" y2="190" stroke="black"/>
|
|
||||||
<line x1="660" y1="162" x2="660" y2="190" stroke="black"/>
|
|
||||||
<line x1="924" y1="162" x2="924" y2="190" stroke="black"/>
|
|
||||||
<line x1="1188" y1="162" x2="1188" y2="190" stroke="black"/>
|
|
||||||
<line x1="1188" y1="173" x2="660" y2="173" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,173 670,179 670,167"/>
|
|
||||||
<polygon fill="white" points="838,163 1009,163 1009,172 838,172"/>
|
|
||||||
<text x="839" y="172" textLength="169" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::Delegate(Validator)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="190" x2="132" y2="207" stroke="black"/>
|
|
||||||
<line x1="396" y1="190" x2="396" y2="207" stroke="black"/>
|
|
||||||
<line x1="660" y1="190" x2="660" y2="207" stroke="black"/>
|
|
||||||
<line x1="924" y1="190" x2="924" y2="207" stroke="black"/>
|
|
||||||
<line x1="1188" y1="190" x2="1188" y2="207" stroke="black"/>
|
|
||||||
<line x1="132" y1="207" x2="132" y2="246" stroke="black"/>
|
|
||||||
<line x1="396" y1="207" x2="396" y2="246" stroke="black"/>
|
|
||||||
<line x1="660" y1="207" x2="660" y2="246" stroke="black"/>
|
|
||||||
<line x1="924" y1="207" x2="924" y2="246" stroke="black"/>
|
|
||||||
<line x1="1188" y1="207" x2="1188" y2="246" stroke="black"/>
|
|
||||||
<polygon fill="white" points="272,207 784,207 784,240 272,240"/>
|
|
||||||
<line x1="272" y1="207" x2="784" y2="207" stroke="black"/>
|
|
||||||
<line x1="272" y1="240" x2="784" y2="240" stroke="black"/>
|
|
||||||
<line x1="272" y1="207" x2="272" y2="240" stroke="black"/>
|
|
||||||
<line x1="784" y1="207" x2="784" y2="240" stroke="black"/>
|
|
||||||
<polygon fill="white" points="526,208 528,208 528,217 526,217"/>
|
|
||||||
<text x="527" y="217" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="506,219 549,219 549,228 506,228"/>
|
|
||||||
<text x="507" y="228" textLength="41" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
validate
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="526,230 528,230 528,239 526,239"/>
|
|
||||||
<text x="527" y="239" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="246" x2="132" y2="274" stroke="black"/>
|
|
||||||
<line x1="396" y1="246" x2="396" y2="274" stroke="black"/>
|
|
||||||
<line x1="660" y1="246" x2="660" y2="274" stroke="black"/>
|
|
||||||
<line x1="924" y1="246" x2="924" y2="274" stroke="black"/>
|
|
||||||
<line x1="1188" y1="246" x2="1188" y2="274" stroke="black"/>
|
|
||||||
<line x1="396" y1="257" x2="132" y2="257" stroke="black"/>
|
|
||||||
<polygon fill="black" points="132,257 142,263 142,251"/>
|
|
||||||
<polygon fill="white" points="236,247 291,247 291,256 236,256"/>
|
|
||||||
<text x="237" y="256" textLength="53" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
sign(vote)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="274" x2="132" y2="302" stroke="black"/>
|
|
||||||
<line x1="396" y1="274" x2="396" y2="302" stroke="black"/>
|
|
||||||
<line x1="660" y1="274" x2="660" y2="302" stroke="black"/>
|
|
||||||
<line x1="924" y1="274" x2="924" y2="302" stroke="black"/>
|
|
||||||
<line x1="1188" y1="274" x2="1188" y2="302" stroke="black"/>
|
|
||||||
<line x1="132" y1="285" x2="396" y2="285" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<polygon fill="black" points="396,285 386,291 386,279"/>
|
|
||||||
<polygon fill="white" points="232,275 295,275 295,284 232,284"/>
|
|
||||||
<text x="233" y="284" textLength="61" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
signed vote
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="302" x2="132" y2="330" stroke="black"/>
|
|
||||||
<line x1="396" y1="302" x2="396" y2="330" stroke="black"/>
|
|
||||||
<line x1="660" y1="302" x2="660" y2="330" stroke="black"/>
|
|
||||||
<line x1="924" y1="302" x2="924" y2="330" stroke="black"/>
|
|
||||||
<line x1="1188" y1="302" x2="1188" y2="330" stroke="black"/>
|
|
||||||
<line x1="396" y1="313" x2="660" y2="313" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,313 650,319 650,307"/>
|
|
||||||
<polygon fill="white" points="494,303 561,303 561,312 494,312"/>
|
|
||||||
<text x="495" y="312" textLength="65" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
gossip(vote)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="330" x2="132" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="396" y1="330" x2="396" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="660" y1="330" x2="660" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="924" y1="330" x2="924" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="1188" y1="330" x2="1188" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="132" y1="347" x2="132" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="396" y1="347" x2="396" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="660" y1="347" x2="660" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="924" y1="347" x2="924" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="1188" y1="347" x2="1188" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="132" y1="364" x2="132" y2="414" stroke="black"/>
|
|
||||||
<line x1="396" y1="364" x2="396" y2="414" stroke="black"/>
|
|
||||||
<line x1="660" y1="364" x2="660" y2="414" stroke="black"/>
|
|
||||||
<line x1="924" y1="364" x2="924" y2="414" stroke="black"/>
|
|
||||||
<line x1="1188" y1="364" x2="1188" y2="414" stroke="black"/>
|
|
||||||
<polygon fill="white" points="278,364 514,364 514,408 278,408"/>
|
|
||||||
<polygon fill="white" points="278,364 278,408 272,386"/>
|
|
||||||
<polygon fill="white" points="514,364 514,408 520,386"/>
|
|
||||||
<line x1="278" y1="364" x2="514" y2="364" stroke="black"/>
|
|
||||||
<line x1="278" y1="408" x2="514" y2="408" stroke="black"/>
|
|
||||||
<line x1="278" y1="364" x2="272" y2="386" stroke="black"/>
|
|
||||||
<line x1="272" y1="386" x2="278" y2="408" stroke="black"/>
|
|
||||||
<line x1="514" y1="364" x2="520" y2="386" stroke="black"/>
|
|
||||||
<line x1="520" y1="386" x2="514" y2="408" stroke="black"/>
|
|
||||||
<polygon fill="white" points="394,365 396,365 396,374 394,374"/>
|
|
||||||
<text x="395" y="374" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="383,376 408,376 408,385 383,385"/>
|
|
||||||
<text x="384" y="385" textLength="23" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
max
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="375,387 415,387 415,396 375,396"/>
|
|
||||||
<text x="376" y="396" textLength="38" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
lockout
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="394,398 396,398 396,407 394,407"/>
|
|
||||||
<text x="395" y="407" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="414" x2="132" y2="431" stroke="black"/>
|
|
||||||
<line x1="396" y1="414" x2="396" y2="431" stroke="black"/>
|
|
||||||
<line x1="660" y1="414" x2="660" y2="431" stroke="black"/>
|
|
||||||
<line x1="924" y1="414" x2="924" y2="431" stroke="black"/>
|
|
||||||
<line x1="1188" y1="414" x2="1188" y2="431" stroke="black"/>
|
|
||||||
<line x1="132" y1="431" x2="132" y2="459" stroke="black"/>
|
|
||||||
<line x1="396" y1="431" x2="396" y2="459" stroke="black"/>
|
|
||||||
<line x1="660" y1="431" x2="660" y2="459" stroke="black"/>
|
|
||||||
<line x1="924" y1="431" x2="924" y2="459" stroke="black"/>
|
|
||||||
<line x1="1188" y1="431" x2="1188" y2="459" stroke="black"/>
|
|
||||||
<line x1="924" y1="442" x2="660" y2="442" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,442 670,448 670,436"/>
|
|
||||||
<polygon fill="white" points="712,432 871,432 871,441 712,441"/>
|
|
||||||
<text x="713" y="441" textLength="157" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::RedeemCredits()
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="459" x2="132" y2="487" stroke="black"/>
|
|
||||||
<line x1="396" y1="459" x2="396" y2="487" stroke="black"/>
|
|
||||||
<line x1="660" y1="459" x2="660" y2="487" stroke="black"/>
|
|
||||||
<line x1="924" y1="459" x2="924" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="459" x2="1188" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="470" x2="660" y2="470" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,470 670,476 670,464"/>
|
|
||||||
<polygon fill="white" points="844,460 1003,460 1003,469 844,469"/>
|
|
||||||
<text x="845" y="469" textLength="157" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::RedeemCredits()
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="481" x2="132" y2="487" stroke="black"/>
|
|
||||||
<line x1="396" y1="481" x2="396" y2="487" stroke="black"/>
|
|
||||||
<line x1="660" y1="481" x2="660" y2="487" stroke="black"/>
|
|
||||||
<line x1="924" y1="481" x2="924" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="481" x2="1188" y2="487" stroke="black"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 12 KiB |
@ -1,238 +0,0 @@
|
|||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1"
|
|
||||||
width="1320px" height="487px"
|
|
||||||
viewBox="0 0 1320 487"
|
|
||||||
xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges"
|
|
||||||
stroke-width="1" text-rendering="geometricPrecision">
|
|
||||||
<polygon fill="white" points="101,7 161,7 161,16 101,16"/>
|
|
||||||
<text x="132" y="16" textLength="59" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
VoteSigner
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="371,7 419,7 419,16 371,16"/>
|
|
||||||
<text x="396" y="16" textLength="47" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
Validator
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="639,7 679,7 679,16 639,16"/>
|
|
||||||
<text x="660" y="16" textLength="38" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
Cluster
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="901,7 945,7 945,16 901,16"/>
|
|
||||||
<text x="924" y="16" textLength="43" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
StakerX
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="1165,7 1209,7 1209,16 1165,16"/>
|
|
||||||
<text x="1188" y="16" textLength="43" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
|
|
||||||
|
|
||||||
StakerY
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="22" x2="132" y2="39" stroke="black"/>
|
|
||||||
<line x1="396" y1="22" x2="396" y2="39" stroke="black"/>
|
|
||||||
<line x1="660" y1="22" x2="660" y2="39" stroke="black"/>
|
|
||||||
<line x1="924" y1="22" x2="924" y2="39" stroke="black"/>
|
|
||||||
<line x1="1188" y1="22" x2="1188" y2="39" stroke="black"/>
|
|
||||||
<line x1="132" y1="39" x2="132" y2="67" stroke="black"/>
|
|
||||||
<line x1="396" y1="39" x2="396" y2="67" stroke="black"/>
|
|
||||||
<line x1="660" y1="39" x2="660" y2="67" stroke="black"/>
|
|
||||||
<line x1="924" y1="39" x2="924" y2="67" stroke="black"/>
|
|
||||||
<line x1="1188" y1="39" x2="1188" y2="67" stroke="black"/>
|
|
||||||
<polygon fill="white" points="272,39 520,39 520,61 272,61"/>
|
|
||||||
<line x1="272" y1="39" x2="520" y2="39" stroke="black"/>
|
|
||||||
<line x1="272" y1="61" x2="520" y2="61" stroke="black"/>
|
|
||||||
<line x1="272" y1="39" x2="272" y2="61" stroke="black"/>
|
|
||||||
<line x1="520" y1="39" x2="520" y2="61" stroke="black"/>
|
|
||||||
<polygon fill="white" points="379,46 411,46 411,55 379,55"/>
|
|
||||||
<text x="380" y="55" textLength="30" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
boot..
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="67" x2="132" y2="106" stroke="black"/>
|
|
||||||
<line x1="396" y1="67" x2="396" y2="106" stroke="black"/>
|
|
||||||
<line x1="660" y1="67" x2="660" y2="106" stroke="black"/>
|
|
||||||
<line x1="924" y1="67" x2="924" y2="106" stroke="black"/>
|
|
||||||
<line x1="1188" y1="67" x2="1188" y2="106" stroke="black"/>
|
|
||||||
<line x1="132" y1="82" x2="396" y2="82" stroke="black"/>
|
|
||||||
<line x1="132" y1="84" x2="396" y2="84" stroke="black"/>
|
|
||||||
<polygon fill="black" points="396,83 386,89 386,77"/>
|
|
||||||
<polygon fill="black" points="132,83 142,89 142,77"/>
|
|
||||||
<polygon fill="white" points="242,68 284,68 284,77 242,77"/>
|
|
||||||
<text x="243" y="77" textLength="40" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
register
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="262,79 264,79 264,88 262,88"/>
|
|
||||||
<text x="263" y="88" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="237,90 289,90 289,99 237,99"/>
|
|
||||||
<text x="238" y="99" textLength="50" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
(optional)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="106" x2="132" y2="134" stroke="black"/>
|
|
||||||
<line x1="396" y1="106" x2="396" y2="134" stroke="black"/>
|
|
||||||
<line x1="660" y1="106" x2="660" y2="134" stroke="black"/>
|
|
||||||
<line x1="924" y1="106" x2="924" y2="134" stroke="black"/>
|
|
||||||
<line x1="1188" y1="106" x2="1188" y2="134" stroke="black"/>
|
|
||||||
<line x1="396" y1="117" x2="660" y2="117" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,117 650,123 650,111"/>
|
|
||||||
<polygon fill="white" points="441,107 613,107 613,116 441,116"/>
|
|
||||||
<text x="442" y="116" textLength="170" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
VoteState::Initialize(VoteSigner)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="134" x2="132" y2="162" stroke="black"/>
|
|
||||||
<line x1="396" y1="134" x2="396" y2="162" stroke="black"/>
|
|
||||||
<line x1="660" y1="134" x2="660" y2="162" stroke="black"/>
|
|
||||||
<line x1="924" y1="134" x2="924" y2="162" stroke="black"/>
|
|
||||||
<line x1="1188" y1="134" x2="1188" y2="162" stroke="black"/>
|
|
||||||
<line x1="924" y1="145" x2="660" y2="145" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,145 670,151 670,139"/>
|
|
||||||
<polygon fill="white" points="706,135 877,135 877,144 706,144"/>
|
|
||||||
<text x="707" y="144" textLength="169" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::Delegate(Validator)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="162" x2="132" y2="190" stroke="black"/>
|
|
||||||
<line x1="396" y1="162" x2="396" y2="190" stroke="black"/>
|
|
||||||
<line x1="660" y1="162" x2="660" y2="190" stroke="black"/>
|
|
||||||
<line x1="924" y1="162" x2="924" y2="190" stroke="black"/>
|
|
||||||
<line x1="1188" y1="162" x2="1188" y2="190" stroke="black"/>
|
|
||||||
<line x1="1188" y1="173" x2="660" y2="173" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,173 670,179 670,167"/>
|
|
||||||
<polygon fill="white" points="838,163 1009,163 1009,172 838,172"/>
|
|
||||||
<text x="839" y="172" textLength="169" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::Delegate(Validator)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="190" x2="132" y2="207" stroke="black"/>
|
|
||||||
<line x1="396" y1="190" x2="396" y2="207" stroke="black"/>
|
|
||||||
<line x1="660" y1="190" x2="660" y2="207" stroke="black"/>
|
|
||||||
<line x1="924" y1="190" x2="924" y2="207" stroke="black"/>
|
|
||||||
<line x1="1188" y1="190" x2="1188" y2="207" stroke="black"/>
|
|
||||||
<line x1="132" y1="207" x2="132" y2="246" stroke="black"/>
|
|
||||||
<line x1="396" y1="207" x2="396" y2="246" stroke="black"/>
|
|
||||||
<line x1="660" y1="207" x2="660" y2="246" stroke="black"/>
|
|
||||||
<line x1="924" y1="207" x2="924" y2="246" stroke="black"/>
|
|
||||||
<line x1="1188" y1="207" x2="1188" y2="246" stroke="black"/>
|
|
||||||
<polygon fill="white" points="272,207 784,207 784,240 272,240"/>
|
|
||||||
<line x1="272" y1="207" x2="784" y2="207" stroke="black"/>
|
|
||||||
<line x1="272" y1="240" x2="784" y2="240" stroke="black"/>
|
|
||||||
<line x1="272" y1="207" x2="272" y2="240" stroke="black"/>
|
|
||||||
<line x1="784" y1="207" x2="784" y2="240" stroke="black"/>
|
|
||||||
<polygon fill="white" points="526,208 528,208 528,217 526,217"/>
|
|
||||||
<text x="527" y="217" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="506,219 549,219 549,228 506,228"/>
|
|
||||||
<text x="507" y="228" textLength="41" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
validate
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="526,230 528,230 528,239 526,239"/>
|
|
||||||
<text x="527" y="239" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="246" x2="132" y2="274" stroke="black"/>
|
|
||||||
<line x1="396" y1="246" x2="396" y2="274" stroke="black"/>
|
|
||||||
<line x1="660" y1="246" x2="660" y2="274" stroke="black"/>
|
|
||||||
<line x1="924" y1="246" x2="924" y2="274" stroke="black"/>
|
|
||||||
<line x1="1188" y1="246" x2="1188" y2="274" stroke="black"/>
|
|
||||||
<line x1="396" y1="257" x2="132" y2="257" stroke="black"/>
|
|
||||||
<polygon fill="black" points="132,257 142,263 142,251"/>
|
|
||||||
<polygon fill="white" points="236,247 291,247 291,256 236,256"/>
|
|
||||||
<text x="237" y="256" textLength="53" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
sign(vote)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="274" x2="132" y2="302" stroke="black"/>
|
|
||||||
<line x1="396" y1="274" x2="396" y2="302" stroke="black"/>
|
|
||||||
<line x1="660" y1="274" x2="660" y2="302" stroke="black"/>
|
|
||||||
<line x1="924" y1="274" x2="924" y2="302" stroke="black"/>
|
|
||||||
<line x1="1188" y1="274" x2="1188" y2="302" stroke="black"/>
|
|
||||||
<line x1="132" y1="285" x2="396" y2="285" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<polygon fill="black" points="396,285 386,291 386,279"/>
|
|
||||||
<polygon fill="white" points="232,275 295,275 295,284 232,284"/>
|
|
||||||
<text x="233" y="284" textLength="61" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
signed vote
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="302" x2="132" y2="330" stroke="black"/>
|
|
||||||
<line x1="396" y1="302" x2="396" y2="330" stroke="black"/>
|
|
||||||
<line x1="660" y1="302" x2="660" y2="330" stroke="black"/>
|
|
||||||
<line x1="924" y1="302" x2="924" y2="330" stroke="black"/>
|
|
||||||
<line x1="1188" y1="302" x2="1188" y2="330" stroke="black"/>
|
|
||||||
<line x1="396" y1="313" x2="660" y2="313" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,313 650,319 650,307"/>
|
|
||||||
<polygon fill="white" points="494,303 561,303 561,312 494,312"/>
|
|
||||||
<text x="495" y="312" textLength="65" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
gossip(vote)
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="330" x2="132" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="396" y1="330" x2="396" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="660" y1="330" x2="660" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="924" y1="330" x2="924" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="1188" y1="330" x2="1188" y2="347" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="132" y1="347" x2="132" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="396" y1="347" x2="396" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="660" y1="347" x2="660" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="924" y1="347" x2="924" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="1188" y1="347" x2="1188" y2="364" stroke="black" stroke-dasharray="2,2"/>
|
|
||||||
<line x1="132" y1="364" x2="132" y2="414" stroke="black"/>
|
|
||||||
<line x1="396" y1="364" x2="396" y2="414" stroke="black"/>
|
|
||||||
<line x1="660" y1="364" x2="660" y2="414" stroke="black"/>
|
|
||||||
<line x1="924" y1="364" x2="924" y2="414" stroke="black"/>
|
|
||||||
<line x1="1188" y1="364" x2="1188" y2="414" stroke="black"/>
|
|
||||||
<polygon fill="white" points="278,364 514,364 514,408 278,408"/>
|
|
||||||
<polygon fill="white" points="278,364 278,408 272,386"/>
|
|
||||||
<polygon fill="white" points="514,364 514,408 520,386"/>
|
|
||||||
<line x1="278" y1="364" x2="514" y2="364" stroke="black"/>
|
|
||||||
<line x1="278" y1="408" x2="514" y2="408" stroke="black"/>
|
|
||||||
<line x1="278" y1="364" x2="272" y2="386" stroke="black"/>
|
|
||||||
<line x1="272" y1="386" x2="278" y2="408" stroke="black"/>
|
|
||||||
<line x1="514" y1="364" x2="520" y2="386" stroke="black"/>
|
|
||||||
<line x1="520" y1="386" x2="514" y2="408" stroke="black"/>
|
|
||||||
<polygon fill="white" points="394,365 396,365 396,374 394,374"/>
|
|
||||||
<text x="395" y="374" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="383,376 408,376 408,385 383,385"/>
|
|
||||||
<text x="384" y="385" textLength="23" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
max
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="375,387 415,387 415,396 375,396"/>
|
|
||||||
<text x="376" y="396" textLength="38" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
lockout
|
|
||||||
</text>
|
|
||||||
<polygon fill="white" points="394,398 396,398 396,407 394,407"/>
|
|
||||||
<text x="395" y="407" textLength="0" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="414" x2="132" y2="431" stroke="black"/>
|
|
||||||
<line x1="396" y1="414" x2="396" y2="431" stroke="black"/>
|
|
||||||
<line x1="660" y1="414" x2="660" y2="431" stroke="black"/>
|
|
||||||
<line x1="924" y1="414" x2="924" y2="431" stroke="black"/>
|
|
||||||
<line x1="1188" y1="414" x2="1188" y2="431" stroke="black"/>
|
|
||||||
<line x1="132" y1="431" x2="132" y2="459" stroke="black"/>
|
|
||||||
<line x1="396" y1="431" x2="396" y2="459" stroke="black"/>
|
|
||||||
<line x1="660" y1="431" x2="660" y2="459" stroke="black"/>
|
|
||||||
<line x1="924" y1="431" x2="924" y2="459" stroke="black"/>
|
|
||||||
<line x1="1188" y1="431" x2="1188" y2="459" stroke="black"/>
|
|
||||||
<line x1="924" y1="442" x2="660" y2="442" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,442 670,448 670,436"/>
|
|
||||||
<polygon fill="white" points="712,432 871,432 871,441 712,441"/>
|
|
||||||
<text x="713" y="441" textLength="157" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::RedeemCredits()
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="459" x2="132" y2="487" stroke="black"/>
|
|
||||||
<line x1="396" y1="459" x2="396" y2="487" stroke="black"/>
|
|
||||||
<line x1="660" y1="459" x2="660" y2="487" stroke="black"/>
|
|
||||||
<line x1="924" y1="459" x2="924" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="459" x2="1188" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="470" x2="660" y2="470" stroke="black"/>
|
|
||||||
<polygon fill="black" points="660,470 670,476 670,464"/>
|
|
||||||
<polygon fill="white" points="844,460 1003,460 1003,469 844,469"/>
|
|
||||||
<text x="845" y="469" textLength="157" font-family="Helvetica" font-size="12" fill="black">
|
|
||||||
StakeState::RedeemCredits()
|
|
||||||
</text>
|
|
||||||
<line x1="132" y1="481" x2="132" y2="487" stroke="black"/>
|
|
||||||
<line x1="396" y1="481" x2="396" y2="487" stroke="black"/>
|
|
||||||
<line x1="660" y1="481" x2="660" y2="487" stroke="black"/>
|
|
||||||
<line x1="924" y1="481" x2="924" y2="487" stroke="black"/>
|
|
||||||
<line x1="1188" y1="481" x2="1188" y2="487" stroke="black"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 12 KiB |