diff options
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/.gitignore | 1 | ||||
-rw-r--r-- | contrib/3rdparty/Windows/openvpn-tap32/COPYING | 340 | ||||
-rw-r--r-- | contrib/3rdparty/Windows/openvpn-tap32/INSTALL (renamed from contrib/openvpn-tap32/INSTALL) | 0 | ||||
-rw-r--r-- | contrib/3rdparty/Windows/openvpn-tap32/tap32-signed-i386-2.1.zip (renamed from contrib/openvpn-tap32/tap32-signed-i386-2.1.zip) | bin | 33754 -> 33754 bytes | |||
-rw-r--r-- | contrib/3rdparty/Windows/openvpn-tap32/tap32-source-2.1.zip (renamed from contrib/openvpn-tap32/tap32-source-2.1.zip) | bin | 53335 -> 53335 bytes | |||
-rw-r--r-- | contrib/3rdparty/Windows/openvpn-tap32/tapw32/OemWin2k.inf (renamed from contrib/openvpn-tap32/tapw32/OemWin2k.inf) | 0 | ||||
-rw-r--r-- | contrib/3rdparty/Windows/openvpn-tap32/tapw32/tap0901.cat (renamed from contrib/openvpn-tap32/tapw32/tap0901.cat) | bin | 6551 -> 6551 bytes | |||
-rw-r--r-- | contrib/3rdparty/Windows/openvpn-tap32/tapw32/tap0901.sys (renamed from contrib/openvpn-tap32/tapw32/tap0901.sys) | bin | 31360 -> 31360 bytes | |||
-rw-r--r-- | contrib/3rdparty/Windows/openvpn-tap32/tapw64/OemWin2k.inf (renamed from contrib/openvpn-tap32/tapw64/OemWin2k.inf) | 0 | ||||
-rw-r--r-- | contrib/3rdparty/Windows/openvpn-tap32/tapw64/tap0901.cat (renamed from contrib/openvpn-tap32/tapw64/tap0901.cat) | bin | 6587 -> 6587 bytes | |||
-rw-r--r-- | contrib/3rdparty/Windows/openvpn-tap32/tapw64/tap0901.sys (renamed from contrib/openvpn-tap32/tapw64/tap0901.sys) | bin | 36736 -> 36736 bytes | |||
-rw-r--r-- | contrib/Dockerfile | 56 | ||||
-rw-r--r-- | contrib/Makefile.am | 98 | ||||
-rw-r--r-- | contrib/branding/logo/gnunet-logo-big.png (renamed from contrib/gnunet-logo-big.png) | bin | 250489 -> 250489 bytes | |||
-rw-r--r-- | contrib/branding/logo/gnunet-logo-color.png (renamed from contrib/gnunet-logo-color.png) | bin | 6851 -> 6851 bytes | |||
-rw-r--r-- | contrib/branding/logo/gnunet-logo-dark-text.svg | 1411 | ||||
-rw-r--r-- | contrib/branding/logo/gnunet-logo.pdf (renamed from contrib/gnunet-logo.pdf) | bin | 91138 -> 91138 bytes | |||
-rw-r--r-- | contrib/branding/logo/lynXified-amirouche-anonymous-v3.png | bin | 0 -> 71137 bytes | |||
-rw-r--r-- | contrib/branding/logo/lynXified-amirouche-v3.svg | 918 | ||||
-rw-r--r-- | contrib/buildslave-0.8.6p1-gnunet-w32.patch | 202 | ||||
-rwxr-xr-x | contrib/ci/buildbot/buildbot-update.sh (renamed from contrib/buildbot-update.sh) | 0 | ||||
-rw-r--r-- | contrib/ci/buildbot/ssh-config (renamed from contrib/ssh-config) | 0 | ||||
-rw-r--r-- | contrib/ci/buildbot/ssh-keys (renamed from contrib/ssh-keys) | 1 | ||||
-rw-r--r-- | contrib/ci/docker/Dockerfile | 32 | ||||
-rw-r--r-- | contrib/ci/docker/docker-entrypoint.sh (renamed from contrib/docker-entrypoint.sh) | 0 | ||||
-rw-r--r-- | contrib/conf/colorit/colorit.conf (renamed from contrib/colorit.conf) | 0 | ||||
-rw-r--r-- | contrib/conf/editors/eclipse/gnunet_codingstyle.xml (renamed from contrib/gnunet_codingstyle.xml) | 0 | ||||
-rw-r--r-- | contrib/conf/gnunet/no_autostart_above_core.conf | 93 | ||||
-rw-r--r-- | contrib/conf/gnunet/no_forcestart.conf | 57 | ||||
-rw-r--r-- | contrib/conf/nss/nssswitch.conf (renamed from contrib/nssswitch.conf) | 0 | ||||
-rw-r--r-- | contrib/conf/wireshark/wireshark.lua | 150 | ||||
-rw-r--r-- | contrib/gns/bootstrap.min.css (renamed from contrib/bootstrap.min.css) | 0 | ||||
-rw-r--r-- | contrib/gns/def.tex (renamed from contrib/def.tex) | 0 | ||||
-rw-r--r-- | contrib/gns/gns-bcd.html (renamed from contrib/gns-bcd.html) | 0 | ||||
-rw-r--r-- | contrib/gns/gns-bcd.tex (renamed from contrib/gns-bcd.tex) | 2 | ||||
-rw-r--r-- | contrib/gns/gns-form-fields.xml (renamed from contrib/gns-form-fields.xml) | 0 | ||||
-rw-r--r-- | contrib/gns/gns-form.xslt (renamed from contrib/gns-form.xslt) | 0 | ||||
-rw-r--r-- | contrib/gnunet-arch-full.svg | 648 | ||||
-rw-r--r-- | contrib/gnunet_janitor.py.in | 78 | ||||
-rw-r--r-- | contrib/gnunet_pyexpect.py.in | 83 | ||||
-rw-r--r-- | contrib/no_autostart_above_core.conf | 87 | ||||
-rw-r--r-- | contrib/no_forcestart.conf | 38 | ||||
-rw-r--r-- | contrib/nse/experiments/infiniband.conf (renamed from contrib/experiments/nse/infiniband.conf) | 38 | ||||
-rw-r--r-- | contrib/packages/guix/guix-env-gillmann.scm | 151 | ||||
-rw-r--r-- | contrib/packages/guix/guix-env-py2.scm | 158 | ||||
-rw-r--r-- | contrib/packages/guix/notest-guix-env.scm | 145 | ||||
-rw-r--r-- | contrib/patches/lrn-indent.diff (renamed from contrib/lrn-indent.diff) | 0 | ||||
-rw-r--r-- | contrib/patches/texi2html5-indent.diff (renamed from contrib/texi2html5-indent.diff) | 0 | ||||
-rw-r--r-- | contrib/patches/transport_ats_years.diff (renamed from contrib/transport_ats_years.diff) | 0 | ||||
-rwxr-xr-x | contrib/pogen.sh | 4 | ||||
-rwxr-xr-x | contrib/removetrailingwhitespace | 14 | ||||
-rwxr-xr-x | contrib/repeat.sh | 1 | ||||
-rw-r--r-- | contrib/scripts/.gitignore | 2 | ||||
-rwxr-xr-x | contrib/scripts/afferify | 110 | ||||
-rwxr-xr-x | contrib/scripts/coverage.sh (renamed from contrib/coverage.sh) | 0 | ||||
-rwxr-xr-x | contrib/scripts/debug (renamed from contrib/debug) | 0 | ||||
-rw-r--r-- | contrib/scripts/documentation/gnunet-doc.scm | 182 | ||||
-rw-r--r-- | contrib/scripts/find_typedefs.py (renamed from contrib/find_typedefs.py) | 3 | ||||
-rw-r--r-- | contrib/scripts/gdb-iterate-dll.py (renamed from contrib/gdb-iterate-dll.py) | 3 | ||||
-rwxr-xr-x | contrib/scripts/generate-monkey-db.sh (renamed from contrib/generate-monkey-db.sh) | 0 | ||||
-rwxr-xr-x | contrib/scripts/gnunet-bugreport (renamed from contrib/report.sh) | 2 | ||||
-rwxr-xr-x | contrib/scripts/gnunet-chk.py.in (renamed from contrib/gnunet-chk.py) | 37 | ||||
-rwxr-xr-x | contrib/scripts/gnunet-logread/gnunet-logread (renamed from contrib/gnunet-logread) | 2 | ||||
-rwxr-xr-x | contrib/scripts/gnunet-logread/gnunet-logread-ipc (renamed from contrib/gnunet-logread-ipc) | 1 | ||||
-rwxr-xr-x | contrib/scripts/gnunet-logread/gnunet-logread-ipc-sdedit (renamed from contrib/gnunet-logread-ipc-sdedit) | 2 | ||||
-rwxr-xr-x | contrib/scripts/gnunet-suidfix (renamed from contrib/gnunet-suidfix) | 0 | ||||
-rw-r--r-- | contrib/scripts/gnunet_janitor.py.in | 79 | ||||
-rw-r--r-- | contrib/scripts/gnunet_pyexpect.py.in | 82 | ||||
-rwxr-xr-x | contrib/scripts/lint-python.sh | 24 | ||||
-rwxr-xr-x | contrib/scripts/process_log.sh (renamed from contrib/process_log.sh) | 0 | ||||
-rw-r--r-- | contrib/scripts/pydiffer.py.in (renamed from contrib/pydiffer.py.in) | 0 | ||||
-rwxr-xr-x | contrib/scripts/pydmesg (renamed from contrib/pydmesg) | 0 | ||||
-rwxr-xr-x | contrib/scripts/regression.sh (renamed from contrib/regression.sh) | 0 | ||||
-rwxr-xr-x | contrib/scripts/removetrailingwhitespace.py.in | 15 | ||||
-rwxr-xr-x | contrib/scripts/revisionary.sh (renamed from contrib/revisionary.sh) | 0 | ||||
-rw-r--r-- | contrib/scripts/terminate.py.in | 66 | ||||
-rwxr-xr-x | contrib/scripts/testbed_cleanup.sh (renamed from contrib/testbed_cleanup.sh) | 0 | ||||
-rw-r--r-- | contrib/scripts/texinfo-hacks.el | 18 | ||||
-rwxr-xr-x | contrib/scripts/visualize_stats.sh (renamed from contrib/visualize_stats.sh) | 2 | ||||
-rwxr-xr-x | contrib/scripts/zonewalk-to-types.sh | 35 | ||||
-rw-r--r-- | contrib/services/openrc/gnunet.initd | 82 | ||||
-rw-r--r-- | contrib/terminate.py.in | 64 | ||||
-rw-r--r-- | contrib/test_gnunet_prefix.c | 26 | ||||
-rw-r--r-- | contrib/testbed_configs/regex_profiler_infiniband.conf | 24 | ||||
-rw-r--r-- | contrib/testbed_configs/testbed_cluster.conf | 32 | ||||
-rw-r--r-- | contrib/testbed_configs/testbed_infiniband.conf | 32 | ||||
-rw-r--r-- | contrib/testbed_configs/testbed_supermuc.conf | 20 | ||||
-rw-r--r-- | contrib/testbed_perfhacks.patch | 90 | ||||
-rwxr-xr-x | contrib/testbed_setup_pre_ecc_tree.sh | 9 | ||||
-rw-r--r-- | contrib/timeout_watchdog.c | 118 | ||||
-rw-r--r-- | contrib/timeout_watchdog_w32.c | 193 | ||||
-rw-r--r-- | contrib/transpot_delay.patch | 77 | ||||
-rw-r--r-- | contrib/web/log.php (renamed from contrib/log.php) | 0 |
93 files changed, 4958 insertions, 1280 deletions
diff --git a/contrib/.gitignore b/contrib/.gitignore index 304706d7e..d6ef469ba 100644 --- a/contrib/.gitignore +++ b/contrib/.gitignore | |||
@@ -2,7 +2,6 @@ gnunet_janitor.py | |||
2 | gnunet_pyexpect.py | 2 | gnunet_pyexpect.py |
3 | pydiffer.py | 3 | pydiffer.py |
4 | terminate.py | 4 | terminate.py |
5 | timeout_watchdog | ||
6 | gnunet_pyexpect.py | 5 | gnunet_pyexpect.py |
7 | gnunet_pyexpect.pyc | 6 | gnunet_pyexpect.pyc |
8 | pydiffer.pyc | 7 | pydiffer.pyc |
diff --git a/contrib/3rdparty/Windows/openvpn-tap32/COPYING b/contrib/3rdparty/Windows/openvpn-tap32/COPYING new file mode 100644 index 000000000..3912109b5 --- /dev/null +++ b/contrib/3rdparty/Windows/openvpn-tap32/COPYING | |||
@@ -0,0 +1,340 @@ | |||
1 | GNU GENERAL PUBLIC LICENSE | ||
2 | Version 2, June 1991 | ||
3 | |||
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. | ||
5 | 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
6 | Everyone is permitted to copy and distribute verbatim copies | ||
7 | of this license document, but changing it is not allowed. | ||
8 | |||
9 | Preamble | ||
10 | |||
11 | The licenses for most software are designed to take away your | ||
12 | freedom to share and change it. By contrast, the GNU General Public | ||
13 | License is intended to guarantee your freedom to share and change free | ||
14 | software--to make sure the software is free for all its users. This | ||
15 | General Public License applies to most of the Free Software | ||
16 | Foundation's software and to any other program whose authors commit to | ||
17 | using it. (Some other Free Software Foundation software is covered by | ||
18 | the GNU Library General Public License instead.) You can apply it to | ||
19 | your programs, too. | ||
20 | |||
21 | When we speak of free software, we are referring to freedom, not | ||
22 | price. Our General Public Licenses are designed to make sure that you | ||
23 | have the freedom to distribute copies of free software (and charge for | ||
24 | this service if you wish), that you receive source code or can get it | ||
25 | if you want it, that you can change the software or use pieces of it | ||
26 | in new free programs; and that you know you can do these things. | ||
27 | |||
28 | To protect your rights, we need to make restrictions that forbid | ||
29 | anyone to deny you these rights or to ask you to surrender the rights. | ||
30 | These restrictions translate to certain responsibilities for you if you | ||
31 | distribute copies of the software, or if you modify it. | ||
32 | |||
33 | For example, if you distribute copies of such a program, whether | ||
34 | gratis or for a fee, you must give the recipients all the rights that | ||
35 | you have. You must make sure that they, too, receive or can get the | ||
36 | source code. And you must show them these terms so they know their | ||
37 | rights. | ||
38 | |||
39 | We protect your rights with two steps: (1) copyright the software, and | ||
40 | (2) offer you this license which gives you legal permission to copy, | ||
41 | distribute and/or modify the software. | ||
42 | |||
43 | Also, for each author's protection and ours, we want to make certain | ||
44 | that everyone understands that there is no warranty for this free | ||
45 | software. If the software is modified by someone else and passed on, we | ||
46 | want its recipients to know that what they have is not the original, so | ||
47 | that any problems introduced by others will not reflect on the original | ||
48 | authors' reputations. | ||
49 | |||
50 | Finally, any free program is threatened constantly by software | ||
51 | patents. We wish to avoid the danger that redistributors of a free | ||
52 | program will individually obtain patent licenses, in effect making the | ||
53 | program proprietary. To prevent this, we have made it clear that any | ||
54 | patent must be licensed for everyone's free use or not licensed at all. | ||
55 | |||
56 | The precise terms and conditions for copying, distribution and | ||
57 | modification follow. | ||
58 | |||
59 | GNU GENERAL PUBLIC LICENSE | ||
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||
61 | |||
62 | 0. This License applies to any program or other work which contains | ||
63 | a notice placed by the copyright holder saying it may be distributed | ||
64 | under the terms of this General Public License. The "Program", below, | ||
65 | refers to any such program or work, and a "work based on the Program" | ||
66 | means either the Program or any derivative work under copyright law: | ||
67 | that is to say, a work containing the Program or a portion of it, | ||
68 | either verbatim or with modifications and/or translated into another | ||
69 | language. (Hereinafter, translation is included without limitation in | ||
70 | the term "modification".) Each licensee is addressed as "you". | ||
71 | |||
72 | Activities other than copying, distribution and modification are not | ||
73 | covered by this License; they are outside its scope. The act of | ||
74 | running the Program is not restricted, and the output from the Program | ||
75 | is covered only if its contents constitute a work based on the | ||
76 | Program (independent of having been made by running the Program). | ||
77 | Whether that is true depends on what the Program does. | ||
78 | |||
79 | 1. You may copy and distribute verbatim copies of the Program's | ||
80 | source code as you receive it, in any medium, provided that you | ||
81 | conspicuously and appropriately publish on each copy an appropriate | ||
82 | copyright notice and disclaimer of warranty; keep intact all the | ||
83 | notices that refer to this License and to the absence of any warranty; | ||
84 | and give any other recipients of the Program a copy of this License | ||
85 | along with the Program. | ||
86 | |||
87 | You may charge a fee for the physical act of transferring a copy, and | ||
88 | you may at your option offer warranty protection in exchange for a fee. | ||
89 | |||
90 | 2. You may modify your copy or copies of the Program or any portion | ||
91 | of it, thus forming a work based on the Program, and copy and | ||
92 | distribute such modifications or work under the terms of Section 1 | ||
93 | above, provided that you also meet all of these conditions: | ||
94 | |||
95 | a) You must cause the modified files to carry prominent notices | ||
96 | stating that you changed the files and the date of any change. | ||
97 | |||
98 | b) You must cause any work that you distribute or publish, that in | ||
99 | whole or in part contains or is derived from the Program or any | ||
100 | part thereof, to be licensed as a whole at no charge to all third | ||
101 | parties under the terms of this License. | ||
102 | |||
103 | c) If the modified program normally reads commands interactively | ||
104 | when run, you must cause it, when started running for such | ||
105 | interactive use in the most ordinary way, to print or display an | ||
106 | announcement including an appropriate copyright notice and a | ||
107 | notice that there is no warranty (or else, saying that you provide | ||
108 | a warranty) and that users may redistribute the program under | ||
109 | these conditions, and telling the user how to view a copy of this | ||
110 | License. (Exception: if the Program itself is interactive but | ||
111 | does not normally print such an announcement, your work based on | ||
112 | the Program is not required to print an announcement.) | ||
113 | |||
114 | These requirements apply to the modified work as a whole. If | ||
115 | identifiable sections of that work are not derived from the Program, | ||
116 | and can be reasonably considered independent and separate works in | ||
117 | themselves, then this License, and its terms, do not apply to those | ||
118 | sections when you distribute them as separate works. But when you | ||
119 | distribute the same sections as part of a whole which is a work based | ||
120 | on the Program, the distribution of the whole must be on the terms of | ||
121 | this License, whose permissions for other licensees extend to the | ||
122 | entire whole, and thus to each and every part regardless of who wrote it. | ||
123 | |||
124 | Thus, it is not the intent of this section to claim rights or contest | ||
125 | your rights to work written entirely by you; rather, the intent is to | ||
126 | exercise the right to control the distribution of derivative or | ||
127 | collective works based on the Program. | ||
128 | |||
129 | In addition, mere aggregation of another work not based on the Program | ||
130 | with the Program (or with a work based on the Program) on a volume of | ||
131 | a storage or distribution medium does not bring the other work under | ||
132 | the scope of this License. | ||
133 | |||
134 | 3. You may copy and distribute the Program (or a work based on it, | ||
135 | under Section 2) in object code or executable form under the terms of | ||
136 | Sections 1 and 2 above provided that you also do one of the following: | ||
137 | |||
138 | a) Accompany it with the complete corresponding machine-readable | ||
139 | source code, which must be distributed under the terms of Sections | ||
140 | 1 and 2 above on a medium customarily used for software interchange; or, | ||
141 | |||
142 | b) Accompany it with a written offer, valid for at least three | ||
143 | years, to give any third party, for a charge no more than your | ||
144 | cost of physically performing source distribution, a complete | ||
145 | machine-readable copy of the corresponding source code, to be | ||
146 | distributed under the terms of Sections 1 and 2 above on a medium | ||
147 | customarily used for software interchange; or, | ||
148 | |||
149 | c) Accompany it with the information you received as to the offer | ||
150 | to distribute corresponding source code. (This alternative is | ||
151 | allowed only for noncommercial distribution and only if you | ||
152 | received the program in object code or executable form with such | ||
153 | an offer, in accord with Subsection b above.) | ||
154 | |||
155 | The source code for a work means the preferred form of the work for | ||
156 | making modifications to it. For an executable work, complete source | ||
157 | code means all the source code for all modules it contains, plus any | ||
158 | associated interface definition files, plus the scripts used to | ||
159 | control compilation and installation of the executable. However, as a | ||
160 | special exception, the source code distributed need not include | ||
161 | anything that is normally distributed (in either source or binary | ||
162 | form) with the major components (compiler, kernel, and so on) of the | ||
163 | operating system on which the executable runs, unless that component | ||
164 | itself accompanies the executable. | ||
165 | |||
166 | If distribution of executable or object code is made by offering | ||
167 | access to copy from a designated place, then offering equivalent | ||
168 | access to copy the source code from the same place counts as | ||
169 | distribution of the source code, even though third parties are not | ||
170 | compelled to copy the source along with the object code. | ||
171 | |||
172 | 4. You may not copy, modify, sublicense, or distribute the Program | ||
173 | except as expressly provided under this License. Any attempt | ||
174 | otherwise to copy, modify, sublicense or distribute the Program is | ||
175 | void, and will automatically terminate your rights under this License. | ||
176 | However, parties who have received copies, or rights, from you under | ||
177 | this License will not have their licenses terminated so long as such | ||
178 | parties remain in full compliance. | ||
179 | |||
180 | 5. You are not required to accept this License, since you have not | ||
181 | signed it. However, nothing else grants you permission to modify or | ||
182 | distribute the Program or its derivative works. These actions are | ||
183 | prohibited by law if you do not accept this License. Therefore, by | ||
184 | modifying or distributing the Program (or any work based on the | ||
185 | Program), you indicate your acceptance of this License to do so, and | ||
186 | all its terms and conditions for copying, distributing or modifying | ||
187 | the Program or works based on it. | ||
188 | |||
189 | 6. Each time you redistribute the Program (or any work based on the | ||
190 | Program), the recipient automatically receives a license from the | ||
191 | original licensor to copy, distribute or modify the Program subject to | ||
192 | these terms and conditions. You may not impose any further | ||
193 | restrictions on the recipients' exercise of the rights granted herein. | ||
194 | You are not responsible for enforcing compliance by third parties to | ||
195 | this License. | ||
196 | |||
197 | 7. If, as a consequence of a court judgment or allegation of patent | ||
198 | infringement or for any other reason (not limited to patent issues), | ||
199 | conditions are imposed on you (whether by court order, agreement or | ||
200 | otherwise) that contradict the conditions of this License, they do not | ||
201 | excuse you from the conditions of this License. If you cannot | ||
202 | distribute so as to satisfy simultaneously your obligations under this | ||
203 | License and any other pertinent obligations, then as a consequence you | ||
204 | may not distribute the Program at all. For example, if a patent | ||
205 | license would not permit royalty-free redistribution of the Program by | ||
206 | all those who receive copies directly or indirectly through you, then | ||
207 | the only way you could satisfy both it and this License would be to | ||
208 | refrain entirely from distribution of the Program. | ||
209 | |||
210 | If any portion of this section is held invalid or unenforceable under | ||
211 | any particular circumstance, the balance of the section is intended to | ||
212 | apply and the section as a whole is intended to apply in other | ||
213 | circumstances. | ||
214 | |||
215 | It is not the purpose of this section to induce you to infringe any | ||
216 | patents or other property right claims or to contest validity of any | ||
217 | such claims; this section has the sole purpose of protecting the | ||
218 | integrity of the free software distribution system, which is | ||
219 | implemented by public license practices. Many people have made | ||
220 | generous contributions to the wide range of software distributed | ||
221 | through that system in reliance on consistent application of that | ||
222 | system; it is up to the author/donor to decide if he or she is willing | ||
223 | to distribute software through any other system and a licensee cannot | ||
224 | impose that choice. | ||
225 | |||
226 | This section is intended to make thoroughly clear what is believed to | ||
227 | be a consequence of the rest of this License. | ||
228 | |||
229 | 8. If the distribution and/or use of the Program is restricted in | ||
230 | certain countries either by patents or by copyrighted interfaces, the | ||
231 | original copyright holder who places the Program under this License | ||
232 | may add an explicit geographical distribution limitation excluding | ||
233 | those countries, so that distribution is permitted only in or among | ||
234 | countries not thus excluded. In such case, this License incorporates | ||
235 | the limitation as if written in the body of this License. | ||
236 | |||
237 | 9. The Free Software Foundation may publish revised and/or new versions | ||
238 | of the General Public License from time to time. Such new versions will | ||
239 | be similar in spirit to the present version, but may differ in detail to | ||
240 | address new problems or concerns. | ||
241 | |||
242 | Each version is given a distinguishing version number. If the Program | ||
243 | specifies a version number of this License which applies to it and "any | ||
244 | later version", you have the option of following the terms and conditions | ||
245 | either of that version or of any later version published by the Free | ||
246 | Software Foundation. If the Program does not specify a version number of | ||
247 | this License, you may choose any version ever published by the Free Software | ||
248 | Foundation. | ||
249 | |||
250 | 10. If you wish to incorporate parts of the Program into other free | ||
251 | programs whose distribution conditions are different, write to the author | ||
252 | to ask for permission. For software which is copyrighted by the Free | ||
253 | Software Foundation, write to the Free Software Foundation; we sometimes | ||
254 | make exceptions for this. Our decision will be guided by the two goals | ||
255 | of preserving the free status of all derivatives of our free software and | ||
256 | of promoting the sharing and reuse of software generally. | ||
257 | |||
258 | NO WARRANTY | ||
259 | |||
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | ||
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN | ||
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | ||
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | ||
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS | ||
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE | ||
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | ||
268 | REPAIR OR CORRECTION. | ||
269 | |||
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | ||
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | ||
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | ||
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | ||
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | ||
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | ||
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||
278 | POSSIBILITY OF SUCH DAMAGES. | ||
279 | |||
280 | END OF TERMS AND CONDITIONS | ||
281 | |||
282 | How to Apply These Terms to Your New Programs | ||
283 | |||
284 | If you develop a new program, and you want it to be of the greatest | ||
285 | possible use to the public, the best way to achieve this is to make it | ||
286 | free software which everyone can redistribute and change under these terms. | ||
287 | |||
288 | To do so, attach the following notices to the program. It is safest | ||
289 | to attach them to the start of each source file to most effectively | ||
290 | convey the exclusion of warranty; and each file should have at least | ||
291 | the "copyright" line and a pointer to where the full notice is found. | ||
292 | |||
293 | <one line to give the program's name and a brief idea of what it does.> | ||
294 | Copyright (C) <year> <name of author> | ||
295 | |||
296 | This program is free software; you can redistribute it and/or modify | ||
297 | it under the terms of the GNU General Public License as published by | ||
298 | the Free Software Foundation; either version 2 of the License, or | ||
299 | (at your option) any later version. | ||
300 | |||
301 | This program is distributed in the hope that it will be useful, | ||
302 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
304 | GNU General Public License for more details. | ||
305 | |||
306 | You should have received a copy of the GNU General Public License | ||
307 | along with this program; if not, write to the Free Software | ||
308 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
309 | |||
310 | |||
311 | Also add information on how to contact you by electronic and paper mail. | ||
312 | |||
313 | If the program is interactive, make it output a short notice like this | ||
314 | when it starts in an interactive mode: | ||
315 | |||
316 | Gnomovision version 69, Copyright (C) year name of author | ||
317 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | ||
318 | This is free software, and you are welcome to redistribute it | ||
319 | under certain conditions; type `show c' for details. | ||
320 | |||
321 | The hypothetical commands `show w' and `show c' should show the appropriate | ||
322 | parts of the General Public License. Of course, the commands you use may | ||
323 | be called something other than `show w' and `show c'; they could even be | ||
324 | mouse-clicks or menu items--whatever suits your program. | ||
325 | |||
326 | You should also get your employer (if you work as a programmer) or your | ||
327 | school, if any, to sign a "copyright disclaimer" for the program, if | ||
328 | necessary. Here is a sample; alter the names: | ||
329 | |||
330 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program | ||
331 | `Gnomovision' (which makes passes at compilers) written by James Hacker. | ||
332 | |||
333 | <signature of Ty Coon>, 1 April 1989 | ||
334 | Ty Coon, President of Vice | ||
335 | |||
336 | This General Public License does not permit incorporating your program into | ||
337 | proprietary programs. If your program is a subroutine library, you may | ||
338 | consider it more useful to permit linking proprietary applications with the | ||
339 | library. If this is what you want to do, use the GNU Library General | ||
340 | Public License instead of this License. | ||
diff --git a/contrib/openvpn-tap32/INSTALL b/contrib/3rdparty/Windows/openvpn-tap32/INSTALL index 8e02c1890..8e02c1890 100644 --- a/contrib/openvpn-tap32/INSTALL +++ b/contrib/3rdparty/Windows/openvpn-tap32/INSTALL | |||
diff --git a/contrib/openvpn-tap32/tap32-signed-i386-2.1.zip b/contrib/3rdparty/Windows/openvpn-tap32/tap32-signed-i386-2.1.zip index e13473203..e13473203 100644 --- a/contrib/openvpn-tap32/tap32-signed-i386-2.1.zip +++ b/contrib/3rdparty/Windows/openvpn-tap32/tap32-signed-i386-2.1.zip | |||
Binary files differ | |||
diff --git a/contrib/openvpn-tap32/tap32-source-2.1.zip b/contrib/3rdparty/Windows/openvpn-tap32/tap32-source-2.1.zip index 9ffc0b4ef..9ffc0b4ef 100644 --- a/contrib/openvpn-tap32/tap32-source-2.1.zip +++ b/contrib/3rdparty/Windows/openvpn-tap32/tap32-source-2.1.zip | |||
Binary files differ | |||
diff --git a/contrib/openvpn-tap32/tapw32/OemWin2k.inf b/contrib/3rdparty/Windows/openvpn-tap32/tapw32/OemWin2k.inf index 167e30fff..167e30fff 100644 --- a/contrib/openvpn-tap32/tapw32/OemWin2k.inf +++ b/contrib/3rdparty/Windows/openvpn-tap32/tapw32/OemWin2k.inf | |||
diff --git a/contrib/openvpn-tap32/tapw32/tap0901.cat b/contrib/3rdparty/Windows/openvpn-tap32/tapw32/tap0901.cat index a6772f9fd..a6772f9fd 100644 --- a/contrib/openvpn-tap32/tapw32/tap0901.cat +++ b/contrib/3rdparty/Windows/openvpn-tap32/tapw32/tap0901.cat | |||
Binary files differ | |||
diff --git a/contrib/openvpn-tap32/tapw32/tap0901.sys b/contrib/3rdparty/Windows/openvpn-tap32/tapw32/tap0901.sys index 3ecf2391b..3ecf2391b 100644 --- a/contrib/openvpn-tap32/tapw32/tap0901.sys +++ b/contrib/3rdparty/Windows/openvpn-tap32/tapw32/tap0901.sys | |||
Binary files differ | |||
diff --git a/contrib/openvpn-tap32/tapw64/OemWin2k.inf b/contrib/3rdparty/Windows/openvpn-tap32/tapw64/OemWin2k.inf index 9b1676afd..9b1676afd 100644 --- a/contrib/openvpn-tap32/tapw64/OemWin2k.inf +++ b/contrib/3rdparty/Windows/openvpn-tap32/tapw64/OemWin2k.inf | |||
diff --git a/contrib/openvpn-tap32/tapw64/tap0901.cat b/contrib/3rdparty/Windows/openvpn-tap32/tapw64/tap0901.cat index 1cac5f5c4..1cac5f5c4 100644 --- a/contrib/openvpn-tap32/tapw64/tap0901.cat +++ b/contrib/3rdparty/Windows/openvpn-tap32/tapw64/tap0901.cat | |||
Binary files differ | |||
diff --git a/contrib/openvpn-tap32/tapw64/tap0901.sys b/contrib/3rdparty/Windows/openvpn-tap32/tapw64/tap0901.sys index 566e168ea..566e168ea 100644 --- a/contrib/openvpn-tap32/tapw64/tap0901.sys +++ b/contrib/3rdparty/Windows/openvpn-tap32/tapw64/tap0901.sys | |||
Binary files differ | |||
diff --git a/contrib/Dockerfile b/contrib/Dockerfile deleted file mode 100644 index d2f2d7c97..000000000 --- a/contrib/Dockerfile +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | from fedora:26 | ||
2 | |||
3 | # Install the required build tools | ||
4 | RUN dnf -y update && dnf -y install which git automake texinfo gettext-devel autoconf libtool libtool-ltdl-devel libidn-devel libunistring-devel glpk libextractor-devel libmicrohttpd-devel gnutls libgcrypt-devel jansson-devel sqlite-devel npm | ||
5 | |||
6 | WORKDIR /usr/src | ||
7 | |||
8 | # Install gnurl from source at version gnurl-7.54.0 | ||
9 | RUN git clone https://git.taler.net/gnurl.git --branch gnurl-7.57.0 | ||
10 | WORKDIR /usr/src/gnurl | ||
11 | RUN autoreconf -i | ||
12 | RUN ./configure --disable-ntlm-wb | ||
13 | RUN make install | ||
14 | WORKDIR /usr/src | ||
15 | |||
16 | RUN dnf -y install wget flex bison | ||
17 | |||
18 | # Install libpbc | ||
19 | RUN wget https://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz | ||
20 | RUN tar xvzpf pbc-0.5.14.tar.gz | ||
21 | WORKDIR /usr/src/pbc-0.5.14 | ||
22 | RUN ./configure --prefix=/usr | ||
23 | RUN make install | ||
24 | WORKDIR /usr/src | ||
25 | |||
26 | RUN dnf -y install glib2-devel | ||
27 | |||
28 | # Install libbswabe | ||
29 | RUN git clone https://github.com/schanzen/libgabe.git | ||
30 | WORKDIR /usr/src/libgabe | ||
31 | RUN ./configure --prefix=/usr | ||
32 | RUN make install | ||
33 | |||
34 | # Install WebUI | ||
35 | WORKDIR /usr/src/ | ||
36 | RUN git clone https://github.com/schanzen/gnunet-webui.git | ||
37 | WORKDIR /usr/src/gnunet-webui | ||
38 | RUN git checkout gnuidentity | ||
39 | |||
40 | RUN mkdir /usr/src/gnunet | ||
41 | WORKDIR /usr/src/gnunet | ||
42 | ADD . . | ||
43 | ARG NUM_JOBS | ||
44 | RUN ./bootstrap | ||
45 | RUN ./configure --prefix=/usr/local | ||
46 | RUN make -j$NUM_JOBS | ||
47 | RUN make install | ||
48 | |||
49 | RUN groupadd gnunetdns | ||
50 | RUN adduser -S -m -h /var/lib/gnunet gnunet | ||
51 | RUN chown gnunet:gnunet /var/lib/gnunet | ||
52 | RUN echo '[arm]\nSYSTEM_ONLY = YES\nUSER_ONLY = NO\n' > /etc/gnunet.conf | ||
53 | |||
54 | ADD docker-entrypoint.sh . | ||
55 | |||
56 | CMD ["sh", "docker-entrypoint.sh"] | ||
diff --git a/contrib/Makefile.am b/contrib/Makefile.am index 577924fab..eec3300b9 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am | |||
@@ -5,62 +5,61 @@ tap32dir = $(pkgdatadir)/openvpn-tap32/tapw32/ | |||
5 | 5 | ||
6 | tap64dir = $(pkgdatadir)/openvpn-tap32/tapw64/ | 6 | tap64dir = $(pkgdatadir)/openvpn-tap32/tapw64/ |
7 | 7 | ||
8 | noinst_PROGRAMS = \ | ||
9 | timeout_watchdog | ||
10 | |||
11 | if !MINGW | ||
12 | timeout_watchdog_SOURCES = \ | ||
13 | timeout_watchdog.c | ||
14 | else | ||
15 | timeout_watchdog_SOURCES = \ | ||
16 | timeout_watchdog_w32.c | ||
17 | endif | ||
18 | |||
19 | noinst_SCRIPTS = \ | 8 | noinst_SCRIPTS = \ |
20 | terminate.py \ | 9 | scripts/terminate.py \ |
21 | pydiffer.py \ | 10 | scripts/pydiffer.py \ |
22 | gnunet_pyexpect.py \ | 11 | scripts/removetrailingwhitespace.py \ |
23 | gnunet_janitor.py | 12 | scripts/gnunet_pyexpect.py \ |
13 | scripts/gnunet_janitor.py \ | ||
14 | scripts/gnunet-chk.py | ||
24 | 15 | ||
25 | dist_pkgdata_DATA = \ | 16 | dist_pkgdata_DATA = \ |
26 | gns-bcd.html \ | 17 | gns/gns-bcd.html \ |
27 | gns-bcd.tex \ | 18 | gns/gns-bcd.tex \ |
28 | gnunet-logo.pdf \ | 19 | gns/def.tex \ |
29 | gnunet-logo-color.png \ | 20 | gns/gns-form-fields.xml \ |
21 | gns/gns-form.xslt \ | ||
22 | branding/logo/gnunet-logo.pdf \ | ||
23 | branding/logo/gnunet-logo-color.png \ | ||
30 | testing_hostkeys.ecc | 24 | testing_hostkeys.ecc |
31 | 25 | ||
32 | if MINGW | 26 | if MINGW |
33 | tap32_DATA = \ | 27 | tap32_DATA = \ |
34 | openvpn-tap32/tapw32/tap0901.sys \ | 28 | 3rdparty/Windows/openvpn-tap32/tapw32/tap0901.sys \ |
35 | openvpn-tap32/tapw32/tap0901.cat \ | 29 | 3rdparty/Windows/openvpn-tap32/tapw32/tap0901.cat \ |
36 | openvpn-tap32/tapw32/OemWin2k.inf | 30 | 3rdparty/Windows/openvpn-tap32/tapw32/OemWin2k.inf |
37 | 31 | ||
38 | tap64_DATA = \ | 32 | tap64_DATA = \ |
39 | openvpn-tap32/tapw64/tap0901.sys \ | 33 | 3rdparty/Windows/openvpn-tap32/tapw64/tap0901.sys \ |
40 | openvpn-tap32/tapw64/tap0901.cat \ | 34 | 3rdparty/Windows/openvpn-tap32/tapw64/tap0901.cat \ |
41 | openvpn-tap32/tapw64/OemWin2k.inf | 35 | 3rdparty/Windows/openvpn-tap32/tapw64/OemWin2k.inf |
42 | endif | 36 | endif |
43 | 37 | ||
44 | EXTRA_DIST = \ | 38 | EXTRA_DIST = \ |
45 | no_forcestart.conf \ | 39 | conf/colorit/colorit.conf \ |
46 | no_autostart_above_core.conf \ | 40 | conf/editors/eclipse/gnunet_codingstyle.xml \ |
47 | coverage.sh \ | 41 | conf/gnunet/no_forcestart.conf \ |
48 | nssswitch.conf \ | 42 | conf/gnunet/no_autostart_above_core.conf \ |
49 | report.sh \ | 43 | conf/nss/nssswitch.conf \ |
50 | terminate.py.in \ | 44 | conf/wireshark/wireshark.lua \ |
51 | gnunet_pyexpect.py.in \ | 45 | scripts/coverage.sh \ |
52 | gnunet_janitor.py.in \ | 46 | scripts/terminate.py.in \ |
53 | pydiffer.py.in \ | 47 | scripts/gnunet_pyexpect.py.in \ |
54 | gnunet-gns-import.sh \ | 48 | scripts/gnunet_janitor.py.in \ |
55 | openvpn-tap32/tapw32/tap0901.sys \ | 49 | scripts/gnunet-chk.py.in \ |
56 | openvpn-tap32/tapw32/tap0901.cat \ | 50 | scripts/removetrailingwhitespace.py.in \ |
57 | openvpn-tap32/tapw32/OemWin2k.inf \ | 51 | scripts/pydiffer.py.in \ |
58 | openvpn-tap32/tapw64/tap0901.sys \ | 52 | packages/nix/default.nix \ |
59 | openvpn-tap32/tapw64/tap0901.cat \ | 53 | packages/nix/gnunet-dev.nix \ |
60 | openvpn-tap32/tapw64/OemWin2k.inf \ | 54 | 3rdparty/Windows/openvpn-tap32/tapw32/tap0901.sys \ |
61 | openvpn-tap32/INSTALL \ | 55 | 3rdparty/Windows/openvpn-tap32/tapw32/tap0901.cat \ |
62 | openvpn-tap32/tap32-signed-i386-2.1.zip \ | 56 | 3rdparty/Windows/openvpn-tap32/tapw32/OemWin2k.inf \ |
63 | openvpn-tap32/tap32-source-2.1.zip | 57 | 3rdparty/Windows/openvpn-tap32/tapw64/tap0901.sys \ |
58 | 3rdparty/Windows/openvpn-tap32/tapw64/tap0901.cat \ | ||
59 | 3rdparty/Windows/openvpn-tap32/tapw64/OemWin2k.inf \ | ||
60 | 3rdparty/Windows/openvpn-tap32/INSTALL \ | ||
61 | 3rdparty/Windows/openvpn-tap32/tap32-signed-i386-2.1.zip \ | ||
62 | 3rdparty/Windows/openvpn-tap32/tap32-source-2.1.zip | ||
64 | 63 | ||
65 | CLEANFILES = \ | 64 | CLEANFILES = \ |
66 | $(noinst_SCRIPTS) | 65 | $(noinst_SCRIPTS) |
@@ -77,22 +76,12 @@ do_subst = $(SED) -e 's,[@]PYTHON[@],$(PYTHON),g' | |||
77 | # chmod +x $@ | 76 | # chmod +x $@ |
78 | # | 77 | # |
79 | # instead of this: | 78 | # instead of this: |
80 | |||
81 | SUFFIXES = .py.in .py | 79 | SUFFIXES = .py.in .py |
82 | 80 | ||
83 | .py.in.py: | 81 | .py.in.py: |
84 | $(do_subst) < $< > $@ | 82 | $(do_subst) < $< > $@ |
85 | chmod +x $@ | 83 | chmod +x $@ |
86 | 84 | ||
87 | # init_gnunet_redhat \ | ||
88 | # init_gnunet_ubuntu \ | ||
89 | # visualize_stats.sh \ | ||
90 | # gnmessage.sh \ | ||
91 | # junkinsert.sh \ | ||
92 | # junklookup.sh \ | ||
93 | # namespacehelper.sh | ||
94 | |||
95 | |||
96 | check_PROGRAMS = \ | 85 | check_PROGRAMS = \ |
97 | test_gnunet_prefix | 86 | test_gnunet_prefix |
98 | 87 | ||
@@ -123,6 +112,7 @@ install-data-local: | |||
123 | $(INSTALL_DATA) $$hello $(DESTDIR)$(pkghellodir)/ ; \ | 112 | $(INSTALL_DATA) $$hello $(DESTDIR)$(pkghellodir)/ ; \ |
124 | fi \ | 113 | fi \ |
125 | done | 114 | done |
115 | install scripts/gnunet-bugreport $(DESTDIR)$(bindir)/gnunet-bugreport | ||
126 | 116 | ||
127 | dist-hook: | 117 | dist-hook: |
128 | if test -d $(srcdir)/hellos; then \ | 118 | if test -d $(srcdir)/hellos; then \ |
diff --git a/contrib/gnunet-logo-big.png b/contrib/branding/logo/gnunet-logo-big.png index 54c418f8f..54c418f8f 100644 --- a/contrib/gnunet-logo-big.png +++ b/contrib/branding/logo/gnunet-logo-big.png | |||
Binary files differ | |||
diff --git a/contrib/gnunet-logo-color.png b/contrib/branding/logo/gnunet-logo-color.png index 326822ebd..326822ebd 100644 --- a/contrib/gnunet-logo-color.png +++ b/contrib/branding/logo/gnunet-logo-color.png | |||
Binary files differ | |||
diff --git a/contrib/branding/logo/gnunet-logo-dark-text.svg b/contrib/branding/logo/gnunet-logo-dark-text.svg new file mode 100644 index 000000000..5644e0ae7 --- /dev/null +++ b/contrib/branding/logo/gnunet-logo-dark-text.svg | |||
@@ -0,0 +1,1411 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <svg | ||
3 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
4 | xmlns:cc="http://creativecommons.org/ns#" | ||
5 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
6 | xmlns:svg="http://www.w3.org/2000/svg" | ||
7 | xmlns="http://www.w3.org/2000/svg" | ||
8 | xmlns:xlink="http://www.w3.org/1999/xlink" | ||
9 | version="1.1" | ||
10 | id="svg2" | ||
11 | height="280" | ||
12 | width="320"> | ||
13 | <title | ||
14 | id="title3310">logo for GNUnet</title> | ||
15 | <defs | ||
16 | id="defs4"> | ||
17 | <linearGradient | ||
18 | id="gnunet"> | ||
19 | <stop | ||
20 | style="stop-color:#ff0000;stop-opacity:0.58431375;" | ||
21 | offset="0" | ||
22 | id="stop9516" /> | ||
23 | <stop | ||
24 | style="stop-color:#ffcc00;stop-opacity:1;" | ||
25 | offset="1" | ||
26 | id="stop9518" /> | ||
27 | </linearGradient> | ||
28 | <linearGradient | ||
29 | id="linearGradient4094"> | ||
30 | <stop | ||
31 | style="stop-color:#232323;stop-opacity:1;" | ||
32 | offset="0" | ||
33 | id="stop4096" /> | ||
34 | <stop | ||
35 | style="stop-color:#4d4d4d;stop-opacity:1;" | ||
36 | offset="1" | ||
37 | id="stop4098" /> | ||
38 | </linearGradient> | ||
39 | <linearGradient | ||
40 | id="linearGradient4014"> | ||
41 | <stop | ||
42 | style="stop-color:#a0a0a0;stop-opacity:1;" | ||
43 | offset="0" | ||
44 | id="stop4016" /> | ||
45 | <stop | ||
46 | style="stop-color:#ffffff;stop-opacity:1;" | ||
47 | offset="1" | ||
48 | id="stop4018" /> | ||
49 | </linearGradient> | ||
50 | <linearGradient | ||
51 | id="linearGradient4678"> | ||
52 | <stop | ||
53 | style="stop-color:#e5e5e5;stop-opacity:1;" | ||
54 | offset="0" | ||
55 | id="stop4680" /> | ||
56 | <stop | ||
57 | style="stop-color:#d3cdcd;stop-opacity:1;" | ||
58 | offset="1" | ||
59 | id="stop4682" /> | ||
60 | </linearGradient> | ||
61 | <linearGradient | ||
62 | id="linearGradient4341"> | ||
63 | <stop | ||
64 | id="stop4343" | ||
65 | offset="0" | ||
66 | style="stop-color:#333333;stop-opacity:1;" /> | ||
67 | <stop | ||
68 | id="stop4345" | ||
69 | offset="1" | ||
70 | style="stop-color:#484848;stop-opacity:1;" /> | ||
71 | </linearGradient> | ||
72 | <linearGradient | ||
73 | id="linearGradient4696-5"> | ||
74 | <stop | ||
75 | id="stop4698-6" | ||
76 | offset="0" | ||
77 | style="stop-color:#ffb638;stop-opacity:1;" /> | ||
78 | <stop | ||
79 | id="stop4700-2" | ||
80 | offset="1" | ||
81 | style="stop-color:#f0ae26;stop-opacity:1;" /> | ||
82 | </linearGradient> | ||
83 | <linearGradient | ||
84 | id="linearGradient4702-3-6"> | ||
85 | <stop | ||
86 | id="stop4704-1" | ||
87 | offset="0" | ||
88 | style="stop-color:#ff0000;stop-opacity:0.58431375;" /> | ||
89 | <stop | ||
90 | id="stop4706-8" | ||
91 | offset="1" | ||
92 | style="stop-color:#ffcc00;stop-opacity:1;" /> | ||
93 | </linearGradient> | ||
94 | <color-profile | ||
95 | name="Artifex-PS-CMYK-Profile" | ||
96 | xlink:href="/usr/share/color/icc/ghostscript/ps_cmyk.icc" | ||
97 | id="color-profile27" /> | ||
98 | <linearGradient | ||
99 | y2="69.791016" | ||
100 | x2="177.04297" | ||
101 | y1="63.65625" | ||
102 | x1="142.96875" | ||
103 | gradientTransform="matrix(-0.88803314,0,0,0.88803314,595.57001,1106.9291)" | ||
104 | gradientUnits="userSpaceOnUse" | ||
105 | id="linearGradient3138" | ||
106 | xlink:href="#linearGradient4702-3-6" /> | ||
107 | <linearGradient | ||
108 | y2="1043.709" | ||
109 | x2="80.655251" | ||
110 | y1="1025.709" | ||
111 | x1="108.08774" | ||
112 | gradientTransform="matrix(-0.49726789,0,0,0.49726789,555.31016,722.70088)" | ||
113 | gradientUnits="userSpaceOnUse" | ||
114 | id="linearGradient3141" | ||
115 | xlink:href="#linearGradient4696-5" /> | ||
116 | <linearGradient | ||
117 | y2="922.07178" | ||
118 | x2="78.000107" | ||
119 | y1="1004.8033" | ||
120 | x1="113.5146" | ||
121 | gradientTransform="matrix(0.88803314,0,0,0.88803314,415.18739,350.00262)" | ||
122 | gradientUnits="userSpaceOnUse" | ||
123 | id="linearGradient3144" | ||
124 | xlink:href="#linearGradient4702-3-6" /> | ||
125 | <linearGradient | ||
126 | y2="70.667412" | ||
127 | x2="176.60477" | ||
128 | y1="63.65625" | ||
129 | x1="142.96875" | ||
130 | gradientTransform="matrix(0.88803314,0,0,0.88803314,415.2161,1106.9294)" | ||
131 | gradientUnits="userSpaceOnUse" | ||
132 | id="linearGradient3148" | ||
133 | xlink:href="#linearGradient4702-3-6" /> | ||
134 | <linearGradient | ||
135 | y2="70.667412" | ||
136 | x2="176.60477" | ||
137 | y1="63.65625" | ||
138 | x1="142.96875" | ||
139 | gradientTransform="matrix(0.88803314,0,0,0.88803314,415.2161,1106.9294)" | ||
140 | gradientUnits="userSpaceOnUse" | ||
141 | id="linearGradient3780" | ||
142 | xlink:href="#linearGradient4702-3-6" /> | ||
143 | <linearGradient | ||
144 | y2="922.07178" | ||
145 | x2="78.000107" | ||
146 | y1="1004.8033" | ||
147 | x1="113.5146" | ||
148 | gradientTransform="matrix(0.88803314,0,0,0.88803314,415.18739,350.00262)" | ||
149 | gradientUnits="userSpaceOnUse" | ||
150 | id="linearGradient3782" | ||
151 | xlink:href="#linearGradient4702-3-6" /> | ||
152 | <linearGradient | ||
153 | y2="1043.709" | ||
154 | x2="80.655251" | ||
155 | y1="1025.709" | ||
156 | x1="108.08774" | ||
157 | gradientTransform="matrix(-0.49726789,0,0,0.49726789,555.31016,722.70088)" | ||
158 | gradientUnits="userSpaceOnUse" | ||
159 | id="linearGradient3784" | ||
160 | xlink:href="#linearGradient4696-5" /> | ||
161 | <linearGradient | ||
162 | y2="69.791016" | ||
163 | x2="177.04297" | ||
164 | y1="63.65625" | ||
165 | x1="142.96875" | ||
166 | gradientTransform="matrix(-0.88803314,0,0,0.88803314,595.57001,1106.9291)" | ||
167 | gradientUnits="userSpaceOnUse" | ||
168 | id="linearGradient3786" | ||
169 | xlink:href="#linearGradient4702-3-6" /> | ||
170 | <filter | ||
171 | id="filter9204" | ||
172 | style="color-interpolation-filters:sRGB"> | ||
173 | <feColorMatrix | ||
174 | id="feColorMatrix9194" | ||
175 | result="colormatrix" | ||
176 | values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -0.2125 -0.7154 -0.0721 1 0 " | ||
177 | in="SourceGraphic" /> | ||
178 | <feComposite | ||
179 | k1="0" | ||
180 | id="feComposite9196" | ||
181 | result="composite" | ||
182 | k4="0" | ||
183 | k3="0" | ||
184 | k2="1" | ||
185 | operator="arithmetic" | ||
186 | in2="colormatrix" | ||
187 | in="SourceGraphic" /> | ||
188 | <feGaussianBlur | ||
189 | id="feGaussianBlur9198" | ||
190 | result="blur1" | ||
191 | stdDeviation="5 0.01" /> | ||
192 | <feGaussianBlur | ||
193 | id="feGaussianBlur9200" | ||
194 | result="blur2" | ||
195 | stdDeviation="0.01 5" | ||
196 | in="composite" /> | ||
197 | <feBlend | ||
198 | id="feBlend9202" | ||
199 | result="blend" | ||
200 | mode="darken" | ||
201 | in2="blur1" | ||
202 | in="blur2" /> | ||
203 | </filter> | ||
204 | <filter | ||
205 | id="filter9330" | ||
206 | style="color-interpolation-filters:sRGB"> | ||
207 | <feGaussianBlur | ||
208 | id="feGaussianBlur9328" | ||
209 | result="blur" | ||
210 | stdDeviation="2 2" /> | ||
211 | </filter> | ||
212 | </defs> | ||
213 | <metadata | ||
214 | id="metadata7"> | ||
215 | <rdf:RDF> | ||
216 | <cc:Work | ||
217 | rdf:about=""> | ||
218 | <dc:format>image/svg+xml</dc:format> | ||
219 | <dc:type | ||
220 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
221 | <dc:title>logo for GNUnet</dc:title> | ||
222 | <dc:creator> | ||
223 | <cc:Agent> | ||
224 | <dc:title>Luis Felipe López Acevedo, Amirouche Boubekki, carlo von lynX</dc:title> | ||
225 | </cc:Agent> | ||
226 | </dc:creator> | ||
227 | <dc:rights> | ||
228 | <cc:Agent> | ||
229 | <dc:title>GNUnet e.V.</dc:title> | ||
230 | </cc:Agent> | ||
231 | </dc:rights> | ||
232 | <cc:license | ||
233 | rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /> | ||
234 | <dc:description /> | ||
235 | </cc:Work> | ||
236 | <cc:License | ||
237 | rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"> | ||
238 | <cc:permits | ||
239 | rdf:resource="http://creativecommons.org/ns#Reproduction" /> | ||
240 | <cc:permits | ||
241 | rdf:resource="http://creativecommons.org/ns#Distribution" /> | ||
242 | <cc:requires | ||
243 | rdf:resource="http://creativecommons.org/ns#Notice" /> | ||
244 | <cc:requires | ||
245 | rdf:resource="http://creativecommons.org/ns#Attribution" /> | ||
246 | <cc:permits | ||
247 | rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> | ||
248 | <cc:requires | ||
249 | rdf:resource="http://creativecommons.org/ns#ShareAlike" /> | ||
250 | </cc:License> | ||
251 | </rdf:RDF> | ||
252 | </metadata> | ||
253 | <g | ||
254 | id="g5346" | ||
255 | style="display:none" | ||
256 | transform="translate(-387.41463,-609.81931)"> | ||
257 | <text | ||
258 | xml:space="preserve" | ||
259 | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.53852463px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03365779px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
260 | x="453.95291" | ||
261 | y="869.96057" | ||
262 | id="text5344"><tspan | ||
263 | id="tspan5342" | ||
264 | x="453.95291" | ||
265 | y="869.96057" | ||
266 | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:49.33333206px;font-family:'Ubuntu Bold';-inkscape-font-specification:'Ubuntu Bold, ';fill:#ffffff;stroke-width:1.03365779px" | ||
267 | dx="0 0 0">gnu net</tspan></text> | ||
268 | </g> | ||
269 | <g | ||
270 | transform="translate(-387.41463,-609.81931)" | ||
271 | style="display:none" | ||
272 | id="g950"> | ||
273 | <text | ||
274 | id="text948" | ||
275 | y="869.21057" | ||
276 | x="467.77612" | ||
277 | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.53852463px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03365779px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
278 | xml:space="preserve"><tspan | ||
279 | dx="0 -2.5 -3 0 -19.25 -2.5 -3" | ||
280 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:50.66666794px;font-family:'Anonymous Pro';-inkscape-font-specification:'Anonymous Pro Bold';fill:#ffffff;stroke-width:1.03365779px" | ||
281 | y="869.21057" | ||
282 | x="467.77612" | ||
283 | id="tspan946">gnu net</tspan></text> | ||
284 | </g> | ||
285 | <g | ||
286 | id="g941" | ||
287 | style="display:none" | ||
288 | transform="translate(0,-20)"> | ||
289 | <ellipse | ||
290 | ry="17.690269" | ||
291 | rx="17.68549" | ||
292 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#ee0000;stroke-width:1.68696308;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
293 | id="ellipse937" | ||
294 | cx="157.97346" | ||
295 | cy="180.65355" /> | ||
296 | <ellipse | ||
297 | ry="17.690269" | ||
298 | rx="17.68549" | ||
299 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#ee0000;stroke-width:1.68696308;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
300 | id="ellipse939" | ||
301 | cx="157.97346" | ||
302 | cy="111.16864" /> | ||
303 | </g> | ||
304 | <g | ||
305 | transform="translate(-387.41463,-609.81931)" | ||
306 | style="display:none" | ||
307 | id="g935"> | ||
308 | <g | ||
309 | aria-label="gnu net" | ||
310 | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.53852463px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03365779px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;image-rendering:auto" | ||
311 | id="g933"> | ||
312 | <path | ||
313 | d="m 423.90503,684.79003 h 22.14128 v 61.61056 q 0,11.55196 4.3855,16.04443 4.38546,4.49242 12.72857,4.49242 12.19374,0 20.00203,-9.94753 7.80828,-9.94753 7.80828,-27.48942 v -44.71046 h 22.14128 v 99.6893 h -22.14128 v -24.92231 q -3.31586,12.83553 -12.30071,20.10899 -8.98489,7.27346 -22.14132,7.27346 -15.29567,0 -23.95963,-9.94753 -8.664,-10.0545 -8.664,-30.59135 z" | ||
314 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:50.66666794px;font-family:'Anonymous Pro';-inkscape-font-specification:'Anonymous Pro Bold';fill:#ffffff;stroke-width:4.46906853px" | ||
315 | id="path925" /> | ||
316 | <path | ||
317 | d="m 669.48029,784.47933 h -22.14128 v -61.50359 q 0,-11.65892 -4.3855,-16.15139 -4.38546,-4.49243 -12.72857,-4.49243 -12.30071,0 -20.10899,9.94753 -7.70132,9.94754 -7.70132,27.48947 v 44.71041 h -22.14128 v -99.6893 h 22.14128 v 25.02928 q 3.31586,-12.94249 12.30071,-20.10899 8.98489,-7.27346 22.14132,-7.27346 15.29567,0 23.95967,9.94753 8.66396,9.94753 8.66396,30.59135 z" | ||
318 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:50.66666794px;font-family:'Anonymous Pro';-inkscape-font-specification:'Anonymous Pro Bold';fill:#ffffff;stroke-width:4.46906853px" | ||
319 | id="path927" /> | ||
320 | </g> | ||
321 | </g> | ||
322 | <g | ||
323 | id="g1296" | ||
324 | style="display:none" | ||
325 | transform="translate(0,-67.278107)"> | ||
326 | <path | ||
327 | style="fill:none;stroke:#dddddd;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
328 | d="m 62.698223,85.778107 -39.5,48.000003 v 0 l -1,2" | ||
329 | id="path1256" /> | ||
330 | <path | ||
331 | style="fill:none;stroke:#dddddd;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
332 | d="m 12.698223,104.77811 10,29 21,-10.5 v 0 0" | ||
333 | id="path1258" /> | ||
334 | <path | ||
335 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
336 | d="m 11.809253,105.24526 63.6227,34.91188 23.31802,-11.09978 -35.03955,28.74946 11.86161,-17.77468 -53.18435,-5.79678 40.95076,23.69646 25.32406,0.49689 24.193047,3.02495 v 48.02104 l 21.04995,-32.14943 -20.559,-15.87161 32.52749,48.02104 -8.06937,31.38386 -24.94907,-31.76198 24.94907,77.51429 22.25436,-36.69889 21.97354,37.07701 -43.59987,-0.37188 41.32877,-28.87448 22.05899,-21.17152 -19.90986,50.171 -3.71591,-29.60613 -8.57843,-31.7682 -9.69437,24.71516 54.37611,-52.19866 -24.96716,8.94671 -18.39175,19.15282 18.27579,-55.07718 25.20812,27.362 20.66591,-41.35238 -46.00204,14.12783 22.94304,-37.07431 23.05297,23.0777 31.8814,-26.48075 40.07874,-25.58708 -15.26372,39.20869 -24.69305,-13.74039 -55.05634,4.03119 79.62738,9.58108 -56.57441,12.73416" | ||
337 | id="path1260" /> | ||
338 | <path | ||
339 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
340 | d="m 98.868943,129.31358 37.045597,48.02106" | ||
341 | id="path1262" /> | ||
342 | <path | ||
343 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
344 | d="m 88.284483,158.4287 10.96248,-29.11512 12.474537,32.51819" | ||
345 | id="path1264" /> | ||
346 | <path | ||
347 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
348 | d="m 212.13974,133.78236 54.69043,-3.64603 -31.75647,27.04795" | ||
349 | id="path1266" /> | ||
350 | <path | ||
351 | transform="translate(-387.41463,-542.5412)" | ||
352 | style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#dddddd;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
353 | d="m 399.11285,648.31931 50.5,-19.5 -14.05,28.1 0.925,-1.725 -5.875,11.75 -0.25,-0.75" | ||
354 | id="path1268" /> | ||
355 | <path | ||
356 | transform="translate(-387.41463,-542.5412)" | ||
357 | style="display:inline;opacity:1;fill:#729fcf;fill-rule:evenodd;stroke:#dddddd;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
358 | d="m 601.57854,741.42859 -2.26809,-64.28015" | ||
359 | id="path1270" /> | ||
360 | <path | ||
361 | style="fill:none;stroke:#dddddd;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
362 | d="m 189.57322,206.52811 -44,2.625 25.375,17.125 v 0" | ||
363 | id="path1272" /> | ||
364 | <path | ||
365 | transform="translate(-387.41463,-542.5412)" | ||
366 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
367 | d="m 475.69911,700.21367 24.57107,51.42411" | ||
368 | id="path1274" /> | ||
369 | <path | ||
370 | transform="translate(-387.41463,-542.5412)" | ||
371 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
372 | d="m 534.29164,751.63778 12.85257,40.08057" | ||
373 | id="path1276" /> | ||
374 | <path | ||
375 | transform="translate(-387.41463,-542.5412)" | ||
376 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
377 | d="m 525.21925,783.02162 0.37803,45.75234" | ||
378 | id="path1278" /> | ||
379 | <path | ||
380 | transform="translate(-387.41463,-542.5412)" | ||
381 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
382 | d="m 601.95657,742.56293 -12.09653,36.6775" | ||
383 | id="path1280" /> | ||
384 | <path | ||
385 | transform="translate(-387.41463,-542.5412)" | ||
386 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
387 | d="m 475.69911,700.59178 46.98395,22.0278 10.85256,28.26194" | ||
388 | id="path1282" /> | ||
389 | <path | ||
390 | transform="translate(-387.41463,-542.5412)" | ||
391 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
392 | d="m 589.104,778.86231 -12.85255,-66.17074 v 36.6775 z" | ||
393 | id="path1284" /> | ||
394 | <path | ||
395 | transform="translate(-387.41463,-542.5412)" | ||
396 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
397 | d="m 557.35064,768.27501 31.75336,10.5873" | ||
398 | id="path1286" /> | ||
399 | <path | ||
400 | transform="translate(-387.41463,-542.5412)" | ||
401 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
402 | d="m 500.27018,704.37298 v 48.77728 l 24.57105,30.2495 23.81505,9.45293" | ||
403 | id="path1288" /> | ||
404 | <path | ||
405 | transform="translate(-387.41463,-542.5412)" | ||
406 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
407 | d="m 524.46323,829.53019 44.98392,-0.37812" | ||
408 | id="path1290" /> | ||
409 | <path | ||
410 | transform="translate(-387.41463,-542.5412)" | ||
411 | style="display:inline;opacity:1;fill:none;stroke:#dddddd;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
412 | d="m 694.61285,647.31931 -40.285,-17.00922 -4.715,-1.99078 29,57.5 v -0.5 0 h 0.5 v 0" | ||
413 | id="path1292" /> | ||
414 | <path | ||
415 | transform="translate(-387.41463,-542.5412)" | ||
416 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#dddddd;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
417 | d="m 409.92428,677.14844 54.05634,6.0499" | ||
418 | id="path1294" /> | ||
419 | </g> | ||
420 | <g | ||
421 | transform="translate(0,-67.278107)" | ||
422 | style="display:none" | ||
423 | id="g1254"> | ||
424 | <ellipse | ||
425 | transform="translate(-387.41463,-542.5412)" | ||
426 | ry="4.1593032" | ||
427 | rx="4.1581793" | ||
428 | cy="829.24042" | ||
429 | cx="568.98083" | ||
430 | id="ellipse1194" | ||
431 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | ||
432 | <ellipse | ||
433 | transform="translate(-387.41463,-542.5412)" | ||
434 | ry="4.1593032" | ||
435 | rx="4.1581793" | ||
436 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
437 | id="ellipse1196" | ||
438 | cx="588.85413" | ||
439 | cy="778.67493" /> | ||
440 | <ellipse | ||
441 | transform="translate(-387.41463,-542.5412)" | ||
442 | ry="4.1593032" | ||
443 | rx="4.1581793" | ||
444 | cy="740.67249" | ||
445 | cx="601.57867" | ||
446 | id="ellipse1198" | ||
447 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | ||
448 | <ellipse | ||
449 | transform="translate(-387.41463,-542.5412)" | ||
450 | ry="4.1593032" | ||
451 | rx="4.1581793" | ||
452 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
453 | id="ellipse1200" | ||
454 | cx="525.79852" | ||
455 | cy="829.24042" /> | ||
456 | <ellipse | ||
457 | transform="translate(-387.41463,-542.5412)" | ||
458 | ry="4.1593032" | ||
459 | rx="4.1581793" | ||
460 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
461 | id="ellipse1202" | ||
462 | cx="557.82654" | ||
463 | cy="768.71582" /> | ||
464 | <ellipse | ||
465 | transform="translate(-387.41463,-542.5412)" | ||
466 | ry="4.1593032" | ||
467 | rx="4.1581793" | ||
468 | cy="783.02173" | ||
469 | cx="525.21936" | ||
470 | id="ellipse1204" | ||
471 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | ||
472 | <ellipse | ||
473 | transform="translate(-387.41463,-542.5412)" | ||
474 | ry="4.1593032" | ||
475 | rx="4.1581793" | ||
476 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
477 | id="ellipse1206" | ||
478 | cx="400.09586" | ||
479 | cy="647.34271" /> | ||
480 | <ellipse | ||
481 | transform="translate(-387.41463,-542.5412)" | ||
482 | ry="4.1593032" | ||
483 | rx="4.1581793" | ||
484 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
485 | id="ellipse1208" | ||
486 | cx="450.11285" | ||
487 | cy="628.31934" /> | ||
488 | <ellipse | ||
489 | transform="translate(-387.41463,-542.5412)" | ||
490 | ry="4.1593032" | ||
491 | rx="4.1581793" | ||
492 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
493 | id="ellipse1210" | ||
494 | cx="622.36951" | ||
495 | cy="699.45752" /> | ||
496 | <ellipse | ||
497 | transform="translate(-387.41463,-542.5412)" | ||
498 | ry="4.1593032" | ||
499 | rx="4.1581793" | ||
500 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
501 | id="ellipse1212" | ||
502 | cx="547.21771" | ||
503 | cy="792.29773" /> | ||
504 | <ellipse | ||
505 | transform="translate(-387.41463,-542.5412)" | ||
506 | ry="4.1593032" | ||
507 | rx="4.1581793" | ||
508 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
509 | id="ellipse1214" | ||
510 | cx="566.20697" | ||
511 | cy="800.12549" /> | ||
512 | <ellipse | ||
513 | transform="translate(-387.41463,-542.5412)" | ||
514 | ry="4.1593032" | ||
515 | rx="4.1581793" | ||
516 | cy="751.63794" | ||
517 | cx="500.64822" | ||
518 | id="ellipse1216" | ||
519 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | ||
520 | <ellipse | ||
521 | transform="translate(-387.41463,-542.5412)" | ||
522 | ry="4.1593032" | ||
523 | rx="4.1581793" | ||
524 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
525 | id="ellipse1218" | ||
526 | cx="533.33447" | ||
527 | cy="751.72632" /> | ||
528 | <ellipse | ||
529 | transform="translate(-387.41463,-542.5412)" | ||
530 | ry="4.1593032" | ||
531 | rx="4.1581793" | ||
532 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
533 | id="ellipse1220" | ||
534 | cx="450.75012" | ||
535 | cy="699.83545" /> | ||
536 | <ellipse | ||
537 | transform="translate(-387.41463,-542.5412)" | ||
538 | ry="4.1593032" | ||
539 | rx="4.1581793" | ||
540 | cy="700.59174" | ||
541 | cx="476.07718" | ||
542 | id="ellipse1222" | ||
543 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | ||
544 | <ellipse | ||
545 | transform="translate(-387.41463,-542.5412)" | ||
546 | ry="4.1593032" | ||
547 | rx="4.1581793" | ||
548 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
549 | id="ellipse1224" | ||
550 | cx="521.49146" | ||
551 | cy="719.65314" /> | ||
552 | <ellipse | ||
553 | transform="translate(-387.41463,-542.5412)" | ||
554 | ry="4.1593032" | ||
555 | rx="4.1581793" | ||
556 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
557 | id="ellipse1226" | ||
558 | cx="500.6362" | ||
559 | cy="703.87305" /> | ||
560 | <ellipse | ||
561 | ry="4.1593032" | ||
562 | rx="4.1581793" | ||
563 | cy="134.28851" | ||
564 | cx="211.9584" | ||
565 | id="ellipse1228" | ||
566 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | ||
567 | <ellipse | ||
568 | transform="translate(-387.41463,-542.5412)" | ||
569 | ry="4.1593032" | ||
570 | rx="4.1581793" | ||
571 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
572 | id="ellipse1230" | ||
573 | cx="576.62964" | ||
574 | cy="713.44794" /> | ||
575 | <ellipse | ||
576 | ry="4.1593032" | ||
577 | rx="4.1581793" | ||
578 | cy="123.16669" | ||
579 | cx="43.166531" | ||
580 | id="ellipse1232" | ||
581 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | ||
582 | <ellipse | ||
583 | ry="4.1593032" | ||
584 | rx="4.1581793" | ||
585 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
586 | id="ellipse1234" | ||
587 | cx="98.865997" | ||
588 | cy="129.43542" /> | ||
589 | <ellipse | ||
590 | ry="4.1593032" | ||
591 | rx="4.1581793" | ||
592 | cy="130.05022" | ||
593 | cx="267.08618" | ||
594 | id="ellipse1236" | ||
595 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | ||
596 | <ellipse | ||
597 | transform="translate(-387.41463,-542.5412)" | ||
598 | ry="4.1593032" | ||
599 | rx="4.1581793" | ||
600 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
601 | id="ellipse1238" | ||
602 | cx="679.07196" | ||
603 | cy="686.22339" /> | ||
604 | <ellipse | ||
605 | transform="translate(-387.41463,-542.5412)" | ||
606 | ry="4.1593032" | ||
607 | rx="4.1581793" | ||
608 | cy="748.99109" | ||
609 | cx="577.00763" | ||
610 | id="ellipse1240" | ||
611 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | ||
612 | <ellipse | ||
613 | transform="translate(-387.41463,-542.5412)" | ||
614 | ry="4.1593032" | ||
615 | rx="4.1581793" | ||
616 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
617 | id="ellipse1242" | ||
618 | cx="577.00763" | ||
619 | cy="748.99109" /> | ||
620 | <ellipse | ||
621 | transform="translate(-387.41463,-542.5412)" | ||
622 | ry="4.1593032" | ||
623 | rx="4.1581793" | ||
624 | cy="748.99109" | ||
625 | cx="577.07013" | ||
626 | id="ellipse1244" | ||
627 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | ||
628 | <ellipse | ||
629 | transform="translate(0,-3e-6)" | ||
630 | ry="4.1593032" | ||
631 | rx="4.1581793" | ||
632 | cy="133.85095" | ||
633 | cx="22.887779" | ||
634 | id="ellipse1246" | ||
635 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | ||
636 | <ellipse | ||
637 | transform="translate(-387.41463,-542.5412)" | ||
638 | ry="4.1593032" | ||
639 | rx="4.1581793" | ||
640 | cy="682.1922" | ||
641 | cx="462.47165" | ||
642 | id="ellipse1248" | ||
643 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | ||
644 | <ellipse | ||
645 | transform="translate(-387.41463,-542.5412)" | ||
646 | ry="4.1593032" | ||
647 | rx="4.1581793" | ||
648 | cy="647.3053" | ||
649 | cx="694.58264" | ||
650 | id="ellipse1250" | ||
651 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | ||
652 | <ellipse | ||
653 | transform="translate(-387.41463,-542.5412)" | ||
654 | ry="4.1593032" | ||
655 | rx="4.1581793" | ||
656 | style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#eeeeee;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
657 | id="ellipse1252" | ||
658 | cx="649.61285" | ||
659 | cy="628.31934" /> | ||
660 | </g> | ||
661 | <g | ||
662 | transform="translate(0,-67.278107)" | ||
663 | style="display:inline" | ||
664 | id="g1533"> | ||
665 | <path | ||
666 | id="path1493" | ||
667 | d="m 62.698223,85.778107 -39.5,48.000003 v 0 l -1,2" | ||
668 | style="fill:none;stroke:#3399cc;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | ||
669 | <path | ||
670 | id="path1495" | ||
671 | d="m 12.698223,104.77811 10,29 21,-10.5 v 0 0" | ||
672 | style="fill:none;stroke:#3399cc;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | ||
673 | <path | ||
674 | id="path1497" | ||
675 | d="m 11.809253,105.24526 63.6227,34.91188 23.31802,-11.09978 -35.03955,28.74946 11.86161,-17.77468 -53.18435,-5.79678 40.95076,23.69646 25.32406,0.49689 24.193047,3.02495 v 48.02104 l 21.04995,-32.14943 -20.559,-15.87161 32.52749,48.02104 -8.06937,31.38386 -24.94907,-31.76198 24.94907,77.51429 22.25436,-36.69889 21.97354,37.07701 -43.59987,-0.37188 41.32877,-28.87448 22.05899,-21.17152 -19.90986,50.171 -3.71591,-29.60613 -8.57843,-31.7682 -9.69437,24.71516 54.37611,-52.19866 -24.96716,8.94671 -18.39175,19.15282 18.27579,-55.07718 25.20812,27.362 20.66591,-41.35238 -46.00204,14.12783 22.94304,-37.07431 23.05297,23.0777 31.8814,-26.48075 40.07874,-25.58708 -15.26372,39.20869 -24.69305,-13.74039 -55.05634,4.03119 79.62738,9.58108 -56.57441,12.73416" | ||
676 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | ||
677 | <path | ||
678 | id="path1499" | ||
679 | d="m 98.868943,129.31358 37.045597,48.02106" | ||
680 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | ||
681 | <path | ||
682 | id="path1501" | ||
683 | d="m 88.284483,158.4287 10.96248,-29.11512 12.474537,32.51819" | ||
684 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | ||
685 | <path | ||
686 | id="path1503" | ||
687 | d="m 212.13974,133.78236 54.69043,-3.64603 -31.75647,27.04795" | ||
688 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | ||
689 | <path | ||
690 | id="path1505" | ||
691 | d="m 399.11285,648.31931 50.5,-19.5 -14.05,28.1 0.925,-1.725 -5.875,11.75 -0.25,-0.75" | ||
692 | style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#3399cc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
693 | transform="translate(-387.41463,-542.5412)" /> | ||
694 | <path | ||
695 | id="path1507" | ||
696 | d="m 601.57854,741.42859 -2.26809,-64.28015" | ||
697 | style="display:inline;opacity:1;fill:#729fcf;fill-rule:evenodd;stroke:#3399cc;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
698 | transform="translate(-387.41463,-542.5412)" /> | ||
699 | <path | ||
700 | id="path1509" | ||
701 | d="m 189.57322,206.52811 -44,2.625 25.375,17.125 v 0" | ||
702 | style="fill:none;stroke:#3399cc;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | ||
703 | <path | ||
704 | id="path1511" | ||
705 | d="m 475.69911,700.21367 24.57107,51.42411" | ||
706 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
707 | transform="translate(-387.41463,-542.5412)" /> | ||
708 | <path | ||
709 | id="path1513" | ||
710 | d="m 534.29164,751.63778 12.85257,40.08057" | ||
711 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
712 | transform="translate(-387.41463,-542.5412)" /> | ||
713 | <path | ||
714 | id="path1515" | ||
715 | d="m 525.21925,783.02162 0.37803,45.75234" | ||
716 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
717 | transform="translate(-387.41463,-542.5412)" /> | ||
718 | <path | ||
719 | id="path1517" | ||
720 | d="m 601.95657,742.56293 -12.09653,36.6775" | ||
721 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
722 | transform="translate(-387.41463,-542.5412)" /> | ||
723 | <path | ||
724 | id="path1519" | ||
725 | d="m 475.69911,700.59178 46.98395,22.0278 10.85256,28.26194" | ||
726 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
727 | transform="translate(-387.41463,-542.5412)" /> | ||
728 | <path | ||
729 | id="path1521" | ||
730 | d="m 589.104,778.86231 -12.85255,-66.17074 v 36.6775 z" | ||
731 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
732 | transform="translate(-387.41463,-542.5412)" /> | ||
733 | <path | ||
734 | id="path1523" | ||
735 | d="m 557.35064,768.27501 31.75336,10.5873" | ||
736 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
737 | transform="translate(-387.41463,-542.5412)" /> | ||
738 | <path | ||
739 | id="path1525" | ||
740 | d="m 500.27018,704.37298 v 48.77728 l 24.57105,30.2495 23.81505,9.45293" | ||
741 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
742 | transform="translate(-387.41463,-542.5412)" /> | ||
743 | <path | ||
744 | id="path1527" | ||
745 | d="m 524.46323,829.53019 44.98392,-0.37812" | ||
746 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
747 | transform="translate(-387.41463,-542.5412)" /> | ||
748 | <path | ||
749 | id="path1529" | ||
750 | d="m 694.61285,647.31931 -40.285,-17.00922 -4.715,-1.99078 29,57.5 v -0.5 0 h 0.5 v 0" | ||
751 | style="display:inline;opacity:1;fill:none;stroke:#3399cc;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
752 | transform="translate(-387.41463,-542.5412)" /> | ||
753 | <path | ||
754 | id="path1531" | ||
755 | d="m 409.92428,677.14844 54.05634,6.0499" | ||
756 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#3399cc;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
757 | transform="translate(-387.41463,-542.5412)" /> | ||
758 | </g> | ||
759 | <g | ||
760 | id="g1491" | ||
761 | style="display:inline" | ||
762 | transform="translate(0,-67.278107)"> | ||
763 | <ellipse | ||
764 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
765 | id="ellipse1431" | ||
766 | cx="568.98083" | ||
767 | cy="829.24042" | ||
768 | rx="4.1581793" | ||
769 | ry="4.1593032" | ||
770 | transform="translate(-387.41463,-542.5412)" /> | ||
771 | <ellipse | ||
772 | cy="778.67493" | ||
773 | cx="588.85413" | ||
774 | id="ellipse1433" | ||
775 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
776 | rx="4.1581793" | ||
777 | ry="4.1593032" | ||
778 | transform="translate(-387.41463,-542.5412)" /> | ||
779 | <ellipse | ||
780 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
781 | id="ellipse1435" | ||
782 | cx="601.57867" | ||
783 | cy="740.67249" | ||
784 | rx="4.1581793" | ||
785 | ry="4.1593032" | ||
786 | transform="translate(-387.41463,-542.5412)" /> | ||
787 | <ellipse | ||
788 | cy="829.24042" | ||
789 | cx="525.79852" | ||
790 | id="ellipse1437" | ||
791 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
792 | rx="4.1581793" | ||
793 | ry="4.1593032" | ||
794 | transform="translate(-387.41463,-542.5412)" /> | ||
795 | <ellipse | ||
796 | cy="768.71582" | ||
797 | cx="557.82654" | ||
798 | id="ellipse1439" | ||
799 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
800 | rx="4.1581793" | ||
801 | ry="4.1593032" | ||
802 | transform="translate(-387.41463,-542.5412)" /> | ||
803 | <ellipse | ||
804 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
805 | id="ellipse1441" | ||
806 | cx="525.21936" | ||
807 | cy="783.02173" | ||
808 | rx="4.1581793" | ||
809 | ry="4.1593032" | ||
810 | transform="translate(-387.41463,-542.5412)" /> | ||
811 | <ellipse | ||
812 | cy="647.34271" | ||
813 | cx="400.09586" | ||
814 | id="ellipse1443" | ||
815 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
816 | rx="4.1581793" | ||
817 | ry="4.1593032" | ||
818 | transform="translate(-387.41463,-542.5412)" /> | ||
819 | <ellipse | ||
820 | cy="628.31934" | ||
821 | cx="450.11285" | ||
822 | id="ellipse1445" | ||
823 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
824 | rx="4.1581793" | ||
825 | ry="4.1593032" | ||
826 | transform="translate(-387.41463,-542.5412)" /> | ||
827 | <ellipse | ||
828 | cy="699.45752" | ||
829 | cx="622.36951" | ||
830 | id="ellipse1447" | ||
831 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
832 | rx="4.1581793" | ||
833 | ry="4.1593032" | ||
834 | transform="translate(-387.41463,-542.5412)" /> | ||
835 | <ellipse | ||
836 | cy="792.29773" | ||
837 | cx="547.21771" | ||
838 | id="ellipse1449" | ||
839 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
840 | rx="4.1581793" | ||
841 | ry="4.1593032" | ||
842 | transform="translate(-387.41463,-542.5412)" /> | ||
843 | <ellipse | ||
844 | cy="800.12549" | ||
845 | cx="566.20697" | ||
846 | id="ellipse1451" | ||
847 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
848 | rx="4.1581793" | ||
849 | ry="4.1593032" | ||
850 | transform="translate(-387.41463,-542.5412)" /> | ||
851 | <ellipse | ||
852 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
853 | id="ellipse1453" | ||
854 | cx="500.64822" | ||
855 | cy="751.63794" | ||
856 | rx="4.1581793" | ||
857 | ry="4.1593032" | ||
858 | transform="translate(-387.41463,-542.5412)" /> | ||
859 | <ellipse | ||
860 | cy="751.72632" | ||
861 | cx="533.33447" | ||
862 | id="ellipse1455" | ||
863 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
864 | rx="4.1581793" | ||
865 | ry="4.1593032" | ||
866 | transform="translate(-387.41463,-542.5412)" /> | ||
867 | <ellipse | ||
868 | cy="699.83545" | ||
869 | cx="450.75012" | ||
870 | id="ellipse1457" | ||
871 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
872 | rx="4.1581793" | ||
873 | ry="4.1593032" | ||
874 | transform="translate(-387.41463,-542.5412)" /> | ||
875 | <ellipse | ||
876 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
877 | id="ellipse1459" | ||
878 | cx="476.07718" | ||
879 | cy="700.59174" | ||
880 | rx="4.1581793" | ||
881 | ry="4.1593032" | ||
882 | transform="translate(-387.41463,-542.5412)" /> | ||
883 | <ellipse | ||
884 | cy="719.65314" | ||
885 | cx="521.49146" | ||
886 | id="ellipse1461" | ||
887 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
888 | rx="4.1581793" | ||
889 | ry="4.1593032" | ||
890 | transform="translate(-387.41463,-542.5412)" /> | ||
891 | <ellipse | ||
892 | cy="703.87305" | ||
893 | cx="500.6362" | ||
894 | id="ellipse1463" | ||
895 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
896 | rx="4.1581793" | ||
897 | ry="4.1593032" | ||
898 | transform="translate(-387.41463,-542.5412)" /> | ||
899 | <ellipse | ||
900 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
901 | id="ellipse1465" | ||
902 | cx="211.9584" | ||
903 | cy="134.28851" | ||
904 | rx="4.1581793" | ||
905 | ry="4.1593032" /> | ||
906 | <ellipse | ||
907 | cy="713.44794" | ||
908 | cx="576.62964" | ||
909 | id="ellipse1467" | ||
910 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
911 | rx="4.1581793" | ||
912 | ry="4.1593032" | ||
913 | transform="translate(-387.41463,-542.5412)" /> | ||
914 | <ellipse | ||
915 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
916 | id="ellipse1469" | ||
917 | cx="43.166531" | ||
918 | cy="123.16669" | ||
919 | rx="4.1581793" | ||
920 | ry="4.1593032" /> | ||
921 | <ellipse | ||
922 | cy="129.43542" | ||
923 | cx="98.865997" | ||
924 | id="ellipse1471" | ||
925 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
926 | rx="4.1581793" | ||
927 | ry="4.1593032" /> | ||
928 | <ellipse | ||
929 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
930 | id="ellipse1473" | ||
931 | cx="267.08618" | ||
932 | cy="130.05022" | ||
933 | rx="4.1581793" | ||
934 | ry="4.1593032" /> | ||
935 | <ellipse | ||
936 | cy="686.22339" | ||
937 | cx="679.07196" | ||
938 | id="ellipse1475" | ||
939 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
940 | rx="4.1581793" | ||
941 | ry="4.1593032" | ||
942 | transform="translate(-387.41463,-542.5412)" /> | ||
943 | <ellipse | ||
944 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
945 | id="ellipse1477" | ||
946 | cx="577.00763" | ||
947 | cy="748.99109" | ||
948 | rx="4.1581793" | ||
949 | ry="4.1593032" | ||
950 | transform="translate(-387.41463,-542.5412)" /> | ||
951 | <ellipse | ||
952 | cy="748.99109" | ||
953 | cx="577.00763" | ||
954 | id="ellipse1479" | ||
955 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
956 | rx="4.1581793" | ||
957 | ry="4.1593032" | ||
958 | transform="translate(-387.41463,-542.5412)" /> | ||
959 | <ellipse | ||
960 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
961 | id="ellipse1481" | ||
962 | cx="577.07013" | ||
963 | cy="748.99109" | ||
964 | rx="4.1581793" | ||
965 | ry="4.1593032" | ||
966 | transform="translate(-387.41463,-542.5412)" /> | ||
967 | <ellipse | ||
968 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
969 | id="ellipse1483" | ||
970 | cx="22.887779" | ||
971 | cy="133.85095" | ||
972 | rx="4.1581793" | ||
973 | ry="4.1593032" | ||
974 | transform="translate(0,-3e-6)" /> | ||
975 | <ellipse | ||
976 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
977 | id="ellipse1485" | ||
978 | cx="462.47165" | ||
979 | cy="682.1922" | ||
980 | rx="4.1581793" | ||
981 | ry="4.1593032" | ||
982 | transform="translate(-387.41463,-542.5412)" /> | ||
983 | <ellipse | ||
984 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
985 | id="ellipse1487" | ||
986 | cx="694.58264" | ||
987 | cy="647.3053" | ||
988 | rx="4.1581793" | ||
989 | ry="4.1593032" | ||
990 | transform="translate(-387.41463,-542.5412)" /> | ||
991 | <ellipse | ||
992 | cy="628.31934" | ||
993 | cx="649.61285" | ||
994 | id="ellipse1489" | ||
995 | style="display:inline;opacity:1;fill:#419edb;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
996 | rx="4.1581793" | ||
997 | ry="4.1593032" | ||
998 | transform="translate(-387.41463,-542.5412)" /> | ||
999 | </g> | ||
1000 | <g | ||
1001 | id="g1539" | ||
1002 | style="display:inline" | ||
1003 | transform="translate(0,-20)"> | ||
1004 | <ellipse | ||
1005 | ry="4.1593032" | ||
1006 | rx="4.1581793" | ||
1007 | style="display:inline;opacity:1;fill:#3399cc;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1008 | id="ellipse1535" | ||
1009 | cx="159.80099" | ||
1010 | cy="276.32968" /> | ||
1011 | <ellipse | ||
1012 | ry="4.1593032" | ||
1013 | rx="4.1581793" | ||
1014 | style="display:inline;opacity:1;fill:#3399cc;fill-opacity:1;stroke:#3399cc;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1015 | id="ellipse1537" | ||
1016 | cx="159.80099" | ||
1017 | cy="259.99252" /> | ||
1018 | </g> | ||
1019 | <g | ||
1020 | transform="translate(0,-67.278107)" | ||
1021 | style="display:none" | ||
1022 | id="layer3"> | ||
1023 | <path | ||
1024 | id="path5313" | ||
1025 | d="m 62.698223,85.778107 -39.5,48.000003 v 0 l -1,2" | ||
1026 | style="fill:none;stroke:#cc0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" /> | ||
1027 | <path | ||
1028 | id="path5311" | ||
1029 | d="m 12.698223,104.77811 10,29 21,-10.5 v 0 0" | ||
1030 | style="fill:none;stroke:#cc0000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" /> | ||
1031 | <path | ||
1032 | id="path9316" | ||
1033 | d="m 11.809253,105.24526 63.6227,34.91188 23.31802,-11.09978 -35.03955,28.74946 11.86161,-17.77468 -53.18435,-5.79678 40.95076,23.69646 25.32406,0.49689 24.193047,3.02495 v 48.02104 l 21.04995,-32.14943 -20.559,-15.87161 32.52749,48.02104 -8.06937,31.38386 -24.94907,-31.76198 24.94907,77.51429 22.25436,-36.69889 21.97354,37.07701 -43.59987,-0.37188 41.32877,-28.87448 22.05899,-21.17152 -19.90986,50.171 -3.71591,-29.60613 -8.57843,-31.7682 -9.69437,24.71516 54.37611,-52.19866 -24.96716,8.94671 -18.39175,19.15282 18.27579,-55.07718 25.20812,27.362 20.66591,-41.35238 -46.00204,14.12783 22.94304,-37.07431 23.05297,23.0777 31.8814,-26.48075 40.07874,-25.58708 -15.26372,39.20869 -24.69305,-13.74039 -55.05634,4.03119 79.62738,9.58108 -56.57441,12.73416" | ||
1034 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" /> | ||
1035 | <path | ||
1036 | id="path9318" | ||
1037 | d="m 98.868943,129.31358 37.045597,48.02106" | ||
1038 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" /> | ||
1039 | <path | ||
1040 | id="path12058" | ||
1041 | d="m 88.284483,158.4287 10.96248,-29.11512 12.474537,32.51819" | ||
1042 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" /> | ||
1043 | <path | ||
1044 | id="path12250" | ||
1045 | d="m 212.13974,133.78236 54.69043,-3.64603 -31.75647,27.04795" | ||
1046 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" /> | ||
1047 | <path | ||
1048 | id="path5161" | ||
1049 | d="m 399.11285,648.31931 50.5,-19.5 -14.05,28.1 0.925,-1.725 -5.875,11.75 -0.25,-0.75" | ||
1050 | style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#cc0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" | ||
1051 | transform="translate(-387.41463,-542.5412)" /> | ||
1052 | <path | ||
1053 | id="path12206" | ||
1054 | d="m 601.57854,741.42859 -2.26809,-64.28015" | ||
1055 | style="display:inline;opacity:1;fill:#729fcf;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" | ||
1056 | transform="translate(-387.41463,-542.5412)" /> | ||
1057 | <path | ||
1058 | id="path5331" | ||
1059 | d="m 189.57322,206.52811 -44,2.625 25.375,17.125 v 0" | ||
1060 | style="fill:none;stroke:#cc0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" /> | ||
1061 | <path | ||
1062 | id="path9320" | ||
1063 | d="m 475.69911,700.21367 24.57107,51.42411" | ||
1064 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" | ||
1065 | transform="translate(-387.41463,-542.5412)" /> | ||
1066 | <path | ||
1067 | id="path9322" | ||
1068 | d="m 534.29164,751.63778 12.85257,40.08057" | ||
1069 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" | ||
1070 | transform="translate(-387.41463,-542.5412)" /> | ||
1071 | <path | ||
1072 | id="path9324" | ||
1073 | d="m 525.21925,783.02162 0.37803,45.75234" | ||
1074 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" | ||
1075 | transform="translate(-387.41463,-542.5412)" /> | ||
1076 | <path | ||
1077 | id="path9326" | ||
1078 | d="m 601.95657,742.56293 -12.09653,36.6775" | ||
1079 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" | ||
1080 | transform="translate(-387.41463,-542.5412)" /> | ||
1081 | <path | ||
1082 | id="path12060" | ||
1083 | d="m 475.69911,700.59178 46.98395,22.0278 10.85256,28.26194" | ||
1084 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" | ||
1085 | transform="translate(-387.41463,-542.5412)" /> | ||
1086 | <path | ||
1087 | id="path12208" | ||
1088 | d="m 589.104,778.86231 -12.85255,-66.17074 v 36.6775 z" | ||
1089 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.99607843" | ||
1090 | transform="translate(-387.41463,-542.5412)" /> | ||
1091 | <path | ||
1092 | id="path12210" | ||
1093 | d="m 557.35064,768.27501 31.75336,10.5873" | ||
1094 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.99607843" | ||
1095 | transform="translate(-387.41463,-542.5412)" /> | ||
1096 | <path | ||
1097 | id="path12212" | ||
1098 | d="m 500.27018,704.37298 v 48.77728 l 24.57105,30.2495 23.81505,9.45293" | ||
1099 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.99607843" | ||
1100 | transform="translate(-387.41463,-542.5412)" /> | ||
1101 | <path | ||
1102 | id="path12216" | ||
1103 | d="m 524.46323,829.53019 44.98392,-0.37812" | ||
1104 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" | ||
1105 | transform="translate(-387.41463,-542.5412)" /> | ||
1106 | <path | ||
1107 | id="path5163" | ||
1108 | d="m 694.61285,647.31931 -40.285,-17.00922 -4.715,-1.99078 29,57.5 v -0.5 0 h 0.5 v 0" | ||
1109 | style="display:inline;opacity:1;fill:none;stroke:#cc0000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" | ||
1110 | transform="translate(-387.41463,-542.5412)" /> | ||
1111 | <path | ||
1112 | id="path12214" | ||
1113 | d="m 409.92428,677.14844 54.05634,6.0499" | ||
1114 | style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.99607843" | ||
1115 | transform="translate(-387.41463,-542.5412)" /> | ||
1116 | </g> | ||
1117 | <g | ||
1118 | id="g325" | ||
1119 | style="display:none" | ||
1120 | transform="translate(0,-67.278107)"> | ||
1121 | <ellipse | ||
1122 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1123 | id="ellipse12254" | ||
1124 | cx="568.98083" | ||
1125 | cy="829.24042" | ||
1126 | rx="4.1581793" | ||
1127 | ry="4.1593032" | ||
1128 | transform="translate(-387.41463,-542.5412)" /> | ||
1129 | <ellipse | ||
1130 | cy="778.67493" | ||
1131 | cx="588.85413" | ||
1132 | id="ellipse12290" | ||
1133 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1134 | rx="4.1581793" | ||
1135 | ry="4.1593032" | ||
1136 | transform="translate(-387.41463,-542.5412)" /> | ||
1137 | <ellipse | ||
1138 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1139 | id="ellipse12284" | ||
1140 | cx="601.57867" | ||
1141 | cy="740.67249" | ||
1142 | rx="4.1581793" | ||
1143 | ry="4.1593032" | ||
1144 | transform="translate(-387.41463,-542.5412)" /> | ||
1145 | <ellipse | ||
1146 | cy="829.24042" | ||
1147 | cx="525.79852" | ||
1148 | id="ellipse12256" | ||
1149 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1150 | rx="4.1581793" | ||
1151 | ry="4.1593032" | ||
1152 | transform="translate(-387.41463,-542.5412)" /> | ||
1153 | <ellipse | ||
1154 | cy="768.71582" | ||
1155 | cx="557.82654" | ||
1156 | id="ellipse12306" | ||
1157 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1158 | rx="4.1581793" | ||
1159 | ry="4.1593032" | ||
1160 | transform="translate(-387.41463,-542.5412)" /> | ||
1161 | <ellipse | ||
1162 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1163 | id="ellipse12280" | ||
1164 | cx="525.21936" | ||
1165 | cy="783.02173" | ||
1166 | rx="4.1581793" | ||
1167 | ry="4.1593032" | ||
1168 | transform="translate(-387.41463,-542.5412)" /> | ||
1169 | <ellipse | ||
1170 | cy="647.34271" | ||
1171 | cx="400.09586" | ||
1172 | id="ellipse12258" | ||
1173 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1174 | rx="4.1581793" | ||
1175 | ry="4.1593032" | ||
1176 | transform="translate(-387.41463,-542.5412)" /> | ||
1177 | <ellipse | ||
1178 | cy="628.31934" | ||
1179 | cx="450.11285" | ||
1180 | id="ellipse12258-3" | ||
1181 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1182 | rx="4.1581793" | ||
1183 | ry="4.1593032" | ||
1184 | transform="translate(-387.41463,-542.5412)" /> | ||
1185 | <ellipse | ||
1186 | cy="699.45752" | ||
1187 | cx="622.36951" | ||
1188 | id="ellipse12294" | ||
1189 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1190 | rx="4.1581793" | ||
1191 | ry="4.1593032" | ||
1192 | transform="translate(-387.41463,-542.5412)" /> | ||
1193 | <ellipse | ||
1194 | cy="792.29773" | ||
1195 | cx="547.21771" | ||
1196 | id="ellipse12252" | ||
1197 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1198 | rx="4.1581793" | ||
1199 | ry="4.1593032" | ||
1200 | transform="translate(-387.41463,-542.5412)" /> | ||
1201 | <ellipse | ||
1202 | cy="800.12549" | ||
1203 | cx="566.20697" | ||
1204 | id="ellipse12282" | ||
1205 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1206 | rx="4.1581793" | ||
1207 | ry="4.1593032" | ||
1208 | transform="translate(-387.41463,-542.5412)" /> | ||
1209 | <ellipse | ||
1210 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1211 | id="ellipse12276" | ||
1212 | cx="500.64822" | ||
1213 | cy="751.63794" | ||
1214 | rx="4.1581793" | ||
1215 | ry="4.1593032" | ||
1216 | transform="translate(-387.41463,-542.5412)" /> | ||
1217 | <ellipse | ||
1218 | cy="751.72632" | ||
1219 | cx="533.33447" | ||
1220 | id="ellipse12278" | ||
1221 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1222 | rx="4.1581793" | ||
1223 | ry="4.1593032" | ||
1224 | transform="translate(-387.41463,-542.5412)" /> | ||
1225 | <ellipse | ||
1226 | cy="699.83545" | ||
1227 | cx="450.75012" | ||
1228 | id="ellipse12262" | ||
1229 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1230 | rx="4.1581793" | ||
1231 | ry="4.1593032" | ||
1232 | transform="translate(-387.41463,-542.5412)" /> | ||
1233 | <ellipse | ||
1234 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1235 | id="ellipse12268" | ||
1236 | cx="476.07718" | ||
1237 | cy="700.59174" | ||
1238 | rx="4.1581793" | ||
1239 | ry="4.1593032" | ||
1240 | transform="translate(-387.41463,-542.5412)" /> | ||
1241 | <ellipse | ||
1242 | cy="719.65314" | ||
1243 | cx="521.49146" | ||
1244 | id="ellipse12270" | ||
1245 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1246 | rx="4.1581793" | ||
1247 | ry="4.1593032" | ||
1248 | transform="translate(-387.41463,-542.5412)" /> | ||
1249 | <ellipse | ||
1250 | cy="703.87305" | ||
1251 | cx="500.6362" | ||
1252 | id="ellipse12274" | ||
1253 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1254 | rx="4.1581793" | ||
1255 | ry="4.1593032" | ||
1256 | transform="translate(-387.41463,-542.5412)" /> | ||
1257 | <ellipse | ||
1258 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1259 | id="ellipse12292" | ||
1260 | cx="211.9584" | ||
1261 | cy="134.28851" | ||
1262 | rx="4.1581793" | ||
1263 | ry="4.1593032" /> | ||
1264 | <ellipse | ||
1265 | cy="713.44794" | ||
1266 | cx="576.62964" | ||
1267 | id="ellipse12286" | ||
1268 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1269 | rx="4.1581793" | ||
1270 | ry="4.1593032" | ||
1271 | transform="translate(-387.41463,-542.5412)" /> | ||
1272 | <ellipse | ||
1273 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1274 | id="ellipse12260" | ||
1275 | cx="43.166531" | ||
1276 | cy="123.16669" | ||
1277 | rx="4.1581793" | ||
1278 | ry="4.1593032" /> | ||
1279 | <ellipse | ||
1280 | cy="129.43542" | ||
1281 | cx="98.865997" | ||
1282 | id="ellipse12266" | ||
1283 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1284 | rx="4.1581793" | ||
1285 | ry="4.1593032" /> | ||
1286 | <ellipse | ||
1287 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1288 | id="ellipse12296" | ||
1289 | cx="267.08618" | ||
1290 | cy="130.05022" | ||
1291 | rx="4.1581793" | ||
1292 | ry="4.1593032" /> | ||
1293 | <ellipse | ||
1294 | cy="686.22339" | ||
1295 | cx="679.07196" | ||
1296 | id="ellipse12298" | ||
1297 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1298 | rx="4.1581793" | ||
1299 | ry="4.1593032" | ||
1300 | transform="translate(-387.41463,-542.5412)" /> | ||
1301 | <ellipse | ||
1302 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1303 | id="ellipse12288" | ||
1304 | cx="577.00763" | ||
1305 | cy="748.99109" | ||
1306 | rx="4.1581793" | ||
1307 | ry="4.1593032" | ||
1308 | transform="translate(-387.41463,-542.5412)" /> | ||
1309 | <ellipse | ||
1310 | cy="748.99109" | ||
1311 | cx="577.00763" | ||
1312 | id="ellipse12302" | ||
1313 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1314 | rx="4.1581793" | ||
1315 | ry="4.1593032" | ||
1316 | transform="translate(-387.41463,-542.5412)" /> | ||
1317 | <ellipse | ||
1318 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1319 | id="ellipse12304" | ||
1320 | cx="577.07013" | ||
1321 | cy="748.99109" | ||
1322 | rx="4.1581793" | ||
1323 | ry="4.1593032" | ||
1324 | transform="translate(-387.41463,-542.5412)" /> | ||
1325 | <ellipse | ||
1326 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1327 | id="ellipse12264" | ||
1328 | cx="22.887779" | ||
1329 | cy="133.85095" | ||
1330 | rx="4.1581793" | ||
1331 | ry="4.1593032" | ||
1332 | transform="translate(0,-3e-6)" /> | ||
1333 | <ellipse | ||
1334 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1335 | id="ellipse12272" | ||
1336 | cx="462.47165" | ||
1337 | cy="682.1922" | ||
1338 | rx="4.1581793" | ||
1339 | ry="4.1593032" | ||
1340 | transform="translate(-387.41463,-542.5412)" /> | ||
1341 | <ellipse | ||
1342 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1343 | id="ellipse12300" | ||
1344 | cx="694.58264" | ||
1345 | cy="647.3053" | ||
1346 | rx="4.1581793" | ||
1347 | ry="4.1593032" | ||
1348 | transform="translate(-387.41463,-542.5412)" /> | ||
1349 | <ellipse | ||
1350 | cy="628.31934" | ||
1351 | cx="649.61285" | ||
1352 | id="ellipse12258-3-0" | ||
1353 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#cc0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | ||
1354 | rx="4.1581793" | ||
1355 | ry="4.1593032" | ||
1356 | transform="translate(-387.41463,-542.5412)" /> | ||
1357 | </g> | ||
1358 | <g | ||
1359 | transform="translate(0,-20)" | ||
1360 | style="display:none" | ||
1361 | id="layer6"> | ||
1362 | <ellipse | ||
1363 | cy="276.32968" | ||
1364 | cx="159.80099" | ||
1365 | id="ellipse12282-8-9-0" | ||
1366 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#ee0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
1367 | rx="4.1581793" | ||
1368 | ry="4.1593032" /> | ||
1369 | <ellipse | ||
1370 | cy="259.99252" | ||
1371 | cx="159.80099" | ||
1372 | id="ellipse12282-8-9" | ||
1373 | style="display:inline;opacity:1;fill:#ee0000;fill-opacity:1;stroke:#ee0000;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
1374 | rx="4.1581793" | ||
1375 | ry="4.1593032" /> | ||
1376 | </g> | ||
1377 | <g | ||
1378 | id="g975" | ||
1379 | style="display:inline" | ||
1380 | transform="translate(-387.41463,-609.81931)"> | ||
1381 | <g | ||
1382 | id="text973" | ||
1383 | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.53852463px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03365779px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;image-rendering:auto" | ||
1384 | aria-label="gnu net"> | ||
1385 | <path | ||
1386 | id="path977" | ||
1387 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:50.66666794px;font-family:'Anonymous Pro';-inkscape-font-specification:'Anonymous Pro Bold';fill:#292929;stroke-width:1.03365779px;fill-opacity:1" | ||
1388 | d="m 489.62118,868.96318 q 0,2.375 -0.81641,4.23046 -0.81641,1.85547 -2.30078,3.14193 -1.45964,1.28646 -3.46354,1.95443 -1.97917,0.69271 -4.42839,0.69271 -6.01172,0 -10.26693,-3.63672 l 2.42448,-3.95834 q 3.53776,3.04297 7.84245,3.04297 2.64714,0 4.25521,-1.31119 1.63281,-1.28646 1.63281,-4.0573 v -2.47395 q -1.58333,1.36067 -3.04297,2.02864 -1.45963,0.64323 -3.38932,0.64323 -2.22656,0 -4.13151,-0.9401 -1.90495,-0.94011 -3.29037,-2.54818 -1.36067,-1.63281 -2.15234,-3.78516 -0.76693,-2.15234 -0.76693,-4.57682 0,-2.42448 0.76693,-4.57682 0.79167,-2.17709 2.15234,-3.76042 1.38542,-1.60807 3.29037,-2.52344 1.90495,-0.9401 4.13151,-0.9401 1.92969,0 3.4388,0.66797 1.50912,0.64323 2.99349,1.95442 v -2.07812 h 5.1211 z m -5.1211,-16.67448 q -0.91536,-1.01433 -2.375,-1.53386 -1.43489,-0.54427 -2.79557,-0.54427 -2.89453,0 -4.70052,2.02865 -1.78125,2.02864 -1.78125,5.17057 0,1.55859 0.47005,2.89453 0.49479,1.3112 1.33594,2.27604 0.86588,0.96485 2.05338,1.53386 1.21224,0.54427 2.6224,0.54427 1.36068,0 2.79557,-0.54427 1.45964,-0.56901 2.375,-1.58334 z" /> | ||
1389 | <path | ||
1390 | id="path979" | ||
1391 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:50.66666794px;font-family:'Anonymous Pro';-inkscape-font-specification:'Anonymous Pro Bold';fill:#292929;stroke-width:1.03365779px;fill-opacity:1" | ||
1392 | d="m 514.82951,869.21057 h -5.12109 v -14.22526 q 0,-2.69661 -1.01433,-3.73568 -1.01432,-1.03906 -2.94401,-1.03906 -2.84505,0 -4.65104,2.30078 -1.78125,2.30078 -1.78125,6.35808 v 10.34114 h -5.12109 v -23.05729 h 5.12109 v 5.78906 q 0.76693,-2.99349 2.84505,-4.65104 2.07813,-1.68229 5.1211,-1.68229 3.53776,0 5.54166,2.30078 2.00391,2.30078 2.00391,7.07552 z" /> | ||
1393 | <path | ||
1394 | id="path981" | ||
1395 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:50.66666794px;font-family:'Anonymous Pro';-inkscape-font-specification:'Anonymous Pro Bold';fill:#292929;stroke-width:1.03365779px;fill-opacity:1" | ||
1396 | d="m 518.90503,846.15328 h 5.12109 v 14.25 q 0,2.67187 1.01433,3.71094 1.01432,1.03906 2.94401,1.03906 2.82031,0 4.6263,-2.30078 1.80599,-2.30078 1.80599,-6.35807 v -10.34115 h 5.12109 v 23.05729 h -5.12109 v -5.76432 q -0.76693,2.96875 -2.84505,4.65104 -2.07813,1.68229 -5.1211,1.68229 -3.53776,0 -5.54166,-2.30078 -2.00391,-2.32552 -2.00391,-7.07552 z" /> | ||
1397 | <path | ||
1398 | id="path983" | ||
1399 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:50.66666794px;font-family:'Anonymous Pro';-inkscape-font-specification:'Anonymous Pro Bold';fill:#292929;stroke-width:1.03365779px;fill-opacity:1" | ||
1400 | d="m 575.70451,869.21057 h -5.12109 v -14.22526 q 0,-2.69661 -1.01433,-3.73568 -1.01432,-1.03906 -2.94401,-1.03906 -2.84505,0 -4.65104,2.30078 -1.78125,2.30078 -1.78125,6.35808 v 10.34114 h -5.12109 v -23.05729 h 5.12109 v 5.78906 q 0.76693,-2.99349 2.84505,-4.65104 2.07813,-1.68229 5.1211,-1.68229 3.53776,0 5.54167,2.30078 2.0039,2.30078 2.0039,7.07552 z" /> | ||
1401 | <path | ||
1402 | id="path985" | ||
1403 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:50.66666794px;font-family:'Anonymous Pro';-inkscape-font-specification:'Anonymous Pro Bold';fill:#292929;stroke-width:1.03365779px;fill-opacity:1" | ||
1404 | d="m 583.76832,859.63635 q 0.37109,2.375 2.2513,3.95834 1.90495,1.55859 5.09635,1.55859 2.4987,0 4.32943,-0.76693 1.85547,-0.79166 3.19141,-2.07812 l 2.62239,3.61198 q -2.22656,2.22656 -4.72526,3.04297 -2.47396,0.8164 -5.41797,0.8164 -2.67187,0 -4.97265,-0.89062 -2.30079,-0.89063 -3.98308,-2.47396 -1.68229,-1.60807 -2.64713,-3.8099 -0.94011,-2.20182 -0.94011,-4.89844 0,-2.62239 0.86589,-4.82421 0.89062,-2.22657 2.47396,-3.83464 1.60807,-1.63281 3.83463,-2.52344 2.22657,-0.91536 4.92318,-0.91536 2.79557,0 5.07161,0.96484 2.27605,0.94011 3.88412,2.7461 1.63281,1.80599 2.54818,4.42838 0.91536,2.59766 0.91536,5.88802 z m 13.53255,-4.5026 q -0.39584,-2.22656 -2.30078,-3.5625 -1.90495,-1.36068 -4.32943,-1.36068 -2.42448,0 -4.35417,1.36068 -1.92968,1.33594 -2.32552,3.5625 z" /> | ||
1405 | <path | ||
1406 | id="path987" | ||
1407 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:50.66666794px;font-family:'Anonymous Pro';-inkscape-font-specification:'Anonymous Pro Bold';fill:#292929;stroke-width:1.03365779px;fill-opacity:1" | ||
1408 | d="m 627.08081,861.86291 q -0.39583,3.63672 -2.86979,5.78907 -2.44922,2.1276 -6.13542,2.1276 -2.02864,0 -3.71094,-0.66797 -1.68229,-0.66797 -2.86979,-1.85547 -1.1875,-1.1875 -1.85547,-2.84505 -0.64322,-1.68229 -0.64322,-3.66146 v -9.97005 h -5.22006 v -4.6263 h 5.22006 v -9.22787 h 5.12109 v 9.22787 h 9.67318 v 4.6263 h -9.67318 v 9.97005 q 0,2.22657 1.08854,3.31511 1.08854,1.08854 2.86979,1.08854 2.17709,0 3.24089,-1.26172 1.0638,-1.26172 1.26172,-3.04297 z" /> | ||
1409 | </g> | ||
1410 | </g> | ||
1411 | </svg> | ||
diff --git a/contrib/gnunet-logo.pdf b/contrib/branding/logo/gnunet-logo.pdf index fcc7b10bf..fcc7b10bf 100644 --- a/contrib/gnunet-logo.pdf +++ b/contrib/branding/logo/gnunet-logo.pdf | |||
Binary files differ | |||
diff --git a/contrib/branding/logo/lynXified-amirouche-anonymous-v3.png b/contrib/branding/logo/lynXified-amirouche-anonymous-v3.png new file mode 100644 index 000000000..52d7b24fd --- /dev/null +++ b/contrib/branding/logo/lynXified-amirouche-anonymous-v3.png | |||
Binary files differ | |||
diff --git a/contrib/branding/logo/lynXified-amirouche-v3.svg b/contrib/branding/logo/lynXified-amirouche-v3.svg new file mode 100644 index 000000000..b8dd1ac67 --- /dev/null +++ b/contrib/branding/logo/lynXified-amirouche-v3.svg | |||
@@ -0,0 +1,918 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||
3 | |||
4 | <svg | ||
5 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
6 | xmlns:cc="http://creativecommons.org/ns#" | ||
7 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
8 | xmlns:svg="http://www.w3.org/2000/svg" | ||
9 | xmlns="http://www.w3.org/2000/svg" | ||
10 | xmlns:xlink="http://www.w3.org/1999/xlink" | ||
11 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
12 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
13 | width="400" | ||
14 | height="300" | ||
15 | id="svg2" | ||
16 | version="1.1" | ||
17 | inkscape:version="0.92.2 5c3e80d, 2017-08-06" | ||
18 | sodipodi:docname="lynXified-amirouche-v3.svg" | ||
19 | inkscape:export-filename="lynXified-amirouche-anonymous-v3.png" | ||
20 | inkscape:export-xdpi="192" | ||
21 | inkscape:export-ydpi="192"> | ||
22 | <title | ||
23 | id="title3310">Guix System Distribution (Logo)</title> | ||
24 | <defs | ||
25 | id="defs4"> | ||
26 | <linearGradient | ||
27 | id="gnunet"> | ||
28 | <stop | ||
29 | id="stop9516" | ||
30 | offset="0" | ||
31 | style="stop-color:#ff0000;stop-opacity:0.58431375;" /> | ||
32 | <stop | ||
33 | id="stop9518" | ||
34 | offset="1" | ||
35 | style="stop-color:#ffcc00;stop-opacity:1;" /> | ||
36 | </linearGradient> | ||
37 | <inkscape:path-effect | ||
38 | effect="vonkoch" | ||
39 | id="path-effect8912" | ||
40 | is_visible="true" | ||
41 | ref_path="m 386.97986,1494.3277 h 79.02013" | ||
42 | generator="m 386.97986,1552.8408 h 26.34004 m 26.34005,0 h 26.34004" | ||
43 | similar_only="false" | ||
44 | nbgenerations="1" | ||
45 | drawall="true" | ||
46 | maxComplexity="1000" /> | ||
47 | <linearGradient | ||
48 | id="linearGradient4094"> | ||
49 | <stop | ||
50 | id="stop4096" | ||
51 | offset="0" | ||
52 | style="stop-color:#232323;stop-opacity:1;" /> | ||
53 | <stop | ||
54 | id="stop4098" | ||
55 | offset="1" | ||
56 | style="stop-color:#4d4d4d;stop-opacity:1;" /> | ||
57 | </linearGradient> | ||
58 | <linearGradient | ||
59 | id="linearGradient4014"> | ||
60 | <stop | ||
61 | id="stop4016" | ||
62 | offset="0" | ||
63 | style="stop-color:#a0a0a0;stop-opacity:1;" /> | ||
64 | <stop | ||
65 | id="stop4018" | ||
66 | offset="1" | ||
67 | style="stop-color:#ffffff;stop-opacity:1;" /> | ||
68 | </linearGradient> | ||
69 | <linearGradient | ||
70 | id="linearGradient4678"> | ||
71 | <stop | ||
72 | id="stop4680" | ||
73 | offset="0" | ||
74 | style="stop-color:#e5e5e5;stop-opacity:1;" /> | ||
75 | <stop | ||
76 | id="stop4682" | ||
77 | offset="1" | ||
78 | style="stop-color:#d3cdcd;stop-opacity:1;" /> | ||
79 | </linearGradient> | ||
80 | <linearGradient | ||
81 | id="linearGradient4341"> | ||
82 | <stop | ||
83 | style="stop-color:#333333;stop-opacity:1;" | ||
84 | offset="0" | ||
85 | id="stop4343" /> | ||
86 | <stop | ||
87 | style="stop-color:#484848;stop-opacity:1;" | ||
88 | offset="1" | ||
89 | id="stop4345" /> | ||
90 | </linearGradient> | ||
91 | <linearGradient | ||
92 | id="linearGradient4696-5"> | ||
93 | <stop | ||
94 | style="stop-color:#ffb638;stop-opacity:1;" | ||
95 | offset="0" | ||
96 | id="stop4698-6" /> | ||
97 | <stop | ||
98 | style="stop-color:#f0ae26;stop-opacity:1;" | ||
99 | offset="1" | ||
100 | id="stop4700-2" /> | ||
101 | </linearGradient> | ||
102 | <linearGradient | ||
103 | id="linearGradient4702-3-6"> | ||
104 | <stop | ||
105 | style="stop-color:#ff0000;stop-opacity:0.58431375;" | ||
106 | offset="0" | ||
107 | id="stop4704-1" /> | ||
108 | <stop | ||
109 | style="stop-color:#ffcc00;stop-opacity:1;" | ||
110 | offset="1" | ||
111 | id="stop4706-8" /> | ||
112 | </linearGradient> | ||
113 | <color-profile | ||
114 | id="color-profile26" | ||
115 | xlink:href="/usr/share/color/icc/ghostscript/ps_cmyk.icc" | ||
116 | name="Artifex-PS-CMYK-Profile" /> | ||
117 | <linearGradient | ||
118 | inkscape:collect="always" | ||
119 | xlink:href="#linearGradient4702-3-6" | ||
120 | id="linearGradient3138" | ||
121 | gradientUnits="userSpaceOnUse" | ||
122 | gradientTransform="matrix(-0.88803314,0,0,0.88803314,595.57001,1106.9291)" | ||
123 | x1="142.96875" | ||
124 | y1="63.65625" | ||
125 | x2="177.04297" | ||
126 | y2="69.791016" /> | ||
127 | <linearGradient | ||
128 | inkscape:collect="always" | ||
129 | xlink:href="#linearGradient4696-5" | ||
130 | id="linearGradient3141" | ||
131 | gradientUnits="userSpaceOnUse" | ||
132 | gradientTransform="matrix(-0.49726789,0,0,0.49726789,555.31016,722.70088)" | ||
133 | x1="108.08774" | ||
134 | y1="1025.709" | ||
135 | x2="80.655251" | ||
136 | y2="1043.709" /> | ||
137 | <linearGradient | ||
138 | inkscape:collect="always" | ||
139 | xlink:href="#linearGradient4702-3-6" | ||
140 | id="linearGradient3144" | ||
141 | gradientUnits="userSpaceOnUse" | ||
142 | gradientTransform="matrix(0.88803314,0,0,0.88803314,415.18739,350.00262)" | ||
143 | x1="113.5146" | ||
144 | y1="1004.8033" | ||
145 | x2="78.000107" | ||
146 | y2="922.07178" /> | ||
147 | <linearGradient | ||
148 | inkscape:collect="always" | ||
149 | xlink:href="#linearGradient4702-3-6" | ||
150 | id="linearGradient3148" | ||
151 | gradientUnits="userSpaceOnUse" | ||
152 | gradientTransform="matrix(0.88803314,0,0,0.88803314,415.2161,1106.9294)" | ||
153 | x1="142.96875" | ||
154 | y1="63.65625" | ||
155 | x2="176.60477" | ||
156 | y2="70.667412" /> | ||
157 | <linearGradient | ||
158 | inkscape:collect="always" | ||
159 | xlink:href="#linearGradient4702-3-6" | ||
160 | id="linearGradient3780" | ||
161 | gradientUnits="userSpaceOnUse" | ||
162 | gradientTransform="matrix(0.88803314,0,0,0.88803314,415.2161,1106.9294)" | ||
163 | x1="142.96875" | ||
164 | y1="63.65625" | ||
165 | x2="176.60477" | ||
166 | y2="70.667412" /> | ||
167 | <linearGradient | ||
168 | inkscape:collect="always" | ||
169 | xlink:href="#linearGradient4702-3-6" | ||
170 | id="linearGradient3782" | ||
171 | gradientUnits="userSpaceOnUse" | ||
172 | gradientTransform="matrix(0.88803314,0,0,0.88803314,415.18739,350.00262)" | ||
173 | x1="113.5146" | ||
174 | y1="1004.8033" | ||
175 | x2="78.000107" | ||
176 | y2="922.07178" /> | ||
177 | <linearGradient | ||
178 | inkscape:collect="always" | ||
179 | xlink:href="#linearGradient4696-5" | ||
180 | id="linearGradient3784" | ||
181 | gradientUnits="userSpaceOnUse" | ||
182 | gradientTransform="matrix(-0.49726789,0,0,0.49726789,555.31016,722.70088)" | ||
183 | x1="108.08774" | ||
184 | y1="1025.709" | ||
185 | x2="80.655251" | ||
186 | y2="1043.709" /> | ||
187 | <linearGradient | ||
188 | inkscape:collect="always" | ||
189 | xlink:href="#linearGradient4702-3-6" | ||
190 | id="linearGradient3786" | ||
191 | gradientUnits="userSpaceOnUse" | ||
192 | gradientTransform="matrix(-0.88803314,0,0,0.88803314,595.57001,1106.9291)" | ||
193 | x1="142.96875" | ||
194 | y1="63.65625" | ||
195 | x2="177.04297" | ||
196 | y2="69.791016" /> | ||
197 | <filter | ||
198 | style="color-interpolation-filters:sRGB" | ||
199 | inkscape:label="Cross Blur" | ||
200 | id="filter9204"> | ||
201 | <feColorMatrix | ||
202 | in="SourceGraphic" | ||
203 | values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -0.2125 -0.7154 -0.0721 1 0 " | ||
204 | result="colormatrix" | ||
205 | id="feColorMatrix9194" /> | ||
206 | <feComposite | ||
207 | in="SourceGraphic" | ||
208 | in2="colormatrix" | ||
209 | operator="arithmetic" | ||
210 | k2="1" | ||
211 | k3="0" | ||
212 | k4="0" | ||
213 | result="composite" | ||
214 | id="feComposite9196" | ||
215 | k1="0" /> | ||
216 | <feGaussianBlur | ||
217 | stdDeviation="5 0.01" | ||
218 | result="blur1" | ||
219 | id="feGaussianBlur9198" /> | ||
220 | <feGaussianBlur | ||
221 | in="composite" | ||
222 | stdDeviation="0.01 5" | ||
223 | result="blur2" | ||
224 | id="feGaussianBlur9200" /> | ||
225 | <feBlend | ||
226 | in="blur2" | ||
227 | in2="blur1" | ||
228 | mode="darken" | ||
229 | result="blend" | ||
230 | id="feBlend9202" /> | ||
231 | </filter> | ||
232 | <filter | ||
233 | style="color-interpolation-filters:sRGB" | ||
234 | inkscape:label="Blur" | ||
235 | id="filter9330"> | ||
236 | <feGaussianBlur | ||
237 | stdDeviation="2 2" | ||
238 | result="blur" | ||
239 | id="feGaussianBlur9328" /> | ||
240 | </filter> | ||
241 | </defs> | ||
242 | <sodipodi:namedview | ||
243 | id="base" | ||
244 | pagecolor="#ffffff" | ||
245 | bordercolor="#e73520" | ||
246 | borderopacity="1" | ||
247 | inkscape:pageopacity="0.0" | ||
248 | inkscape:pageshadow="2" | ||
249 | inkscape:zoom="2" | ||
250 | inkscape:cx="185.65271" | ||
251 | inkscape:cy="142.71577" | ||
252 | inkscape:document-units="px" | ||
253 | inkscape:current-layer="g950" | ||
254 | showgrid="true" | ||
255 | inkscape:window-width="1600" | ||
256 | inkscape:window-height="835" | ||
257 | inkscape:window-x="0" | ||
258 | inkscape:window-y="0" | ||
259 | inkscape:window-maximized="1" | ||
260 | inkscape:showpageshadow="false" | ||
261 | showborder="true" | ||
262 | borderlayer="true" | ||
263 | inkscape:object-nodes="true" | ||
264 | inkscape:snap-global="true" | ||
265 | showguides="true" | ||
266 | inkscape:guide-bbox="true" | ||
267 | objecttolerance="20" | ||
268 | inkscape:snap-tangential="true" | ||
269 | inkscape:snap-perpendicular="true" | ||
270 | inkscape:pagecheckerboard="true" | ||
271 | fit-margin-top="10" | ||
272 | fit-margin-left="10" | ||
273 | fit-margin-right="10" | ||
274 | fit-margin-bottom="10" | ||
275 | inkscape:snap-path-clip="true" | ||
276 | inkscape:snap-path-mask="true"> | ||
277 | <sodipodi:guide | ||
278 | position="-307.43549,820.27825" | ||
279 | orientation="1,0" | ||
280 | id="guide5092" | ||
281 | inkscape:locked="false" /> | ||
282 | <inkscape:grid | ||
283 | type="xygrid" | ||
284 | id="grid8783" | ||
285 | originx="0" | ||
286 | originy="0" | ||
287 | spacingx="5" | ||
288 | spacingy="5" /> | ||
289 | <sodipodi:guide | ||
290 | position="-280.81043,809.79316" | ||
291 | orientation="0,1" | ||
292 | id="guide8844" | ||
293 | inkscape:locked="false" /> | ||
294 | <sodipodi:guide | ||
295 | position="-297.44255,799.75126" | ||
296 | orientation="1,0" | ||
297 | id="guide8846" | ||
298 | inkscape:locked="false" /> | ||
299 | <sodipodi:guide | ||
300 | position="-286.44639,799.75126" | ||
301 | orientation="0,1" | ||
302 | id="guide8864" | ||
303 | inkscape:locked="false" /> | ||
304 | <sodipodi:guide | ||
305 | position="-227.46698,708.44981" | ||
306 | orientation="1,0" | ||
307 | id="guide8874" | ||
308 | inkscape:locked="false" /> | ||
309 | <sodipodi:guide | ||
310 | position="-217.47047,677.79384" | ||
311 | orientation="1,0" | ||
312 | id="guide8876" | ||
313 | inkscape:locked="false" /> | ||
314 | <sodipodi:guide | ||
315 | position="-219.46978,729.7757" | ||
316 | orientation="0,1" | ||
317 | id="guide8878" | ||
318 | inkscape:locked="false" /> | ||
319 | <sodipodi:guide | ||
320 | position="-158.75928,719.78633" | ||
321 | orientation="0,1" | ||
322 | id="guide8896" | ||
323 | inkscape:locked="false" /> | ||
324 | <sodipodi:guide | ||
325 | position="-147.49491,703.61816" | ||
326 | orientation="1,0" | ||
327 | id="guide8922" | ||
328 | inkscape:locked="false" /> | ||
329 | <sodipodi:guide | ||
330 | position="-213.42311,880.00792" | ||
331 | orientation="0,1" | ||
332 | id="guide8924" | ||
333 | inkscape:locked="false" /> | ||
334 | <sodipodi:guide | ||
335 | position="-357.88081,649.83162" | ||
336 | orientation="0,1" | ||
337 | id="guide8926" | ||
338 | inkscape:locked="false" /> | ||
339 | <sodipodi:guide | ||
340 | position="-137.55348,605.74624" | ||
341 | orientation="1,0" | ||
342 | id="guide8991" | ||
343 | inkscape:locked="false" /> | ||
344 | <sodipodi:guide | ||
345 | position="-231.80147,639.67552" | ||
346 | orientation="0,1" | ||
347 | id="guide8993" | ||
348 | inkscape:locked="false" /> | ||
349 | <sodipodi:guide | ||
350 | position="-285.31397,844.81632" | ||
351 | orientation="0,1" | ||
352 | id="guide9013" | ||
353 | inkscape:locked="false" /> | ||
354 | <sodipodi:guide | ||
355 | position="200,352" | ||
356 | orientation="1,0" | ||
357 | id="guide5070" | ||
358 | inkscape:locked="false" /> | ||
359 | <sodipodi:guide | ||
360 | position="50,215" | ||
361 | orientation="1,0" | ||
362 | id="guide5335" | ||
363 | inkscape:locked="false" /> | ||
364 | <sodipodi:guide | ||
365 | position="350,137" | ||
366 | orientation="1,0" | ||
367 | id="guide5337" | ||
368 | inkscape:locked="false" /> | ||
369 | <sodipodi:guide | ||
370 | position="10,275.5" | ||
371 | orientation="1,0" | ||
372 | id="guide5354" | ||
373 | inkscape:locked="false" /> | ||
374 | <sodipodi:guide | ||
375 | position="203.46998,66.733203" | ||
376 | orientation="0,1" | ||
377 | id="guide5358" | ||
378 | inkscape:locked="false" /> | ||
379 | </sodipodi:namedview> | ||
380 | <metadata | ||
381 | id="metadata7"> | ||
382 | <rdf:RDF> | ||
383 | <cc:Work | ||
384 | rdf:about=""> | ||
385 | <dc:format>image/svg+xml</dc:format> | ||
386 | <dc:type | ||
387 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
388 | <dc:title>Guix System Distribution (Logo)</dc:title> | ||
389 | <dc:date>2015-02-07</dc:date> | ||
390 | <dc:creator> | ||
391 | <cc:Agent> | ||
392 | <dc:title>Luis Felipe López Acevedo</dc:title> | ||
393 | </cc:Agent> | ||
394 | </dc:creator> | ||
395 | <dc:rights> | ||
396 | <cc:Agent> | ||
397 | <dc:title>Luis Felipe López Acevedo</dc:title> | ||
398 | </cc:Agent> | ||
399 | </dc:rights> | ||
400 | <cc:license | ||
401 | rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /> | ||
402 | <dc:description /> | ||
403 | </cc:Work> | ||
404 | <cc:License | ||
405 | rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"> | ||
406 | <cc:permits | ||
407 | rdf:resource="http://creativecommons.org/ns#Reproduction" /> | ||
408 | <cc:permits | ||
409 | rdf:resource="http://creativecommons.org/ns#Distribution" /> | ||
410 | <cc:requires | ||
411 | rdf:resource="http://creativecommons.org/ns#Notice" /> | ||
412 | <cc:requires | ||
413 | rdf:resource="http://creativecommons.org/ns#Attribution" /> | ||
414 | <cc:permits | ||
415 | rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> | ||
416 | <cc:requires | ||
417 | rdf:resource="http://creativecommons.org/ns#ShareAlike" /> | ||
418 | </cc:License> | ||
419 | </rdf:RDF> | ||
420 | </metadata> | ||
421 | <g | ||
422 | inkscape:groupmode="layer" | ||
423 | id="layer5" | ||
424 | inkscape:label="ramen" | ||
425 | sodipodi:insensitive="true"> | ||
426 | <rect | ||
427 | style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.45544064;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
428 | id="rect942" | ||
429 | width="400" | ||
430 | height="300" | ||
431 | x="-3.7303494e-14" | ||
432 | y="1.7330311e-15" /> | ||
433 | </g> | ||
434 | <g | ||
435 | inkscape:groupmode="layer" | ||
436 | id="layer4" | ||
437 | inkscape:label="bg" | ||
438 | style="display:inline" | ||
439 | transform="translate(0,-47.278107)" | ||
440 | sodipodi:insensitive="true"> | ||
441 | <rect | ||
442 | style="display:inline;opacity:1;vector-effect:none;fill:#421111;fill-opacity:1;stroke:none;stroke-width:1.47144902;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
443 | id="rect12062" | ||
444 | width="380" | ||
445 | height="279.99997" | ||
446 | x="10" | ||
447 | y="57.278107" /> | ||
448 | </g> | ||
449 | <g | ||
450 | inkscape:groupmode="layer" | ||
451 | id="layer1" | ||
452 | inkscape:label="head" | ||
453 | style="display:none;opacity:1" | ||
454 | transform="translate(0,-47.278107)" | ||
455 | sodipodi:insensitive="true"> | ||
456 | <g | ||
457 | transform="matrix(0.40699717,0,0,0.40699717,31.535627,27.300788)" | ||
458 | id="layer1-6" | ||
459 | inkscape:label="Layer 1" | ||
460 | style="fill:#ff0000"> | ||
461 | <g | ||
462 | transform="translate(126.95974,19.57999)" | ||
463 | id="Layer_1" | ||
464 | style="fill:#ff0000"> | ||
465 | <g | ||
466 | id="g2490" | ||
467 | style="fill:#ff0000"> | ||
468 | <path | ||
469 | style="fill:#ff0000;fill-rule:evenodd" | ||
470 | d="m 112.993,304.372 c -3.634,0.247 -8.365,1.875 -11.539,7.564 -2.591,4.646 -8.661,5.387 -11.495,4.451 -4.721,-1.56 -10.755,-2.642 -16.6,1.523 -5.845,4.164 -12.157,1.015 -11.05,-6.576 1.107,-7.59 3.849,-14.351 11.127,-18.538 15.895,-9.144 4.848,-15.508 13.572,-24.685 8.741,-9.195 6.81,-12.009 6.52,-24.497 C 63.985,239.176 47.241,230.661 28.544,207.301 9.847,183.94 2.599,164.711 0.661,135.423 -1.277,106.135 0.403,87.154 13.057,62.843 25.711,38.532 39.034,26.829 62.122,14.69 85.21,2.553 107.832,-0.354 128.742,0 c 20.91,0.353 34.843,1.885 46.658,8.626 11.814,6.741 22.622,15.224 29.512,15.285 6.891,0.061 11.582,-1.744 14.931,-4.31 0.894,22.703 -19.539,24.675 -37.819,25.155 -18.281,0.479 -29.514,-7.083 -46.351,-4.27 -16.837,2.813 -44.404,10.475 -57.833,33.85 -13.429,23.375 -13.887,31.638 -12.771,51.24 1.116,19.603 17.988,34.228 27.512,34.387 9.523,0.159 11.649,-2.599 19.985,-8.036 8.337,-5.438 50.896,-58.122 65.418,-69.956 14.523,-11.834 28.854,-15.488 44.328,-15.678 15.474,-0.19 19.428,0.335 31.908,5.45 12.48,5.114 20.149,14.533 30.211,20.291 5.143,-3.027 8.338,-7.547 13.057,-10.996 16.877,-12.335 25.646,-15.659 45.705,-13.707 11.529,1.122 26.066,7.708 34.74,15.25 15.445,13.429 28.205,32.125 38.516,46.328 8.029,11.061 17.477,24.295 30.965,28.432 14.727,4.515 25.809,-14.559 27.436,-25.139 0.922,-5.995 2.125,-11.249 2.135,-17.847 0.01,-6.599 -0.664,-14.607 -2.566,-21.484 -1.902,-6.877 -5.16,-13.72 -8.688,-19.394 -5.742,-9.235 -15.137,-18.899 -24.912,-23.871 -5.486,-2.79 -18.393,-7.863 -26.529,-8.041 -9.969,-0.216 -17.564,3.133 -26.781,3.761 -11.156,0.761 -31.084,3.269 -39.83,-5.35 -5.566,-5.485 -6.266,-9.144 -7.217,-16.296 2.459,2.026 5.898,3.358 8.959,3.617 6.986,0.59 13.527,-5.114 19.166,-8.419 4.645,-2.723 11.223,-7.589 17.324,-10.048 15.676,-6.32 34.932,-6.138 51.48,-4.445 13.264,1.356 30.461,7.257 42.094,13.84 11.688,6.612 22.951,17.761 31.201,28.271 10.379,13.224 16.053,24.57 19.812,41.063 4.805,21.062 6.137,52.702 0.328,73.469 -4.578,16.365 -19.779,41.504 -32.719,53.827 -12.762,12.155 -27.498,18.022 -44.256,21.231 0.656,3.382 0.764,6.536 1.631,9.309 1.232,3.936 3.588,8.324 8.428,6.936 1.93,-0.553 2.963,-1.032 5.508,1.194 2.543,2.226 1.219,10.825 -5.938,14.684 -3.629,1.957 -7.459,2.382 -13.271,2.498 -5.812,0.116 -14.883,0.141 -21.193,-0.964 -6.309,-1.104 -10.078,-6.111 -17.066,-6.895 -10.799,-1.208 -19.068,-9.01 -27.727,-14.59 -3.613,-2.329 -4.832,-2.353 -6.914,-3.53 1.125,3.444 2.625,7.021 3.373,10.332 0.75,3.311 0.43,6.378 0.828,9.028 0.396,2.648 1.131,4.707 1.559,6.855 1.73,1.547 2.283,3.9 5.189,4.64 2.908,0.739 7.461,-0.412 10.436,-0.812 2.975,-0.4 4.969,-2.021 7.303,-1.577 2.336,0.443 4.549,2.115 6.506,3.682 1.957,1.567 3.639,1.796 5.223,5.706 1.584,3.91 3.037,11.917 3.254,17.269 0.217,5.352 -0.383,10.183 -1.969,14.43 -1.586,4.247 -2.98,6.13 -7.275,10.336 -4.295,4.207 -11.289,10.38 -18.268,14.68 1.285,1.903 1.855,3.645 3.859,5.71 2.004,2.066 6.182,4.381 8.041,6.56 1.857,2.179 2.799,3.742 2.826,6.186 0.029,2.443 -0.09,5.619 -2.074,8.283 -4.941,6.633 -10.785,7.821 -17.891,10.941 1.195,7.462 2.17,12.793 0.443,20.244 -0.705,3.036 -2.271,9.92 -6.016,11.686 -3.746,1.766 -10.969,0.911 -15.541,1.637 -4.572,0.727 -7.131,1.417 -10.695,2.125 -2.166,3.131 -5.391,6.586 -6.496,9.392 -1.107,2.807 -0.773,3.813 0.156,6.679 0.929,2.866 4.092,7.039 4.988,10.395 0.896,3.356 1.07,6.969 0.234,10.334 -0.838,3.365 -2.271,5.807 -5.139,8.795 -2.867,2.989 -8.508,5.336 -11.318,7.758 -2.812,2.423 -5.611,2.714 -4.844,6.723 1.055,5.506 9.1,14.436 14.92,16.562 3.488,1.275 8.17,0.873 12.406,-0.915 -0.287,4.703 -4.357,7.873 -7.016,10.996 7.201,-2.059 14.184,-6.001 19.014,-11.226 -1.498,4.538 -6.652,11.823 -14.361,18.22 -7.709,6.397 -7.662,5.088 -11.494,7.633 6.992,1.405 13.494,1.025 18.91,0.052 -2.969,1.637 -7.836,3.939 -14.283,4.616 -6.447,0.676 -10.422,0.198 -16.232,-1.213 -5.811,-1.412 -11.115,-6.694 -18.156,-10.335 0.686,2.612 1.174,5.753 4.135,8.439 2.961,2.686 7.441,4.052 12.203,6.375 -6.062,-0.688 -12.432,-0.896 -18.389,-2.209 -4.41,-0.973 -7.373,-2.005 -10.6,-3.603 -3.225,-1.598 -5.715,-3.929 -8.572,-5.893 1.369,2.615 1.775,5.691 4.105,7.847 2.33,2.156 6.117,2.959 9.18,4.44 -3.195,-0.07 -6.268,0.623 -9.58,-0.21 -3.314,-0.833 -6.422,-2.142 -9.867,-4.68 -3.445,-2.538 -6.998,-5.663 -9.938,-8.858 -2.938,-3.195 -6.566,-7.337 -7.664,-10.283 -1.1,-2.947 0.66,-5.008 0.99,-7.509 -2.029,1.333 -4.525,2.067 -6.084,4.002 -1.559,1.935 -2.941,3.702 -2.251,7.075 0.691,3.373 3.804,7.496 6.005,11.248 -6.568,-5.371 -10.236,-7.439 -11.799,-13.918 -1.463,-6.066 2.322,-11.572 5.199,-16.159 1.429,-2.278 3.567,-4.398 4.903,-6.597 -2.967,-2.903 -6.358,-5.398 -8.901,-8.709 -2.542,-3.31 -3.61,-7.79 -6.205,-10.957 -2.596,-3.168 -6.088,-5.173 -9.129,-7.756 2.673,5.742 7.066,12.785 8.02,17.229 0.953,4.444 -1.069,7.164 -2.646,9.563 -1.578,2.399 -4.124,2.934 -6.539,4.408 -2.415,1.475 -6.171,0.312 -7.61,2.501 -1.438,2.188 -1.824,5.48 -0.449,7.648 l 5.64,8.902 c -2.078,-1.049 -5.658,-4.1 -7.272,-6.264 -1.614,-2.164 -4.09,-4.163 -4.429,-7.089 -0.339,-2.925 -0.504,-5.464 1.391,-8.07 1.896,-2.605 7.086,-3.477 9.409,-5.48 2.323,-2.003 3.626,-3.307 3.493,-5.896 -0.132,-2.589 -2.661,-4.441 -4.835,-6.073 -6.637,-4.978 -15.151,-9.565 -20.787,-15.565 -3.184,-3.39 -4.712,-6.127 -5.352,-8.466 -0.639,-2.338 0.037,-4.162 1.619,-7.038 1.582,-2.877 7.007,-6.718 7.667,-9.843 0.659,-3.124 -2.081,-3.795 -4.554,-4.897 -2.473,-1.102 -7.17,0.565 -9.464,-1.352 -2.293,-1.917 0.674,-5.945 -1.911,-8.154 -2.584,-2.209 -8.499,-0.976 -11.552,-3.352 -3.053,-2.377 -4.315,-5.327 -5.367,-8.775 -1.052,-3.448 -1.171,-7.225 -0.458,-9.722 0.713,-2.497 2.855,-2.934 4.147,-4.228 1.292,-1.294 2.413,-2.367 0.691,-4.297 -1.722,-1.929 -7.365,0.108 -10.609,-2.369 -3.244,-2.477 -1.258,-8.41 -3.552,-10.911 -2.293,-2.501 -6.409,-1.522 -8.581,-2.321 -2.171,-0.799 -3.023,2.02 -4.355,-2.438 -1.332,-4.459 -1.368,-17.75 -3.16,-22.71 -1.792,-4.96 -5.311,-0.335 -6.945,-5.265 -1.634,-4.929 -0.085,-12.812 -0.821,-20.257 l -3.335,-20.257 c -11.634,7.815 -19.314,10.269 -31.813,12.477 -1.043,30.582 -3.916,48.591 6.464,82.52 10.38,33.928 31.387,53.924 59.726,82.649 -37.395,-28.016 -55.248,-50.792 -66.422,-79.97 -11.176,-29.182 -9.03,-53.586 -7.906,-81.686 z M 311.701,292.08 c 2.877,0.129 6.373,0.859 8.393,2.171 2.021,1.312 4.166,2.384 6,4.251 4.576,4.66 8.008,10.28 9.525,16.738 0.967,4.117 1.111,9.397 1.463,14.231 -1.385,-4.468 -2.316,-9.127 -4.289,-13.13 -3.111,-6.312 -8.396,-12.473 -14.959,-15.31 -2.166,-0.938 -3.611,-0.764 -4.803,-0.598 0.533,0.895 1.426,1.645 1.465,2.956 0.039,1.311 -0.254,3.876 -2.477,4.954 -3.584,1.739 -7.568,0.516 -10.336,-1.931 -2.791,-2.466 -3.742,-6.638 -2.281,-10.223 1.741,-4.272 8.375,-4.283 12.299,-4.109 z M 275.629,286 c 0.361,-7.345 3.012,-13.539 9.594,-17.141 3.404,-1.862 8.648,-4.27 13.467,-4.836 4.629,-0.543 15.889,-0.146 22.662,2.945 5.201,2.374 8.744,6.07 13.311,8.771 4.566,2.702 7.814,4.513 12.162,7.543 6.674,4.651 10.586,9.772 15.213,12.842 2.225,1.475 5.355,1.256 8.309,2.158 -2.297,0.682 -5.299,1.434 -7.777,0.642 -3.09,-0.988 -7.41,-3.813 -9.807,-5.838 -4.236,-3.578 -6.432,-5.324 -11.055,-8.023 -2.76,-1.608 -7.305,-3.503 -10.338,-5.481 -3.035,-1.978 -8.303,-6.318 -11.219,-7.787 -3.707,-1.866 -10.381,-2.904 -14.508,-2.783 -5.686,0.166 -13.916,1.104 -18.316,5.096 -4.371,3.968 -6.031,7.459 -5.045,12.612 1.646,-1.896 2.742,-4.278 4.391,-5.688 3.416,-2.918 7.336,-3.059 11.588,-2.506 4.777,0.622 7.182,3.381 8.76,7.916 -1.062,-0.78 -3.014,-2.493 -4.555,-3.024 -3.617,-1.248 -6.352,-0.864 -9.74,0.953 -4,2.146 -2.912,5.322 -3.488,8.854 -0.264,1.629 -0.879,2.941 -1.318,4.412 -1.504,-0.398 -2.895,-1.024 -4.033,-2.152 0.047,1.65 -0.193,3.093 0.145,4.949 0.336,1.855 1.24,4.059 1.859,6.088 -2.785,-2.786 -5.635,-5.38 -7.434,-8.977 -1.801,-3.599 -3.021,-7.593 -2.828,-11.545 z m 4.82,-53.46 c 2.053,-3.047 2.654,-7.721 3.92,-11.521 -0.506,4.813 0.467,10.106 -1.883,13.592 -2.35,3.486 -6.477,2.875 -9.896,3.889 2.66,-2.028 5.805,-2.913 7.859,-5.96 z m -49.151,71.368 c 2.636,-2.134 9.75,-0.428 15.071,-0.047 -3.824,0.979 -7.648,1.959 -11.472,2.938 -0.356,1.301 -0.195,2.792 -1.068,3.901 -0.874,1.11 -2.534,1.521 -3.8,2.28 0.125,-3.418 -1.367,-6.939 1.269,-9.072 z m 37.491,-148.22 c 3.176,1.71 7.207,3.971 10.012,4.041 2.805,0.07 3.539,-1.834 5.189,-2.933 2.596,8.465 5.576,17.766 9.996,25.447 1.852,3.218 3.033,1.722 4.441,4.956 1.406,3.233 2.031,9.812 3.365,13.943 1.336,4.131 3.078,7.171 4.617,10.756 -3.908,-5.537 -8.957,-12.597 -11.135,-17.205 -2.176,-4.607 -0.783,-5.008 -2.545,-9.396 -1.762,-4.388 -5.324,-11.228 -7.986,-16.842 -1.906,0.253 -4.266,0.6 -5.715,0.153 -1.449,-0.447 -1.16,-1.988 -2.469,-2.984 -1.311,-0.996 -3.514,-0.61 -5.35,-2.2 -1.836,-1.589 -2.254,-4.85 -2.42,-7.736 z m -17.101,41.769 c 2.989,-0.262 6.701,0.539 9.5,0.38 2.799,-0.159 4.797,-0.885 7.196,-1.328 -0.445,-4.216 -0.023,-11.962 -3.915,-14.777 -2.514,-1.818 -12.839,-0.449 -15.597,0.146 -6.206,1.338 -13.433,5.042 -19.435,7.358 5.752,-4.018 10.721,-7.742 17.62,-9.816 4.147,-1.247 13.825,-2.868 18.105,-1.712 1.954,0.527 2.349,1.336 3.534,2.992 4.074,5.688 4.062,10.604 5.119,17.23 1.039,1.619 2.146,2.699 2.988,4.369 0.84,1.67 1.316,4.298 1.551,6.446 -1.066,-1.546 -0.414,-3.485 -3.367,-4.636 -2.955,-1.151 -7.479,-0.076 -11.46,0.34 2.902,2.094 4.344,4.111 4.455,8.538 0.13,5.198 -4.271,8.939 -8.866,9.295 -6.379,0.495 -9.668,-0.906 -12.248,-6.358 -1.13,-2.388 -0.311,-5.261 -0.405,-7.589 -7.665,0.533 -7.54,0.283 -13.142,4.954 3.045,4.461 4.963,7.026 9.995,9.695 2.822,1.498 6.017,2.954 9.514,3.549 3.498,0.595 9.235,1.17 12.909,0.606 3.675,-0.564 5.757,-1.613 8.481,-4.132 2.725,-2.52 2.975,-6.128 4.039,-8.98 -0.242,2.745 -0.557,6.241 -1.576,8.232 -3.1,6.053 -8.461,7.847 -14.862,7.867 -6.144,0.02 -13.744,-1.397 -19.46,-3.767 -4.57,-1.894 -12.146,-7.258 -13.944,-11.918 -1.229,-3.184 -0.256,-7.091 -0.385,-10.637 6.328,-4.208 7.894,-3.173 15.381,-4.405 3.132,-0.516 5.286,-1.679 8.275,-1.942 z m -36.861,-28.501 c 0.178,-2.521 0.457,-2.467 0.686,-3.701 -5.765,-1.542 -8.077,2.198 -11.457,9.144 -1.265,2.599 -0.013,4.146 -1.37,5.857 -1.355,1.711 -3.539,1.471 -5.74,3.114 -2.201,1.642 -4.382,4.787 -6.44,6.488 -4.223,3.491 -9.931,5.622 -14.829,7.971 3.345,-2.468 9.836,-6.211 11.936,-9.797 1.114,-1.901 0.949,-5.486 2.683,-7.195 1.733,-1.71 2.34,-2.893 4.578,-3.329 2.238,-0.436 1.338,-3.03 2.06,-5.092 0.722,-2.062 2.16,-3.526 3.69,-5.586 1.53,-2.06 3.46,-5.153 6.481,-6.276 3.021,-1.124 7.732,0.091 10.019,-0.556 2.286,-0.647 0.973,-2.309 2.634,-3.307 1.663,-0.998 4.896,-0.558 7.117,-1.625 3.937,-1.893 5.82,-5.053 8.188,-8.436 0.344,7.282 0.26,12.525 -2.357,19.376 -2.947,7.711 -5.934,12.253 -14.298,16.995 -2.882,1.633 -5.75,2.2 -8.139,3.057 1.393,-1.9 3.387,-2.725 4.18,-5.7 0.791,-2.977 0.2,-8.88 0.378,-11.402 z m 135.038,35.507 c -3.977,0.259 -4.92,-0.264 -8.102,1.98 1.725,2.684 3.449,5.368 5.172,8.052 -0.152,-5.298 0.364,-6.36 2.93,-10.032 z m -10.42,-3.85 c 5.508,-2.346 10.307,-4.244 16.299,-4.619 2.402,-0.151 6.131,0.221 8.557,0.331 2.066,-3.042 4.699,-5.441 5.664,-8.913 0.639,-2.303 0.324,-12.992 -0.807,-15.767 -3.295,-8.076 -6.498,-8.417 -11.033,-13.043 -3.291,-3.355 -3.422,-8.464 -4.406,-14.189 -0.361,-2.103 -1.393,-4.764 -1.877,-6.934 -5.928,-0.999 -12.303,-1.328 -19.123,-0.987 3.307,-3.172 6.504,-6.07 7.453,-10.832 0.947,-4.762 0.176,-10.617 -2.531,-14.887 -2.707,-4.27 -7.031,-7.99 -11,-11.469 -3.971,-3.479 -9.662,-6.351 -13.424,-9.197 4.893,-1.752 9.889,-4.326 14.682,-5.255 12.486,-2.422 23.244,1.282 35.287,8.563 7.002,4.235 12.793,8.258 20.113,15.921 7.318,7.662 16.395,21.717 23.48,30.052 7.085,8.335 12.805,14.927 18.986,19.898 6.182,4.972 11.777,6.388 17.664,9.581 l 9.176,9.744 7.426,-9.189 11.949,1.351 2.469,-13.412 10.967,-3.005 -1.789,-18.08 7.885,-5.596 -5.926,-11.249 6.021,-12.292 -7.85,-14.051 3.027,-13.529 -9.088,-7.745 -1.186,-14.377 -12.678,-4.836 -5.086,-12.508 -14.254,-0.16 -6.992,-9.285 -9.596,0.672 -10.697,-1.165 -6.049,-4.466 -8.779,5.828 -10.623,-5.539 -21.117,8.017 13.766,-11.972 14.262,-2.278 10.926,-2.785 14.756,4.846 12.988,-3.29 12.523,7.403 13.252,-0.733 6.51,11.681 13.195,1.523 7.139,12.987 8.299,4.531 2.203,16.637 7.391,7.01 -3.25,14.557 8.707,11.024 -8.164,11.812 8.73,7.383 -11.16,9.891 11.303,11.771 -13.65,4.402 8.891,12.625 -11.15,1.924 7.312,13.882 -12.566,-0.167 6.33,10.398 -13.783,-1.659 3.297,14.959 -10.416,-9.163 -3.568,18.13 -7.188,-13.018 -3.893,16.237 -8.873,-11.973 0.242,17.026 -9.807,-15.309 c 2.068,8.686 1.654,18.197 7.359,26.386 17.676,-2.392 29.229,-6.846 42.771,-19.877 12.334,-11.868 27.076,-36.613 31.068,-52.308 4.555,-17.91 4.695,-50.85 0.209,-69.084 C 522.282,71.848 516.67,63.462 506.643,49.136 497.059,38.957 487.633,28.204 475.469,20.945 457.613,10.29 434.717,7.417 414.367,7.694 c -11.268,0.154 -18.816,2.318 -25.553,4.768 -11.781,4.284 -21.203,13.629 -33.18,18.247 -3.906,1.505 -7.037,1.552 -10.113,-0.091 3.012,6.026 6.289,8.729 13.801,10.922 5.434,1.586 18.4,0.583 27.326,-0.241 9.582,-0.885 14.58,-3.734 27.621,-3.555 12.736,0.175 22.828,5.013 28.346,8.168 11.385,6.51 19.549,13.732 26.643,25.172 3.896,6.282 6.625,13.37 8.547,20.603 1.922,7.233 2.764,15.334 2.887,22.415 0.123,7.081 -0.418,13.402 -2.15,19.774 -4.051,14.918 -12.988,30.098 -31.346,27.753 -11.234,-1.436 -28.17,-22.522 -33.842,-30.258 C 401.909,115.758 390.133,98.481 375.752,85.479 366.984,77.554 354.979,72.1 343.19,71.021 c -22.117,-2.024 -28.676,2.177 -45.324,15.899 3.387,1.08 6.693,1.676 10.164,3.24 7.703,3.471 14.748,7.957 20.893,13.711 6.439,6.031 9.328,9.848 9.557,18.484 0.152,5.735 -4.566,10.333 -8.891,14.469 -2.646,2.533 -6.148,4.852 -8.291,6.818 -2.84,2.609 -6.357,5.463 -2.789,9.619 1.342,1.562 3.672,2.74 5.637,4.199 3.119,2.315 1.691,10.919 -2.418,13.201 -5.258,2.917 -11.541,2.591 -15.877,-1.314 5.473,-0.819 8.949,-1.545 8.807,-6.022 -0.082,-2.595 -3.381,-4.751 -6.619,-6.227 -7.809,-3.56 -13.707,-3.035 -21.479,-8.627 -7.85,-5.651 -8.023,-8.745 -10.145,-17.617 -3.785,0.396 -7.27,0.483 -12.331,2.159 -5.061,1.675 -10.654,5.663 -15.249,6.65 -11.572,2.49 -13.878,1.752 -20.211,0.113 -11.15,-2.886 -25.668,2.055 -40.09,6.668 -2.398,0.767 -12.097,0.026 -18.626,2.317 -10.084,3.538 -24.233,12.106 -32.405,18.988 -12.382,10.429 -28.654,41.64 -37.848,77.464 -0.966,10.89 2.131,18.227 -4.729,23.546 -6.86,5.319 -6.67,18.946 -8.996,22.768 -2.326,3.821 -5.019,2.132 -10.026,7.499 -5.007,5.367 -7.556,4.47 -7.43,14.618 4.315,-2.837 10.606,-6.135 16.13,-6.334 4.892,-0.177 4.944,6.264 17.5,-6.149 6.715,-6.641 19.616,-6.844 28.567,-9.773 8.952,-2.929 25.083,-8.965 41.239,-27.027 16.156,-18.062 23.887,-37.077 27.02,-64.567 0.499,4.874 1.365,10.371 -0.722,23.816 -2.087,13.445 -6.585,28.546 2.891,46.634 l 5.904,11.269 c -3.515,-4.797 -10.381,-12.622 -12.448,-18.198 l -4.768,-12.863 c -10.667,16.748 -13.119,19.744 -27.937,31.743 -0.59,7.444 -0.735,15.208 1.698,22.331 2.433,7.122 -1.445,15.332 0.406,20.023 1.851,4.691 6.132,2.021 7.53,6.77 1.398,4.749 -0.73,14.138 1.438,18.767 2.168,4.629 7.487,1.82 10.065,3.315 2.578,1.496 3.421,3.546 4.8,5.513 1.378,1.966 -0.539,6.614 2.265,8.123 2.803,1.51 7.176,0.231 10.093,1.68 2.917,1.449 3.36,4.932 2.661,8.053 -0.7,3.121 -3.817,4.553 -5.186,7.726 -1.368,3.174 -1.215,5.383 0.429,8.297 1.644,2.915 5.284,4.52 8.912,5.991 3.628,1.471 8.726,0.645 12.47,2.679 3.744,2.034 7.109,6.087 9.086,9.033 1.977,2.945 2.526,5.023 2.425,8.12 -0.102,3.096 -1.358,6.663 -3.011,9.654 -1.653,2.991 -5.3,6.631 0.394,12.343 5.694,5.711 5.484,3.249 8.746,6.954 -0.355,-6.409 -3.003,-11.63 -1.067,-16.455 1.937,-4.825 7.752,-5.664 10.817,-7.834 3.065,-2.171 4.83,-5.153 7.246,-7.729 -0.035,3.315 0.32,6.879 -0.057,9.375 -0.768,5.075 -2.266,9.58 5.297,10.394 3.407,0.366 6.642,-1.843 10.227,-3.169 -1.878,3.363 -5.144,6.067 -5.635,10.092 -0.491,4.023 0.099,8.443 2.885,12.436 2.787,3.991 7.599,6.955 11.125,9.301 3.525,2.347 5.414,2.535 8.123,3.804 0.133,3.956 -0.646,8.143 -0.195,11.869 0.451,3.726 1.625,7.024 3.779,10.104 2.156,3.081 5.613,4.848 8.869,7.126 -1.785,-4.157 -5.406,-8.101 -5.357,-12.471 0.049,-4.369 1.359,-7.466 5.621,-11.343 4.262,-3.878 14.24,-7.241 18.945,-11.011 4.705,-3.771 6.223,-6.081 7.912,-9.742 1.689,-3.661 1.219,-9.559 1.531,-12.85 1.549,4.61 1.77,6.043 2.273,10.866 0.506,4.824 -2.811,11.59 -4.215,15.161 5.82,-2.811 9.514,-7.304 11.379,-11.695 1.248,0.74 0.619,2.769 1.078,6.679 2.074,-2.064 4.432,-3.652 6.52,-5.6 2.09,-1.946 4.379,-3.658 5.416,-6.375 1.035,-2.717 0.611,-5.606 -0.16,-8.763 -0.771,-3.157 -4.299,-6.818 -6.199,-10.271 -1.898,-3.452 0.336,-6.841 0.207,-11.001 -3.801,-0.653 -7.029,-2.589 -11.398,-1.96 -4.371,0.628 -9.377,5.533 -13.844,5.59 -4.467,0.057 -6.975,-4.128 -10.637,-5.278 -3.662,-1.15 -7.367,-1.024 -11.049,-1.536 4.664,-4.468 22.766,-6.596 35.148,-8.615 10.895,-1.777 21.707,-2.804 32.746,-2.959 4.93,-0.07 11.266,1.558 14.689,0.574 3.426,-0.982 2.695,-3.315 3.711,-5.858 2.842,-7.108 1.441,-13.438 -0.105,-20.596 -9.91,-1.162 -20.236,-2.584 -30.221,-1.817 -9.762,0.75 -21.322,5.391 -31.391,5.705 -8.754,0.272 -21.717,-1.677 -29.234,-6.259 -9.186,-5.599 -16.293,-17.624 -18.816,-21.485 -4.109,-6.289 -9.292,-18.627 -12.446,-24.268 -3.152,-5.641 -3.847,-7.219 -6.47,-9.574 -2.623,-2.354 -6.216,-2.536 -9.323,-3.805 3.582,0.366 7.493,-0.768 10.747,1.098 4.889,2.805 10.361,14.431 13.403,19.49 3.223,-10.804 2.471,-15.052 11.797,-21.144 -7.516,8.424 -7.703,14.805 -9.535,24.723 6.25,10.258 14.939,26.598 26.309,31.132 4.107,1.639 11.16,2.667 15.6,3.216 13.818,1.711 27.146,-2.668 40.717,-6.019 9.92,-2.45 19.986,-1.463 32.051,-0.754 4.096,0.24 13.754,-2.224 15.754,-6.367 1.08,-2.235 1,-4.921 -0.551,-7.303 -1.553,-2.382 -5.689,-3.534 -7.906,-5.678 -2.217,-2.144 -3.492,-4.689 -5.238,-7.034 -9.215,1.768 -16.795,2.447 -23.635,2.633 4.906,-2.021 9.613,-3.174 14.719,-5.171 5.106,-1.997 10.904,-5.275 15.025,-7.995 4.121,-2.721 6.752,-4.299 9.734,-7.465 2.98,-3.168 6.803,-6.431 9,-10.303 2.199,-3.872 2.539,-8.203 2.662,-12.995 0.123,-4.791 -0.084,-11.514 -1.932,-15.374 -1.846,-3.859 -5.406,-5.03 -8.266,-5.943 -2.861,-0.913 -4.82,1.396 -7.795,1.708 -2.977,0.312 -5.758,2.188 -10.062,0.164 -4.304,-2.024 -9.406,-6.144 -13.758,-12.259 -4.35,-6.116 -7.461,-16.112 -11.896,-23.802 -7.645,-13.256 -17.172,-25.639 -26.283,-37.922 -0.75,-3.029 -1.877,-7.215 -2.252,-11.324 -0.654,-7.16 -0.777,-14.598 1.445,-21.578 1.703,-5.347 4.18,-10.995 9.779,-13.188 2.24,-0.878 5.074,-1.226 7.076,-0.484 2.004,0.741 3.969,3.002 3.182,5.614 -0.865,2.872 -2.855,2.95 -4.207,4.4 -2.295,2.46 -3.213,4.265 -4.08,7.332 2.48,-0.04 5.832,-0.229 7.869,0.307 2.658,0.7 5.133,2.462 6.482,6.228 -3.172,-2.813 -4.748,-4.104 -8.707,-4.204 -1.814,-0.045 -4.018,0.604 -6.025,0.906 -0.75,2.44 -1.191,5.432 -2.25,7.32 -1.059,1.888 -3.121,1.435 -3.895,3.641 -0.774,2.202 -0.819,5.788 -0.429,8.683 z m 27.715,-3.307 c 1.215,0.479 1.678,0.584 3.217,1.755 1.539,1.171 3.662,2.34 4.881,5.138 1.221,2.799 1.164,7.127 0.904,8.89 -1.07,-0.314 -2.529,-0.102 -3.639,-1.051 -1.107,-0.949 -1.768,-3.098 -3.188,-4.018 -1.422,-0.919 -2.607,-0.718 -4.178,-0.917 0.807,2.296 1.199,4.593 0.824,6.675 -0.814,4.545 -3.486,6.847 -7.812,7.391 -1.889,0.237 -4.889,-0.385 -6.533,-0.684 0.762,1.702 2.053,3.193 2.816,4.895 3.658,-0.529 6.369,-0.454 8.336,-1.374 1.967,-0.92 4.076,-2.981 6.6,-3.854 2.525,-0.873 4.777,-0.859 7.539,-1.29 -2.176,1.875 -3.604,3.751 -5.777,5.626 1.594,4.633 3.188,9.265 4.781,13.897 3.379,2.114 6.549,3.228 10.807,5.838 4.26,2.611 9.367,7.281 14.914,9.828 5.547,2.547 8.85,3.933 14.646,5.026 5.795,1.093 10.406,5.787 16.109,6.55 5.703,0.763 16.355,0.917 20.75,0.488 4.99,-0.487 11.473,-3.062 12.055,-8.533 -4.184,1.032 -10.574,0.106 -13.801,-7.767 -1.432,-3.496 -0.73,-9.925 -2.922,-14.059 -2.191,-4.135 -5.246,-5.462 -8.896,-10.556 -3.65,-5.094 -9.621,-13.129 -12.973,-19.954 -3.35,-6.824 -4.139,-14.554 -6.973,-20.669 -2.834,-6.114 -7.109,-11.053 -10.422,-15.766 -7.234,-10.3 -13.068,-17.339 -24.986,-22.535 -5.732,-2.499 -12.258,-3.165 -18.387,-4.748 -2.494,1.117 -5.914,2.351 -6.521,5.268 -0.607,2.917 0.559,7.225 2.676,9.415 3.543,3.661 8.793,7.618 10.857,13.437 1.326,3.734 1.711,16.252 0.562,19.649 -1.192,3.527 -3.963,5.66 -6.266,8.009 z m 1.154,29.629 c -1.107,0.955 -1.951,1.936 -3.732,2.729 -1.779,0.793 -4.209,0.998 -6.57,1.588 3.311,5.154 6.789,10.362 9.961,15.781 3.174,5.418 5.924,11.351 8.953,17.025 -0.143,-3.252 0.049,-6.719 -0.424,-9.758 -0.473,-3.038 -1.85,-5.697 -3.215,-10.258 -1.363,-4.561 -3.041,-10.766 -4.973,-17.107 z M 279.229,113.611 c -0.467,5.07 0.391,12.996 1.441,17.96 1.258,5.942 2.469,9.023 7.291,12.603 8.83,6.555 14.467,5.45 21.26,9.251 3.232,1.809 7.328,4.841 8.523,8.046 1.195,3.205 -0.789,6.685 -3.24,8.053 4.287,0.638 9.094,-4.195 7.088,-9.157 -0.988,-2.442 -5.691,-3.53 -7.133,-5.994 -1.439,-2.463 -1.436,-4.999 -0.758,-7.501 1.225,-4.51 10.148,-8.608 13.301,-12.173 4.852,-5.486 6.715,-10.075 3.967,-17.14 -3.859,-9.925 -18.768,-17.889 -27.691,-21.784 -4.086,-1.783 -6.377,-1.91 -9.564,-2.865 6.525,3.824 13.404,6.87 16.705,15.418 2.756,7.139 0.369,9.829 0.461,16.045 0.043,2.882 3.838,4.323 5.523,6.144 1.467,1.583 1.348,2.758 0.176,4.943 -0.129,-1.971 -0.971,-3.442 -2.484,-4.513 -2.498,-1.771 -5.189,-1.39 -6.52,-5.021 -2.02,-5.52 1.986,-10.748 -2.518,-16.946 -3.369,-4.637 -7.85,-9.827 -13.895,-9.963 -2.861,-0.065 -5.012,0.367 -8.068,1.271 l -4.074,-4.903 -0.094,-0.064 C 270.639,87.758 264.969,81.525 253.344,76.327 241.719,71.13 235.99,70.343 222.661,70.639 c -13.329,0.295 -26.557,1.41 -41.995,14.723 -15.437,13.313 -55.224,64.292 -64.873,70.744 -9.648,6.452 -11.785,8.638 -23.841,8.641 C 79.896,164.75 61.08,147.697 60.343,126.385 59.605,105.072 59.309,97.497 74.124,71.822 88.94,46.146 115.78,38.262 135.694,35.6 c 19.915,-2.662 31.882,4.352 46.613,4.385 14.73,0.034 29.288,-2.509 33.581,-14.224 -2.101,1.251 -4.916,2.661 -12.832,2.246 C 195.14,27.592 184.164,18.427 171.817,12.286 159.47,6.146 145.73,5.427 128.107,5.094 110.484,4.761 88.494,6.108 66.708,17.869 44.922,29.63 30.051,42.109 17.415,65.127 4.779,88.146 2.891,106.94 4.928,134.811 c 2.037,27.871 10.633,48.599 27.184,68.998 16.551,20.399 33.092,30.38 62.918,34.091 l 6.279,-27.696 -11.209,16.086 0.277,-17.891 -10.139,12.581 -4.447,-17.062 -8.214,13.679 -4.08,-19.05 -11.903,9.627 3.768,-15.719 -15.75,1.743 7.235,-10.926 -14.361,0.175 L 40.842,168.86 28.1,166.837 38.26,153.57 22.66,148.945 35.576,136.577 22.823,126.184 32.798,118.426 23.47,106.014 33.42,94.431 29.706,79.135 38.155,71.77 40.67,54.289 50.152,49.527 58.31,35.881 73.389,34.28 l 7.44,-12.274 15.145,0.771 14.312,-7.779 14.843,3.457 16.86,-5.092 12.487,2.926 16.296,2.395 15.733,12.58 -24.133,-8.424 -12.14,5.821 -10.035,-6.125 -6.909,4.693 -12.225,1.224 -10.963,-0.708 -7.992,9.756 -16.291,0.168 -5.811,13.143 -14.486,5.082 -1.355,15.107 -10.388,8.138 3.461,14.216 -8.971,14.765 6.882,12.915 -6.773,11.82 9.011,5.88 -2.044,18.998 12.532,3.158 2.823,14.093 13.656,-1.419 8.484,9.656 10.486,-10.239 c 19.116,-9.532 26.988,-14.864 41.886,-30.977 16.959,-18.343 26.679,-35.302 49.269,-47.861 16.202,-9.008 29.417,-12.25 47.617,-9.105 17.088,2.952 22.81,13.202 35.395,24 1.334,-2.415 1.605,-3.055 3.803,-4.833 -0.69,3.136 -1.786,6.389 -2.065,9.405 z" | ||
471 | id="path2492" | ||
472 | inkscape:connector-curvature="0" /> | ||
473 | </g> | ||
474 | </g> | ||
475 | </g> | ||
476 | </g> | ||
477 | <g | ||
478 | inkscape:label="gnu:net grunge" | ||
479 | id="g12308" | ||
480 | inkscape:groupmode="layer" | ||
481 | style="display:none" | ||
482 | transform="translate(-387.41463,-589.81931)"> | ||
483 | <text | ||
484 | xml:space="preserve" | ||
485 | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.53852463px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03365779px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
486 | x="478.95114" | ||
487 | y="859.00549" | ||
488 | id="text12220"><tspan | ||
489 | sodipodi:role="line" | ||
490 | id="tspan12218" | ||
491 | x="478.95114" | ||
492 | y="859.00549" | ||
493 | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:36px;font-family:ReservoirGrunge;-inkscape-font-specification:ReservoirGrunge;fill:#ffffff;stroke-width:1.03365779px" | ||
494 | dx="0 2.5 2.5 0 -4 2.5 2.5">gnu net</tspan></text> | ||
495 | </g> | ||
496 | <g | ||
497 | transform="translate(-387.41463,-589.81931)" | ||
498 | style="display:none" | ||
499 | inkscape:groupmode="layer" | ||
500 | id="g5346" | ||
501 | inkscape:label="gnu:net ubuntu"> | ||
502 | <text | ||
503 | id="text5344" | ||
504 | y="859.96057" | ||
505 | x="493.95291" | ||
506 | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.53852463px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03365779px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
507 | xml:space="preserve"><tspan | ||
508 | dx="0 0 0" | ||
509 | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:49.33333206px;font-family:'Ubuntu Bold';-inkscape-font-specification:'Ubuntu Bold, ';fill:#ffffff;stroke-width:1.03365779px" | ||
510 | y="859.96057" | ||
511 | x="493.95291" | ||
512 | id="tspan5342" | ||
513 | sodipodi:role="line">gnu net</tspan></text> | ||
514 | </g> | ||
515 | <g | ||
516 | inkscape:label="gnu:net anonymous" | ||
517 | id="g950" | ||
518 | inkscape:groupmode="layer" | ||
519 | style="display:inline" | ||
520 | transform="translate(-387.41463,-589.81931)"> | ||
521 | <text | ||
522 | xml:space="preserve" | ||
523 | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.53852463px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03365779px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
524 | x="507.95291" | ||
525 | y="858.71057" | ||
526 | id="text948"><tspan | ||
527 | sodipodi:role="line" | ||
528 | id="tspan946" | ||
529 | x="507.95291" | ||
530 | y="858.71057" | ||
531 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:50.66666794px;font-family:'Anonymous Pro';-inkscape-font-specification:'Anonymous Pro Bold';fill:#ffffff;stroke-width:1.03365779px" | ||
532 | dx="0 -2.5 -3 0 -19.25 -2.5 -3">gnu net</tspan></text> | ||
533 | </g> | ||
534 | <g | ||
535 | inkscape:groupmode="layer" | ||
536 | id="layer3" | ||
537 | inkscape:label="vertices 2" | ||
538 | style="display:inline" | ||
539 | transform="translate(0,-47.278107)" | ||
540 | sodipodi:insensitive="true"> | ||
541 | <path | ||
542 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
543 | d="m 51.98603,94.74526 63.6227,34.91188 23.31802,-11.09978 -35.03955,28.74946 11.86161,-17.77468 -53.18435,-5.79678 40.95076,23.69646 25.32406,0.49689 24.19305,3.02495 v 48.02104 l 21.04995,-32.14943 -20.559,-15.87161 32.52749,48.02104 -8.06937,31.38386 -24.94907,-31.76198 24.94907,77.51429 22.25436,-36.69889 21.97354,37.07701 -43.59987,-0.37188 41.32877,-28.87448 22.05899,-21.17152 -19.90986,50.171 -3.71591,-29.60613 -8.57843,-31.7682 -9.69437,24.71516 54.37611,-52.19866 -24.96716,8.94671 -18.39175,19.15282 18.27579,-55.07718 25.20812,27.362 20.66591,-41.35238 -46.00204,14.12783 22.94304,-37.07431 23.05297,23.0777 31.8814,-26.48075 40.07874,-25.58708 -15.26372,39.20869 -24.69305,-13.74039 -55.05634,4.03119 79.62738,9.58108 -56.57441,12.73416" | ||
544 | id="path9316" | ||
545 | inkscape:connector-curvature="0" | ||
546 | sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccc" /> | ||
547 | <path | ||
548 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
549 | d="m 139.04572,118.81358 37.0456,48.02106" | ||
550 | id="path9318" | ||
551 | inkscape:connector-curvature="0" /> | ||
552 | <path | ||
553 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
554 | d="m 128.46126,147.9287 10.96248,-29.11512 12.47454,32.51819" | ||
555 | id="path12058" | ||
556 | inkscape:connector-curvature="0" /> | ||
557 | <path | ||
558 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
559 | d="m 252.31652,123.28236 54.69043,-3.64603 -31.75647,27.04795" | ||
560 | id="path12250" | ||
561 | inkscape:connector-curvature="0" | ||
562 | sodipodi:nodetypes="ccc" /> | ||
563 | <ellipse | ||
564 | ry="4.1593032" | ||
565 | rx="4.1581793" | ||
566 | cy="112.66669" | ||
567 | cx="83.343307" | ||
568 | id="ellipse12260" | ||
569 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" /> | ||
570 | <ellipse | ||
571 | ry="4.1593032" | ||
572 | rx="4.1581793" | ||
573 | cy="123.35095" | ||
574 | cx="63.064556" | ||
575 | id="ellipse12264" | ||
576 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" /> | ||
577 | <ellipse | ||
578 | ry="4.1593032" | ||
579 | rx="4.1581793" | ||
580 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
581 | id="ellipse12266" | ||
582 | cx="139.04277" | ||
583 | cy="118.93542" /> | ||
584 | <ellipse | ||
585 | ry="4.1593032" | ||
586 | rx="4.1581793" | ||
587 | inkscape:transform-center-y="-10.724852" | ||
588 | inkscape:transform-center-x="9.5305947" | ||
589 | cy="123.78851" | ||
590 | cx="252.13518" | ||
591 | id="ellipse12292" | ||
592 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" /> | ||
593 | <ellipse | ||
594 | ry="4.1593032" | ||
595 | rx="4.1581793" | ||
596 | inkscape:transform-center-y="-10.724835" | ||
597 | inkscape:transform-center-x="9.5305988" | ||
598 | cy="119.55022" | ||
599 | cx="307.26297" | ||
600 | id="ellipse12296" | ||
601 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" /> | ||
602 | <path | ||
603 | style="fill:none;stroke:#3498db;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.97647059" | ||
604 | d="m 52.875,94.278107 10,29.000003 21,-10.5 v 0 0" | ||
605 | id="path5311" | ||
606 | inkscape:connector-curvature="0" /> | ||
607 | <path | ||
608 | style="fill:none;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.97647059" | ||
609 | d="m 102.875,75.278107 -39.5,48.000003 v 0 l -1,2" | ||
610 | id="path5313" | ||
611 | inkscape:connector-curvature="0" /> | ||
612 | <path | ||
613 | style="fill:none;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
614 | d="m 229.75,196.02811 -44,2.625 25.375,17.125 v 0" | ||
615 | id="path5331" | ||
616 | inkscape:connector-curvature="0" /> | ||
617 | </g> | ||
618 | <g | ||
619 | inkscape:groupmode="layer" | ||
620 | id="layer2" | ||
621 | inkscape:label="vertices 0" | ||
622 | style="display:inline;opacity:1" | ||
623 | transform="translate(-387.41463,-589.81931)" | ||
624 | sodipodi:insensitive="true"> | ||
625 | <path | ||
626 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
627 | d="m 515.87589,689.71367 24.57107,51.42411" | ||
628 | id="path9320" | ||
629 | inkscape:connector-curvature="0" /> | ||
630 | <path | ||
631 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
632 | d="m 574.46842,741.13778 12.85257,40.08057" | ||
633 | id="path9322" | ||
634 | inkscape:connector-curvature="0" /> | ||
635 | <path | ||
636 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
637 | d="m 565.39603,772.52162 0.37803,45.75234" | ||
638 | id="path9324" | ||
639 | inkscape:connector-curvature="0" /> | ||
640 | <path | ||
641 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
642 | d="m 642.13335,732.06293 -12.09653,36.6775" | ||
643 | id="path9326" | ||
644 | inkscape:connector-curvature="0" /> | ||
645 | <path | ||
646 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
647 | d="m 515.87589,690.09178 46.98395,22.0278 10.85256,28.26194" | ||
648 | id="path12060" | ||
649 | inkscape:connector-curvature="0" | ||
650 | sodipodi:nodetypes="ccc" /> | ||
651 | <path | ||
652 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
653 | d="m 450.10106,666.64844 54.05634,6.0499" | ||
654 | id="path12214" | ||
655 | inkscape:connector-curvature="0" /> | ||
656 | <path | ||
657 | style="display:inline;fill:#729fcf;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
658 | d="m 641.75532,730.92859 -2.26809,-64.28015" | ||
659 | id="path12206" | ||
660 | inkscape:connector-curvature="0" /> | ||
661 | <path | ||
662 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
663 | d="m 629.28078,768.36231 -12.85255,-66.17074 v 36.6775 z" | ||
664 | id="path12208" | ||
665 | inkscape:connector-curvature="0" /> | ||
666 | <path | ||
667 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
668 | d="m 597.52742,757.77501 31.75336,10.5873" | ||
669 | id="path12210" | ||
670 | inkscape:connector-curvature="0" /> | ||
671 | <path | ||
672 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||
673 | d="m 540.44696,693.87298 v 48.77728 l 24.57105,30.2495 23.81505,9.45293" | ||
674 | id="path12212" | ||
675 | inkscape:connector-curvature="0" /> | ||
676 | <path | ||
677 | style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
678 | d="m 564.64001,819.03019 44.98392,-0.37812" | ||
679 | id="path12216" | ||
680 | inkscape:connector-curvature="0" /> | ||
681 | <ellipse | ||
682 | ry="4.1593032" | ||
683 | rx="4.1581793" | ||
684 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
685 | id="ellipse12252" | ||
686 | cx="587.39447" | ||
687 | cy="781.79773" /> | ||
688 | <ellipse | ||
689 | ry="4.1593032" | ||
690 | rx="4.1581793" | ||
691 | cy="818.74042" | ||
692 | cx="609.15759" | ||
693 | id="ellipse12254" | ||
694 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" /> | ||
695 | <ellipse | ||
696 | ry="4.1593032" | ||
697 | rx="4.1581793" | ||
698 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
699 | id="ellipse12256" | ||
700 | cx="565.97528" | ||
701 | cy="818.74042" /> | ||
702 | <ellipse | ||
703 | ry="4.1593032" | ||
704 | rx="4.1581793" | ||
705 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
706 | id="ellipse12262" | ||
707 | cx="490.92691" | ||
708 | cy="689.33545" /> | ||
709 | <ellipse | ||
710 | ry="4.1593032" | ||
711 | rx="4.1581793" | ||
712 | cy="690.09174" | ||
713 | cx="516.25397" | ||
714 | id="ellipse12268" | ||
715 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" /> | ||
716 | <ellipse | ||
717 | ry="4.1593032" | ||
718 | rx="4.1581793" | ||
719 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
720 | id="ellipse12270" | ||
721 | cx="561.66821" | ||
722 | cy="709.15314" /> | ||
723 | <ellipse | ||
724 | ry="4.1593032" | ||
725 | rx="4.1581793" | ||
726 | cy="671.6922" | ||
727 | cx="502.64844" | ||
728 | id="ellipse12272" | ||
729 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" /> | ||
730 | <ellipse | ||
731 | ry="4.1593032" | ||
732 | rx="4.1581793" | ||
733 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
734 | id="ellipse12274" | ||
735 | cx="540.81299" | ||
736 | cy="693.37305" /> | ||
737 | <ellipse | ||
738 | ry="4.1593032" | ||
739 | rx="4.1581793" | ||
740 | cy="741.13794" | ||
741 | cx="540.82501" | ||
742 | id="ellipse12276" | ||
743 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" /> | ||
744 | <ellipse | ||
745 | ry="4.1593032" | ||
746 | rx="4.1581793" | ||
747 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
748 | id="ellipse12278" | ||
749 | cx="573.51123" | ||
750 | cy="741.22632" /> | ||
751 | <ellipse | ||
752 | ry="4.1593032" | ||
753 | rx="4.1581793" | ||
754 | cy="772.52173" | ||
755 | cx="565.39612" | ||
756 | id="ellipse12280" | ||
757 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" /> | ||
758 | <ellipse | ||
759 | ry="4.1593032" | ||
760 | rx="4.1581793" | ||
761 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
762 | id="ellipse12282" | ||
763 | cx="606.38373" | ||
764 | cy="789.62549" | ||
765 | inkscape:transform-center-x="9.5306006" | ||
766 | inkscape:transform-center-y="-10.72485" /> | ||
767 | <ellipse | ||
768 | ry="4.1593032" | ||
769 | rx="4.1581793" | ||
770 | inkscape:transform-center-y="-10.724822" | ||
771 | inkscape:transform-center-x="9.5305654" | ||
772 | cy="730.17249" | ||
773 | cx="641.75543" | ||
774 | id="ellipse12284" | ||
775 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" /> | ||
776 | <ellipse | ||
777 | ry="4.1593032" | ||
778 | rx="4.1581793" | ||
779 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
780 | id="ellipse12286" | ||
781 | cx="616.8064" | ||
782 | cy="702.94794" | ||
783 | inkscape:transform-center-x="9.5305633" | ||
784 | inkscape:transform-center-y="-10.724851" /> | ||
785 | <ellipse | ||
786 | ry="4.1593032" | ||
787 | rx="4.1581793" | ||
788 | inkscape:transform-center-y="-10.724843" | ||
789 | inkscape:transform-center-x="9.5305819" | ||
790 | cy="738.49109" | ||
791 | cx="617.18439" | ||
792 | id="ellipse12288" | ||
793 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" /> | ||
794 | <ellipse | ||
795 | ry="4.1593032" | ||
796 | rx="4.1581793" | ||
797 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
798 | id="ellipse12290" | ||
799 | cx="629.03088" | ||
800 | cy="768.17493" | ||
801 | inkscape:transform-center-x="9.5305949" | ||
802 | inkscape:transform-center-y="-10.724827" /> | ||
803 | <ellipse | ||
804 | ry="4.1593032" | ||
805 | rx="4.1581793" | ||
806 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
807 | id="ellipse12294" | ||
808 | cx="662.54626" | ||
809 | cy="688.95752" | ||
810 | inkscape:transform-center-x="9.5306048" | ||
811 | inkscape:transform-center-y="-10.724823" /> | ||
812 | <ellipse | ||
813 | ry="4.1593032" | ||
814 | rx="4.1581793" | ||
815 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
816 | id="ellipse12298" | ||
817 | cx="719.24872" | ||
818 | cy="675.72339" | ||
819 | inkscape:transform-center-x="9.5305824" | ||
820 | inkscape:transform-center-y="-10.724798" /> | ||
821 | <ellipse | ||
822 | ry="4.1593032" | ||
823 | rx="4.1581793" | ||
824 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
825 | id="ellipse12302" | ||
826 | cx="617.18439" | ||
827 | cy="738.49109" | ||
828 | inkscape:transform-center-x="9.5305819" | ||
829 | inkscape:transform-center-y="-10.724843" /> | ||
830 | <ellipse | ||
831 | ry="4.1593032" | ||
832 | rx="4.1581793" | ||
833 | inkscape:transform-center-y="-10.724843" | ||
834 | inkscape:transform-center-x="9.5305819" | ||
835 | cy="738.49109" | ||
836 | cx="617.24689" | ||
837 | id="ellipse12304" | ||
838 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" /> | ||
839 | <ellipse | ||
840 | ry="4.1593032" | ||
841 | rx="4.1581793" | ||
842 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
843 | id="ellipse12306" | ||
844 | cx="598.0033" | ||
845 | cy="758.21582" | ||
846 | inkscape:transform-center-x="9.5306167" | ||
847 | inkscape:transform-center-y="-10.724797" /> | ||
848 | <ellipse | ||
849 | ry="4.1593032" | ||
850 | rx="4.1581793" | ||
851 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
852 | id="ellipse12258" | ||
853 | cx="440.27264" | ||
854 | cy="636.84271" /> | ||
855 | <ellipse | ||
856 | ry="4.1593032" | ||
857 | rx="4.1581793" | ||
858 | inkscape:transform-center-y="-10.724829" | ||
859 | inkscape:transform-center-x="9.5306165" | ||
860 | cy="636.8053" | ||
861 | cx="734.7594" | ||
862 | id="ellipse12300" | ||
863 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" /> | ||
864 | <ellipse | ||
865 | ry="4.1593032" | ||
866 | rx="4.1581793" | ||
867 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
868 | id="ellipse12258-3" | ||
869 | cx="490.28964" | ||
870 | cy="617.81934" /> | ||
871 | <ellipse | ||
872 | ry="4.1593032" | ||
873 | rx="4.1581793" | ||
874 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
875 | id="ellipse12258-3-0" | ||
876 | cx="689.78961" | ||
877 | cy="617.81934" /> | ||
878 | <path | ||
879 | style="display:inline;fill:none;fill-opacity:1;stroke:#3498db;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.97647059" | ||
880 | d="m 439.28963,637.81931 50.5,-19.5 -14.05,28.1 0.925,-1.725 -5.875,11.75 -0.25,-0.75" | ||
881 | id="path5161" | ||
882 | inkscape:connector-curvature="0" | ||
883 | sodipodi:nodetypes="cccccc" /> | ||
884 | <path | ||
885 | style="display:inline;fill:none;stroke:#3498db;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.97647059" | ||
886 | d="m 734.78963,636.81931 -40.285,-17.00922 -4.715,-1.99078 29,57.5 v -0.5 0 h 0.5 v 0" | ||
887 | id="path5163" | ||
888 | inkscape:connector-curvature="0" | ||
889 | sodipodi:nodetypes="cccccccc" /> | ||
890 | </g> | ||
891 | <g | ||
892 | inkscape:groupmode="layer" | ||
893 | id="layer6" | ||
894 | inkscape:label="no:des" | ||
895 | style="display:inline" | ||
896 | sodipodi:insensitive="true"> | ||
897 | <ellipse | ||
898 | transform="translate(-387.41463,-589.81931)" | ||
899 | ry="4.1593032" | ||
900 | rx="4.1581793" | ||
901 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
902 | id="ellipse12282-8-9-0" | ||
903 | cx="587.3924" | ||
904 | cy="855.64899" | ||
905 | inkscape:transform-center-x="9.5306006" | ||
906 | inkscape:transform-center-y="-10.72485" /> | ||
907 | <ellipse | ||
908 | transform="translate(-387.41463,-589.81931)" | ||
909 | ry="4.1593032" | ||
910 | rx="4.1581793" | ||
911 | style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" | ||
912 | id="ellipse12282-8-9" | ||
913 | cx="587.3924" | ||
914 | cy="839.31183" | ||
915 | inkscape:transform-center-x="9.5306006" | ||
916 | inkscape:transform-center-y="-10.72485" /> | ||
917 | </g> | ||
918 | </svg> | ||
diff --git a/contrib/buildslave-0.8.6p1-gnunet-w32.patch b/contrib/buildslave-0.8.6p1-gnunet-w32.patch deleted file mode 100644 index 265db4d71..000000000 --- a/contrib/buildslave-0.8.6p1-gnunet-w32.patch +++ /dev/null | |||
@@ -1,202 +0,0 @@ | |||
1 | diff -urN /src/buildbot-slave-0.8.6p1.orig/buildslave/runprocess.py /src/buildbot-slave-0.8.6p1/buildslave/runprocess.py | ||
2 | --- buildbot-slave-0.8.6p1.orig/buildslave/runprocess.py 2012-03-26 04:09:10 +0400 | ||
3 | +++ buildbot-slave-0.8.6p1/buildslave/runprocess.py 2013-03-31 05:18:55 +0400 | ||
4 | @@ -24,6 +24,7 @@ | ||
5 | import re | ||
6 | import subprocess | ||
7 | import traceback | ||
8 | +import tempfile | ||
9 | import stat | ||
10 | from collections import deque | ||
11 | |||
12 | @@ -36,6 +37,89 @@ | ||
13 | if runtime.platformType == 'posix': | ||
14 | from twisted.internet.process import Process | ||
15 | |||
16 | +if os.name == 'nt': | ||
17 | + import win32api | ||
18 | + import win32process | ||
19 | + import win32event | ||
20 | + import pywintypes | ||
21 | + | ||
22 | +def safe_terminate_process (proc, code): | ||
23 | + if os.name == 'nt': | ||
24 | + log.msg ("Obtaining current process handle") | ||
25 | + cp = win32api.GetCurrentProcess () | ||
26 | + result = False | ||
27 | + log.msg ("Expanding target process handle permissions") | ||
28 | + dupproc = win32api.DuplicateHandle (cp, proc._handle, cp, 2 | 1024 | 8 | 32 | 16 | 0x100000, 0, 0) | ||
29 | + log.msg ("Expanded.") | ||
30 | + try: | ||
31 | + log.msg ("Checking exit code of target process") | ||
32 | + exitcode = win32process.GetExitCodeProcess (dupproc) | ||
33 | + log.msg ("Exit code is %d" % exitcode) | ||
34 | + if exitcode == 0x103: | ||
35 | + log.msg ("Opening kernel32.dll") | ||
36 | + kernel32 = win32api.GetModuleHandle ("kernel32") | ||
37 | + log.msg ("Getting ExitProcess() address") | ||
38 | + exitprocess = win32api.GetProcAddress (kernel32, "ExitProcess") | ||
39 | + try: | ||
40 | + log.msg ("Creating remote thread") | ||
41 | + th = 0 | ||
42 | + tid = 0 | ||
43 | + failed = False | ||
44 | + th, tid = win32process.CreateRemoteThread (dupproc, None, 0, exitprocess, code, 0) | ||
45 | + log.msg ("Created remote thread %d" % tid) | ||
46 | + except pywintypes.error as e: | ||
47 | + if e[0] == 5: | ||
48 | + log.msg ("Access denied. It still might die, so don't fail yet") | ||
49 | + pass | ||
50 | + else: | ||
51 | + log.msg("exception %s - %s" % (sys.exc_info()[0], sys.exc_info()[1])) | ||
52 | + failed = True | ||
53 | + except Exception as e: | ||
54 | + log.msg("exception %s - %s" % (sys.exc_info()[0], sys.exc_info()[1])) | ||
55 | + failed = True | ||
56 | + if not failed: | ||
57 | + log.msg ("Wait for 5 seconds or until it dies (usually takes around 1 microsecond)") | ||
58 | + waitresult = win32event.WaitForSingleObject (dupproc, 5) | ||
59 | + log.msg ("Result of waiting: %d" % waitresult) | ||
60 | + win32api.CloseHandle (th) | ||
61 | + if waitresult == 0: | ||
62 | + result = True | ||
63 | + else: | ||
64 | + result = True | ||
65 | + except: | ||
66 | + log.msg("exception %s - %s" % (sys.exc_info()[0], sys.exc_info()[1])) | ||
67 | + finally: | ||
68 | + win32api.CloseHandle (dupproc) | ||
69 | + return result | ||
70 | + else: | ||
71 | + return proc.kill () | ||
72 | + | ||
73 | +class Dummy(object): | ||
74 | + def SetHandle (self, h): | ||
75 | + self._handle = h | ||
76 | + | ||
77 | +def safe_terminate_process_by_pid (proc, code): | ||
78 | + if os.name == 'nt': | ||
79 | + try: | ||
80 | + log.msg("Opening process %d" % proc) | ||
81 | + openproc = win32api.OpenProcess (2 | 1024 | 8 | 32 | 16 | 0x100000, 0, proc) | ||
82 | + log.msg("Opened process %d" % proc) | ||
83 | + try: | ||
84 | + d = Dummy () | ||
85 | + d.SetHandle (openproc) | ||
86 | + log.msg("Terminating it safely") | ||
87 | + safe_terminate_process (d, code) | ||
88 | + log.msg("Finished terminating") | ||
89 | + finally: | ||
90 | + log.msg("Closing process handle") | ||
91 | + win32api.CloseHandle (openproc) | ||
92 | + except: | ||
93 | + log.msg("exception %s - %s" % (sys.exc_info()[0], sys.exc_info()[1])) | ||
94 | + pass | ||
95 | + else: | ||
96 | + return os.kill (proc, code) | ||
97 | + | ||
98 | + | ||
99 | def shell_quote(cmd_list): | ||
100 | # attempt to quote cmd_list such that a shell will properly re-interpret | ||
101 | # it. The pipes module is only available on UNIX, and Windows "shell" | ||
102 | @@ -148,6 +232,7 @@ | ||
103 | self.pending_stdin = "" | ||
104 | self.stdin_finished = False | ||
105 | self.killed = False | ||
106 | + self.scriptfile = "" | ||
107 | |||
108 | def setStdin(self, data): | ||
109 | assert not self.connected | ||
110 | @@ -198,6 +283,11 @@ | ||
111 | rc = 1 | ||
112 | else: | ||
113 | rc = -1 | ||
114 | + if self.scriptfile: | ||
115 | + try: | ||
116 | + os.remove (self.scriptfile) | ||
117 | + except: | ||
118 | + pass | ||
119 | self.command.finished(sig, rc) | ||
120 | |||
121 | |||
122 | @@ -408,9 +498,14 @@ | ||
123 | |||
124 | if type(self.command) in types.StringTypes: | ||
125 | if runtime.platformType == 'win32': | ||
126 | - argv = os.environ['COMSPEC'].split() # allow %COMSPEC% to have args | ||
127 | - if '/c' not in argv: argv += ['/c'] | ||
128 | - argv += [self.command] | ||
129 | + if os.environ['BUILDSLAVE_SHELL']: | ||
130 | + argv = os.environ['BUILDSLAVE_SHELL'].split() # allow %COMSPEC% to have args | ||
131 | + argv += [self.command] | ||
132 | + else: | ||
133 | + argv = os.environ['COMSPEC'].split() # allow %COMSPEC% to have args | ||
134 | + if '/c' not in argv: | ||
135 | + argv += ['/c'] | ||
136 | + argv += [self.command] | ||
137 | else: | ||
138 | # for posix, use /bin/sh. for other non-posix, well, doesn't | ||
139 | # hurt to try | ||
140 | @@ -424,9 +519,26 @@ | ||
141 | # handle path searching, etc. | ||
142 | if runtime.platformType == 'win32' and not \ | ||
143 | (self.command[0].lower().endswith(".exe") and os.path.isabs(self.command[0])): | ||
144 | - argv = os.environ['COMSPEC'].split() # allow %COMSPEC% to have args | ||
145 | - if '/c' not in argv: argv += ['/c'] | ||
146 | - argv += list(self.command) | ||
147 | + if os.environ['BUILDSLAVE_SHELL']: | ||
148 | + argv = os.environ['BUILDSLAVE_SHELL'].split() | ||
149 | + # Create a temporary script file that changes current directory | ||
150 | + # and runs the command we want | ||
151 | + # It will be deleted after command is finished running (see RunProcessPP) | ||
152 | + tf, tf_name = tempfile.mkstemp () | ||
153 | + f = os.fdopen (tf, 'wb') | ||
154 | + fcontents = '#!/bin/sh\ncd {}\n{}'.format ( | ||
155 | + re.sub(r'(?<!\\) ','\\ ', self.workdir.replace('\\','/')), | ||
156 | + ' '.join (self.command)) | ||
157 | + f.write (fcontents) | ||
158 | + log.msg("Script: {}".format (fcontents)) | ||
159 | + f.close () | ||
160 | + self.pp.scriptfile = tf_name | ||
161 | + argv += [tf_name.replace('\\','/')] | ||
162 | + else: | ||
163 | + argv = os.environ['COMSPEC'].split() # allow %COMSPEC% to have args | ||
164 | + if '/c' not in argv: | ||
165 | + argv += ['/c'] | ||
166 | + argv += list(self.command) | ||
167 | else: | ||
168 | argv = self.command | ||
169 | # Attempt to format this for use by a shell, although the process isn't perfect | ||
170 | @@ -439,7 +551,7 @@ | ||
171 | self.environ['PWD'] = os.path.abspath(self.workdir) | ||
172 | |||
173 | # self.stdin is handled in RunProcessPP.connectionMade | ||
174 | - | ||
175 | + log.msg("Running {}".format (argv)) | ||
176 | log.msg(" " + display) | ||
177 | self._addToBuffers('header', display+"\n") | ||
178 | |||
179 | @@ -770,9 +882,7 @@ | ||
180 | if self.interruptSignal == None: | ||
181 | log.msg("self.interruptSignal==None, only pretending to kill child") | ||
182 | else: | ||
183 | - log.msg("using TASKKILL /F PID /T to kill pid %s" % self.process.pid) | ||
184 | - subprocess.check_call("TASKKILL /F /PID %s /T" % self.process.pid) | ||
185 | - log.msg("taskkill'd pid %s" % self.process.pid) | ||
186 | + safe_terminate_process_by_pid (self.process.pid, 1) | ||
187 | hit = 1 | ||
188 | |||
189 | # try signalling the process itself (works on Windows too, sorta) | ||
190 | @@ -795,10 +905,11 @@ | ||
191 | if not hit: | ||
192 | log.msg("signalProcess/os.kill failed both times") | ||
193 | |||
194 | - if runtime.platformType == "posix": | ||
195 | + if runtime.platformType == "posix" or runtime.platformType == "win32": | ||
196 | # we only do this under posix because the win32eventreactor | ||
197 | # blocks here until the process has terminated, while closing | ||
198 | # stderr. This is weird. | ||
199 | + # LRN: Turns out, things don't work without this on W32. At all. | ||
200 | self.pp.transport.loseConnection() | ||
201 | |||
202 | if self.deferred: | ||
diff --git a/contrib/buildbot-update.sh b/contrib/ci/buildbot/buildbot-update.sh index 6c9d28b25..6c9d28b25 100755 --- a/contrib/buildbot-update.sh +++ b/contrib/ci/buildbot/buildbot-update.sh | |||
diff --git a/contrib/ssh-config b/contrib/ci/buildbot/ssh-config index 857354bf3..857354bf3 100644 --- a/contrib/ssh-config +++ b/contrib/ci/buildbot/ssh-config | |||
diff --git a/contrib/ssh-keys b/contrib/ci/buildbot/ssh-keys index 8a786d9cd..6fa51071b 100644 --- a/contrib/ssh-keys +++ b/contrib/ci/buildbot/ssh-keys | |||
@@ -19,3 +19,4 @@ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4UL53uXZCis1C9VNWJjVXTtyRHVmzFmg3vajTXrRF | |||
19 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvbeMnZGlujN9IsLxUSTuHBUESoN6ZTXmEFi/GkBKp9RQ7xZAS84JDcV0GFddiCfTHGQL04mkeYXkof5d9NkMWjtTvQ9QFtUgGOqI3PbGCGW83vSwJHsqVbfbv5uqFCODjpTx4/WiJNkEpN/HgE2eIYFcm+Dcpo1vTgC26LjdMfqUaAGv/OTmKWmaMqyOzc4MXuUiBQT83oTfn2zSWDEOJG67yULqg5jMzaXqzPbhsaokBIPehks0bJR/q7OWNwDQJyM1oTKeRIh0ZmC0qYwGu/vlc3rYW4cp//ErAXG5iPfCXXUySUc0DTFHazzkNzUStuUwugznxuUCgbvg2tu5WEnrh/PpzIMuvNaUk2ZSDq00hHDrpVJyKKCih2d1cGV+qs9XFjDoD6Ch2NiSdPnG7fSsTxVw1SB7/APuMqfXWrQDfT5ee5xOKGzKOxQckGihQi39kmqf4WjNESOw4tmhNFZOee9dpC7ESYSpG/3zK8WG6FDln1nU6rHGjVgaSK6HwZUOsneS2fntiQZR2olzEY9+ybL1vh1fk6pkhS78X/PiwS3cSiu4q7JWJ4tUiB0T/cHAFBaODDKHXmEaGefLrPBWLLFRdjbnepWo1d0k1z/NLVovXDCGlF4IOBKqcImIffods/jTpH0hjU/vBjIQHH3Ii0J6vtGJw9whcNAGQfw== t3sserakt@posteo.de | 19 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvbeMnZGlujN9IsLxUSTuHBUESoN6ZTXmEFi/GkBKp9RQ7xZAS84JDcV0GFddiCfTHGQL04mkeYXkof5d9NkMWjtTvQ9QFtUgGOqI3PbGCGW83vSwJHsqVbfbv5uqFCODjpTx4/WiJNkEpN/HgE2eIYFcm+Dcpo1vTgC26LjdMfqUaAGv/OTmKWmaMqyOzc4MXuUiBQT83oTfn2zSWDEOJG67yULqg5jMzaXqzPbhsaokBIPehks0bJR/q7OWNwDQJyM1oTKeRIh0ZmC0qYwGu/vlc3rYW4cp//ErAXG5iPfCXXUySUc0DTFHazzkNzUStuUwugznxuUCgbvg2tu5WEnrh/PpzIMuvNaUk2ZSDq00hHDrpVJyKKCih2d1cGV+qs9XFjDoD6Ch2NiSdPnG7fSsTxVw1SB7/APuMqfXWrQDfT5ee5xOKGzKOxQckGihQi39kmqf4WjNESOw4tmhNFZOee9dpC7ESYSpG/3zK8WG6FDln1nU6rHGjVgaSK6HwZUOsneS2fntiQZR2olzEY9+ybL1vh1fk6pkhS78X/PiwS3cSiu4q7JWJ4tUiB0T/cHAFBaODDKHXmEaGefLrPBWLLFRdjbnepWo1d0k1z/NLVovXDCGlF4IOBKqcImIffods/jTpH0hjU/vBjIQHH3Ii0J6vtGJw9whcNAGQfw== t3sserakt@posteo.de |
20 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDRzeeUMJKn/9lY8FJIuU6HuQpWZozerTtbgsoGUNW0n0P/RsPYMQjweURDlJyKQisSZt+xRzRorSr0j9P016L8N13wGR9wtJwoJOi8DpwqEMxleYwPAZOu1zsA1Qty3ftNu6c3xB2wnlSPC0oZ2RYBOlxvIGtSGoNcDY43MKmsJ+IPsNpKOOS3x1J+xE7jOnQ0LHvxt4b54Sdr0uruTbHupwBbzBIxMFzS9hzEN6gL5cYp2fggZM8Qt707UlzIUuNzsU50qM6A8UJ+0Kun1GhKhK2J7T4Dok7M6m8ZtaKGexMfZwCl4luXlP/r1Kn48kXx/EtoQ/OcR23ymxZ95X+X8TB0ZdYcj17M7B+kk7OFz/2SVdJqYDqnMIOmXtAEdUsmSAmI7YxWyYOutRnEIkzQvHfW0h3D2pSA6EApR5huLOi40N5Ga3XLSBJC1yC8+qdiNE/t+5nGGxdlLvJ7VuzkwTEKQs33LNUdS4qKVBcIppZ7yUMjqJ5VzFk6xwEqGPCYcEWzYpNmzBiE/EFvwVSNV15Rknyieq7RB/gY/DNKX7yuC7lRZdEgGG6xu7l34c1ZhtIFhUGCnEtYsx5kJQFGMMP7bi/LNVnm+M7YZGp+uKgsnmWzrYw+YORzLwqBncs6N1tvwOG9DRKJ00S3JqSEDJ5FH/VDIUlWWbIgNwtAIQ== lurchi | 20 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDRzeeUMJKn/9lY8FJIuU6HuQpWZozerTtbgsoGUNW0n0P/RsPYMQjweURDlJyKQisSZt+xRzRorSr0j9P016L8N13wGR9wtJwoJOi8DpwqEMxleYwPAZOu1zsA1Qty3ftNu6c3xB2wnlSPC0oZ2RYBOlxvIGtSGoNcDY43MKmsJ+IPsNpKOOS3x1J+xE7jOnQ0LHvxt4b54Sdr0uruTbHupwBbzBIxMFzS9hzEN6gL5cYp2fggZM8Qt707UlzIUuNzsU50qM6A8UJ+0Kun1GhKhK2J7T4Dok7M6m8ZtaKGexMfZwCl4luXlP/r1Kn48kXx/EtoQ/OcR23ymxZ95X+X8TB0ZdYcj17M7B+kk7OFz/2SVdJqYDqnMIOmXtAEdUsmSAmI7YxWyYOutRnEIkzQvHfW0h3D2pSA6EApR5huLOi40N5Ga3XLSBJC1yC8+qdiNE/t+5nGGxdlLvJ7VuzkwTEKQs33LNUdS4qKVBcIppZ7yUMjqJ5VzFk6xwEqGPCYcEWzYpNmzBiE/EFvwVSNV15Rknyieq7RB/gY/DNKX7yuC7lRZdEgGG6xu7l34c1ZhtIFhUGCnEtYsx5kJQFGMMP7bi/LNVnm+M7YZGp+uKgsnmWzrYw+YORzLwqBncs6N1tvwOG9DRKJ00S3JqSEDJ5FH/VDIUlWWbIgNwtAIQ== lurchi |
21 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1WzIhCxeYQzjAHvwkSN7oQ3hhakwLzrTC6fXqnGUn71sQQKe4Rb2lmcUqVepnuKx2wEw3GLev89rVBSXwneiiVHwOEPNqFJXKHV5AsQbLYBvt9qlkK0Wff71Ptc9xB+M1qDVluA/4ieLDOemXYvkcK/6fqimyIdBMSlXSs2PKQkpjkAvE3qh0c41HKlagq7Y4rHV/chs1XPWCWX19ZO2EnZoVx6KeZHouc/FoE/lC7X1FudJxSKf5ZIcy3CIiYTQsL//hb6DT/mCgssCL+NtTDDXNsYiuIlj8Oi+nCpW/GkisIeyTZpbPiokDP+r0V3T8jcMbbGCVN6Um33lG2/LR amatus@atom | 21 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1WzIhCxeYQzjAHvwkSN7oQ3hhakwLzrTC6fXqnGUn71sQQKe4Rb2lmcUqVepnuKx2wEw3GLev89rVBSXwneiiVHwOEPNqFJXKHV5AsQbLYBvt9qlkK0Wff71Ptc9xB+M1qDVluA/4ieLDOemXYvkcK/6fqimyIdBMSlXSs2PKQkpjkAvE3qh0c41HKlagq7Y4rHV/chs1XPWCWX19ZO2EnZoVx6KeZHouc/FoE/lC7X1FudJxSKf5ZIcy3CIiYTQsL//hb6DT/mCgssCL+NtTDDXNsYiuIlj8Oi+nCpW/GkisIeyTZpbPiokDP+r0V3T8jcMbbGCVN6Um33lG2/LR amatus@atom |
22 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILL6PhAcMxsc4GhRuQYRMwchcig5qTDQQFZBQzxFTmxI dvn.me | ||
diff --git a/contrib/ci/docker/Dockerfile b/contrib/ci/docker/Dockerfile new file mode 100644 index 000000000..b9f019c43 --- /dev/null +++ b/contrib/ci/docker/Dockerfile | |||
@@ -0,0 +1,32 @@ | |||
1 | FROM ubuntu:18.04 | ||
2 | |||
3 | # Install the required build tools | ||
4 | RUN apt update && apt install -y apt git autopoint automake texinfo gettext autoconf libtool libidn11-dev libunistring-dev gnutls-dev libgcrypt20 libgcrypt20-dev libjansson-dev libsqlite3-dev wget flex bison libglib2.0-dev libgmp3-dev libmicrohttpd-dev libglpk-dev libextractor-dev | ||
5 | |||
6 | # Install gnurl from source at version gnurl-7.54.0 | ||
7 | WORKDIR /usr/src | ||
8 | RUN git clone https://git.taler.net/gnurl.git --branch gnurl-7.57.0 | ||
9 | RUN cd /usr/src/gnurl && autoreconf -i && ./configure --prefix=/usr --disable-ntlm-wb && make install | ||
10 | |||
11 | # Install libpbc | ||
12 | WORKDIR /usr/src | ||
13 | RUN wget https://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz && tar xvzpf pbc-0.5.14.tar.gz && cd /usr/src/pbc-0.5.14 && ./configure --prefix=/usr && make install | ||
14 | |||
15 | # Install libbswabe | ||
16 | WORKDIR /usr/src | ||
17 | RUN git clone https://github.com/schanzen/libgabe.git && cd /usr/src/libgabe && ./configure --prefix=/usr && make install | ||
18 | |||
19 | WORKDIR /usr/src | ||
20 | RUN git clone git://gnunet.org/gnunet.git | ||
21 | RUN cd /usr/src/gnunet && ./bootstrap && ./configure --enable-experimental --prefix=/usr && make && make install | ||
22 | |||
23 | RUN addgroup gnunetdns && addgroup gnunet && adduser --system --home /var/lib/gnunet gnunet | ||
24 | RUN chown gnunet:gnunet /var/lib/gnunet | ||
25 | RUN echo '[arm]\nSTART_SYSTEM_SERVICES = YES\nSTART_USER_SERVICES = NO\n' > /etc/gnunet.conf | ||
26 | |||
27 | ADD docker-entrypoint.sh . | ||
28 | |||
29 | RUN rm -rf /usr/src/* | ||
30 | #RUN apt remove gcc | ||
31 | |||
32 | CMD ["sh", "docker-entrypoint.sh"] | ||
diff --git a/contrib/docker-entrypoint.sh b/contrib/ci/docker/docker-entrypoint.sh index 807d86d6f..807d86d6f 100644 --- a/contrib/docker-entrypoint.sh +++ b/contrib/ci/docker/docker-entrypoint.sh | |||
diff --git a/contrib/colorit.conf b/contrib/conf/colorit/colorit.conf index 77d57aa59..77d57aa59 100644 --- a/contrib/colorit.conf +++ b/contrib/conf/colorit/colorit.conf | |||
diff --git a/contrib/gnunet_codingstyle.xml b/contrib/conf/editors/eclipse/gnunet_codingstyle.xml index a58c2ed0c..a58c2ed0c 100644 --- a/contrib/gnunet_codingstyle.xml +++ b/contrib/conf/editors/eclipse/gnunet_codingstyle.xml | |||
diff --git a/contrib/conf/gnunet/no_autostart_above_core.conf b/contrib/conf/gnunet/no_autostart_above_core.conf new file mode 100644 index 000000000..245b6a47d --- /dev/null +++ b/contrib/conf/gnunet/no_autostart_above_core.conf | |||
@@ -0,0 +1,93 @@ | |||
1 | # Configuration to disable autostarting of | ||
2 | # all services above the 'core' level. | ||
3 | # (including resolver) | ||
4 | |||
5 | [dns] | ||
6 | START_ON_DEMAND = NO | ||
7 | |||
8 | [dht] | ||
9 | START_ON_DEMAND = NO | ||
10 | |||
11 | [nse] | ||
12 | START_ON_DEMAND = NO | ||
13 | |||
14 | [cadet] | ||
15 | START_ON_DEMAND = NO | ||
16 | |||
17 | [datastore] | ||
18 | START_ON_DEMAND = NO | ||
19 | |||
20 | [fs] | ||
21 | START_ON_DEMAND = NO | ||
22 | |||
23 | [dv] | ||
24 | START_ON_DEMAND = NO | ||
25 | |||
26 | [vpn] | ||
27 | START_ON_DEMAND = NO | ||
28 | |||
29 | [consensus] | ||
30 | START_ON_DEMAND = NO | ||
31 | |||
32 | [resolver] | ||
33 | START_ON_DEMAND = NO | ||
34 | |||
35 | [namestore] | ||
36 | START_ON_DEMAND = NO | ||
37 | |||
38 | [namecache] | ||
39 | START_ON_DEMAND = NO | ||
40 | |||
41 | [identity] | ||
42 | START_ON_DEMAND = NO | ||
43 | |||
44 | [revocation] | ||
45 | START_ON_DEMAND = NO | ||
46 | |||
47 | [conversation] | ||
48 | START_ON_DEMAND = NO | ||
49 | |||
50 | [peerstore] | ||
51 | START_ON_DEMAND = NO | ||
52 | |||
53 | [psycstore] | ||
54 | START_ON_DEMAND = NO | ||
55 | |||
56 | [gns] | ||
57 | START_ON_DEMAND = NO | ||
58 | |||
59 | [regex] | ||
60 | START_ON_DEMAND = NO | ||
61 | |||
62 | [set] | ||
63 | START_ON_DEMAND = NO | ||
64 | |||
65 | [scalarproduct-bob] | ||
66 | START_ON_DEMAND = NO | ||
67 | |||
68 | [scalarproduct-alice] | ||
69 | START_ON_DEMAND = NO | ||
70 | |||
71 | [social] | ||
72 | START_ON_DEMAND = NO | ||
73 | |||
74 | [psyc] | ||
75 | START_ON_DEMAND = NO | ||
76 | |||
77 | [rps] | ||
78 | START_ON_DEMAND = NO | ||
79 | |||
80 | [multicast] | ||
81 | START_ON_DEMAND = NO | ||
82 | |||
83 | [sensordashboard] | ||
84 | START_ON_DEMAND = NO | ||
85 | |||
86 | [sensor] | ||
87 | START_ON_DEMAND = NO | ||
88 | |||
89 | [zonemaster-monitor] | ||
90 | START_ON_DEMAND = NO | ||
91 | |||
92 | [zonemaster] | ||
93 | START_ON_DEMAND = NO | ||
diff --git a/contrib/conf/gnunet/no_forcestart.conf b/contrib/conf/gnunet/no_forcestart.conf new file mode 100644 index 000000000..de58c6039 --- /dev/null +++ b/contrib/conf/gnunet/no_forcestart.conf | |||
@@ -0,0 +1,57 @@ | |||
1 | # Configuration file that can be included to prevent ANY of the usual | ||
2 | # IMMEDIATE_START = YES to be set. Also disables NSE POW calculation. | ||
3 | # | ||
4 | # This configuration is included from various configuration test files. | ||
5 | # Whenever a new service is added that has IMMEDIATE_START = YES for | ||
6 | # production should be disabled for (most) test suites, the option should | ||
7 | # be added here instead of all over the place ;-). | ||
8 | |||
9 | [core] | ||
10 | IMMEDIATE_START = NO | ||
11 | |||
12 | [fs] | ||
13 | IMMEDIATE_START = NO | ||
14 | |||
15 | [dht] | ||
16 | IMMEDIATE_START = NO | ||
17 | |||
18 | [cadet] | ||
19 | IMMEDIATE_START = NO | ||
20 | |||
21 | [nse] | ||
22 | IMMEDIATE_START = NO | ||
23 | WORKBITS = 0 | ||
24 | |||
25 | [revocation] | ||
26 | IMMEDIATE_START = NO | ||
27 | |||
28 | [topology] | ||
29 | IMMEDIATE_START = NO | ||
30 | |||
31 | [hostlist] | ||
32 | IMMEDIATE_START = NO | ||
33 | |||
34 | [gns] | ||
35 | IMMEDIATE_START = NO | ||
36 | |||
37 | [zonemaster] | ||
38 | IMMEDIATE_START = NO | ||
39 | |||
40 | [zonemaster-monitor] | ||
41 | IMMEDIATE_START = NO | ||
42 | |||
43 | [psyc] | ||
44 | IMMEDIATE_START = NO | ||
45 | |||
46 | [rps] | ||
47 | IMMEDIATE_START = NO | ||
48 | |||
49 | [consensus] | ||
50 | IMMEDIATE_START = NO | ||
51 | |||
52 | [set] | ||
53 | IMMEDIATE_START = NO | ||
54 | |||
55 | [nse] | ||
56 | IMMEDIATE_START = NO | ||
57 | |||
diff --git a/contrib/nssswitch.conf b/contrib/conf/nss/nssswitch.conf index 89af6471e..89af6471e 100644 --- a/contrib/nssswitch.conf +++ b/contrib/conf/nss/nssswitch.conf | |||
diff --git a/contrib/conf/wireshark/wireshark.lua b/contrib/conf/wireshark/wireshark.lua new file mode 100644 index 000000000..ac77029f6 --- /dev/null +++ b/contrib/conf/wireshark/wireshark.lua | |||
@@ -0,0 +1,150 @@ | |||
1 | -- declare our protocol | ||
2 | gwlan_proto = Proto("gnunet","Gnunet Layer") | ||
3 | -- create a function to dissect it | ||
4 | local f = gwlan_proto.fields | ||
5 | |||
6 | f.len = ProtoField.uint16 ("gnunet.len", "Gnunet Message Len") | ||
7 | f.type = ProtoField.uint16 ("gnunet.type", "Gnunet Message Type") | ||
8 | -- rhs_proto.fields.sequence = ProtoField.uint16("rhs.sequence","Sequence number") | ||
9 | f_proto = DissectorTable.new("gnunet.proto", "Gnunet Protocoll", FT_UINT16, BASE_DEC) | ||
10 | --gwlan_proto.fields = {f_len, f_type} | ||
11 | |||
12 | function gwlan_proto.dissector(buffer,pinfo,tree) | ||
13 | pinfo.cols.protocol = "Gnunet Packet" | ||
14 | gnunet_packet_disector(buffer,pinfo,tree) | ||
15 | end | ||
16 | |||
17 | function gwlan_proto.init() | ||
18 | end | ||
19 | |||
20 | function gnunet_packet_disector(buffer,pinfo,tree) | ||
21 | if (buffer:len() > 4) then | ||
22 | local len = buffer(0,2):uint() | ||
23 | local type = buffer(2,2):uint() | ||
24 | if (len <= buffer:len()) then | ||
25 | local dissect = f_proto:get_dissector(type) | ||
26 | if dissect ~= nil then | ||
27 | dissect:call(buffer(0, len):tvb(), pinfo, tree) | ||
28 | else | ||
29 | local subtree = tree:add(fragmentack, buffer(),"Gnunet Packet Type: " .. buffer(2,2):uint() .. "(" .. buffer:len() .. ")") | ||
30 | gnunet_message_header(buffer, pinfo, subtree) | ||
31 | end | ||
32 | end | ||
33 | --if (len < buffer:len()) then | ||
34 | -- gwlan_proto.dissector(buffer(len, buffer:len() - len):tvb(), pinfo, tree) | ||
35 | --end | ||
36 | else | ||
37 | if (buffer:len() == 4) then | ||
38 | local subtree = tree:add(fragmentack, buffer(),"Gnunet Packet (" .. buffer:len() .. ")") | ||
39 | gnunet_message_header(buffer, pinfo, subtree) | ||
40 | end | ||
41 | end | ||
42 | end | ||
43 | |||
44 | function gnunet_message_header(buffer, pinfo, tree) | ||
45 | if (buffer:len() >= 4) then | ||
46 | local len = buffer(0,2) | ||
47 | local type = buffer(2,2) | ||
48 | tree:add(buffer(0,2), "Message Len: " .. buffer(0,2):uint()) | ||
49 | tree:add(buffer(2,2), "Message Type: " .. buffer(2,2):uint()) | ||
50 | end | ||
51 | end | ||
52 | |||
53 | -- load the udp.port table | ||
54 | llc_table = DissectorTable.get("llc.dsap") | ||
55 | -- register our protocol to handle llc.dsap 0x1e | ||
56 | llc_table:add(31,gwlan_proto) | ||
57 | |||
58 | fragmentack = Proto("gnunet.fragmentack","Gnunet Fragment Ack") | ||
59 | |||
60 | function fragmentack.dissector(buffer,pinfo,tree) | ||
61 | pinfo.cols.protocol = "Gnunet Fragment Ack" | ||
62 | local subtree = tree:add(fragmentack, buffer(),"Gnunet Data ack (" .. buffer:len() .. ")") | ||
63 | gnunet_message_header(buffer, pinfo, subtree) | ||
64 | if buffer:len() >= 16 then | ||
65 | subtree:add(buffer(4,4),"Fragment Id: " .. buffer(4,4):uint()) | ||
66 | subtree:add(buffer(8,8),"Bits: " .. buffer(8,8)) | ||
67 | end | ||
68 | end | ||
69 | |||
70 | fragment = Proto("gnunet.fragment","Gnunet Fragment") | ||
71 | |||
72 | function fragment.dissector(buffer,pinfo,tree) | ||
73 | pinfo.cols.protocol = "Gnunet Fragment" | ||
74 | local subtree = tree:add(fragment, buffer(),"Gnunet Fragment (" .. buffer:len() .. ")") | ||
75 | gnunet_message_header(buffer, pinfo, subtree) | ||
76 | if buffer:len() >= 13 then | ||
77 | subtree:add(buffer(4,4),"Fragment Id: " .. buffer(4,4):uint()) | ||
78 | subtree:add(buffer(8,2),"Total Size: " .. buffer(8,2):uint()) | ||
79 | subtree:add(buffer(10,2),"Offset: " .. buffer(10,2):uint()) | ||
80 | if buffer(10,2):uint() == 0 then | ||
81 | if (buffer(8,2):uint() <= buffer:len() - 12) then | ||
82 | gnunet_packet_disector(buffer(12):tvb(),pinfo,tree) | ||
83 | end | ||
84 | else | ||
85 | subtree:add(buffer(12), "Data: " .. buffer(12)) | ||
86 | end | ||
87 | end | ||
88 | end | ||
89 | |||
90 | hello = Proto("gnunet.hello","Gnunet Hello Message") | ||
91 | |||
92 | function hello.dissector(buffer,pinfo,tree) | ||
93 | pinfo.cols.protocol = "Gnunet Hello Message" | ||
94 | local subtree = tree:add(hello, buffer(),"Gnunet Hello Message (" .. buffer:len() .. ")") | ||
95 | gnunet_message_header(buffer, pinfo, subtree) | ||
96 | if buffer:len() > (264 + 8) then | ||
97 | subtree:add(buffer(4,4),"Reserved: " .. buffer(4,4):uint()) | ||
98 | RsaPublicKeyBinaryEncoded(buffer(8 , 264):tvb(),pinfo, subtree) | ||
99 | else | ||
100 | subtree:add(buffer(4), "SIZE WRONG (< 272)") | ||
101 | end | ||
102 | end | ||
103 | |||
104 | wlan = Proto("gnunet.wlan","Gnunet WLAN Message") | ||
105 | |||
106 | function wlan.dissector(buffer,pinfo,tree) | ||
107 | pinfo.cols.protocol = "Gnunet WLAN Message" | ||
108 | local subtree = tree:add(wlan, buffer(),"Gnunet WLAN Message (" .. buffer:len() .. ")") | ||
109 | gnunet_message_header(buffer, pinfo, subtree) | ||
110 | if buffer:len() > (4 + 4 + 2*64) then | ||
111 | subtree:add(buffer(4,4),"CRC: " .. buffer(4,4):uint()) | ||
112 | local peer = GNUNET_PeerIdentity(buffer(8,64), pinfo, subtree) | ||
113 | peer:append_text(" Traget") | ||
114 | peer = GNUNET_PeerIdentity(buffer(8 + 64,64), pinfo, subtree) | ||
115 | peer:append_text(" Source") | ||
116 | else | ||
117 | subtree:add(buffer(8), "SIZE WRONG (< 4 + 4 + 2*64)") | ||
118 | end | ||
119 | if (buffer:len() - (4 + 4 + 2*64) > 0) then | ||
120 | gnunet_packet_disector(buffer(4 + 4 + 2*64):tvb(),pinfo,tree) | ||
121 | end | ||
122 | end | ||
123 | |||
124 | function RsaPublicKeyBinaryEncoded(buffer,pinfo,tree) | ||
125 | local subtree = tree:add(gwlan_proto,buffer(),"Gnunet RsaPublicKeyBinaryEncoded(" .. buffer:len() .. ")") | ||
126 | subtree:add(buffer(0,2),"Len: " .. buffer(0,2):uint()) | ||
127 | subtree:add(buffer(2,2),"Sizen: " .. buffer(2,2):uint()) | ||
128 | subtree:add(buffer(4,258),"Pub Key: " .. buffer(4,258)) | ||
129 | subtree:add(buffer(262,2),"Padding: " .. buffer(262,2):uint()) | ||
130 | end | ||
131 | |||
132 | function GNUNET_PeerIdentity(buffer,pinfo,tree) | ||
133 | local subtree = tree:add(gwlan_proto,buffer(),"Gnunet PeerIdentity(" .. buffer:len() .. ")") | ||
134 | subtree:add(buffer(0),"hashPubKey: " .. buffer(0)) | ||
135 | return subtree | ||
136 | end | ||
137 | |||
138 | transport_session_keepalive = Proto("gnunet.transport_session_keepalive","Gnunet transport session keepalive") | ||
139 | |||
140 | function transport_session_keepalive.dissector(buffer,pinfo,tree) | ||
141 | pinfo.cols.protocol = "Gnunet transport session keepalive" | ||
142 | local subtree = tree:add(transport_session_keepalive, buffer(),"Gnunet transport session keepalive (" .. buffer:len() .. ")") | ||
143 | gnunet_message_header(buffer, pinfo, subtree) | ||
144 | end | ||
145 | |||
146 | f_proto:add(43,wlan) | ||
147 | f_proto:add(39,transport_session_keepalive) | ||
148 | f_proto:add(19,fragmentack) | ||
149 | f_proto:add(18,fragment) | ||
150 | f_proto:add(16,hello) | ||
diff --git a/contrib/bootstrap.min.css b/contrib/gns/bootstrap.min.css index c547283bb..c547283bb 100644 --- a/contrib/bootstrap.min.css +++ b/contrib/gns/bootstrap.min.css | |||
diff --git a/contrib/def.tex b/contrib/gns/def.tex index 669302b08..669302b08 100644 --- a/contrib/def.tex +++ b/contrib/gns/def.tex | |||
diff --git a/contrib/gns-bcd.html b/contrib/gns/gns-bcd.html index de2fdb6e6..de2fdb6e6 100644 --- a/contrib/gns-bcd.html +++ b/contrib/gns/gns-bcd.html | |||
diff --git a/contrib/gns-bcd.tex b/contrib/gns/gns-bcd.tex index 73a302985..f3a033ebc 100644 --- a/contrib/gns-bcd.tex +++ b/contrib/gns/gns-bcd.tex | |||
@@ -18782,7 +18782,7 @@ | |||
18782 | \node[rectangle,draw=white,minimum height=7pt,text width=41mm,inner sep=0pt] at (24.25mm,-29.0mm) {\ifthenelse{\equal{#1}{english}}{\textit{\jobtitleenglish}}{\textit{\jobtitlegerman}}}; | 18782 | \node[rectangle,draw=white,minimum height=7pt,text width=41mm,inner sep=0pt] at (24.25mm,-29.0mm) {\ifthenelse{\equal{#1}{english}}{\textit{\jobtitleenglish}}{\textit{\jobtitlegerman}}}; |
18783 | } | 18783 | } |
18784 | { | 18784 | { |
18785 | \node at (78mm,-7mm) {\logo}; %\includegraphics[height=7mm]{gnunet-logo.pdf}}; | 18785 | \node at (78mm,-7mm) {\logo}; %\includegraphics[height=7mm]{../branding/logo/gnunet-logo.pdf}}; |
18786 | \node[rectangle,draw=white,line width=1pt,inner sep=0pt] at (17mm,-17mm) {\begin{pspicture}(15mm,15mm) \psbarcode{gnunet://gns/\gns}{eclevel=Q}{qrcode}\end{pspicture}}; | 18786 | \node[rectangle,draw=white,line width=1pt,inner sep=0pt] at (17mm,-17mm) {\begin{pspicture}(15mm,15mm) \psbarcode{gnunet://gns/\gns}{eclevel=Q}{qrcode}\end{pspicture}}; |
18787 | \node[rectangle,draw=white,minimum height=7pt,text width=41mm,inner sep=0pt] at (24.25mm,-35.0mm) {\ifthenelse{\equal{\prefix}{}}{}{\tiny \prefix}}; | 18787 | \node[rectangle,draw=white,minimum height=7pt,text width=41mm,inner sep=0pt] at (24.25mm,-35.0mm) {\ifthenelse{\equal{\prefix}{}}{}{\tiny \prefix}}; |
18788 | \node[rectangle,draw=white,minimum height=7pt,text width=41mm,inner sep=0pt] at (24.25mm,-41.5mm) {\fontsize{8pt}{8pt}\selectfont \textbf{\name}\ifthenelse{\equal{\suffix}{}}{}{, \tiny \suffix}}; | 18788 | \node[rectangle,draw=white,minimum height=7pt,text width=41mm,inner sep=0pt] at (24.25mm,-41.5mm) {\fontsize{8pt}{8pt}\selectfont \textbf{\name}\ifthenelse{\equal{\suffix}{}}{}{, \tiny \suffix}}; |
diff --git a/contrib/gns-form-fields.xml b/contrib/gns/gns-form-fields.xml index 308e66e0d..308e66e0d 100644 --- a/contrib/gns-form-fields.xml +++ b/contrib/gns/gns-form-fields.xml | |||
diff --git a/contrib/gns-form.xslt b/contrib/gns/gns-form.xslt index bf2585616..bf2585616 100644 --- a/contrib/gns-form.xslt +++ b/contrib/gns/gns-form.xslt | |||
diff --git a/contrib/gnunet-arch-full.svg b/contrib/gnunet-arch-full.svg new file mode 100644 index 000000000..766f2b855 --- /dev/null +++ b/contrib/gnunet-arch-full.svg | |||
@@ -0,0 +1,648 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" | ||
3 | "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | ||
4 | <!-- Generated by graphviz version 2.38.0 (20140413.2041) | ||
5 | --> | ||
6 | <!-- Title: dependencies Pages: 1 --> | ||
7 | <svg width="1277pt" height="836pt" | ||
8 | viewBox="0.00 0.00 1276.81 836.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||
9 | <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 832)"> | ||
10 | <title>dependencies</title> | ||
11 | <polygon fill="white" stroke="none" points="-4,4 -4,-832 1272.81,-832 1272.81,4 -4,4"/> | ||
12 | <!-- voting --> | ||
13 | <g id="node1" class="node"><title>voting</title> | ||
14 | <polygon fill="none" stroke="black" points="120.944,-743.562 80,-756 39.0559,-743.562 39.0942,-723.438 120.906,-723.438 120.944,-743.562"/> | ||
15 | <text text-anchor="middle" x="80" y="-734.3" font-family="Times,serif" font-size="14.00">voting</text> | ||
16 | </g> | ||
17 | <!-- consensus --> | ||
18 | <g id="node2" class="node"><title>consensus</title> | ||
19 | <ellipse fill="none" stroke="black" cx="112" cy="-594" rx="46.2923" ry="18"/> | ||
20 | <text text-anchor="middle" x="112" y="-590.3" font-family="Times,serif" font-size="14.00">consensus</text> | ||
21 | </g> | ||
22 | <!-- voting->consensus --> | ||
23 | <g id="edge1" class="edge"><title>voting->consensus</title> | ||
24 | <path fill="none" stroke="black" d="M121.028,-728.482C145.315,-721.103 174.155,-707.724 189,-684 197.487,-670.436 196.445,-662.162 189,-648 180.933,-632.654 166.19,-620.887 151.748,-612.383"/> | ||
25 | <polygon fill="black" stroke="black" points="153.308,-609.247 142.857,-607.508 149.942,-615.385 153.308,-609.247"/> | ||
26 | </g> | ||
27 | <!-- identity --> | ||
28 | <g id="node3" class="node"><title>identity</title> | ||
29 | <ellipse fill="none" stroke="black" cx="282" cy="-450" rx="37.8943" ry="18"/> | ||
30 | <text text-anchor="middle" x="282" y="-446.3" font-family="Times,serif" font-size="14.00">identity</text> | ||
31 | </g> | ||
32 | <!-- voting->identity --> | ||
33 | <g id="edge2" class="edge"><title>voting->identity</title> | ||
34 | <path fill="none" stroke="black" d="M58.5145,-723.377C45.8789,-714.02 31.0387,-700.353 24,-684 5.02284,-639.911 -2.50901,-616.016 24,-576 46.6577,-541.798 71.8444,-557.396 109,-540 158.351,-516.894 214.207,-487.564 248.77,-469.032"/> | ||
35 | <polygon fill="black" stroke="black" points="250.781,-471.924 257.931,-464.105 247.466,-465.759 250.781,-471.924"/> | ||
36 | </g> | ||
37 | <!-- cadet --> | ||
38 | <g id="node4" class="node"><title>cadet</title> | ||
39 | <ellipse fill="none" stroke="black" cx="538" cy="-450" rx="29.4969" ry="18"/> | ||
40 | <text text-anchor="middle" x="538" y="-446.3" font-family="Times,serif" font-size="14.00">cadet</text> | ||
41 | </g> | ||
42 | <!-- voting->cadet --> | ||
43 | <g id="edge3" class="edge"><title>voting->cadet</title> | ||
44 | <path fill="none" stroke="black" d="M72.0051,-723.243C55.682,-693.149 22.8306,-620.604 57,-576 70.8829,-557.877 390.653,-484.265 500.977,-459.316"/> | ||
45 | <polygon fill="black" stroke="black" points="501.999,-462.673 510.983,-457.057 500.458,-455.845 501.999,-462.673"/> | ||
46 | </g> | ||
47 | <!-- secretsharing --> | ||
48 | <g id="node5" class="node"><title>secretsharing</title> | ||
49 | <ellipse fill="none" stroke="black" cx="123" cy="-666" rx="57.3905" ry="18"/> | ||
50 | <text text-anchor="middle" x="123" y="-662.3" font-family="Times,serif" font-size="14.00">secretsharing</text> | ||
51 | </g> | ||
52 | <!-- voting->secretsharing --> | ||
53 | <g id="edge4" class="edge"><title>voting->secretsharing</title> | ||
54 | <path fill="none" stroke="black" d="M88.4954,-723.17C93.8716,-714.418 100.986,-702.837 107.357,-692.466"/> | ||
55 | <polygon fill="black" stroke="black" points="110.45,-694.117 112.702,-683.764 104.486,-690.453 110.45,-694.117"/> | ||
56 | </g> | ||
57 | <!-- consensus->cadet --> | ||
58 | <g id="edge72" class="edge"><title>consensus->cadet</title> | ||
59 | <path fill="none" stroke="black" d="M146.507,-581.905C153.275,-579.85 160.34,-577.79 167,-576 236.135,-557.417 256.193,-562.96 324,-540 360.547,-527.625 367.474,-519.056 403,-504 437.068,-489.562 476.509,-474.236 503.927,-463.798"/> | ||
60 | <polygon fill="black" stroke="black" points="505.344,-467.004 513.453,-460.185 502.862,-460.459 505.344,-467.004"/> | ||
61 | </g> | ||
62 | <!-- set --> | ||
63 | <g id="node24" class="node"><title>set</title> | ||
64 | <ellipse fill="none" stroke="black" cx="517" cy="-522" rx="27" ry="18"/> | ||
65 | <text text-anchor="middle" x="517" y="-518.3" font-family="Times,serif" font-size="14.00">set</text> | ||
66 | </g> | ||
67 | <!-- consensus->set --> | ||
68 | <g id="edge71" class="edge"><title>consensus->set</title> | ||
69 | <path fill="none" stroke="black" d="M145.818,-581.678C152.772,-579.596 160.083,-577.583 167,-576 182.24,-572.511 394.44,-541.075 480.815,-528.33"/> | ||
70 | <polygon fill="black" stroke="black" points="481.561,-531.758 490.943,-526.837 480.539,-524.833 481.561,-531.758"/> | ||
71 | </g> | ||
72 | <!-- dht --> | ||
73 | <g id="node7" class="node"><title>dht</title> | ||
74 | <ellipse fill="none" stroke="black" cx="756" cy="-378" rx="27" ry="18"/> | ||
75 | <text text-anchor="middle" x="756" y="-374.3" font-family="Times,serif" font-size="14.00">dht</text> | ||
76 | </g> | ||
77 | <!-- cadet->dht --> | ||
78 | <g id="edge51" class="edge"><title>cadet->dht</title> | ||
79 | <path fill="none" stroke="black" d="M563.434,-440.833C602.822,-428.186 678.592,-403.856 722.428,-389.78"/> | ||
80 | <polygon fill="black" stroke="black" points="723.607,-393.078 732.058,-386.688 721.467,-386.413 723.607,-393.078"/> | ||
81 | </g> | ||
82 | <!-- core --> | ||
83 | <g id="node8" class="node"><title>core</title> | ||
84 | <ellipse fill="none" stroke="black" cx="555" cy="-234" rx="27" ry="18"/> | ||
85 | <text text-anchor="middle" x="555" y="-230.3" font-family="Times,serif" font-size="14.00">core</text> | ||
86 | </g> | ||
87 | <!-- cadet->core --> | ||
88 | <g id="edge50" class="edge"><title>cadet->core</title> | ||
89 | <path fill="none" stroke="black" d="M539.362,-431.849C542.303,-394.832 549.266,-307.181 552.824,-262.386"/> | ||
90 | <polygon fill="black" stroke="black" points="556.328,-262.478 553.631,-252.232 549.35,-261.924 556.328,-262.478"/> | ||
91 | </g> | ||
92 | <!-- block --> | ||
93 | <g id="node11" class="node"><title>block</title> | ||
94 | <polygon fill="none" stroke="black" points="429,-324 385.598,-306 429,-288 472.402,-306 429,-324"/> | ||
95 | <text text-anchor="middle" x="429" y="-302.3" font-family="Times,serif" font-size="14.00">block</text> | ||
96 | </g> | ||
97 | <!-- cadet->block --> | ||
98 | <g id="edge52" class="edge"><title>cadet->block</title> | ||
99 | <path fill="none" stroke="blue" stroke-dasharray="1,5" d="M522.106,-434.467C511.33,-424.227 497.085,-409.913 486,-396 469.058,-374.736 452.633,-348.272 441.802,-329.75"/> | ||
100 | <polygon fill="blue" stroke="blue" points="444.702,-327.773 436.674,-320.859 438.638,-331.27 444.702,-327.773"/> | ||
101 | </g> | ||
102 | <!-- secretsharing->consensus --> | ||
103 | <g id="edge5" class="edge"><title>secretsharing->consensus</title> | ||
104 | <path fill="none" stroke="black" d="M120.281,-647.697C119.069,-639.983 117.612,-630.712 116.261,-622.112"/> | ||
105 | <polygon fill="black" stroke="black" points="119.698,-621.44 114.688,-612.104 112.783,-622.526 119.698,-621.44"/> | ||
106 | </g> | ||
107 | <!-- fs --> | ||
108 | <g id="node6" class="node"><title>fs</title> | ||
109 | <polygon fill="none" stroke="black" points="100,-527.562 73,-540 46,-527.562 46.0252,-507.438 99.9748,-507.438 100,-527.562"/> | ||
110 | <text text-anchor="middle" x="73" y="-518.3" font-family="Times,serif" font-size="14.00">fs</text> | ||
111 | </g> | ||
112 | <!-- fs->identity --> | ||
113 | <g id="edge12" class="edge"><title>fs->identity</title> | ||
114 | <path fill="none" stroke="black" d="M100.21,-509.307C104.786,-507.46 109.507,-505.625 114,-504 164.764,-485.643 178.566,-484.387 230,-468 233.971,-466.735 238.108,-465.404 242.237,-464.067"/> | ||
115 | <polygon fill="black" stroke="black" points="243.351,-467.386 251.778,-460.965 241.186,-460.729 243.351,-467.386"/> | ||
116 | </g> | ||
117 | <!-- fs->cadet --> | ||
118 | <g id="edge9" class="edge"><title>fs->cadet</title> | ||
119 | <path fill="none" stroke="black" d="M100.01,-516.934C178.772,-505.077 408.387,-470.512 499.803,-456.75"/> | ||
120 | <polygon fill="black" stroke="black" points="500.372,-460.204 509.74,-455.254 499.33,-453.282 500.372,-460.204"/> | ||
121 | </g> | ||
122 | <!-- fs->dht --> | ||
123 | <g id="edge6" class="edge"><title>fs->dht</title> | ||
124 | <path fill="none" stroke="black" d="M100.081,-509.411C132.571,-495.433 183.726,-473.164 192,-468 213.144,-454.802 212.035,-441.688 235,-432 322.67,-395.017 615.27,-383.079 719.081,-379.955"/> | ||
125 | <polygon fill="black" stroke="black" points="719.199,-383.453 729.093,-379.664 718.996,-376.456 719.199,-383.453"/> | ||
126 | </g> | ||
127 | <!-- fs->core --> | ||
128 | <g id="edge7" class="edge"><title>fs->core</title> | ||
129 | <path fill="none" stroke="black" d="M65.0877,-507.277C55.5997,-488.827 42.6595,-455.618 57,-432 93.0072,-372.699 269.007,-312.27 334,-288 397.135,-264.424 474.404,-248.714 518.841,-240.869"/> | ||
130 | <polygon fill="black" stroke="black" points="519.614,-244.287 528.871,-239.134 518.42,-237.39 519.614,-244.287"/> | ||
131 | </g> | ||
132 | <!-- datastore --> | ||
133 | <g id="node9" class="node"><title>datastore</title> | ||
134 | <ellipse fill="none" stroke="black" cx="108" cy="-450" rx="42.4939" ry="18"/> | ||
135 | <text text-anchor="middle" x="108" y="-446.3" font-family="Times,serif" font-size="14.00">datastore</text> | ||
136 | </g> | ||
137 | <!-- fs->datastore --> | ||
138 | <g id="edge8" class="edge"><title>fs->datastore</title> | ||
139 | <path fill="none" stroke="black" d="M79.9149,-507.17C84.2467,-498.507 89.9645,-487.071 95.1098,-476.78"/> | ||
140 | <polygon fill="black" stroke="black" points="98.2763,-478.274 99.618,-467.764 92.0153,-475.143 98.2763,-478.274"/> | ||
141 | </g> | ||
142 | <!-- ats --> | ||
143 | <g id="node10" class="node"><title>ats</title> | ||
144 | <ellipse fill="none" stroke="black" cx="385" cy="-90" rx="27" ry="18"/> | ||
145 | <text text-anchor="middle" x="385" y="-86.3" font-family="Times,serif" font-size="14.00">ats</text> | ||
146 | </g> | ||
147 | <!-- fs->ats --> | ||
148 | <g id="edge10" class="edge"><title>fs->ats</title> | ||
149 | <path fill="none" stroke="black" d="M60.2844,-507.296C39.3694,-483.267 0,-431.113 0,-379 0,-379 0,-379 0,-233 0,-159.097 252.872,-111.714 348.742,-96.4063"/> | ||
150 | <polygon fill="black" stroke="black" points="349.504,-99.8296 358.84,-94.8203 348.418,-92.9144 349.504,-99.8296"/> | ||
151 | </g> | ||
152 | <!-- fs->block --> | ||
153 | <g id="edge11" class="edge"><title>fs->block</title> | ||
154 | <path fill="none" stroke="blue" stroke-dasharray="1,5" d="M99.0792,-507.426C116.81,-497.613 140.343,-483.417 159,-468 175.732,-454.174 174.815,-445.258 192,-432 259.224,-380.139 351.062,-338.689 398.245,-319.166"/> | ||
155 | <polygon fill="blue" stroke="blue" points="399.679,-322.361 407.611,-315.337 397.03,-315.881 399.679,-322.361"/> | ||
156 | </g> | ||
157 | <!-- dht->core --> | ||
158 | <g id="edge42" class="edge"><title>dht->core</title> | ||
159 | <path fill="none" stroke="black" d="M780.722,-370.233C802.496,-362.816 832.877,-348.569 847,-324 854.974,-310.128 857.48,-300.09 847,-288 810.092,-245.421 650.341,-266.908 596,-252 592.628,-251.075 589.164,-249.944 585.745,-248.709"/> | ||
160 | <polygon fill="black" stroke="black" points="586.936,-245.416 576.348,-245.037 584.388,-251.936 586.936,-245.416"/> | ||
161 | </g> | ||
162 | <!-- dht->block --> | ||
163 | <g id="edge44" class="edge"><title>dht->block</title> | ||
164 | <path fill="none" stroke="black" d="M730.132,-372.774C681.84,-364.697 574.817,-345.908 486,-324 478.104,-322.052 469.673,-319.694 461.782,-317.363"/> | ||
165 | <polygon fill="black" stroke="black" points="462.742,-313.997 452.157,-314.456 460.718,-320.698 462.742,-313.997"/> | ||
166 | </g> | ||
167 | <!-- nse --> | ||
168 | <g id="node27" class="node"><title>nse</title> | ||
169 | <ellipse fill="none" stroke="black" cx="811" cy="-306" rx="27" ry="18"/> | ||
170 | <text text-anchor="middle" x="811" y="-302.3" font-family="Times,serif" font-size="14.00">nse</text> | ||
171 | </g> | ||
172 | <!-- dht->nse --> | ||
173 | <g id="edge43" class="edge"><title>dht->nse</title> | ||
174 | <path fill="none" stroke="black" d="M767.934,-361.811C775.214,-352.546 784.663,-340.52 792.854,-330.094"/> | ||
175 | <polygon fill="black" stroke="black" points="795.663,-332.185 799.089,-322.159 790.159,-327.86 795.663,-332.185"/> | ||
176 | </g> | ||
177 | <!-- datacache --> | ||
178 | <g id="node28" class="node"><title>datacache</title> | ||
179 | <polygon fill="none" stroke="black" points="702,-324 637.818,-306 702,-288 766.182,-306 702,-324"/> | ||
180 | <text text-anchor="middle" x="702" y="-302.3" font-family="Times,serif" font-size="14.00">datacache</text> | ||
181 | </g> | ||
182 | <!-- dht->datacache --> | ||
183 | <g id="edge45" class="edge"><title>dht->datacache</title> | ||
184 | <path fill="none" stroke="black" d="M744.016,-361.465C736.66,-351.93 727.125,-339.57 718.998,-329.034"/> | ||
185 | <polygon fill="black" stroke="black" points="721.73,-326.846 712.851,-321.066 716.187,-331.121 721.73,-326.846"/> | ||
186 | </g> | ||
187 | <!-- peerinfo --> | ||
188 | <g id="node29" class="node"><title>peerinfo</title> | ||
189 | <ellipse fill="none" stroke="black" cx="518" cy="-90" rx="40.0939" ry="18"/> | ||
190 | <text text-anchor="middle" x="518" y="-86.3" font-family="Times,serif" font-size="14.00">peerinfo</text> | ||
191 | </g> | ||
192 | <!-- dht->peerinfo --> | ||
193 | <g id="edge46" class="edge"><title>dht->peerinfo</title> | ||
194 | <path fill="none" stroke="black" d="M728.828,-376.457C687.438,-374.282 608.033,-364.658 557,-324 495.436,-274.952 504.26,-168.494 512.535,-118.27"/> | ||
195 | <polygon fill="black" stroke="black" points="516.027,-118.624 514.32,-108.168 509.133,-117.406 516.027,-118.624"/> | ||
196 | </g> | ||
197 | <!-- hello --> | ||
198 | <g id="node30" class="node"><title>hello</title> | ||
199 | <polygon fill="none" stroke="black" points="854,-36 813.614,-18 854,-3.55271e-15 894.386,-18 854,-36"/> | ||
200 | <text text-anchor="middle" x="854" y="-14.3" font-family="Times,serif" font-size="14.00">hello</text> | ||
201 | </g> | ||
202 | <!-- dht->hello --> | ||
203 | <g id="edge47" class="edge"><title>dht->hello</title> | ||
204 | <path fill="none" stroke="black" d="M782.364,-373.864C833.24,-367.278 942.225,-350.399 968,-324 996.322,-294.992 988,-275.542 988,-235 988,-235 988,-235 988,-161 988,-99.7534 921.245,-54.2239 881.968,-32.736"/> | ||
205 | <polygon fill="black" stroke="black" points="883.108,-29.3792 872.632,-27.796 879.834,-35.5665 883.108,-29.3792"/> | ||
206 | </g> | ||
207 | <!-- transport --> | ||
208 | <g id="node33" class="node"><title>transport</title> | ||
209 | <ellipse fill="none" stroke="black" cx="680" cy="-162" rx="42.4939" ry="18"/> | ||
210 | <text text-anchor="middle" x="680" y="-158.3" font-family="Times,serif" font-size="14.00">transport</text> | ||
211 | </g> | ||
212 | <!-- core->transport --> | ||
213 | <g id="edge58" class="edge"><title>core->transport</title> | ||
214 | <path fill="none" stroke="black" d="M575.083,-221.753C594.251,-211.02 623.495,-194.643 646.244,-181.903"/> | ||
215 | <polygon fill="black" stroke="black" points="648.219,-184.809 655.234,-176.869 644.799,-178.701 648.219,-184.809"/> | ||
216 | </g> | ||
217 | <!-- exit --> | ||
218 | <g id="node12" class="node"><title>exit</title> | ||
219 | <polygon fill="none" stroke="black" points="952,-540 898,-540 898,-504 952,-504 952,-540"/> | ||
220 | <text text-anchor="middle" x="925" y="-518.3" font-family="Times,serif" font-size="14.00">exit</text> | ||
221 | </g> | ||
222 | <!-- exit->cadet --> | ||
223 | <g id="edge13" class="edge"><title>exit->cadet</title> | ||
224 | <path fill="none" stroke="black" d="M897.67,-514.323C883.742,-511.021 866.513,-507.093 851,-504 752.337,-484.331 635.236,-465.765 576.155,-456.729"/> | ||
225 | <polygon fill="black" stroke="black" points="576.571,-453.252 566.158,-455.206 575.517,-460.172 576.571,-453.252"/> | ||
226 | </g> | ||
227 | <!-- tun --> | ||
228 | <g id="node13" class="node"><title>tun</title> | ||
229 | <polygon fill="none" stroke="black" points="929,-468 897.995,-450 929,-432 960.005,-450 929,-468"/> | ||
230 | <text text-anchor="middle" x="929" y="-446.3" font-family="Times,serif" font-size="14.00">tun</text> | ||
231 | </g> | ||
232 | <!-- exit->tun --> | ||
233 | <g id="edge14" class="edge"><title>exit->tun</title> | ||
234 | <path fill="none" stroke="black" d="M925.989,-503.697C926.436,-495.868 926.975,-486.435 927.473,-477.728"/> | ||
235 | <polygon fill="black" stroke="black" points="930.974,-477.806 928.05,-467.622 923.985,-477.406 930.974,-477.806"/> | ||
236 | </g> | ||
237 | <!-- dnsstub --> | ||
238 | <g id="node14" class="node"><title>dnsstub</title> | ||
239 | <polygon fill="none" stroke="black" points="1032,-468 978.877,-450 1032,-432 1085.12,-450 1032,-468"/> | ||
240 | <text text-anchor="middle" x="1032" y="-446.3" font-family="Times,serif" font-size="14.00">dnsstub</text> | ||
241 | </g> | ||
242 | <!-- exit->dnsstub --> | ||
243 | <g id="edge15" class="edge"><title>exit->dnsstub</title> | ||
244 | <path fill="none" stroke="black" d="M951.175,-503.876C967.88,-492.948 989.443,-478.841 1006.1,-467.947"/> | ||
245 | <polygon fill="black" stroke="black" points="1008.33,-470.67 1014.78,-462.266 1004.49,-464.812 1008.33,-470.67"/> | ||
246 | </g> | ||
247 | <!-- vpn --> | ||
248 | <g id="node15" class="node"><title>vpn</title> | ||
249 | <ellipse fill="none" stroke="black" cx="815" cy="-522" rx="27" ry="18"/> | ||
250 | <text text-anchor="middle" x="815" y="-518.3" font-family="Times,serif" font-size="14.00">vpn</text> | ||
251 | </g> | ||
252 | <!-- vpn->cadet --> | ||
253 | <g id="edge16" class="edge"><title>vpn->cadet</title> | ||
254 | <path fill="none" stroke="black" d="M793.129,-511.116C787.017,-508.578 780.317,-506.003 774,-504 705.524,-482.293 623.185,-465.931 576.085,-457.463"/> | ||
255 | <polygon fill="black" stroke="black" points="576.482,-453.979 566.025,-455.678 575.26,-460.871 576.482,-453.979"/> | ||
256 | </g> | ||
257 | <!-- vpn->tun --> | ||
258 | <g id="edge18" class="edge"><title>vpn->tun</title> | ||
259 | <path fill="none" stroke="black" d="M834.339,-509.125C854.149,-496.961 884.945,-478.051 905.995,-465.126"/> | ||
260 | <polygon fill="black" stroke="black" points="907.942,-468.038 914.632,-459.822 904.279,-462.072 907.942,-468.038"/> | ||
261 | </g> | ||
262 | <!-- regex --> | ||
263 | <g id="node16" class="node"><title>regex</title> | ||
264 | <ellipse fill="none" stroke="black" cx="756" cy="-450" rx="30.5947" ry="18"/> | ||
265 | <text text-anchor="middle" x="756" y="-446.3" font-family="Times,serif" font-size="14.00">regex</text> | ||
266 | </g> | ||
267 | <!-- vpn->regex --> | ||
268 | <g id="edge17" class="edge"><title>vpn->regex</title> | ||
269 | <path fill="none" stroke="black" d="M802.198,-505.811C794.496,-496.673 784.53,-484.849 775.827,-474.524"/> | ||
270 | <polygon fill="black" stroke="black" points="778.307,-472.035 769.186,-466.644 772.954,-476.546 778.307,-472.035"/> | ||
271 | </g> | ||
272 | <!-- regex->dht --> | ||
273 | <g id="edge57" class="edge"><title>regex->dht</title> | ||
274 | <path fill="none" stroke="black" d="M756,-431.697C756,-423.983 756,-414.712 756,-406.112"/> | ||
275 | <polygon fill="black" stroke="black" points="759.5,-406.104 756,-396.104 752.5,-406.104 759.5,-406.104"/> | ||
276 | </g> | ||
277 | <!-- regex->block --> | ||
278 | <g id="edge49" class="edge"><title>regex->block</title> | ||
279 | <path fill="none" stroke="blue" stroke-dasharray="1,5" d="M732.22,-438.673C673.767,-413.29 523.157,-347.888 458.838,-319.957"/> | ||
280 | <polygon fill="blue" stroke="blue" points="459.85,-316.581 449.283,-315.808 457.061,-323.002 459.85,-316.581"/> | ||
281 | </g> | ||
282 | <!-- pt --> | ||
283 | <g id="node17" class="node"><title>pt</title> | ||
284 | <polygon fill="none" stroke="black" points="986,-599.562 959,-612 932,-599.562 932.025,-579.438 985.975,-579.438 986,-599.562"/> | ||
285 | <text text-anchor="middle" x="959" y="-590.3" font-family="Times,serif" font-size="14.00">pt</text> | ||
286 | </g> | ||
287 | <!-- pt->cadet --> | ||
288 | <g id="edge19" class="edge"><title>pt->cadet</title> | ||
289 | <path fill="none" stroke="black" d="M931.717,-579.439C928.807,-578.197 925.864,-577.023 923,-576 860.875,-553.809 836.841,-571.725 779,-540 758.602,-528.812 761.339,-515.294 741,-504 688.34,-474.76 619.008,-461.18 576.516,-455.23"/> | ||
290 | <polygon fill="black" stroke="black" points="576.951,-451.758 566.577,-453.91 576.029,-458.697 576.951,-451.758"/> | ||
291 | </g> | ||
292 | <!-- pt->vpn --> | ||
293 | <g id="edge20" class="edge"><title>pt->vpn</title> | ||
294 | <path fill="none" stroke="black" d="M931.915,-579.834C907.352,-567.894 871.179,-550.309 845.585,-537.868"/> | ||
295 | <polygon fill="black" stroke="black" points="846.864,-534.598 836.34,-533.373 843.803,-540.893 846.864,-534.598"/> | ||
296 | </g> | ||
297 | <!-- dns --> | ||
298 | <g id="node18" class="node"><title>dns</title> | ||
299 | <ellipse fill="none" stroke="black" cx="997" cy="-522" rx="27" ry="18"/> | ||
300 | <text text-anchor="middle" x="997" y="-518.3" font-family="Times,serif" font-size="14.00">dns</text> | ||
301 | </g> | ||
302 | <!-- pt->dns --> | ||
303 | <g id="edge21" class="edge"><title>pt->dns</title> | ||
304 | <path fill="none" stroke="black" d="M966.508,-579.17C971.277,-570.385 977.594,-558.748 983.241,-548.346"/> | ||
305 | <polygon fill="black" stroke="black" points="986.48,-549.716 988.175,-539.257 980.328,-546.376 986.48,-549.716"/> | ||
306 | </g> | ||
307 | <!-- dnsparser --> | ||
308 | <g id="node19" class="node"><title>dnsparser</title> | ||
309 | <polygon fill="none" stroke="black" points="1143,-540 1080.49,-522 1143,-504 1205.51,-522 1143,-540"/> | ||
310 | <text text-anchor="middle" x="1143" y="-518.3" font-family="Times,serif" font-size="14.00">dnsparser</text> | ||
311 | </g> | ||
312 | <!-- pt->dnsparser --> | ||
313 | <g id="edge22" class="edge"><title>pt->dnsparser</title> | ||
314 | <path fill="none" stroke="black" d="M986.15,-582.671C1018.5,-570.365 1072.61,-549.781 1108.05,-536.296"/> | ||
315 | <polygon fill="black" stroke="black" points="1109.42,-539.521 1117.52,-532.694 1106.93,-532.979 1109.42,-539.521"/> | ||
316 | </g> | ||
317 | <!-- dns->tun --> | ||
318 | <g id="edge23" class="edge"><title>dns->tun</title> | ||
319 | <path fill="none" stroke="black" d="M982.91,-506.496C972.543,-495.824 958.362,-481.226 947.147,-469.681"/> | ||
320 | <polygon fill="black" stroke="black" points="949.418,-466.995 939.94,-462.261 944.397,-471.873 949.418,-466.995"/> | ||
321 | </g> | ||
322 | <!-- dns->dnsstub --> | ||
323 | <g id="edge24" class="edge"><title>dns->dnsstub</title> | ||
324 | <path fill="none" stroke="black" d="M1005.12,-504.765C1009.59,-495.828 1015.21,-484.573 1020.16,-474.673"/> | ||
325 | <polygon fill="black" stroke="black" points="1023.3,-476.227 1024.64,-465.717 1017.04,-473.096 1023.3,-476.227"/> | ||
326 | </g> | ||
327 | <!-- gnsrecord --> | ||
328 | <g id="node25" class="node"><title>gnsrecord</title> | ||
329 | <ellipse fill="none" stroke="black" cx="1192" cy="-450" rx="45.4919" ry="18"/> | ||
330 | <text text-anchor="middle" x="1192" y="-446.3" font-family="Times,serif" font-size="14.00">gnsrecord</text> | ||
331 | </g> | ||
332 | <!-- dnsparser->gnsrecord --> | ||
333 | <g id="edge39" class="edge"><title>dnsparser->gnsrecord</title> | ||
334 | <path fill="none" stroke="blue" stroke-dasharray="1,5" d="M1152.92,-506.834C1159.12,-497.971 1167.29,-486.304 1174.55,-475.928"/> | ||
335 | <polygon fill="blue" stroke="blue" points="1177.51,-477.805 1180.38,-467.606 1171.77,-473.791 1177.51,-477.805"/> | ||
336 | </g> | ||
337 | <!-- zonemaster --> | ||
338 | <g id="node20" class="node"><title>zonemaster</title> | ||
339 | <polygon fill="none" stroke="black" points="914.433,-599.562 851,-612 787.567,-599.562 787.626,-579.438 914.374,-579.438 914.433,-599.562"/> | ||
340 | <text text-anchor="middle" x="851" y="-590.3" font-family="Times,serif" font-size="14.00">zonemaster</text> | ||
341 | </g> | ||
342 | <!-- zonemaster->dht --> | ||
343 | <g id="edge26" class="edge"><title>zonemaster->dht</title> | ||
344 | <path fill="none" stroke="black" d="M853.642,-579.298C856.499,-561.438 859.583,-529.479 851,-504 836.849,-461.994 802.343,-422.916 779.052,-399.996"/> | ||
345 | <polygon fill="black" stroke="black" points="781.264,-397.267 771.628,-392.861 776.413,-402.314 781.264,-397.267"/> | ||
346 | </g> | ||
347 | <!-- namestore --> | ||
348 | <g id="node21" class="node"><title>namestore</title> | ||
349 | <ellipse fill="none" stroke="black" cx="685" cy="-522" rx="47.3916" ry="18"/> | ||
350 | <text text-anchor="middle" x="685" y="-518.3" font-family="Times,serif" font-size="14.00">namestore</text> | ||
351 | </g> | ||
352 | <!-- zonemaster->namestore --> | ||
353 | <g id="edge25" class="edge"><title>zonemaster->namestore</title> | ||
354 | <path fill="none" stroke="black" d="M818.599,-579.337C791.812,-568.041 753.653,-551.95 724.971,-539.855"/> | ||
355 | <polygon fill="black" stroke="black" points="726.212,-536.58 715.637,-535.919 723.492,-543.03 726.212,-536.58"/> | ||
356 | </g> | ||
357 | <!-- namestore->identity --> | ||
358 | <g id="edge37" class="edge"><title>namestore->identity</title> | ||
359 | <path fill="none" stroke="black" d="M642.634,-513.641C566.046,-500.338 405.247,-472.408 326.867,-458.793"/> | ||
360 | <polygon fill="black" stroke="black" points="327.275,-455.312 316.823,-457.049 326.077,-462.208 327.275,-455.312"/> | ||
361 | </g> | ||
362 | <!-- namestore->gnsrecord --> | ||
363 | <g id="edge38" class="edge"><title>namestore->gnsrecord</title> | ||
364 | <path fill="none" stroke="black" d="M726.085,-512.971C742.503,-509.919 761.609,-506.564 779,-504 918.405,-483.451 954.522,-488.05 1094,-468 1109.42,-465.784 1126.13,-463.019 1141.32,-460.368"/> | ||
365 | <polygon fill="black" stroke="black" points="1142.32,-463.746 1151.56,-458.558 1141.1,-456.853 1142.32,-463.746"/> | ||
366 | </g> | ||
367 | <!-- gns --> | ||
368 | <g id="node22" class="node"><title>gns</title> | ||
369 | <ellipse fill="none" stroke="black" cx="850" cy="-666" rx="27" ry="18"/> | ||
370 | <text text-anchor="middle" x="850" y="-662.3" font-family="Times,serif" font-size="14.00">gns</text> | ||
371 | </g> | ||
372 | <!-- gns->identity --> | ||
373 | <g id="edge34" class="edge"><title>gns->identity</title> | ||
374 | <path fill="none" stroke="black" d="M823.048,-663.899C740.091,-660.169 489.801,-646.281 417,-612 395.952,-602.089 396.543,-591.28 379,-576 359.686,-559.178 350.742,-559.383 334,-540 317.464,-520.856 303.335,-495.717 293.996,-477.041"/> | ||
375 | <polygon fill="black" stroke="black" points="297.085,-475.39 289.562,-467.93 290.791,-478.453 297.085,-475.39"/> | ||
376 | </g> | ||
377 | <!-- gns->dht --> | ||
378 | <g id="edge28" class="edge"><title>gns->dht</title> | ||
379 | <path fill="none" stroke="black" d="M870.511,-653.985C875.467,-651.699 880.829,-649.525 886,-648 1002.11,-613.746 1046.93,-664.524 1156,-612 1236.59,-573.194 1305.75,-498.559 1246,-432 1215.85,-398.416 902.601,-384.19 793.343,-380.225"/> | ||
380 | <polygon fill="black" stroke="black" points="793.243,-376.719 783.125,-379.863 792.995,-383.715 793.243,-376.719"/> | ||
381 | </g> | ||
382 | <!-- gns->block --> | ||
383 | <g id="edge29" class="edge"><title>gns->block</title> | ||
384 | <path fill="none" stroke="blue" stroke-dasharray="1,5" d="M822.824,-664.872C770.707,-663.582 654.321,-655.598 569,-612 548.284,-601.414 548.925,-590.83 531,-576 509.902,-558.544 496.079,-562.857 481,-540 438.212,-475.142 430.206,-380.324 428.985,-334.208"/> | ||
385 | <polygon fill="blue" stroke="blue" points="432.483,-334.033 428.808,-324.096 425.484,-334.156 432.483,-334.033"/> | ||
386 | </g> | ||
387 | <!-- gns->dnsstub --> | ||
388 | <g id="edge33" class="edge"><title>gns->dnsstub</title> | ||
389 | <path fill="none" stroke="black" d="M871.065,-654.325C875.905,-652.077 881.078,-649.834 886,-648 941.778,-627.217 973.486,-654.658 1015,-612 1049.82,-576.222 1044.5,-512.583 1037.99,-476.971"/> | ||
390 | <polygon fill="black" stroke="black" points="1041.36,-476 1035.97,-466.88 1034.5,-477.373 1041.36,-476"/> | ||
391 | </g> | ||
392 | <!-- gns->vpn --> | ||
393 | <g id="edge31" class="edge"><title>gns->vpn</title> | ||
394 | <path fill="none" stroke="black" d="M827.858,-655.35C811.041,-646.688 789.135,-632.213 779,-612 768.086,-590.233 781.353,-564.325 794.756,-546.091"/> | ||
395 | <polygon fill="black" stroke="black" points="797.832,-547.84 801.242,-537.808 792.321,-543.524 797.832,-547.84"/> | ||
396 | </g> | ||
397 | <!-- gns->dns --> | ||
398 | <g id="edge27" class="edge"><title>gns->dns</title> | ||
399 | <path fill="none" stroke="black" d="M871.13,-654.496C875.967,-652.239 881.122,-649.949 886,-648 933.377,-629.072 964.65,-653.009 995,-612 1008.03,-594.39 1007.25,-568.995 1003.95,-549.835"/> | ||
400 | <polygon fill="black" stroke="black" points="1007.35,-549.022 1001.93,-539.921 1000.49,-550.418 1007.35,-549.022"/> | ||
401 | </g> | ||
402 | <!-- gns->dnsparser --> | ||
403 | <g id="edge32" class="edge"><title>gns->dnsparser</title> | ||
404 | <path fill="none" stroke="black" d="M870.586,-654.227C875.54,-651.931 880.881,-649.692 886,-648 963.461,-622.391 995.505,-653.066 1066,-612 1093.37,-596.054 1115.84,-566.774 1129.29,-546.163"/> | ||
405 | <polygon fill="black" stroke="black" points="1132.29,-547.978 1134.66,-537.654 1126.37,-544.243 1132.29,-547.978"/> | ||
406 | </g> | ||
407 | <!-- revocation --> | ||
408 | <g id="node23" class="node"><title>revocation</title> | ||
409 | <ellipse fill="none" stroke="black" cx="474" cy="-594" rx="48.1917" ry="18"/> | ||
410 | <text text-anchor="middle" x="474" y="-590.3" font-family="Times,serif" font-size="14.00">revocation</text> | ||
411 | </g> | ||
412 | <!-- gns->revocation --> | ||
413 | <g id="edge30" class="edge"><title>gns->revocation</title> | ||
414 | <path fill="none" stroke="black" d="M823.776,-661.482C769.658,-654.024 641.808,-635.374 536,-612 531.019,-610.9 525.841,-609.65 520.694,-608.34"/> | ||
415 | <polygon fill="black" stroke="black" points="521.456,-604.922 510.895,-605.77 519.68,-611.693 521.456,-604.922"/> | ||
416 | </g> | ||
417 | <!-- gns->gnsrecord --> | ||
418 | <g id="edge41" class="edge"><title>gns->gnsrecord</title> | ||
419 | <path fill="none" stroke="black" d="M870.549,-654.113C875.504,-651.822 880.856,-649.613 886,-648 978.027,-619.137 1009.84,-646.249 1100,-612 1156.37,-590.587 1185.79,-592.754 1215,-540 1225.98,-520.174 1217.7,-494.957 1208.15,-476.431"/> | ||
420 | <polygon fill="black" stroke="black" points="1211.2,-474.717 1203.29,-467.672 1205.08,-478.114 1211.2,-474.717"/> | ||
421 | </g> | ||
422 | <!-- revocation->core --> | ||
423 | <g id="edge35" class="edge"><title>revocation->core</title> | ||
424 | <path fill="none" stroke="black" d="M447.586,-578.755C410.639,-556.683 348,-510.49 348,-451 348,-451 348,-451 348,-377 348,-335.398 347.208,-317.038 377,-288 415.046,-250.916 477.859,-239.613 517.794,-236.267"/> | ||
425 | <polygon fill="black" stroke="black" points="518.191,-239.747 527.918,-235.547 517.695,-232.765 518.191,-239.747"/> | ||
426 | </g> | ||
427 | <!-- revocation->set --> | ||
428 | <g id="edge36" class="edge"><title>revocation->set</title> | ||
429 | <path fill="none" stroke="black" d="M484.409,-576.055C489.683,-567.469 496.183,-556.888 501.987,-547.439"/> | ||
430 | <polygon fill="black" stroke="black" points="505.024,-549.182 507.276,-538.829 499.06,-545.518 505.024,-549.182"/> | ||
431 | </g> | ||
432 | <!-- set->cadet --> | ||
433 | <g id="edge75" class="edge"><title>set->cadet</title> | ||
434 | <path fill="none" stroke="black" d="M522.084,-504.055C524.482,-496.059 527.401,-486.331 530.08,-477.4"/> | ||
435 | <polygon fill="black" stroke="black" points="533.442,-478.373 532.963,-467.789 526.737,-476.362 533.442,-478.373"/> | ||
436 | </g> | ||
437 | <!-- conversation --> | ||
438 | <g id="node26" class="node"><title>conversation</title> | ||
439 | <polygon fill="none" stroke="black" points="1017.18,-743.562 948,-756 878.82,-743.562 878.884,-723.438 1017.12,-723.438 1017.18,-743.562"/> | ||
440 | <text text-anchor="middle" x="948" y="-734.3" font-family="Times,serif" font-size="14.00">conversation</text> | ||
441 | </g> | ||
442 | <!-- conversation->cadet --> | ||
443 | <g id="edge53" class="edge"><title>conversation->cadet</title> | ||
444 | <path fill="none" stroke="black" d="M900.537,-723.335C873.864,-714.435 840.677,-701.257 814,-684 756.206,-646.615 759.329,-615.558 703,-576 673.069,-554.981 658.318,-561.866 629,-540 611.601,-527.024 611.36,-519.336 596,-504 585.077,-493.094 572.479,-481.475 561.82,-471.903"/> | ||
445 | <polygon fill="black" stroke="black" points="563.901,-469.069 554.107,-465.028 559.243,-474.295 563.901,-469.069"/> | ||
446 | </g> | ||
447 | <!-- conversation->gns --> | ||
448 | <g id="edge54" class="edge"><title>conversation->gns</title> | ||
449 | <path fill="none" stroke="black" d="M928.638,-723.17C913.533,-712.381 892.408,-697.291 875.857,-685.469"/> | ||
450 | <polygon fill="black" stroke="black" points="877.846,-682.589 867.674,-679.625 873.777,-688.285 877.846,-682.589"/> | ||
451 | </g> | ||
452 | <!-- conversation->gnsrecord --> | ||
453 | <g id="edge40" class="edge"><title>conversation->gnsrecord</title> | ||
454 | <path fill="none" stroke="blue" stroke-dasharray="1,5" d="M1017.21,-728.51C1076.25,-719.968 1155.24,-705.041 1179,-684 1241.33,-628.786 1256.97,-583.117 1231,-504 1227.58,-493.58 1221.24,-483.522 1214.65,-475.019"/> | ||
455 | <polygon fill="blue" stroke="blue" points="1217.15,-472.551 1208.08,-467.08 1211.76,-477.015 1217.15,-472.551"/> | ||
456 | </g> | ||
457 | <!-- speaker --> | ||
458 | <g id="node31" class="node"><title>speaker</title> | ||
459 | <polygon fill="none" stroke="black" points="948,-684 894.877,-666 948,-648 1001.12,-666 948,-684"/> | ||
460 | <text text-anchor="middle" x="948" y="-662.3" font-family="Times,serif" font-size="14.00">speaker</text> | ||
461 | </g> | ||
462 | <!-- conversation->speaker --> | ||
463 | <g id="edge55" class="edge"><title>conversation->speaker</title> | ||
464 | <path fill="none" stroke="black" d="M948,-723.17C948,-714.919 948,-704.153 948,-694.256"/> | ||
465 | <polygon fill="black" stroke="black" points="951.5,-694.019 948,-684.019 944.5,-694.019 951.5,-694.019"/> | ||
466 | </g> | ||
467 | <!-- microphone --> | ||
468 | <g id="node32" class="node"><title>microphone</title> | ||
469 | <polygon fill="none" stroke="black" points="1095,-684 1019.76,-666 1095,-648 1170.24,-666 1095,-684"/> | ||
470 | <text text-anchor="middle" x="1095" y="-662.3" font-family="Times,serif" font-size="14.00">microphone</text> | ||
471 | </g> | ||
472 | <!-- conversation->microphone --> | ||
473 | <g id="edge56" class="edge"><title>conversation->microphone</title> | ||
474 | <path fill="none" stroke="black" d="M976.692,-723.337C1001.14,-711.695 1036.29,-694.958 1061.92,-682.753"/> | ||
475 | <polygon fill="black" stroke="black" points="1063.71,-685.777 1071.23,-678.318 1060.7,-679.457 1063.71,-685.777"/> | ||
476 | </g> | ||
477 | <!-- nse->core --> | ||
478 | <g id="edge48" class="edge"><title>nse->core</title> | ||
479 | <path fill="none" stroke="black" d="M790.412,-294.231C785.459,-291.935 780.118,-289.695 775,-288 697.966,-262.487 673.625,-275.652 596,-252 592.83,-251.034 589.569,-249.913 586.336,-248.716"/> | ||
480 | <polygon fill="black" stroke="black" points="587.428,-245.385 576.841,-244.978 584.864,-251.899 587.428,-245.385"/> | ||
481 | </g> | ||
482 | <!-- peerinfo->hello --> | ||
483 | <g id="edge76" class="edge"><title>peerinfo->hello</title> | ||
484 | <path fill="none" stroke="black" d="M548.194,-77.9517C554.676,-75.8006 561.524,-73.6914 568,-72 654.752,-49.3407 758.747,-32.6176 814.333,-24.4966"/> | ||
485 | <polygon fill="black" stroke="black" points="815.063,-27.9277 824.46,-23.0344 814.062,-20.9995 815.063,-27.9277"/> | ||
486 | </g> | ||
487 | <!-- transport->ats --> | ||
488 | <g id="edge66" class="edge"><title>transport->ats</title> | ||
489 | <path fill="none" stroke="black" d="M644.122,-152.487C587.168,-138.972 476.742,-112.769 420.21,-99.3548"/> | ||
490 | <polygon fill="black" stroke="black" points="420.844,-95.9082 410.306,-97.0048 419.228,-102.719 420.844,-95.9082"/> | ||
491 | </g> | ||
492 | <!-- transport->peerinfo --> | ||
493 | <g id="edge68" class="edge"><title>transport->peerinfo</title> | ||
494 | <path fill="none" stroke="black" d="M651.411,-148.647C624.725,-137.116 584.738,-119.837 555.501,-107.204"/> | ||
495 | <polygon fill="black" stroke="black" points="556.601,-103.867 546.033,-103.113 553.824,-110.292 556.601,-103.867"/> | ||
496 | </g> | ||
497 | <!-- transport->hello --> | ||
498 | <g id="edge67" class="edge"><title>transport->hello</title> | ||
499 | <path fill="none" stroke="black" d="M721.405,-157.922C756.719,-153.037 806.213,-140.439 835,-108 850.042,-91.0495 854.193,-65.1533 854.935,-45.6573"/> | ||
500 | <polygon fill="black" stroke="black" points="858.435,-45.6195 855.044,-35.5822 851.436,-45.5437 858.435,-45.6195"/> | ||
501 | </g> | ||
502 | <!-- nat --> | ||
503 | <g id="node36" class="node"><title>nat</title> | ||
504 | <polygon fill="none" stroke="black" points="796,-108 765.835,-90 796,-72 826.165,-90 796,-108"/> | ||
505 | <text text-anchor="middle" x="796" y="-86.3" font-family="Times,serif" font-size="14.00">nat</text> | ||
506 | </g> | ||
507 | <!-- transport->nat --> | ||
508 | <g id="edge69" class="edge"><title>transport->nat</title> | ||
509 | <path fill="none" stroke="black" d="M703.474,-146.834C723.706,-134.626 752.749,-117.1 772.878,-104.953"/> | ||
510 | <polygon fill="black" stroke="black" points="774.946,-107.793 781.7,-99.6294 771.33,-101.799 774.946,-107.793"/> | ||
511 | </g> | ||
512 | <!-- fragmentation --> | ||
513 | <g id="node37" class="node"><title>fragmentation</title> | ||
514 | <polygon fill="none" stroke="black" points="662,-108 576.537,-90 662,-72 747.463,-90 662,-108"/> | ||
515 | <text text-anchor="middle" x="662" y="-86.3" font-family="Times,serif" font-size="14.00">fragmentation</text> | ||
516 | </g> | ||
517 | <!-- transport->fragmentation --> | ||
518 | <g id="edge70" class="edge"><title>transport->fragmentation</title> | ||
519 | <path fill="none" stroke="black" d="M675.643,-144.055C673.556,-135.941 671.011,-126.044 668.687,-117.006"/> | ||
520 | <polygon fill="black" stroke="black" points="672.073,-116.12 666.193,-107.307 665.294,-117.864 672.073,-116.12"/> | ||
521 | </g> | ||
522 | <!-- topology --> | ||
523 | <g id="node34" class="node"><title>topology</title> | ||
524 | <polygon fill="none" stroke="black" points="959.5,-324 894.5,-324 894.5,-288 959.5,-288 959.5,-324"/> | ||
525 | <text text-anchor="middle" x="927" y="-302.3" font-family="Times,serif" font-size="14.00">topology</text> | ||
526 | </g> | ||
527 | <!-- topology->core --> | ||
528 | <g id="edge61" class="edge"><title>topology->core</title> | ||
529 | <path fill="none" stroke="black" d="M894.413,-292.17C889.63,-290.593 884.724,-289.139 880,-288 756.312,-258.18 718.97,-284.656 596,-252 592.621,-251.103 589.151,-249.989 585.73,-248.765"/> | ||
530 | <polygon fill="black" stroke="black" points="586.918,-245.471 576.329,-245.106 584.379,-251.995 586.918,-245.471"/> | ||
531 | </g> | ||
532 | <!-- topology->peerinfo --> | ||
533 | <g id="edge59" class="edge"><title>topology->peerinfo</title> | ||
534 | <path fill="none" stroke="black" d="M894.233,-295.354C862.315,-285.612 812.655,-269.532 771,-252 705.781,-224.55 688.475,-218.336 629,-180 597.704,-159.827 564.778,-132.553 542.992,-113.534"/> | ||
535 | <polygon fill="black" stroke="black" points="545.032,-110.666 535.215,-106.682 540.404,-115.919 545.032,-110.666"/> | ||
536 | </g> | ||
537 | <!-- topology->hello --> | ||
538 | <g id="edge62" class="edge"><title>topology->hello</title> | ||
539 | <path fill="none" stroke="black" d="M922.652,-287.966C910.314,-239.626 875.032,-101.398 860.438,-44.2243"/> | ||
540 | <polygon fill="black" stroke="black" points="863.829,-43.3557 857.964,-34.532 857.046,-45.087 863.829,-43.3557"/> | ||
541 | </g> | ||
542 | <!-- topology->transport --> | ||
543 | <g id="edge60" class="edge"><title>topology->transport</title> | ||
544 | <path fill="none" stroke="black" d="M897.206,-287.871C850.798,-261.191 761.564,-209.891 713.17,-182.069"/> | ||
545 | <polygon fill="black" stroke="black" points="714.758,-178.945 704.344,-176.995 711.269,-185.014 714.758,-178.945"/> | ||
546 | </g> | ||
547 | <!-- hostlist --> | ||
548 | <g id="node35" class="node"><title>hostlist</title> | ||
549 | <polygon fill="none" stroke="black" points="214,-324 158,-324 158,-288 214,-288 214,-324"/> | ||
550 | <text text-anchor="middle" x="186" y="-302.3" font-family="Times,serif" font-size="14.00">hostlist</text> | ||
551 | </g> | ||
552 | <!-- hostlist->core --> | ||
553 | <g id="edge63" class="edge"><title>hostlist->core</title> | ||
554 | <path fill="none" stroke="black" d="M214.167,-292.599C218.733,-290.88 223.455,-289.271 228,-288 330.933,-259.219 456.746,-244.294 517.975,-238.275"/> | ||
555 | <polygon fill="black" stroke="black" points="518.666,-241.725 528.286,-237.286 517.998,-234.757 518.666,-241.725"/> | ||
556 | </g> | ||
557 | <!-- hostlist->peerinfo --> | ||
558 | <g id="edge64" class="edge"><title>hostlist->peerinfo</title> | ||
559 | <path fill="none" stroke="black" d="M212.608,-287.849C273.449,-248.632 422.455,-152.586 487.166,-110.875"/> | ||
560 | <polygon fill="black" stroke="black" points="489.21,-113.721 495.719,-105.362 485.418,-107.838 489.21,-113.721"/> | ||
561 | </g> | ||
562 | <!-- hostlist->hello --> | ||
563 | <g id="edge65" class="edge"><title>hostlist->hello</title> | ||
564 | <path fill="none" stroke="black" d="M192.198,-287.715C209.228,-243.039 261.382,-123.627 349,-72 425.521,-26.9118 694.449,-19.9666 805.486,-19.053"/> | ||
565 | <polygon fill="black" stroke="black" points="805.751,-22.5513 815.727,-18.9823 805.703,-15.5515 805.751,-22.5513"/> | ||
566 | </g> | ||
567 | <!-- scalarproduct --> | ||
568 | <g id="node38" class="node"><title>scalarproduct</title> | ||
569 | <ellipse fill="none" stroke="black" cx="636" cy="-594" rx="57.6901" ry="18"/> | ||
570 | <text text-anchor="middle" x="636" y="-590.3" font-family="Times,serif" font-size="14.00">scalarproduct</text> | ||
571 | </g> | ||
572 | <!-- scalarproduct->cadet --> | ||
573 | <g id="edge74" class="edge"><title>scalarproduct->cadet</title> | ||
574 | <path fill="none" stroke="black" d="M622.726,-576.035C614.79,-565.742 604.61,-552.266 596,-540 581.021,-518.662 564.9,-493.752 553.465,-475.721"/> | ||
575 | <polygon fill="black" stroke="black" points="556.241,-473.562 547.943,-466.975 550.322,-477.299 556.241,-473.562"/> | ||
576 | </g> | ||
577 | <!-- scalarproduct->set --> | ||
578 | <g id="edge73" class="edge"><title>scalarproduct->set</title> | ||
579 | <path fill="none" stroke="black" d="M610.179,-577.811C591.059,-566.564 565.021,-551.248 545.33,-539.665"/> | ||
580 | <polygon fill="black" stroke="black" points="546.899,-536.527 536.505,-534.473 543.349,-542.56 546.899,-536.527"/> | ||
581 | </g> | ||
582 | <!-- secushare --> | ||
583 | <g id="node39" class="node"><title>secushare</title> | ||
584 | <polygon fill="none" stroke="black" points="633.366,-815.562 578,-828 522.634,-815.562 522.686,-795.438 633.314,-795.438 633.366,-815.562"/> | ||
585 | <text text-anchor="middle" x="578" y="-806.3" font-family="Times,serif" font-size="14.00">secushare</text> | ||
586 | </g> | ||
587 | <!-- social --> | ||
588 | <g id="node42" class="node"><title>social</title> | ||
589 | <ellipse fill="none" stroke="black" cx="578" cy="-738" rx="31.3957" ry="18"/> | ||
590 | <text text-anchor="middle" x="578" y="-734.3" font-family="Times,serif" font-size="14.00">social</text> | ||
591 | </g> | ||
592 | <!-- secushare->social --> | ||
593 | <g id="edge80" class="edge"><title>secushare->social</title> | ||
594 | <path fill="none" stroke="black" d="M578,-795.17C578,-786.919 578,-776.153 578,-766.256"/> | ||
595 | <polygon fill="black" stroke="black" points="581.5,-766.019 578,-756.019 574.5,-766.019 581.5,-766.019"/> | ||
596 | </g> | ||
597 | <!-- multicast --> | ||
598 | <g id="node40" class="node"><title>multicast</title> | ||
599 | <ellipse fill="none" stroke="black" cx="326" cy="-594" rx="43.5923" ry="18"/> | ||
600 | <text text-anchor="middle" x="326" y="-590.3" font-family="Times,serif" font-size="14.00">multicast</text> | ||
601 | </g> | ||
602 | <!-- multicast->cadet --> | ||
603 | <g id="edge82" class="edge"><title>multicast->cadet</title> | ||
604 | <path fill="none" stroke="black" d="M347.889,-578.338C386.803,-552.273 467.927,-497.935 510.526,-469.402"/> | ||
605 | <polygon fill="black" stroke="black" points="512.642,-472.198 519.003,-463.725 508.747,-466.382 512.642,-472.198"/> | ||
606 | </g> | ||
607 | <!-- psyc --> | ||
608 | <g id="node41" class="node"><title>psyc</title> | ||
609 | <ellipse fill="none" stroke="black" cx="326" cy="-666" rx="27" ry="18"/> | ||
610 | <text text-anchor="middle" x="326" y="-662.3" font-family="Times,serif" font-size="14.00">psyc</text> | ||
611 | </g> | ||
612 | <!-- psyc->multicast --> | ||
613 | <g id="edge81" class="edge"><title>psyc->multicast</title> | ||
614 | <path fill="none" stroke="black" d="M326,-647.697C326,-639.983 326,-630.712 326,-622.112"/> | ||
615 | <polygon fill="black" stroke="black" points="329.5,-622.104 326,-612.104 322.5,-622.104 329.5,-622.104"/> | ||
616 | </g> | ||
617 | <!-- psycstore --> | ||
618 | <g id="node43" class="node"><title>psycstore</title> | ||
619 | <ellipse fill="none" stroke="black" cx="220" cy="-594" rx="44.393" ry="18"/> | ||
620 | <text text-anchor="middle" x="220" y="-590.3" font-family="Times,serif" font-size="14.00">psycstore</text> | ||
621 | </g> | ||
622 | <!-- psyc->psycstore --> | ||
623 | <g id="edge79" class="edge"><title>psyc->psycstore</title> | ||
624 | <path fill="none" stroke="black" d="M307.536,-652.807C291.938,-642.506 269.271,-627.537 250.911,-615.413"/> | ||
625 | <polygon fill="black" stroke="black" points="252.567,-612.312 242.294,-609.722 248.71,-618.154 252.567,-612.312"/> | ||
626 | </g> | ||
627 | <!-- social->gns --> | ||
628 | <g id="edge78" class="edge"><title>social->gns</title> | ||
629 | <path fill="none" stroke="black" d="M605.831,-729.838C655.82,-716.973 760.68,-689.987 815.282,-675.935"/> | ||
630 | <polygon fill="black" stroke="black" points="816.373,-679.268 825.185,-673.386 814.628,-672.489 816.373,-679.268"/> | ||
631 | </g> | ||
632 | <!-- social->psyc --> | ||
633 | <g id="edge77" class="edge"><title>social->psyc</title> | ||
634 | <path fill="none" stroke="black" d="M550.552,-729.376C504.247,-716.513 410.731,-690.537 360.222,-676.506"/> | ||
635 | <polygon fill="black" stroke="black" points="360.996,-673.089 350.424,-673.784 359.122,-679.833 360.996,-673.089"/> | ||
636 | </g> | ||
637 | <!-- rps --> | ||
638 | <g id="node44" class="node"><title>rps</title> | ||
639 | <ellipse fill="none" stroke="black" cx="593" cy="-306" rx="27" ry="18"/> | ||
640 | <text text-anchor="middle" x="593" y="-302.3" font-family="Times,serif" font-size="14.00">rps</text> | ||
641 | </g> | ||
642 | <!-- rps->core --> | ||
643 | <g id="edge83" class="edge"><title>rps->core</title> | ||
644 | <path fill="none" stroke="black" d="M584.187,-288.765C579.582,-280.283 573.845,-269.714 568.679,-260.197"/> | ||
645 | <polygon fill="black" stroke="black" points="571.613,-258.266 563.766,-251.147 565.461,-261.606 571.613,-258.266"/> | ||
646 | </g> | ||
647 | </g> | ||
648 | </svg> | ||
diff --git a/contrib/gnunet_janitor.py.in b/contrib/gnunet_janitor.py.in deleted file mode 100644 index 74fc70886..000000000 --- a/contrib/gnunet_janitor.py.in +++ /dev/null | |||
@@ -1,78 +0,0 @@ | |||
1 | #!@PYTHON@ | ||
2 | # This file is part of GNUnet. | ||
3 | # (C) 2011 Christian Grothoff (and other contributing authors) | ||
4 | # | ||
5 | # GNUnet is free software; you can redistribute it and/or modify | ||
6 | # it under the terms of the GNU General Public License as published | ||
7 | # by the Free Software Foundation; either version 2, or (at your | ||
8 | # option) any later version. | ||
9 | # | ||
10 | # GNUnet is distributed in the hope that it will be useful, but | ||
11 | # WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | # General Public License for more details. | ||
14 | # | ||
15 | # You should have received a copy of the GNU General Public License | ||
16 | # along with GNUnet; see the file COPYING. If not, write to the | ||
17 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
18 | # Boston, MA 02110-1301, USA. | ||
19 | # | ||
20 | # Finds any gnunet processes still running in the system and kills them | ||
21 | # | ||
22 | # gnunet janitor can be used by invoking `make' like this: | ||
23 | # TESTS_ENVIRONMENT='${top_srcdir}/contrib/gnunet_janitor.py &&' make check | ||
24 | |||
25 | from __future__ import print_function | ||
26 | import os | ||
27 | import re | ||
28 | import subprocess | ||
29 | import sys | ||
30 | import shutil | ||
31 | import time | ||
32 | import signal | ||
33 | import terminate | ||
34 | |||
35 | if os.name == 'nt': | ||
36 | from win32com.client import GetObject | ||
37 | WMI = GetObject('winmgmts:') | ||
38 | |||
39 | def get_process_list (): | ||
40 | result = [] | ||
41 | if os.name == 'nt': | ||
42 | processes = WMI.InstancesOf('Win32_Process') | ||
43 | for p in processes: | ||
44 | result.append ((p.Properties_('ProcessId').Value, re.sub (r'(.+)\.exe', r'\1', p.Properties_('Name').Value))) | ||
45 | else: | ||
46 | pids = [pid for pid in os.listdir('/proc') if pid.isdigit ()] | ||
47 | for pid in pids: | ||
48 | with open (os.path.join ('/proc', pid, 'cmdline'), 'rb') as p: | ||
49 | cmdline = p.read ().split ('\x00') | ||
50 | if len (cmdline) > 0: | ||
51 | result.append ((pid, cmdline[0])) | ||
52 | return result | ||
53 | |||
54 | def main (): | ||
55 | procs = get_process_list () | ||
56 | gnunet_procs = [] | ||
57 | for p in procs: | ||
58 | if re.match (r'gnunet-.+', p[1]): | ||
59 | gnunet_procs.append (p) | ||
60 | for p in gnunet_procs: | ||
61 | if re.match (r'gnunet-service-arm', p[1]): | ||
62 | print ("killing arm process {0:5} {1}".format (p[0], p[1])) | ||
63 | try: | ||
64 | terminate.safe_terminate_process_by_pid (int (p[0]), 1) | ||
65 | except OSError as e: | ||
66 | print ("failed: {0}".format (e)) | ||
67 | pass | ||
68 | for p in gnunet_procs: | ||
69 | if not re.match (r'gnunet-service-arm', p[1]): | ||
70 | print ("killing non-arm process {0:5} {1}".format (p[0], p[1])) | ||
71 | try: | ||
72 | terminate.safe_terminate_process_by_pid (int (p[0]), 1) | ||
73 | except OSError as e: | ||
74 | print ("failed: {0}".format (e)) | ||
75 | pass | ||
76 | |||
77 | if __name__ == '__main__': | ||
78 | sys.exit (main ()) | ||
diff --git a/contrib/gnunet_pyexpect.py.in b/contrib/gnunet_pyexpect.py.in deleted file mode 100644 index cfeb06d8d..000000000 --- a/contrib/gnunet_pyexpect.py.in +++ /dev/null | |||
@@ -1,83 +0,0 @@ | |||
1 | #!@PYTHON@ | ||
2 | # This file is part of GNUnet. | ||
3 | # (C) 2010 Christian Grothoff (and other contributing authors) | ||
4 | # | ||
5 | # GNUnet is free software; you can redistribute it and/or modify | ||
6 | # it under the terms of the GNU General Public License as published | ||
7 | # by the Free Software Foundation; either version 2, or (at your | ||
8 | # option) any later version. | ||
9 | # | ||
10 | # GNUnet is distributed in the hope that it will be useful, but | ||
11 | # WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | # General Public License for more details. | ||
14 | # | ||
15 | # You should have received a copy of the GNU General Public License | ||
16 | # along with GNUnet; see the file COPYING. If not, write to the | ||
17 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
18 | # Boston, MA 02110-1301, USA. | ||
19 | # | ||
20 | # Testcase for gnunet-peerinfo | ||
21 | from __future__ import print_function | ||
22 | import os | ||
23 | import re | ||
24 | import subprocess | ||
25 | import sys | ||
26 | import shutil | ||
27 | import time | ||
28 | |||
29 | class pexpect (object): | ||
30 | def __init__ (self): | ||
31 | super (pexpect, self).__init__ () | ||
32 | |||
33 | def spawn (self, stdin, arglist, *pargs, **kwargs): | ||
34 | env = kwargs.pop ('env', None) | ||
35 | if env is None: | ||
36 | env = os.environ.copy () | ||
37 | # This messes up some testcases, disable log redirection | ||
38 | env.pop ('GNUNET_FORCE_LOGFILE', None) | ||
39 | self.proc = subprocess.Popen (arglist, *pargs, env=env, **kwargs) | ||
40 | if self.proc is None: | ||
41 | print ("Failed to spawn a process {0}".format (arglist)) | ||
42 | sys.exit (1) | ||
43 | if stdin is not None: | ||
44 | self.stdo, self.stde = self.proc.communicate (stdin) | ||
45 | else: | ||
46 | self.stdo, self.stde = self.proc.communicate () | ||
47 | return self.proc | ||
48 | |||
49 | def expect (self, s, r, flags=0): | ||
50 | stream = self.stdo if s == 'stdout' else self.stde | ||
51 | if isinstance (r, str): | ||
52 | if r == "EOF": | ||
53 | if len (stream) == 0: | ||
54 | return True | ||
55 | else: | ||
56 | print ("Failed to find `{1}' in {0}, which is `{2}' ({3})".format (s, r, stream, len (stream))) | ||
57 | sys.exit (2) | ||
58 | raise ValueError ("Argument `r' should be an instance of re.RegexObject or a special string, but is `{0}'".format (r)) | ||
59 | m = r.search (stream.decode(), flags) | ||
60 | if not m: | ||
61 | print ("Failed to find `{1}' in {0}, which is is `{2}'".format (s, r.pattern, stream)) | ||
62 | sys.exit (2) | ||
63 | stream = stream[m.end ():] | ||
64 | if s == 'stdout': | ||
65 | self.stdo = stream | ||
66 | else: | ||
67 | self.stde = stream | ||
68 | return m | ||
69 | |||
70 | def read (self, s, size=-1): | ||
71 | stream = self.stdo if s == 'stdout' else self.stde | ||
72 | result = "" | ||
73 | if size < 0: | ||
74 | result = stream | ||
75 | new_stream = "" | ||
76 | else: | ||
77 | result = stream[0:size] | ||
78 | new_stream = stream[size:] | ||
79 | if s == 'stdout': | ||
80 | self.stdo = new_stream | ||
81 | else: | ||
82 | self.stde = new_stream | ||
83 | return result | ||
diff --git a/contrib/no_autostart_above_core.conf b/contrib/no_autostart_above_core.conf deleted file mode 100644 index 81c01898f..000000000 --- a/contrib/no_autostart_above_core.conf +++ /dev/null | |||
@@ -1,87 +0,0 @@ | |||
1 | # Configuration to disable autostarting of | ||
2 | # all services above the 'core' level. | ||
3 | # (including resolver) | ||
4 | |||
5 | [dns] | ||
6 | AUTOSTART = NO | ||
7 | |||
8 | [dht] | ||
9 | AUTOSTART = NO | ||
10 | |||
11 | [nse] | ||
12 | AUTOSTART = NO | ||
13 | |||
14 | [cadet] | ||
15 | AUTOSTART = NO | ||
16 | |||
17 | [datastore] | ||
18 | AUTOSTART = NO | ||
19 | |||
20 | [fs] | ||
21 | AUTOSTART = NO | ||
22 | |||
23 | [dv] | ||
24 | AUTOSTART = NO | ||
25 | |||
26 | [vpn] | ||
27 | AUTOSTART = NO | ||
28 | |||
29 | [consensus] | ||
30 | AUTOSTART = NO | ||
31 | |||
32 | [resolver] | ||
33 | AUTOSTART = NO | ||
34 | |||
35 | [namestore] | ||
36 | AUTOSTART = NO | ||
37 | |||
38 | [namecache] | ||
39 | AUTOSTART = NO | ||
40 | |||
41 | [identity] | ||
42 | AUTOSTART = NO | ||
43 | |||
44 | [revocation] | ||
45 | AUTOSTART = NO | ||
46 | |||
47 | [conversation] | ||
48 | AUTOSTART = NO | ||
49 | |||
50 | [peerstore] | ||
51 | AUTOSTART = NO | ||
52 | |||
53 | [psycstore] | ||
54 | AUTOSTART = NO | ||
55 | |||
56 | [gns] | ||
57 | AUTOSTART = NO | ||
58 | |||
59 | [regex] | ||
60 | AUTOSTART = NO | ||
61 | |||
62 | [set] | ||
63 | AUTOSTART = NO | ||
64 | |||
65 | [scalarproduct-bob] | ||
66 | AUTOSTART = NO | ||
67 | |||
68 | [scalarproduct-alice] | ||
69 | AUTOSTART = NO | ||
70 | |||
71 | [social] | ||
72 | AUTOSTART = NO | ||
73 | |||
74 | [psyc] | ||
75 | AUTOSTART = NO | ||
76 | |||
77 | [rps] | ||
78 | AUTOSTART = NO | ||
79 | |||
80 | [multicast] | ||
81 | AUTOSTART = NO | ||
82 | |||
83 | [sensordashboard] | ||
84 | AUTOSTART = NO | ||
85 | |||
86 | [sensor] | ||
87 | AUTOSTART = NO | ||
diff --git a/contrib/no_forcestart.conf b/contrib/no_forcestart.conf deleted file mode 100644 index e21187ed2..000000000 --- a/contrib/no_forcestart.conf +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | # Configuration file that can be included to prevent ANY of the usual | ||
2 | # FORCESTART = YES to be set. Also disables NSE POW calculation. | ||
3 | # | ||
4 | # This configuration is included from various configuration test files. | ||
5 | # Whenever a new service is added that has FORCESTART = YES for | ||
6 | # production should be disabled for (most) test suites, the option should | ||
7 | # be added here instead of all over the place ;-). | ||
8 | |||
9 | [core] | ||
10 | FORCESTART = NO | ||
11 | |||
12 | [fs] | ||
13 | FORCESTART = NO | ||
14 | |||
15 | [dht] | ||
16 | FORCESTART = NO | ||
17 | |||
18 | [cadet] | ||
19 | FORCESTART = NO | ||
20 | |||
21 | [nse] | ||
22 | FORCESTART = NO | ||
23 | WORKBITS = 0 | ||
24 | |||
25 | [revocation] | ||
26 | FORCESTART = NO | ||
27 | |||
28 | [topology] | ||
29 | FORCESTART = NO | ||
30 | |||
31 | [hostlist] | ||
32 | FORCESTART = NO | ||
33 | |||
34 | [gns] | ||
35 | FORCESTART = NO | ||
36 | |||
37 | [zonemaster] | ||
38 | FORCESTART = NO \ No newline at end of file | ||
diff --git a/contrib/experiments/nse/infiniband.conf b/contrib/nse/experiments/infiniband.conf index e42baba95..907c1a35e 100644 --- a/contrib/experiments/nse/infiniband.conf +++ b/contrib/nse/experiments/infiniband.conf | |||
@@ -1,8 +1,8 @@ | |||
1 | [PATHS] | 1 | [PATHS] |
2 | SERVICEHOME = /tmp/nse-profiler/ | 2 | SERVICEHOME = $GNUNET_TMP/nse-profiler/ |
3 | 3 | ||
4 | [testbed] | 4 | [testbed] |
5 | AUTOSTART = NO | 5 | START_ON_DEMAND = NO |
6 | PORT = 12113 | 6 | PORT = 12113 |
7 | ACCEPT_FROM = 127.0.0.1;192.168.0.0/16; | 7 | ACCEPT_FROM = 127.0.0.1;192.168.0.0/16; |
8 | HOSTNAME = localhost | 8 | HOSTNAME = localhost |
@@ -13,11 +13,11 @@ OPERATION_TIMEOUT = 45 s | |||
13 | 13 | ||
14 | [nse] | 14 | [nse] |
15 | PORT = 12114 | 15 | PORT = 12114 |
16 | UNIXPATH = /tmp/test-nse-service-nse.unix | 16 | UNIXPATH = $GNUNET_TMP/test-nse-service-nse.unix |
17 | BINARY = gnunet-service-nse | 17 | BINARY = gnunet-service-nse |
18 | #BINARY = /home/mrwiggles/documents/research/gnunet/gnunet-ng/src/nse/.libs/gnunet-service-nse | 18 | #BINARY = /home/mrwiggles/documents/research/gnunet/gnunet-ng/src/nse/.libs/gnunet-service-nse |
19 | #PREFIX = valgrind --leak-check=full --log-file=valgrind_nse.%p | 19 | #PREFIX = valgrind --leak-check=full --log-file=valgrind_nse.%p |
20 | AUTOSTART = NO | 20 | START_ON_DEMAND = NO |
21 | # Overriding network settings for faster testing (do NOT use | 21 | # Overriding network settings for faster testing (do NOT use |
22 | # these values in production just because they are here) | 22 | # these values in production just because they are here) |
23 | WORKDELAY = 60 s | 23 | WORKDELAY = 60 s |
@@ -26,20 +26,20 @@ WORKBITS = 0 | |||
26 | PROOFFILE = $SERVICEHOME/nse.proof | 26 | PROOFFILE = $SERVICEHOME/nse.proof |
27 | 27 | ||
28 | [arm] | 28 | [arm] |
29 | UNIXPATH = /tmp/test-nse-service-arm.unix | 29 | UNIXPATH = $GNUNET_TMP/test-nse-service-arm.unix |
30 | 30 | ||
31 | [statistics] | 31 | [statistics] |
32 | AUTOSTART = YES | 32 | START_ON_DEMAND = YES |
33 | PORT = 12115 | 33 | PORT = 12115 |
34 | 34 | ||
35 | [fs] | 35 | [fs] |
36 | AUTOSTART = NO | 36 | START_ON_DEMAND = NO |
37 | 37 | ||
38 | [datastore] | 38 | [datastore] |
39 | AUTOSTART = NO | 39 | START_ON_DEMAND = NO |
40 | 40 | ||
41 | [dht] | 41 | [dht] |
42 | AUTOSTART = NO | 42 | START_ON_DEMAND = NO |
43 | 43 | ||
44 | [nat] | 44 | [nat] |
45 | DISABLEV6 = YES | 45 | DISABLEV6 = YES |
@@ -57,34 +57,34 @@ plugins = udp | |||
57 | PORT = 12116 | 57 | PORT = 12116 |
58 | 58 | ||
59 | [core] | 59 | [core] |
60 | AUTOSTART = YES | 60 | START_ON_DEMAND = YES |
61 | 61 | ||
62 | [peerinfo] | 62 | [peerinfo] |
63 | AUTOSTART = YES | 63 | START_ON_DEMAND = YES |
64 | 64 | ||
65 | [dns] | 65 | [dns] |
66 | AUTOSTART = NO | 66 | START_ON_DEMAND = NO |
67 | 67 | ||
68 | [topology] | 68 | [topology] |
69 | AUTOSTART = NO | 69 | START_ON_DEMAND = NO |
70 | 70 | ||
71 | [dv] | 71 | [dv] |
72 | AUTOSTART = NO | 72 | START_ON_DEMAND = NO |
73 | 73 | ||
74 | [resolver] | 74 | [resolver] |
75 | AUTOSTART = YES | 75 | START_ON_DEMAND = YES |
76 | 76 | ||
77 | [cadet] | 77 | [cadet] |
78 | AUTOSTART = NO | 78 | START_ON_DEMAND = NO |
79 | 79 | ||
80 | [chat] | 80 | [chat] |
81 | AUTOSTART = NO | 81 | START_ON_DEMAND = NO |
82 | 82 | ||
83 | [gns] | 83 | [gns] |
84 | AUTOSTART = NO | 84 | START_ON_DEMAND = NO |
85 | 85 | ||
86 | [vpn] | 86 | [vpn] |
87 | AUTOSTART = NO | 87 | START_ON_DEMAND = NO |
88 | 88 | ||
89 | [nse-profiler] | 89 | [nse-profiler] |
90 | OUTPUT_FILE = nse_output_2000_peers.dat | 90 | OUTPUT_FILE = nse_output_2000_peers.dat |
diff --git a/contrib/packages/guix/guix-env-gillmann.scm b/contrib/packages/guix/guix-env-gillmann.scm new file mode 100644 index 000000000..4b977c1bb --- /dev/null +++ b/contrib/packages/guix/guix-env-gillmann.scm | |||
@@ -0,0 +1,151 @@ | |||
1 | ;;; This file is part of GNUnet. | ||
2 | ;;; Copyright (C) 2016, 2017, 2018 GNUnet e.V. | ||
3 | ;;; | ||
4 | ;;; GNUnet is free software; you can redistribute it and/or modify | ||
5 | ;;; it under the terms of the GNU General Public License as published | ||
6 | ;;; by the Free Software Foundation; either version 3, or (at your | ||
7 | ;;; option) any later version. | ||
8 | ;;; | ||
9 | ;;; GNUnet is distributed in the hope that it will be useful, but | ||
10 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
12 | ;;; General Public License for more details. | ||
13 | ;;; | ||
14 | ;;; You should have received a copy of the GNU General Public License | ||
15 | ;;; along with GNUnet; see the file COPYING. If not, write to the | ||
16 | ;;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
17 | ;;; Boston, MA 02110-1301, USA. | ||
18 | |||
19 | (use-modules | ||
20 | (ice-9 popen) | ||
21 | (ice-9 match) | ||
22 | (ice-9 rdelim) | ||
23 | (guix packages) | ||
24 | (guix build-system gnu) | ||
25 | (guix gexp) | ||
26 | ((guix build utils) #:select (with-directory-excursion)) | ||
27 | (guix git-download) | ||
28 | (guix utils) ; current-source-directory | ||
29 | (gnu packages) | ||
30 | (gnu packages aidc) | ||
31 | (gnu packages autotools) | ||
32 | (gnu packages backup) | ||
33 | (gnu packages base) | ||
34 | (gnu packages compression) | ||
35 | (gnu packages curl) | ||
36 | (gnu packages databases) | ||
37 | (gnu packages file) | ||
38 | (gnu packages gettext) | ||
39 | (gnu packages glib) | ||
40 | (gnu packages gnome) | ||
41 | (gnu packages gnunet) | ||
42 | (gnu packages gnupg) | ||
43 | (gnu packages gnuzilla) | ||
44 | (gnu packages groff) | ||
45 | (gnu packages gstreamer) | ||
46 | (gnu packages gtk) | ||
47 | (gnu packages guile) | ||
48 | (gnu packages image) | ||
49 | (gnu packages image-viewers) | ||
50 | (gnu packages libidn) | ||
51 | (gnu packages libunistring) | ||
52 | (gnu packages linux) | ||
53 | (gnu packages maths) | ||
54 | (gnu packages multiprecision) | ||
55 | (gnu packages perl) | ||
56 | (gnu packages pkg-config) | ||
57 | (gnu packages pulseaudio) | ||
58 | (gnu packages python) | ||
59 | (gnu packages tex) | ||
60 | (gnu packages texinfo) | ||
61 | (gnu packages tex) | ||
62 | (gnu packages tls) | ||
63 | (gnu packages upnp) | ||
64 | (gnu packages video) | ||
65 | (gnu packages web) | ||
66 | (gnu packages xiph) | ||
67 | ((guix licenses) #:prefix license:)) | ||
68 | |||
69 | (define %source-dir (current-source-directory)) | ||
70 | |||
71 | (define gnunet-dev-env | ||
72 | (let* ((revision "1") | ||
73 | (select? (delay (or (git-predicate | ||
74 | (current-source-directory)) | ||
75 | source-file?)))) | ||
76 | (package | ||
77 | (inherit gnunet) | ||
78 | (name "gnunet") | ||
79 | (version (string-append "git" revision)) | ||
80 | (source | ||
81 | (local-file | ||
82 | (string-append (getcwd)) | ||
83 | #:recursive? #t)) | ||
84 | (inputs | ||
85 | `(("glpk" ,glpk) | ||
86 | ("gnurl" ,gnurl) | ||
87 | ("gstreamer" ,gstreamer) | ||
88 | ("gst-plugins-base" ,gst-plugins-base) | ||
89 | ("gnutls/dane" ,gnutls/dane) | ||
90 | ("iptables" ,iptables) | ||
91 | ("libextractor" ,libextractor) | ||
92 | ("libgcrypt" ,libgcrypt) | ||
93 | ("libidn" ,libidn) | ||
94 | ("libmicrohttpd" ,libmicrohttpd) | ||
95 | ("libltdl" ,libltdl) | ||
96 | ("libunistring" ,libunistring) | ||
97 | ("openssl" ,openssl) | ||
98 | ("opus" ,opus) | ||
99 | ("pulseaudio" ,pulseaudio) | ||
100 | ("sqlite" ,sqlite) | ||
101 | ("postgresql" ,postgresql) | ||
102 | ("mariadb" ,mariadb) | ||
103 | ("zlib" ,zlib) | ||
104 | ("perl" ,perl) | ||
105 | ("python-2" ,python-2) ; tests and gnunet-qr | ||
106 | ("jansson" ,jansson) | ||
107 | ("nss" ,nss) | ||
108 | ("glib" ,glib "bin") | ||
109 | ("gmp" ,gmp) | ||
110 | ("bluez" ,bluez) ; for optional bluetooth feature | ||
111 | ("glib" ,glib) | ||
112 | ;; ("texlive" ,texlive) ;FIXME: minimize. | ||
113 | ("texlive-tiny" ,texlive-tiny) ;; Seems to be enough for _just_ info output. | ||
114 | ("miniupnpc" ,miniupnpc) | ||
115 | ("libogg" ,libogg))) | ||
116 | (native-inputs | ||
117 | `(("pkg-config" ,pkg-config) | ||
118 | ("autoconf" ,autoconf) | ||
119 | ("automake" ,automake) | ||
120 | ("gnu-gettext" ,gnu-gettext) | ||
121 | ("which" ,which) | ||
122 | ("texinfo" ,texinfo-5) ; Debian stable: 5.2 | ||
123 | ("libtool" ,libtool))) | ||
124 | (outputs '("out" "debug")) | ||
125 | (arguments | ||
126 | `(;#:configure-flags | ||
127 | ;;(list (string-append "--with-nssdir=" %output "/lib") | ||
128 | ;;"--enable-gcc-hardening" | ||
129 | ;;"--enable-linker-hardening" | ||
130 | ;;;;"--enable-documentation-only") | ||
131 | ;;;"--enable-logging=verbose" | ||
132 | ;;;"CFLAGS=-ggdb -O0") | ||
133 | #:phases | ||
134 | ;; swap check and install phases and set paths to installed bin | ||
135 | (modify-phases %standard-phases | ||
136 | (add-after 'unpack 'patch-bin-sh | ||
137 | (lambda _ | ||
138 | (for-each (lambda (f) (chmod f #o755)) | ||
139 | (find-files "po" "")) | ||
140 | #t)) | ||
141 | (add-after 'patch-bin-sh 'bootstrap | ||
142 | (lambda _ | ||
143 | (zero? (system* "sh" "bootstrap")))) | ||
144 | ;;(add-before 'build 'chdir | ||
145 | ;; (lambda _ | ||
146 | ;; (chdir "doc/documentation"))) | ||
147 | (delete 'check) | ||
148 | ;; XXX: https://gnunet.org/bugs/view.php?id=4619 | ||
149 | )))))) | ||
150 | |||
151 | gnunet-dev-env | ||
diff --git a/contrib/packages/guix/guix-env-py2.scm b/contrib/packages/guix/guix-env-py2.scm new file mode 100644 index 000000000..6085f96a9 --- /dev/null +++ b/contrib/packages/guix/guix-env-py2.scm | |||
@@ -0,0 +1,158 @@ | |||
1 | ;;; This file is part of GNUnet. | ||
2 | ;;; Copyright (C) 2016, 2017, 2018 GNUnet e.V. | ||
3 | ;;; | ||
4 | ;;; GNUnet is free software; you can redistribute it and/or modify | ||
5 | ;;; it under the terms of the GNU General Public License as published | ||
6 | ;;; by the Free Software Foundation; either version 3, or (at your | ||
7 | ;;; option) any later version. | ||
8 | ;;; | ||
9 | ;;; GNUnet is distributed in the hope that it will be useful, but | ||
10 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
12 | ;;; General Public License for more details. | ||
13 | ;;; | ||
14 | ;;; You should have received a copy of the GNU General Public License | ||
15 | ;;; along with GNUnet; see the file COPYING. If not, write to the | ||
16 | ;;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
17 | ;;; Boston, MA 02110-1301, USA. | ||
18 | |||
19 | (use-modules | ||
20 | (ice-9 popen) | ||
21 | (ice-9 match) | ||
22 | (ice-9 rdelim) | ||
23 | (guix packages) | ||
24 | (guix build-system gnu) | ||
25 | (guix gexp) | ||
26 | ((guix build utils) #:select (with-directory-excursion)) | ||
27 | (guix git-download) | ||
28 | (guix utils) ; current-source-directory | ||
29 | (gnu packages) | ||
30 | (gnu packages aidc) | ||
31 | (gnu packages autotools) | ||
32 | (gnu packages backup) | ||
33 | (gnu packages base) | ||
34 | (gnu packages compression) | ||
35 | (gnu packages curl) | ||
36 | (gnu packages databases) | ||
37 | (gnu packages file) | ||
38 | (gnu packages gettext) | ||
39 | (gnu packages glib) | ||
40 | (gnu packages gnome) | ||
41 | (gnu packages gnunet) | ||
42 | (gnu packages gnupg) | ||
43 | (gnu packages gnuzilla) | ||
44 | (gnu packages groff) | ||
45 | (gnu packages gstreamer) | ||
46 | (gnu packages gtk) | ||
47 | (gnu packages guile) | ||
48 | (gnu packages image) | ||
49 | (gnu packages image-viewers) | ||
50 | (gnu packages libidn) | ||
51 | (gnu packages libunistring) | ||
52 | (gnu packages linux) | ||
53 | (gnu packages maths) | ||
54 | (gnu packages multiprecision) | ||
55 | (gnu packages perl) | ||
56 | (gnu packages pkg-config) | ||
57 | (gnu packages pulseaudio) | ||
58 | (gnu packages python) | ||
59 | (gnu packages tex) | ||
60 | (gnu packages texinfo) | ||
61 | (gnu packages tex) | ||
62 | (gnu packages tls) | ||
63 | (gnu packages upnp) | ||
64 | (gnu packages video) | ||
65 | (gnu packages web) | ||
66 | (gnu packages xiph) | ||
67 | ((guix licenses) #:prefix license:)) | ||
68 | |||
69 | (define %source-dir (current-source-directory)) | ||
70 | |||
71 | (define gnunet-dev-env | ||
72 | (let* ((revision "1") | ||
73 | (select? (delay (or (git-predicate | ||
74 | (current-source-directory)) | ||
75 | source-file?)))) | ||
76 | (package | ||
77 | (inherit gnunet) | ||
78 | (name "gnunet") | ||
79 | (version (string-append "git" revision)) | ||
80 | (source | ||
81 | (local-file | ||
82 | (string-append (getcwd)) | ||
83 | #:recursive? #t)) | ||
84 | (inputs | ||
85 | `(("glpk" ,glpk) | ||
86 | ("gnurl" ,gnurl) | ||
87 | ("gstreamer" ,gstreamer) | ||
88 | ("gst-plugins-base" ,gst-plugins-base) | ||
89 | ("gnutls/dane" ,gnutls/dane) | ||
90 | ("libextractor" ,libextractor) | ||
91 | ("libgcrypt" ,libgcrypt) | ||
92 | ("libidn" ,libidn) | ||
93 | ("libmicrohttpd" ,libmicrohttpd) | ||
94 | ("libltdl" ,libltdl) | ||
95 | ("libunistring" ,libunistring) | ||
96 | ("openssl" ,openssl) | ||
97 | ("opus" ,opus) | ||
98 | ("pulseaudio" ,pulseaudio) | ||
99 | ("sqlite" ,sqlite) | ||
100 | ("postgresql" ,postgresql) | ||
101 | ("mysql" ,mysql) | ||
102 | ("zlib" ,zlib) | ||
103 | ("perl" ,perl) | ||
104 | ("python-2" ,python-2) ; tests and gnunet-qr | ||
105 | ("python2-future" ,python2-future) | ||
106 | ("jansson" ,jansson) | ||
107 | ("nss" ,nss) | ||
108 | ("glib" ,glib "bin") | ||
109 | ("gmp" ,gmp) | ||
110 | ("bluez" ,bluez) ; for optional bluetooth feature | ||
111 | ("glib" ,glib) | ||
112 | ;; ("texlive" ,texlive) ;FIXME: minimize. | ||
113 | ("texlive-tiny" ,texlive-tiny) ;; Seems to be enough for _just_ info output. | ||
114 | ("miniupnpc" ,miniupnpc) | ||
115 | ("libogg" ,libogg))) | ||
116 | (native-inputs | ||
117 | `(("pkg-config" ,pkg-config) | ||
118 | ("autoconf" ,autoconf) | ||
119 | ("automake" ,automake) | ||
120 | ("gnu-gettext" ,gnu-gettext) | ||
121 | ("which" ,which) | ||
122 | ("texinfo" ,texinfo-5) ; Debian stable: 5.2 | ||
123 | ("libtool" ,libtool))) | ||
124 | (outputs '("out" "debug")) | ||
125 | (arguments | ||
126 | `(;#:configure-flags | ||
127 | ;;(list (string-append "--with-nssdir=" %output "/lib") | ||
128 | ;;"--enable-gcc-hardening" | ||
129 | ;;"--enable-linker-hardening" | ||
130 | ;;;;"--enable-documentation-only") | ||
131 | ;;;"--enable-logging=verbose" | ||
132 | ;;;"CFLAGS=-ggdb -O0") | ||
133 | #:phases | ||
134 | ;; swap check and install phases and set paths to installed bin | ||
135 | (modify-phases %standard-phases | ||
136 | (add-after 'unpack 'patch-bin-sh | ||
137 | (lambda _ | ||
138 | (for-each (lambda (f) (chmod f #o755)) | ||
139 | (find-files "po" "")) | ||
140 | #t)) | ||
141 | (add-after 'patch-bin-sh 'bootstrap | ||
142 | (lambda _ | ||
143 | (zero? (system* "sh" "bootstrap")))) | ||
144 | ;;(add-before 'build 'chdir | ||
145 | ;; (lambda _ | ||
146 | ;; (chdir "doc/documentation"))) | ||
147 | (delete 'check) | ||
148 | ;; XXX: https://gnunet.org/bugs/view.php?id=4619 | ||
149 | (add-after 'install 'set-path-for-check | ||
150 | (lambda* (#:key outputs #:allow-other-keys) | ||
151 | (let* ((out (assoc-ref outputs "out")) | ||
152 | (bin (string-append out "/bin")) | ||
153 | (lib (string-append out "/lib"))) | ||
154 | (setenv "GNUNET_PREFIX" lib) | ||
155 | (setenv "PATH" (string-append (getenv "PATH") ":" bin)) | ||
156 | (zero? (system* "make" "check"))))))))))) | ||
157 | |||
158 | gnunet-dev-env | ||
diff --git a/contrib/packages/guix/notest-guix-env.scm b/contrib/packages/guix/notest-guix-env.scm new file mode 100644 index 000000000..ffb0ec889 --- /dev/null +++ b/contrib/packages/guix/notest-guix-env.scm | |||
@@ -0,0 +1,145 @@ | |||
1 | ;;; This file is part of GNUnet. | ||
2 | ;;; Copyright (C) 2016, 2017, 2018 GNUnet e.V. | ||
3 | ;;; | ||
4 | ;;; GNUnet is free software: you can redistribute it and/or modify it | ||
5 | ;;; under the terms of the GNU Affero General Public License as published | ||
6 | ;;; by the Free Software Foundation, either version 3 of the License, | ||
7 | ;;; or (at your option) any later version. | ||
8 | ;;; | ||
9 | ;;; GNUnet is distributed in the hope that it will be useful, but | ||
10 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
12 | ;;; Affero General Public License for more details. | ||
13 | ;;; | ||
14 | ;;; You should have received a copy of the GNU Affero General Public License | ||
15 | ;;; along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
16 | |||
17 | (use-modules | ||
18 | (ice-9 popen) | ||
19 | (ice-9 match) | ||
20 | (ice-9 rdelim) | ||
21 | (guix packages) | ||
22 | (guix build-system gnu) | ||
23 | (guix gexp) | ||
24 | ((guix build utils) #:select (with-directory-excursion)) | ||
25 | (guix git-download) | ||
26 | (guix utils) ; current-source-directory | ||
27 | (gnu packages) | ||
28 | (gnu packages aidc) | ||
29 | (gnu packages autotools) | ||
30 | (gnu packages backup) | ||
31 | (gnu packages base) | ||
32 | (gnu packages compression) | ||
33 | (gnu packages curl) | ||
34 | (gnu packages databases) | ||
35 | (gnu packages file) | ||
36 | (gnu packages gettext) | ||
37 | (gnu packages glib) | ||
38 | (gnu packages gnome) | ||
39 | (gnu packages gnunet) | ||
40 | (gnu packages gnupg) | ||
41 | (gnu packages gnuzilla) | ||
42 | (gnu packages groff) | ||
43 | (gnu packages gstreamer) | ||
44 | (gnu packages gtk) | ||
45 | (gnu packages guile) | ||
46 | (gnu packages image) | ||
47 | (gnu packages image-viewers) | ||
48 | (gnu packages libidn) | ||
49 | (gnu packages libunistring) | ||
50 | (gnu packages linux) | ||
51 | (gnu packages maths) | ||
52 | (gnu packages multiprecision) | ||
53 | (gnu packages perl) | ||
54 | (gnu packages pkg-config) | ||
55 | (gnu packages pulseaudio) | ||
56 | (gnu packages python) | ||
57 | (gnu packages tex) | ||
58 | (gnu packages texinfo) | ||
59 | (gnu packages tex) | ||
60 | (gnu packages tls) | ||
61 | (gnu packages upnp) | ||
62 | (gnu packages video) | ||
63 | (gnu packages web) | ||
64 | (gnu packages xiph) | ||
65 | ((guix licenses) #:prefix license:)) | ||
66 | |||
67 | (define %source-dir (current-source-directory)) | ||
68 | |||
69 | (define gnunet-dev-env | ||
70 | (let* ((revision "1") | ||
71 | (select? (delay (or (git-predicate | ||
72 | (current-source-directory)) | ||
73 | source-file?)))) | ||
74 | (package | ||
75 | (inherit gnunet) | ||
76 | (name "gnunet") | ||
77 | (version (string-append "git" revision)) | ||
78 | (source | ||
79 | (local-file | ||
80 | (string-append (getcwd)) | ||
81 | #:recursive? #t)) | ||
82 | (inputs | ||
83 | `(("glpk" ,glpk) | ||
84 | ("gnurl" ,gnurl) | ||
85 | ("gstreamer" ,gstreamer) | ||
86 | ("gst-plugins-base" ,gst-plugins-base) | ||
87 | ("gnutls/dane" ,gnutls/dane) | ||
88 | ("libextractor" ,libextractor) | ||
89 | ("libgcrypt" ,libgcrypt) | ||
90 | ("libidn" ,libidn) | ||
91 | ("libmicrohttpd" ,libmicrohttpd) | ||
92 | ("libltdl" ,libltdl) | ||
93 | ("libunistring" ,libunistring) | ||
94 | ("openssl" ,openssl) | ||
95 | ("opus" ,opus) | ||
96 | ("pulseaudio" ,pulseaudio) | ||
97 | ("sqlite" ,sqlite) | ||
98 | ("postgresql" ,postgresql) | ||
99 | ("mysql" ,mariadb) | ||
100 | ("zlib" ,zlib) | ||
101 | ("perl" ,perl) | ||
102 | ("python-2" ,python-2) ; tests and gnunet-qr | ||
103 | ("python2-future" ,python2-future) | ||
104 | ("jansson" ,jansson) | ||
105 | ("nss" ,nss) | ||
106 | ("glib" ,glib "bin") | ||
107 | ("gmp" ,gmp) | ||
108 | ("bluez" ,bluez) ; for optional bluetooth feature | ||
109 | ("glib" ,glib) | ||
110 | ;; ("texlive" ,texlive) ;FIXME: minimize. | ||
111 | ("texlive-tiny" ,texlive-tiny) ;; Seems to be enough for _just_ info output. | ||
112 | ("miniupnpc" ,miniupnpc) | ||
113 | ("libogg" ,libogg))) | ||
114 | (native-inputs | ||
115 | `(("pkg-config" ,pkg-config) | ||
116 | ("autoconf" ,autoconf) | ||
117 | ("automake" ,automake) | ||
118 | ("gnu-gettext" ,gnu-gettext) | ||
119 | ("which" ,which) | ||
120 | ("texinfo" ,texinfo-5) ; Debian stable: 5.2 | ||
121 | ("libtool" ,libtool))) | ||
122 | (outputs '("out" "debug")) | ||
123 | (arguments | ||
124 | `(#:configure-flags | ||
125 | (list (string-append "--with-nssdir=" %output "/lib") | ||
126 | "--enable-experimental") | ||
127 | #:phases | ||
128 | ;; swap check and install phases and set paths to installed bin | ||
129 | (modify-phases %standard-phases | ||
130 | (add-after 'unpack 'patch-bin-sh | ||
131 | (lambda _ | ||
132 | (for-each (lambda (f) (chmod f #o755)) | ||
133 | (find-files "po" "")) | ||
134 | #t)) | ||
135 | (add-after 'patch-bin-sh 'bootstrap | ||
136 | (lambda _ | ||
137 | (invoke "sh" "bootstrap"))) | ||
138 | ;;(add-before 'build 'chdir | ||
139 | ;; (lambda _ | ||
140 | ;; (chdir "doc/documentation"))) | ||
141 | (delete 'check) | ||
142 | ;; XXX: https://gnunet.org/bugs/view.php?id=4619 | ||
143 | )))))) | ||
144 | |||
145 | gnunet-dev-env | ||
diff --git a/contrib/lrn-indent.diff b/contrib/patches/lrn-indent.diff index 8ba3b77cc..8ba3b77cc 100644 --- a/contrib/lrn-indent.diff +++ b/contrib/patches/lrn-indent.diff | |||
diff --git a/contrib/texi2html5-indent.diff b/contrib/patches/texi2html5-indent.diff index 2abbcb766..2abbcb766 100644 --- a/contrib/texi2html5-indent.diff +++ b/contrib/patches/texi2html5-indent.diff | |||
diff --git a/contrib/transport_ats_years.diff b/contrib/patches/transport_ats_years.diff index f48c9555d..f48c9555d 100644 --- a/contrib/transport_ats_years.diff +++ b/contrib/patches/transport_ats_years.diff | |||
diff --git a/contrib/pogen.sh b/contrib/pogen.sh deleted file mode 100755 index 87c90adf2..000000000 --- a/contrib/pogen.sh +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | find src -name "*.c" | grep -v \# | grep -v /test_ | grep -v /perf_ | grep -v _old | grep -v chat | grep -v .libs/ | sort > po/POTFILES.in | ||
3 | grep -l _\( `find src -name "*.h"` | grep -v "platform.h" | grep -v _old | grep -v chat | sort >> po/POTFILES.in | ||
4 | |||
diff --git a/contrib/removetrailingwhitespace b/contrib/removetrailingwhitespace deleted file mode 100755 index 9e620cbb2..000000000 --- a/contrib/removetrailingwhitespace +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | #!/usr/bin/python | ||
2 | |||
3 | import sys | ||
4 | import re | ||
5 | |||
6 | for fileName in sys.argv[1:]: | ||
7 | f = open(fileName, 'r+') | ||
8 | fileString = f.read() | ||
9 | |||
10 | fileString = re.sub(r'[ ]+\n', r'\n', fileString) | ||
11 | fileString = re.sub(r'\r', r'', fileString) | ||
12 | f.seek(0) | ||
13 | f.write(fileString) | ||
14 | f.truncate(len(fileString)) | ||
diff --git a/contrib/repeat.sh b/contrib/repeat.sh deleted file mode 100755 index 3efc95f07..000000000 --- a/contrib/repeat.sh +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | while true; do rm -rf /tmp/test-gnunetd-*; make check || break; done | ||
diff --git a/contrib/scripts/.gitignore b/contrib/scripts/.gitignore new file mode 100644 index 000000000..547c89185 --- /dev/null +++ b/contrib/scripts/.gitignore | |||
@@ -0,0 +1,2 @@ | |||
1 | gnunet-chk.py | ||
2 | removetrailingwhitespace.py | ||
diff --git a/contrib/scripts/afferify b/contrib/scripts/afferify new file mode 100755 index 000000000..2fa607e1a --- /dev/null +++ b/contrib/scripts/afferify | |||
@@ -0,0 +1,110 @@ | |||
1 | #!/usr/bin/perl | ||
2 | # Catch all in-source GPL2/3 license declarations and convert | ||
3 | # them to AGPL. | ||
4 | # | ||
5 | # You expected this to be using diff & patch? Well, the source | ||
6 | # files have all sorts of different commenting and indentation | ||
7 | # styles, not speaking of typos and failed uses of search and | ||
8 | # replace, that an attempt in using the patch(1) tool would fail | ||
9 | # miserably. This script instead is based on my rgrep from 1998. | ||
10 | # Keeping it here as it may be useful to other projects under- | ||
11 | # going the same pains. It is forbidden to use this script to | ||
12 | # convert AGPL code back to less strict licensing. Haha, just | ||
13 | # kidding. | ||
14 | # | ||
15 | # -symlynX | ||
16 | |||
17 | use File::Find; | ||
18 | $|=1; | ||
19 | # Recurse into current or given directories | ||
20 | find(\&wanted, $#ARGV >= 0 ? @ARGV : '.'); | ||
21 | print STDERR "\n"; | ||
22 | exit; | ||
23 | |||
24 | |||
25 | sub wanted { | ||
26 | my $name = $File::Find::name; | ||
27 | ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime) | ||
28 | = lstat; | ||
29 | return $File::Find::prune = 1 if /^(CVS|\.git|\.svn)$/; | ||
30 | # Nicer if you 'make distclean' first | ||
31 | return if /\.(o|pdf)$/i; | ||
32 | return if -d _ or -l _; | ||
33 | return if /afferify/; # Don't apply this to itself ;) | ||
34 | # No.. i didn't do it.. just being careful ;) ;) | ||
35 | # return unless -T _; # We don't have binaries in the repo, do we? | ||
36 | |||
37 | # We need the default variable '$_' for more important duties. | ||
38 | my $f = $_; | ||
39 | |||
40 | if (sysopen(I, $f, O_RDONLY)) { | ||
41 | $_ = &slurp(*I); | ||
42 | close I; | ||
43 | # Debugging: What's inside the file we just read? | ||
44 | # print STDERR '> ', $_; | ||
45 | |||
46 | if (0) { | ||
47 | # This code did the initial conversion. We ifdef it out. | ||
48 | |||
49 | # Good idea to have the text start with "GNUnet" rather than "This program" | ||
50 | if ( s#GNUnet is free software; you can redistribute it and/or modify it under the#GNUnet is free software: you can redistribute it and/or modify it# ) { | ||
51 | # Whoever had the idea of reformatting the GPL license text... | ||
52 | print STDERR "\nTrying wide style on $name\t"; | ||
53 | |||
54 | # Most important thing to know in order to be able | ||
55 | # to read perl code: if regexps appear without any | ||
56 | # context, it means they are applied to the default | ||
57 | # variable being '$_'. | ||
58 | return unless s#terms of the GNU General Public License as published by the Free Software#under the terms of the GNU Affero General Public License as published#; | ||
59 | return unless s#^(\W*\s+)Foundation; either version \d, or \(at your option\) any later version\.#\1by the Free Software Foundation, either version 3 of the License,\n\1or (at your option) any later version.#m; | ||
60 | return unless s#GNUnet is distributed in the hope that it will be useful, but WITHOUT ANY#GNUnet is distributed in the hope that it will be useful, but#; | ||
61 | return unless s#WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR#WITHOUT ANY WARRANTY; without even the implied warranty of#; | ||
62 | return unless s#^(\W*\s+)A PARTICULAR PURPOSE. See the GNU General Public License for more details.#\1MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n\1Affero General Public License for more details.#m; | ||
63 | return unless s#^\W*\n\W*\s+You should have received a copy of the GNU General Public License along with\n\W*\s+GNUnet. see the file COPYING\. If not, .* see\s*\W*\s+<http://www.gnu.org/licenses/>\n##m; | ||
64 | } else { | ||
65 | # If this string is not in the file, leave it alone. | ||
66 | return unless s#GNUnet is free software; you can redistribute it and/or modify#GNUnet is free software: you can redistribute it and/or modify it#; | ||
67 | print STDERR "\nTrying regular style on $name\t"; | ||
68 | |||
69 | # Patterns are designed to also match some typos and substitutions. | ||
70 | return unless s#it under the terms of the GNU General Public Lice\w+ as published#under the terms of the GNU Affero General Public License as published#; | ||
71 | return unless s#by the Free Software Foundation; either version \d, or \(at your#by the Free Software Foundation, either version 3 of the License,#; | ||
72 | return unless s#option\) any later version\.#or (at your option) any later version.#; | ||
73 | return unless s#General Public Lice\w+ for more details\.#Affero General Public License for more details.#; | ||
74 | return unless s#^\W*\n\W*\s+You should have received a copy of the GNU General Public Lice\w+\n\W*\s+along with GNUnet. see the file COPYING\. If not, write to the\n\W*\s+Free Software Foundation, Inc\., (51 Franklin Street, Fifth Floor|59 Tem ?ple Place - Suite 330),\n\W*\s+Boston, MA 0211\d-130\d, USA\.\n##m; | ||
75 | } | ||
76 | print STDERR "OK"; | ||
77 | |||
78 | } else { | ||
79 | # This is the code in actual & current use: | ||
80 | |||
81 | return unless m#GNUnet is free software: you can redistribute it and/or modify it#; | ||
82 | print STDERR "\nTrying $name\t"; | ||
83 | # There was a mistake in the replacement text! | ||
84 | return unless s#under the terms of the GNU General Public License as published#under the terms of the GNU Affero General Public License as published#; | ||
85 | # Don't apply this one twice! | ||
86 | # return unless s#(\n\W*)(\s+)(Affero General Public License for more details\.)#\1\2\3\1\1\2You should have received a copy of the GNU Affero General Public License\1\2along with this program. If not, see <http://www.gnu.org/licenses/>.#; | ||
87 | print STDERR "FIXED"; | ||
88 | } | ||
89 | |||
90 | # We directly overwrite the original file in the | ||
91 | # assumption that we're in a healthy revertible git. | ||
92 | open(O, '>', $f) or die "Cannot overwrite $f"; | ||
93 | # Imagine, I could have left out $_ here... ;) | ||
94 | print O $_; | ||
95 | close O; | ||
96 | } else { | ||
97 | die "Cannot access $name"; | ||
98 | } | ||
99 | } | ||
100 | |||
101 | # Reads a file from a stream into a variable all at once: | ||
102 | sub slurp { | ||
103 | # Perl sure gets clunky here | ||
104 | local(*IN) = @_; | ||
105 | local($save) = $/; | ||
106 | undef $/; | ||
107 | local($data) = <IN>; | ||
108 | $/ = $save; | ||
109 | return $data; | ||
110 | } | ||
diff --git a/contrib/coverage.sh b/contrib/scripts/coverage.sh index dd6a6ab53..dd6a6ab53 100755 --- a/contrib/coverage.sh +++ b/contrib/scripts/coverage.sh | |||
diff --git a/contrib/debug b/contrib/scripts/debug index 3de2c9a14..3de2c9a14 100755 --- a/contrib/debug +++ b/contrib/scripts/debug | |||
diff --git a/contrib/scripts/documentation/gnunet-doc.scm b/contrib/scripts/documentation/gnunet-doc.scm new file mode 100644 index 000000000..077efacad --- /dev/null +++ b/contrib/scripts/documentation/gnunet-doc.scm | |||
@@ -0,0 +1,182 @@ | |||
1 | ;;; This file is part of GNUnet. | ||
2 | ;;; Copyright (C) 2016, 2017 GNUnet e.V. | ||
3 | ;;; | ||
4 | ;;; GNUnet is free software: you can redistribute it and/or modify it | ||
5 | ;;; under the terms of the GNU Affero General Public License as published | ||
6 | ;;; by the Free Software Foundation, either version 3 of the License, or | ||
7 | ;;; (at your option) any later version. | ||
8 | ;;; | ||
9 | ;;; GNUnet is distributed in the hope that it will be useful, but | ||
10 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
12 | ;;; Affero General Public License for more details. | ||
13 | ;;; | ||
14 | ;;; You should have received a copy of the GNU Affero General Public License | ||
15 | ;;; along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
16 | ;;; | ||
17 | |||
18 | (use-modules | ||
19 | (ice-9 popen) | ||
20 | (ice-9 match) | ||
21 | (ice-9 rdelim) | ||
22 | (guix packages) | ||
23 | (guix build-system gnu) | ||
24 | (guix gexp) | ||
25 | ((guix build utils) #:select (with-directory-excursion)) | ||
26 | (guix git-download) | ||
27 | (guix utils) ; current-source-directory | ||
28 | (gnu packages) | ||
29 | (gnu packages aidc) | ||
30 | (gnu packages autotools) | ||
31 | (gnu packages backup) | ||
32 | (gnu packages base) | ||
33 | (gnu packages compression) | ||
34 | (gnu packages curl) | ||
35 | (gnu packages databases) | ||
36 | (gnu packages file) | ||
37 | (gnu packages gettext) | ||
38 | (gnu packages glib) | ||
39 | (gnu packages gnome) | ||
40 | (gnu packages gnunet) | ||
41 | (gnu packages gnupg) | ||
42 | (gnu packages gnuzilla) | ||
43 | (gnu packages groff) | ||
44 | (gnu packages gstreamer) | ||
45 | (gnu packages gtk) | ||
46 | (gnu packages guile) | ||
47 | (gnu packages graphviz) | ||
48 | (gnu packages image) | ||
49 | (gnu packages image-viewers) | ||
50 | (gnu packages libidn) | ||
51 | (gnu packages libunistring) | ||
52 | (gnu packages linux) | ||
53 | (gnu packages maths) | ||
54 | (gnu packages multiprecision) | ||
55 | (gnu packages perl) | ||
56 | (gnu packages pkg-config) | ||
57 | (gnu packages pulseaudio) | ||
58 | (gnu packages python) | ||
59 | (gnu packages tex) | ||
60 | (gnu packages texinfo) | ||
61 | (gnu packages tex) | ||
62 | (gnu packages tls) | ||
63 | (gnu packages video) | ||
64 | (gnu packages web) | ||
65 | (gnu packages xiph) | ||
66 | ;;(gnunet packages texlive) ;GNUnet module including texlive-2012 WIP | ||
67 | ((guix licenses) #:prefix license:)) | ||
68 | |||
69 | ;;(define %source-dir (string-append (current-source-directory) | ||
70 | ;; "/../../../")) | ||
71 | (define %source-dir (dirname (current-filename))) | ||
72 | |||
73 | (define gnunet-doc | ||
74 | (let* ((revision "2") | ||
75 | (select? (delay (or (git-predicate | ||
76 | (string-append (current-source-directory) | ||
77 | "/../../../")) | ||
78 | source-file?)))) | ||
79 | (package | ||
80 | (name "gnunet-doc") | ||
81 | (version (string-append "0.10.1-" revision "." "dev")) | ||
82 | (source | ||
83 | (local-file ;;"../../.." | ||
84 | ;;%source-dir | ||
85 | ;;(string-append (getcwd) "/../../../") | ||
86 | (string-append (getcwd)) ;drrty hack and this assumes one static position FIXME! | ||
87 | #:recursive? #t)) | ||
88 | ;;#:select? (git-predicate %source-dir))) | ||
89 | ;;#:select? (force select?))) | ||
90 | (build-system gnu-build-system) | ||
91 | (inputs | ||
92 | `(("glpk" ,glpk) | ||
93 | ("gnurl" ,gnurl) | ||
94 | ("gstreamer" ,gstreamer) | ||
95 | ("gst-plugins-base" ,gst-plugins-base) | ||
96 | ("gnutls/dane" ,gnutls/dane) | ||
97 | ("libextractor" ,libextractor) | ||
98 | ("libgcrypt" ,libgcrypt) | ||
99 | ("libidn" ,libidn) | ||
100 | ("libmicrohttpd" ,libmicrohttpd) | ||
101 | ("libltdl" ,libltdl) | ||
102 | ("libunistring" ,libunistring) | ||
103 | ("openssl" ,openssl) | ||
104 | ("opus" ,opus) | ||
105 | ("pulseaudio" ,pulseaudio) | ||
106 | ("sqlite" ,sqlite) | ||
107 | ("postgresql" ,postgresql) | ||
108 | ("mysql" ,mariadb) | ||
109 | ("zlib" ,zlib) | ||
110 | ("perl" ,perl) | ||
111 | ("python-2" ,python-2) ; tests and gnunet-qr | ||
112 | ("jansson" ,jansson) | ||
113 | ("nss" ,nss) | ||
114 | ("glib" ,glib "bin") | ||
115 | ("gmp" ,gmp) | ||
116 | ("bluez" ,bluez) ; for optional bluetooth feature | ||
117 | ("glib" ,glib) | ||
118 | ;;("texlive-minimal" ,texlive-minimal) ; optional. | ||
119 | ("texlive" ,texlive) ;TODO: Stabilize Texlive-2012 package | ||
120 | ("libogg" ,libogg))) | ||
121 | (native-inputs | ||
122 | `(("pkg-config" ,pkg-config) | ||
123 | ("autoconf" ,autoconf) | ||
124 | ("automake" ,automake) | ||
125 | ("gnu-gettext" ,gnu-gettext) | ||
126 | ("graphviz" ,graphviz) ; dot | ||
127 | ("texinfo-5" ,texinfo-5) ; Debian stable | ||
128 | ("which" ,which) | ||
129 | ("libtool" ,libtool))) | ||
130 | (arguments | ||
131 | `(#:configure-flags | ||
132 | (list "--enable-documentation") | ||
133 | #:tests? #f ;Don't run tests | ||
134 | #:phases | ||
135 | (modify-phases %standard-phases | ||
136 | (add-after 'unpack 'autoconf | ||
137 | (lambda _ | ||
138 | (substitute* "bootstrap" | ||
139 | (("contrib/pogen.sh") "sh contrib/pogen.sh")) | ||
140 | (for-each (lambda (f) (chmod f #o755)) | ||
141 | (find-files "po" "")) | ||
142 | (zero? (system* "sh" "bootstrap")))) | ||
143 | (add-after 'build 'run-gendocs | ||
144 | (lambda _ | ||
145 | (chdir "doc/documentation") | ||
146 | ;;(zero? (system* "make" "dev-build")))) | ||
147 | (zero? (system* "sh" "run-gendocs.sh")))) | ||
148 | ;; (zero? (system* "make" "pdf")) | ||
149 | ;; (zero? (system* "make" "html")) | ||
150 | ;; (zero? (system* "make" "info")))) | ||
151 | ;;(zero? (system* "make" "doc-all-give-me-the-noise")))) | ||
152 | (replace 'install | ||
153 | (lambda _ | ||
154 | (zero? (system* "make" "doc-gendoc-install"))))))) | ||
155 | ;;(lambda* (#:key outputs #:allow-other-keys) | ||
156 | ;; (let* ((out (assoc-ref outputs "out")) | ||
157 | ;; (doc (string-append out "/share/doc/gnunet"))) | ||
158 | ;; (mkdir-p doc) | ||
159 | ;; (copy-recursively "images" | ||
160 | ;; (string-append doc | ||
161 | ;; "/images")) | ||
162 | ;; (mkdir-p (string-append doc "/gnunet")) | ||
163 | ;; (install-file "gnunet.pdf" doc) | ||
164 | ;; (install-file "gnunet.info" doc) | ||
165 | ;; (install-file "gnunet.log" doc) ;TODO: Move to 'dev' output? | ||
166 | ;; (copy-recursively "gnunet" | ||
167 | ;; (string-append doc | ||
168 | ;; "/gnunet")) | ||
169 | ;; (install-file "gnunet-c-tutorial.pdf" doc) | ||
170 | ;; (install-file "gnunet-c-tutorial.info" doc) | ||
171 | ;; (install-file "gnunet-c-tutorial.log" doc) ;TODO: Move to 'dev' output? | ||
172 | ;; (copy-recursively "gnunet-c-tutorial" | ||
173 | ;; (string-append doc | ||
174 | ;; "/gnunet-c-tutorial"))) | ||
175 | ;; #t))))) | ||
176 | (synopsis "Documentation of GNUnet") | ||
177 | (description | ||
178 | "GNUnet documentation build") | ||
179 | (license (list license:fdl1.3+ license:gpl3+)) | ||
180 | (home-page "https://gnunet.org/")))) | ||
181 | |||
182 | gnunet-doc | ||
diff --git a/contrib/find_typedefs.py b/contrib/scripts/find_typedefs.py index 68f5c2782..b344cee2b 100644 --- a/contrib/find_typedefs.py +++ b/contrib/scripts/find_typedefs.py | |||
@@ -1,4 +1,7 @@ | |||
1 | # XXX (F841): local variable 'li' is assigned to but never used | ||
2 | |||
1 | from __future__ import print_function | 3 | from __future__ import print_function |
4 | from __future__ import unicode_literals | ||
2 | import os | 5 | import os |
3 | import re | 6 | import re |
4 | import sys | 7 | import sys |
diff --git a/contrib/gdb-iterate-dll.py b/contrib/scripts/gdb-iterate-dll.py index 79d46aa96..388ef6e11 100644 --- a/contrib/gdb-iterate-dll.py +++ b/contrib/scripts/gdb-iterate-dll.py | |||
@@ -1,3 +1,6 @@ | |||
1 | from __future__ import print_function | ||
2 | from __future__ import unicode_literals | ||
3 | from builtins import str | ||
1 | from gdb import * | 4 | from gdb import * |
2 | 5 | ||
3 | 6 | ||
diff --git a/contrib/generate-monkey-db.sh b/contrib/scripts/generate-monkey-db.sh index 2afe55501..2afe55501 100755 --- a/contrib/generate-monkey-db.sh +++ b/contrib/scripts/generate-monkey-db.sh | |||
diff --git a/contrib/report.sh b/contrib/scripts/gnunet-bugreport index 7fbb2f46c..f17cb7636 100755 --- a/contrib/report.sh +++ b/contrib/scripts/gnunet-bugreport | |||
@@ -233,7 +233,7 @@ gcc -o $TMPFILE $TMPFILE.c 2> /dev/null && $TMPFILE || echo "Not found" | |||
233 | rm -f $TMPFILE $TMPFILE.bin | 233 | rm -f $TMPFILE $TMPFILE.bin |
234 | 234 | ||
235 | 235 | ||
236 | echo -n "GNUtls : " | 236 | echo -n "GnuTLS : " |
237 | TMPFILE=`mktemp /tmp/gnutls-version-testXXXXXX` | 237 | TMPFILE=`mktemp /tmp/gnutls-version-testXXXXXX` |
238 | cat - >$TMPFILE.c <<EOF | 238 | cat - >$TMPFILE.c <<EOF |
239 | #include <gnutls/gnutls.h> | 239 | #include <gnutls/gnutls.h> |
diff --git a/contrib/gnunet-chk.py b/contrib/scripts/gnunet-chk.py.in index dba694c34..cabaef6c4 100755 --- a/contrib/gnunet-chk.py +++ b/contrib/scripts/gnunet-chk.py.in | |||
@@ -1,21 +1,19 @@ | |||
1 | #!/usr/bin/python | 1 | #!@PYTHON@ |
2 | # This file is part of GNUnet. | 2 | # This file is part of GNUnet. |
3 | # (C) 2013 Christian Grothoff (and other contributing authors) | 3 | # (C) 2013, 2018 Christian Grothoff (and other contributing authors) |
4 | # | 4 | # |
5 | # GNUnet is free software; you can redistribute it and/or modify | 5 | # GNUnet is free software: you can redistribute it and/or modify it |
6 | # it under the terms of the GNU General Public License as published | 6 | # under the terms of the GNU Affero General Public License as published |
7 | # by the Free Software Foundation; either version 3, or (at your | 7 | # by the Free Software Foundation, either version 3 of the License, or |
8 | # option) any later version. | 8 | # (at your option) any later version. |
9 | # | 9 | # |
10 | # GNUnet is distributed in the hope that it will be useful, but | 10 | # GNUnet is distributed in the hope that it will be useful, but |
11 | # WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | # WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | # General Public License for more details. | 13 | # Affero General Public License for more details. |
14 | # | 14 | # |
15 | # You should have received a copy of the GNU General Public License | 15 | # You should have received a copy of the GNU Affero General Public License |
16 | # along with GNUnet; see the file COPYING. If not, write to the | 16 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
18 | # Boston, MA 02110-1301, USA. | ||
19 | # | 17 | # |
20 | # File: gnunet-chk.py | 18 | # File: gnunet-chk.py |
21 | # Brief: Computes GNUNET style Content Hash Key for a given file | 19 | # Brief: Computes GNUNET style Content Hash Key for a given file |
@@ -27,6 +25,7 @@ import os | |||
27 | import getopt | 25 | import getopt |
28 | import sys | 26 | import sys |
29 | from Crypto.Cipher import AES | 27 | from Crypto.Cipher import AES |
28 | from functools import reduce | ||
30 | 29 | ||
31 | 30 | ||
32 | # Defaults | 31 | # Defaults |
@@ -76,7 +75,7 @@ def encode_data_to_string(data): | |||
76 | wpos += 1 | 75 | wpos += 1 |
77 | vbit -= 5 | 76 | vbit -= 5 |
78 | assert (0 == vbit) | 77 | assert (0 == vbit) |
79 | return out; | 78 | return out |
80 | 79 | ||
81 | 80 | ||
82 | def sha512_hash(data): | 81 | def sha512_hash(data): |
@@ -105,7 +104,7 @@ class AESKey: | |||
105 | passphrase: string containing the passphrase to get the AES key and | 104 | passphrase: string containing the passphrase to get the AES key and |
106 | initialization vector | 105 | initialization vector |
107 | """ | 106 | """ |
108 | passphrase = bytearray(passphrase); | 107 | passphrase = bytearray(passphrase) |
109 | self.key = bytearray(self.KEY_SIZE) | 108 | self.key = bytearray(self.KEY_SIZE) |
110 | self.iv = bytearray(self.IV_SIZE) | 109 | self.iv = bytearray(self.IV_SIZE) |
111 | if (len(passphrase) > self.KEY_SIZE): | 110 | if (len(passphrase) > self.KEY_SIZE): |
@@ -193,7 +192,7 @@ class Chk: | |||
193 | 192 | ||
194 | def uri(self): | 193 | def uri(self): |
195 | sizestr = repr(self.fsize) | 194 | sizestr = repr(self.fsize) |
196 | if isinstance(self.fsize, long): | 195 | if isinstance(self.fsize, int): |
197 | sizestr = sizestr[:-1] | 196 | sizestr = sizestr[:-1] |
198 | return GNUNET_FS_URI_PREFIX + GNUNET_FS_URI_CHK_INFIX + \ | 197 | return GNUNET_FS_URI_PREFIX + GNUNET_FS_URI_CHK_INFIX + \ |
199 | encode_data_to_string(bytearray(self.key)) + "." + \ | 198 | encode_data_to_string(bytearray(self.key)) + "." + \ |
@@ -284,7 +283,7 @@ def compute_rootchk(readin, size): | |||
284 | readin: the stream where to read data from | 283 | readin: the stream where to read data from |
285 | size: the size of data to be read | 284 | size: the size of data to be read |
286 | """ | 285 | """ |
287 | depth = compute_depth_(size); | 286 | depth = compute_depth_(size) |
288 | current_depth = 0 | 287 | current_depth = 0 |
289 | chks = [None] * (depth * CHK_PER_INODE) # list buffer | 288 | chks = [None] * (depth * CHK_PER_INODE) # list buffer |
290 | read_offset = 0 | 289 | read_offset = 0 |
@@ -294,13 +293,13 @@ def compute_rootchk(readin, size): | |||
294 | off = CHK_PER_INODE * (depth - 1) | 293 | off = CHK_PER_INODE * (depth - 1) |
295 | assert (chks[off] is not None) | 294 | assert (chks[off] is not None) |
296 | logging.debug("Encoding done, reading CHK `" + chks[off].query + \ | 295 | logging.debug("Encoding done, reading CHK `" + chks[off].query + \ |
297 | "' from " + repr(off) + "\n") | 296 | "' from " + repr(off) + "\n") |
298 | uri_chk = chks[off] | 297 | uri_chk = chks[off] |
299 | assert (size == read_offset) | 298 | assert (size == read_offset) |
300 | uri_chk.setSize(size) | 299 | uri_chk.setSize(size) |
301 | return uri_chk | 300 | return uri_chk |
302 | if (0 == current_depth): | 301 | if (0 == current_depth): |
303 | pt_size = min(DBLOCK_SIZE, size - read_offset); | 302 | pt_size = min(DBLOCK_SIZE, size - read_offset) |
304 | try: | 303 | try: |
305 | pt_block = readin.read(pt_size) | 304 | pt_block = readin.read(pt_size) |
306 | except IOError: | 305 | except IOError: |
@@ -366,7 +365,7 @@ Options: | |||
366 | if '__main__' == __name__: | 365 | if '__main__' == __name__: |
367 | try: | 366 | try: |
368 | opts, args = getopt.getopt(sys.argv[1:], "h", ["help"]) | 367 | opts, args = getopt.getopt(sys.argv[1:], "h", ["help"]) |
369 | except getopt.GetoptError, err: | 368 | except getopt.GetoptError as err: |
370 | print(err) | 369 | print(err) |
371 | print("Exception occured") | 370 | print("Exception occured") |
372 | usage() | 371 | usage() |
@@ -379,4 +378,4 @@ if '__main__' == __name__: | |||
379 | print("Incorrect number of arguments passed") | 378 | print("Incorrect number of arguments passed") |
380 | usage() | 379 | usage() |
381 | sys.exit(1) | 380 | sys.exit(1) |
382 | print chkuri_from_path(args[0]) | 381 | print(chkuri_from_path(args[0])) |
diff --git a/contrib/gnunet-logread b/contrib/scripts/gnunet-logread/gnunet-logread index e4b6752b8..9b1c65401 100755 --- a/contrib/gnunet-logread +++ b/contrib/scripts/gnunet-logread/gnunet-logread | |||
@@ -1,4 +1,4 @@ | |||
1 | #!/usr/bin/env perl | 1 | #!@PERL@ |
2 | # helper tool to make gnunet logs more readable | 2 | # helper tool to make gnunet logs more readable |
3 | # try 'gnunet-logread -h' for usage | 3 | # try 'gnunet-logread -h' for usage |
4 | 4 | ||
diff --git a/contrib/gnunet-logread-ipc b/contrib/scripts/gnunet-logread/gnunet-logread-ipc index 77515d890..72f9f47df 100755 --- a/contrib/gnunet-logread-ipc +++ b/contrib/scripts/gnunet-logread/gnunet-logread-ipc | |||
@@ -4,6 +4,7 @@ | |||
4 | # | 4 | # |
5 | # ... obsoleted by gnunet-logread's new -f option that does the same thing | 5 | # ... obsoleted by gnunet-logread's new -f option that does the same thing |
6 | 6 | ||
7 | # FIXME: Replace /tmp with our use of $TMPDIR and similar. | ||
7 | ipc=${1:-/tmp/gnunet-logread-ipc.sock} | 8 | ipc=${1:-/tmp/gnunet-logread-ipc.sock} |
8 | test -e "$ipc" || mkfifo "$ipc" | 9 | test -e "$ipc" || mkfifo "$ipc" |
9 | cat "$ipc" | 10 | cat "$ipc" |
diff --git a/contrib/gnunet-logread-ipc-sdedit b/contrib/scripts/gnunet-logread/gnunet-logread-ipc-sdedit index 197e6f575..f8b7dc735 100755 --- a/contrib/gnunet-logread-ipc-sdedit +++ b/contrib/scripts/gnunet-logread/gnunet-logread-ipc-sdedit | |||
@@ -1,4 +1,4 @@ | |||
1 | #!/usr/bin/env perl | 1 | #!@PERL@ |
2 | 2 | ||
3 | # 1. Start sdedit and enable 'RT diagram server' in 'Global preferences'. | 3 | # 1. Start sdedit and enable 'RT diagram server' in 'Global preferences'. |
4 | # | 4 | # |
diff --git a/contrib/gnunet-suidfix b/contrib/scripts/gnunet-suidfix index 992378966..992378966 100755 --- a/contrib/gnunet-suidfix +++ b/contrib/scripts/gnunet-suidfix | |||
diff --git a/contrib/scripts/gnunet_janitor.py.in b/contrib/scripts/gnunet_janitor.py.in new file mode 100644 index 000000000..cbe96a8eb --- /dev/null +++ b/contrib/scripts/gnunet_janitor.py.in | |||
@@ -0,0 +1,79 @@ | |||
1 | #!@PYTHON@ | ||
2 | # This file is part of GNUnet. | ||
3 | # (C) 2011, 2018 Christian Grothoff (and other contributing authors) | ||
4 | # | ||
5 | # GNUnet is free software: you can redistribute it and/or modify it | ||
6 | # under the terms of the GNU Affero General Public License as published | ||
7 | # by the Free Software Foundation, either version 3 of the License, or | ||
8 | # (at your option) any later version. | ||
9 | # | ||
10 | # GNUnet is distributed in the hope that it will be useful, but | ||
11 | # WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | # Affero General Public License for more details. | ||
14 | # | ||
15 | # You should have received a copy of the GNU Affero General Public License | ||
16 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | # | ||
18 | # Finds any gnunet processes still running in the system and kills them | ||
19 | # | ||
20 | # gnunet janitor can be used by invoking `make' like this: | ||
21 | # TESTS_ENVIRONMENT='${top_srcdir}/contrib/scripts/gnunet_janitor.py &&' make check | ||
22 | |||
23 | from __future__ import print_function | ||
24 | import os | ||
25 | import re | ||
26 | import subprocess | ||
27 | import sys | ||
28 | import shutil | ||
29 | import time | ||
30 | import signal | ||
31 | import terminate | ||
32 | |||
33 | if os.name == 'nt': | ||
34 | from win32com.client import GetObject | ||
35 | WMI = GetObject('winmgmts:') | ||
36 | |||
37 | |||
38 | def get_process_list(): | ||
39 | result = [] | ||
40 | if os.name == 'nt': | ||
41 | processes = WMI.InstancesOf('Win32_Process') | ||
42 | for p in processes: | ||
43 | result.append((p.Properties_('ProcessId').Value, re.sub(r'(.+)\.exe', r'\1', p.Properties_('Name').Value))) | ||
44 | else: | ||
45 | pids = [pid for pid in os.listdir('/proc') if pid.isdigit()] | ||
46 | for pid in pids: | ||
47 | with open(os.path.join('/proc', pid, 'cmdline'), 'rb') as p: | ||
48 | cmdline = p.read().split('\x00') | ||
49 | if len(cmdline) > 0: | ||
50 | result.append((pid, cmdline[0])) | ||
51 | return result | ||
52 | |||
53 | |||
54 | def main(): | ||
55 | procs = get_process_list() | ||
56 | gnunet_procs = [] | ||
57 | for p in procs: | ||
58 | if re.match(r'gnunet-.+', p[1]): | ||
59 | gnunet_procs.append(p) | ||
60 | for p in gnunet_procs: | ||
61 | if re.match(r'gnunet-service-arm', p[1]): | ||
62 | print("killing arm process {0:5} {1}".format(p[0], p[1])) | ||
63 | try: | ||
64 | terminate.safe_terminate_process_by_pid(int(p[0]), 1) | ||
65 | except OSError as e: | ||
66 | print("failed: {0}".format(e)) | ||
67 | pass | ||
68 | for p in gnunet_procs: | ||
69 | if not re.match(r'gnunet-service-arm', p[1]): | ||
70 | print("killing non-arm process {0:5} {1}".format(p[0], p[1])) | ||
71 | try: | ||
72 | terminate.safe_terminate_process_by_pid(int(p[0]), 1) | ||
73 | except OSError as e: | ||
74 | print("failed: {0}".format(e)) | ||
75 | pass | ||
76 | |||
77 | |||
78 | if __name__ == '__main__': | ||
79 | sys.exit(main()) | ||
diff --git a/contrib/scripts/gnunet_pyexpect.py.in b/contrib/scripts/gnunet_pyexpect.py.in new file mode 100644 index 000000000..f155db5be --- /dev/null +++ b/contrib/scripts/gnunet_pyexpect.py.in | |||
@@ -0,0 +1,82 @@ | |||
1 | #!@PYTHON@ | ||
2 | # This file is part of GNUnet. | ||
3 | # (C) 2010, 2018 Christian Grothoff (and other contributing authors) | ||
4 | # | ||
5 | # GNUnet is free software: you can redistribute it and/or modify it | ||
6 | # under the terms of the GNU Affero General Public License as published | ||
7 | # by the Free Software Foundation, either version 3 of the License, or | ||
8 | # (at your option) any later version. | ||
9 | # | ||
10 | # GNUnet is distributed in the hope that it will be useful, but | ||
11 | # WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | # Affero General Public License for more details. | ||
14 | # | ||
15 | # You should have received a copy of the GNU Affero General Public License | ||
16 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | # | ||
18 | # Testcase for gnunet-peerinfo | ||
19 | from __future__ import print_function | ||
20 | import os | ||
21 | import re | ||
22 | import subprocess | ||
23 | import sys | ||
24 | import shutil | ||
25 | import time | ||
26 | |||
27 | |||
28 | class pexpect (object): | ||
29 | def __init__(self): | ||
30 | super(pexpect, self).__init__() | ||
31 | |||
32 | def spawn(self, stdin, arglist, *pargs, **kwargs): | ||
33 | env = kwargs.pop('env', None) | ||
34 | if env is None: | ||
35 | env = os.environ.copy() | ||
36 | # This messes up some testcases, disable log redirection | ||
37 | env.pop('GNUNET_FORCE_LOGFILE', None) | ||
38 | self.proc = subprocess.Popen(arglist, *pargs, env=env, **kwargs) | ||
39 | if self.proc is None: | ||
40 | print("Failed to spawn a process {0}".format(arglist)) | ||
41 | sys.exit(1) | ||
42 | if stdin is not None: | ||
43 | self.stdo, self.stde = self.proc.communicate(stdin) | ||
44 | else: | ||
45 | self.stdo, self.stde = self.proc.communicate() | ||
46 | return self.proc | ||
47 | |||
48 | def expect(self, s, r, flags=0): | ||
49 | stream = self.stdo if s == 'stdout' else self.stde | ||
50 | if isinstance(r, str): | ||
51 | if r == "EOF": | ||
52 | if len(stream) == 0: | ||
53 | return True | ||
54 | else: | ||
55 | print("Failed to find `{1}' in {0}, which is `{2}' ({3})".format(s, r, stream, len(stream))) | ||
56 | sys.exit(2) | ||
57 | raise ValueError("Argument `r' should be an instance of re.RegexObject or a special string, but is `{0}'".format(r)) | ||
58 | m = r.search(stream.decode(), flags) | ||
59 | if not m: | ||
60 | print("Failed to find `{1}' in {0}, which is is `{2}'".format(s, r.pattern, stream)) | ||
61 | sys.exit(2) | ||
62 | stream = stream[m.end():] | ||
63 | if s == 'stdout': | ||
64 | self.stdo = stream | ||
65 | else: | ||
66 | self.stde = stream | ||
67 | return m | ||
68 | |||
69 | def read(self, s, size=-1): | ||
70 | stream = self.stdo if s == 'stdout' else self.stde | ||
71 | result = "" | ||
72 | if size < 0: | ||
73 | result = stream | ||
74 | new_stream = "" | ||
75 | else: | ||
76 | result = stream[0:size] | ||
77 | new_stream = stream[size:] | ||
78 | if s == 'stdout': | ||
79 | self.stdo = new_stream | ||
80 | else: | ||
81 | self.stde = new_stream | ||
82 | return result | ||
diff --git a/contrib/scripts/lint-python.sh b/contrib/scripts/lint-python.sh new file mode 100755 index 000000000..9f7e0462d --- /dev/null +++ b/contrib/scripts/lint-python.sh | |||
@@ -0,0 +1,24 @@ | |||
1 | #!/bin/sh | ||
2 | # check python style (and 2 to 3 migration) | ||
3 | |||
4 | rm python-lint.log | ||
5 | |||
6 | if [ -e "python" ] | ||
7 | then | ||
8 | python --version >> python-lint.log | ||
9 | fi | ||
10 | |||
11 | if [ -e "python2" ] | ||
12 | then | ||
13 | python2 --version >> python-lint.log | ||
14 | fi | ||
15 | |||
16 | if [ -e "python3" ] | ||
17 | then | ||
18 | python3 --version >> python-lint.log | ||
19 | fi | ||
20 | |||
21 | flake8 >> python-lint.log | ||
22 | |||
23 | 2to3 -v -d . >> python-lint.log | ||
24 | 2to3 -v -p . >> python-lint.log | ||
diff --git a/contrib/process_log.sh b/contrib/scripts/process_log.sh index c25c515c2..c25c515c2 100755 --- a/contrib/process_log.sh +++ b/contrib/scripts/process_log.sh | |||
diff --git a/contrib/pydiffer.py.in b/contrib/scripts/pydiffer.py.in index 10145371c..10145371c 100644 --- a/contrib/pydiffer.py.in +++ b/contrib/scripts/pydiffer.py.in | |||
diff --git a/contrib/pydmesg b/contrib/scripts/pydmesg index d60e08fe3..d60e08fe3 100755 --- a/contrib/pydmesg +++ b/contrib/scripts/pydmesg | |||
diff --git a/contrib/regression.sh b/contrib/scripts/regression.sh index 1f799797a..1f799797a 100755 --- a/contrib/regression.sh +++ b/contrib/scripts/regression.sh | |||
diff --git a/contrib/scripts/removetrailingwhitespace.py.in b/contrib/scripts/removetrailingwhitespace.py.in new file mode 100755 index 000000000..5824fb591 --- /dev/null +++ b/contrib/scripts/removetrailingwhitespace.py.in | |||
@@ -0,0 +1,15 @@ | |||
1 | #!@PYTHON@ | ||
2 | |||
3 | import sys | ||
4 | import re | ||
5 | |||
6 | |||
7 | for fileName in sys.argv[1:]: | ||
8 | f = open(fileName, 'r+') | ||
9 | fileString = f.read() | ||
10 | |||
11 | fileString = re.sub(r'[ ]+\n', r'\n', fileString) | ||
12 | fileString = re.sub(r'\r', r'', fileString) | ||
13 | f.seek(0) | ||
14 | f.write(fileString) | ||
15 | f.truncate(len(fileString)) | ||
diff --git a/contrib/revisionary.sh b/contrib/scripts/revisionary.sh index 5778cf148..5778cf148 100755 --- a/contrib/revisionary.sh +++ b/contrib/scripts/revisionary.sh | |||
diff --git a/contrib/scripts/terminate.py.in b/contrib/scripts/terminate.py.in new file mode 100644 index 000000000..30f5dc97f --- /dev/null +++ b/contrib/scripts/terminate.py.in | |||
@@ -0,0 +1,66 @@ | |||
1 | #!@PYTHON@ | ||
2 | # This file is part of GNUnet. | ||
3 | # (C) 2011, 2018 Christian Grothoff (and other contributing authors) | ||
4 | # | ||
5 | # GNUnet is free software: you can redistribute it and/or modify it | ||
6 | # under the terms of the GNU Affero General Public License as published | ||
7 | # by the Free Software Foundation, either version 3 of the License, or | ||
8 | # (at your option) any later version. | ||
9 | # | ||
10 | # GNUnet is distributed in the hope that it will be useful, but | ||
11 | # WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | # Affero General Public License for more details. | ||
14 | # | ||
15 | # You should have received a copy of the GNU Affero General Public License | ||
16 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | # | ||
18 | # Utility module that implements safe process termination for W32. | ||
19 | # For other platforms it's equivalent to Popen.kill () | ||
20 | # Requires pywin32 on W32. | ||
21 | |||
22 | import sys | ||
23 | import subprocess | ||
24 | import os | ||
25 | if os.name == 'nt': | ||
26 | import win32api | ||
27 | import win32process | ||
28 | |||
29 | |||
30 | class dummyobj (object): | ||
31 | pass | ||
32 | |||
33 | |||
34 | def safe_terminate_process_by_pid(pid, code): | ||
35 | if os.name == 'nt': | ||
36 | p = dummyobj() | ||
37 | p._handle = win32api.OpenProcess(2 | 1024 | 8 | 32 | 16, 0, pid) | ||
38 | result = safe_terminate_process(p, code) | ||
39 | win32api.CloseHandle(p._handle) | ||
40 | return result | ||
41 | else: | ||
42 | # XXX (F821): Undefined name 'SIGKILL' | ||
43 | return os.kill(int(pid), SIGKILL) | ||
44 | |||
45 | |||
46 | def safe_terminate_process(proc, code): | ||
47 | if os.name == 'nt': | ||
48 | cp = win32api.GetCurrentProcess() | ||
49 | result = False | ||
50 | dupproc = win32api.DuplicateHandle(cp, proc._handle, cp, 2 | 1024 | 8 | 32 | 16, 0, 0) | ||
51 | try: | ||
52 | exitcode = win32process.GetExitCodeProcess(dupproc) | ||
53 | if exitcode == 0x103: | ||
54 | kernel32 = win32api.GetModuleHandle("kernel32") | ||
55 | exitprocess = win32api.GetProcAddress(kernel32, "ExitProcess") | ||
56 | th, tid = win32process.CreateRemoteThread(dupproc, None, 0, exitprocess, code, 0) | ||
57 | win32api.CloseHandle(th) | ||
58 | result = True | ||
59 | else: | ||
60 | result = True | ||
61 | # except failed to get exit code? failed to get module handle? | ||
62 | finally: | ||
63 | win32api.CloseHandle(dupproc) | ||
64 | return result | ||
65 | else: | ||
66 | return proc.kill() | ||
diff --git a/contrib/testbed_cleanup.sh b/contrib/scripts/testbed_cleanup.sh index 57413fba0..57413fba0 100755 --- a/contrib/testbed_cleanup.sh +++ b/contrib/scripts/testbed_cleanup.sh | |||
diff --git a/contrib/scripts/texinfo-hacks.el b/contrib/scripts/texinfo-hacks.el new file mode 100644 index 000000000..bfb5c98fa --- /dev/null +++ b/contrib/scripts/texinfo-hacks.el | |||
@@ -0,0 +1,18 @@ | |||
1 | ;;;; hacks.el --- a few functions to help me work on the manual | ||
2 | ;;;; Jim Blandy <jimb@red-bean.com> --- October 1998 | ||
3 | ;;;; -- imported from https://git.savannah.gnu.org/cgit/guile.git/tree/doc/hacks.el | ||
4 | ;;;; This code should be covered by the same license as GNU Guile (GPL3). | ||
5 | |||
6 | (defun jh-exemplify-region (start end) | ||
7 | (interactive "r") | ||
8 | (save-excursion | ||
9 | (save-restriction | ||
10 | (narrow-to-region start end) | ||
11 | |||
12 | ;; Texinfo doesn't handle tabs well. | ||
13 | (untabify (point-min) (point-max)) | ||
14 | |||
15 | ;; Quote any characters special to texinfo. | ||
16 | (goto-char (point-min)) | ||
17 | (while (re-search-forward "[{}@]" nil t) | ||
18 | (replace-match "@\\&"))))) | ||
diff --git a/contrib/visualize_stats.sh b/contrib/scripts/visualize_stats.sh index 87d8fc6c4..aaa5e657b 100755 --- a/contrib/visualize_stats.sh +++ b/contrib/scripts/visualize_stats.sh | |||
@@ -34,7 +34,7 @@ case "$1" in | |||
34 | NOW=`date +%s` | 34 | NOW=`date +%s` |
35 | RELAT=$[$NOW-$STARTTIME] | 35 | RELAT=$[$NOW-$STARTTIME] |
36 | gnunet-statistics | while read KEY VALUE; do | 36 | gnunet-statistics | while read KEY VALUE; do |
37 | 37 | KEY=`echo $KEY | tr / .` | |
38 | # Collect stats of previous round | 38 | # Collect stats of previous round |
39 | if [ -e "$STATDIR/$KEY.dat" ]; then | 39 | if [ -e "$STATDIR/$KEY.dat" ]; then |
40 | PREV=`tail --lines=1 "$STATDIR/$KEY.dat" | sed -e "s/.* //g"` | 40 | PREV=`tail --lines=1 "$STATDIR/$KEY.dat" | sed -e "s/.* //g"` |
diff --git a/contrib/scripts/zonewalk-to-types.sh b/contrib/scripts/zonewalk-to-types.sh new file mode 100755 index 000000000..dfe15a8e3 --- /dev/null +++ b/contrib/scripts/zonewalk-to-types.sh | |||
@@ -0,0 +1,35 @@ | |||
1 | #!/bin/sh | ||
2 | # This script is in the public domain. | ||
3 | # Converts the output of gnunet-zonewalk (DNS resolutions) | ||
4 | # into a proper input for gnunet-gns-benchmark. | ||
5 | |||
6 | NUM_CLIENTS=3 | ||
7 | # How many different groups of names should we | ||
8 | # create? 1/N will be in the 'shared' group. | ||
9 | |||
10 | # FILE ($1) contains results from DNS lookup; strip | ||
11 | # everything but the hostnames, remove duplicates | ||
12 | # and then randomize the order. | ||
13 | cat $1 | grep -v SOA | awk '{print $1}' | sort | uniq | shuf > $1.tmp | ||
14 | TOTAL=`cat $1.tmp | wc -l` | ||
15 | GROUP_SIZE=`expr $TOTAL / \( $NUM_CLIENTS + 1 \)` | ||
16 | echo "Creating $NUM_CLIENTS benchmark sets with 2x $GROUP_SIZE entries each." | ||
17 | # First group (0) is to be shared among all clients | ||
18 | for i in `seq 1 $NUM_CLIENTS` | ||
19 | do | ||
20 | cat $1.tmp | head -n $GROUP_SIZE | awk "{print 0 \" \" \$1}" > $1.$i.tmp | ||
21 | done | ||
22 | |||
23 | # Second group (1) is unique per client | ||
24 | OFF=$GROUP_SIZE | ||
25 | for i in `seq 1 $NUM_CLIENTS` | ||
26 | do | ||
27 | END=`expr $OFF + $GROUP_SIZE` | ||
28 | cat $1.tmp | head -n $END | tail -n $GROUP_SIZE | awk "{print 1 \" \" \$1}" >> $1.$i.tmp | ||
29 | # Shuffle again, so we mix the different request categories in terms of | ||
30 | # when we issue the queries. | ||
31 | cat $1.$i.tmp | shuf > $1.$i | ||
32 | OFF="$END" | ||
33 | rm $1.$i.tmp | ||
34 | done | ||
35 | rm $1.tmp | ||
diff --git a/contrib/services/openrc/gnunet.initd b/contrib/services/openrc/gnunet.initd new file mode 100644 index 000000000..c042e3de1 --- /dev/null +++ b/contrib/services/openrc/gnunet.initd | |||
@@ -0,0 +1,82 @@ | |||
1 | #!/sbin/openrc-run | ||
2 | # Copyright 1999-2016 Gentoo Foundation | ||
3 | # Distributed under the terms of the GNU General Public License v2 | ||
4 | |||
5 | if [ -d /run ] ; then | ||
6 | PIDFILE=${PIDFILE:-/run/gnunet/arm-service.pid} | ||
7 | else | ||
8 | PIDFILE=${PIDFILE:-/var/run/gnunet/arm-service.pid} | ||
9 | fi | ||
10 | |||
11 | depend() { | ||
12 | # FIXME: refine? | ||
13 | need net | ||
14 | } | ||
15 | |||
16 | GNUNET_PATH="/usr" | ||
17 | GNUNET_HOME="/var/lib/gnunet" | ||
18 | SUID_ROOT_HELPERS="exit nat-server nat-client transport-bluetooth transport-wlan vpn" | ||
19 | |||
20 | chmodown_execbin() { | ||
21 | if [ -x $1 ]; then | ||
22 | if [ "$3" ]; then | ||
23 | chown $3 $1 2>/dev/null && chmod $2 $1 | ||
24 | else | ||
25 | chmod $2 $1 | ||
26 | fi | ||
27 | fi | ||
28 | } | ||
29 | |||
30 | checkconfig() { | ||
31 | if [ -n "$(find ${GNUNET_HOME}/.local/share/gnunet -maxdepth 1 -name gnunet.conf -perm +0044)" ] ; then | ||
32 | eerror "${conf} must not be world or group readable. Try:" | ||
33 | eerror " chmod 600 ${conf}" | ||
34 | eerror " chown gnunet:gnunet ${conf}" | ||
35 | return 1 | ||
36 | fi | ||
37 | mkdir -p ${GNUNET_HOME}/.cache/gnunet | ||
38 | |||
39 | # taken from dangole's lede config.. thx! | ||
40 | local libexec="${GNUNET_PATH}/lib/gnunet/libexec" # why not /usr/libexec/gnunet ? | ||
41 | # not reliable enough: | ||
42 | #[ -e ${libexec}/.permfix ] && return | ||
43 | for helper in $SUID_ROOT_HELPERS; do | ||
44 | chmodown_execbin ${libexec}/gnunet-helper-$helper u+s | ||
45 | done | ||
46 | chmodown_execbin ${libexec}/gnunet-helper-dns 4750 root:gnunetdns | ||
47 | chmodown_execbin ${libexec}/gnunet-service-dns 2750 gnunet:gnunetdns | ||
48 | #touch ${libexec}/.permfix | ||
49 | } | ||
50 | |||
51 | start() { | ||
52 | checkconfig || return 1 | ||
53 | |||
54 | local piddir=$(dirname ${PIDFILE}) | ||
55 | if [ ! -d ${piddir} ] ; then | ||
56 | ebegin "Making ${piddir}" | ||
57 | mkdir -p ${piddir} | ||
58 | eend $? | ||
59 | ebegin "Changing permissions of ${piddir}" | ||
60 | chown gnunet:gnunet ${piddir} | ||
61 | eend $? | ||
62 | fi | ||
63 | |||
64 | ebegin "Starting ${SVCNAME}" | ||
65 | # shouldn't be necessary... but | ||
66 | start-stop-daemon --start --user gnunet --name gnunet --pidfile ${PIDFILE} \ | ||
67 | --exec ${GNUNET_PATH}/lib/gnunet/libexec/gnunet-service-arm -- -d | ||
68 | # flags to be passed to the process appear after the double-dash | ||
69 | eend $? | ||
70 | } | ||
71 | |||
72 | stop() { | ||
73 | ebegin "Stopping ${SVCNAME}" | ||
74 | start-stop-daemon --stop --signal QUIT --pidfile ${PIDFILE} | ||
75 | sleep 1 | ||
76 | killall -u gnunet | ||
77 | sleep 1 | ||
78 | rm -rf /tmp/gnunet-gnunet-runtime >/dev/null 2>&1 | ||
79 | rm -rf /tmp/gnunet-system-runtime >/dev/null 2>&1 | ||
80 | eend $? | ||
81 | } | ||
82 | |||
diff --git a/contrib/terminate.py.in b/contrib/terminate.py.in deleted file mode 100644 index 4a6719f38..000000000 --- a/contrib/terminate.py.in +++ /dev/null | |||
@@ -1,64 +0,0 @@ | |||
1 | #!@PYTHON@ | ||
2 | # This file is part of GNUnet. | ||
3 | # (C) 2011 Christian Grothoff (and other contributing authors) | ||
4 | # | ||
5 | # GNUnet is free software; you can redistribute it and/or modify | ||
6 | # it under the terms of the GNU General Public License as published | ||
7 | # by the Free Software Foundation; either version 2, or (at your | ||
8 | # option) any later version. | ||
9 | # | ||
10 | # GNUnet is distributed in the hope that it will be useful, but | ||
11 | # WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | # General Public License for more details. | ||
14 | # | ||
15 | # You should have received a copy of the GNU General Public License | ||
16 | # along with GNUnet; see the file COPYING. If not, write to the | ||
17 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
18 | # Boston, MA 02110-1301, USA. | ||
19 | # | ||
20 | # Utility module that implements safe process termination for W32. | ||
21 | # For other platforms it's equivalent to Popen.kill () | ||
22 | # Requires pywin32 on W32. | ||
23 | |||
24 | import sys | ||
25 | import os | ||
26 | import subprocess | ||
27 | if os.name == 'nt': | ||
28 | import win32api | ||
29 | import win32process | ||
30 | |||
31 | class dummyobj (object): | ||
32 | pass | ||
33 | |||
34 | def safe_terminate_process_by_pid (pid, code): | ||
35 | if os.name == 'nt': | ||
36 | p = dummyobj () | ||
37 | p._handle = win32api.OpenProcess (2 | 1024 | 8 | 32 | 16, 0, pid) | ||
38 | result = safe_terminate_process (p, code) | ||
39 | win32api.CloseHandle (p._handle) | ||
40 | return result | ||
41 | else: | ||
42 | return os.kill (int (pid), SIGKILL) | ||
43 | |||
44 | def safe_terminate_process (proc, code): | ||
45 | if os.name == 'nt': | ||
46 | cp = win32api.GetCurrentProcess () | ||
47 | result = False | ||
48 | dupproc = win32api.DuplicateHandle (cp, proc._handle, cp, 2 | 1024 | 8 | 32 | 16, 0, 0) | ||
49 | try: | ||
50 | exitcode = win32process.GetExitCodeProcess (dupproc) | ||
51 | if exitcode == 0x103: | ||
52 | kernel32 = win32api.GetModuleHandle ("kernel32") | ||
53 | exitprocess = win32api.GetProcAddress (kernel32, "ExitProcess") | ||
54 | th, tid = win32process.CreateRemoteThread (dupproc, None, 0, exitprocess, code, 0) | ||
55 | win32api.CloseHandle (th) | ||
56 | result = True | ||
57 | else: | ||
58 | result = True | ||
59 | # except failed to get exit code? failed to get module handle? | ||
60 | finally: | ||
61 | win32api.CloseHandle (dupproc) | ||
62 | return result | ||
63 | else: | ||
64 | return proc.kill () | ||
diff --git a/contrib/test_gnunet_prefix.c b/contrib/test_gnunet_prefix.c index 0e5325d5f..4614ee9e2 100644 --- a/contrib/test_gnunet_prefix.c +++ b/contrib/test_gnunet_prefix.c | |||
@@ -1,21 +1,19 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of GNUnet | 2 | This file is part of GNUnet |
3 | Copyright (C) 2011, 2014 GNUnet e.V. | 3 | Copyright (C) 2011, 2014 GNUnet e.V. |
4 | 4 | ||
5 | GNUnet is free software; you can redistribute it and/or modify | 5 | GNUnet is free software: you can redistribute it and/or modify it |
6 | it under the terms of the GNU General Public License as published | 6 | under the terms of the GNU Affero General Public License as published |
7 | by the Free Software Foundation; either version 3, or (at your | 7 | by the Free Software Foundation, either version 3 of the License, or |
8 | option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | GNUnet is distributed in the hope that it will be useful, but | 10 | GNUnet is distributed in the hope that it will be useful, but |
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | General Public License for more details. | 13 | Affero General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU Affero General Public License |
16 | along with GNUnet; see the file COPYING. If not, write to the | 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
18 | Boston, MA 02110-1301, USA. | ||
19 | */ | 17 | */ |
20 | 18 | ||
21 | /** | 19 | /** |
diff --git a/contrib/testbed_configs/regex_profiler_infiniband.conf b/contrib/testbed_configs/regex_profiler_infiniband.conf index 206423011..2a748ac51 100644 --- a/contrib/testbed_configs/regex_profiler_infiniband.conf +++ b/contrib/testbed_configs/regex_profiler_infiniband.conf | |||
@@ -1,5 +1,5 @@ | |||
1 | [testbed] | 1 | [testbed] |
2 | AUTOSTART = NO | 2 | START_ON_DEMAND = NO |
3 | PORT = 11999 | 3 | PORT = 11999 |
4 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; | 4 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; |
5 | HOSTNAME = localhost | 5 | HOSTNAME = localhost |
@@ -13,7 +13,7 @@ BINARY = /home/szengel/gnunet/src/cadet/.libs/gnunet-daemon-regexprofiler | |||
13 | REGEX_PREFIX = "GNVPN-0001-PAD" | 13 | REGEX_PREFIX = "GNVPN-0001-PAD" |
14 | 14 | ||
15 | [cadet] | 15 | [cadet] |
16 | AUTOSTART = YES | 16 | START_ON_DEMAND = YES |
17 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; | 17 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; |
18 | APP_ANNOUNCE_TIME = 240 s | 18 | APP_ANNOUNCE_TIME = 240 s |
19 | ID_ANNOUNCE_TIME = 120 m | 19 | ID_ANNOUNCE_TIME = 120 m |
@@ -22,7 +22,7 @@ PORT = 12001 | |||
22 | DHT_REPLICATION_LEVEL = 3 | 22 | DHT_REPLICATION_LEVEL = 3 |
23 | 23 | ||
24 | [dht] | 24 | [dht] |
25 | AUTOSTART = YES | 25 | START_ON_DEMAND = YES |
26 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; | 26 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; |
27 | HOSTNAME = localhost | 27 | HOSTNAME = localhost |
28 | # Do not allow DHT to create extra connections, beyond those testbed created | 28 | # Do not allow DHT to create extra connections, beyond those testbed created |
@@ -41,14 +41,14 @@ DISABLE_BF = YES | |||
41 | IN_MEMORY = YES | 41 | IN_MEMORY = YES |
42 | 42 | ||
43 | [fs] | 43 | [fs] |
44 | AUTOSTART = NO | 44 | START_ON_DEMAND = NO |
45 | 45 | ||
46 | [resolver] | 46 | [resolver] |
47 | AUTOSTART = NO | 47 | START_ON_DEMAND = NO |
48 | HOSTNAME = localhost | 48 | HOSTNAME = localhost |
49 | 49 | ||
50 | [transport] | 50 | [transport] |
51 | AUTOSTART = YES | 51 | START_ON_DEMAND = YES |
52 | PLUGINS = tcp | 52 | PLUGINS = tcp |
53 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; | 53 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; |
54 | ACCEPT_FROM6 = ::1; | 54 | ACCEPT_FROM6 = ::1; |
@@ -60,7 +60,7 @@ WAN_QUOTA_OUT = 3932160 | |||
60 | WAN_QUOTA_IN = 3932160 | 60 | WAN_QUOTA_IN = 3932160 |
61 | 61 | ||
62 | [core] | 62 | [core] |
63 | AUTOSTART = YES | 63 | START_ON_DEMAND = YES |
64 | 64 | ||
65 | [transport-tcp] | 65 | [transport-tcp] |
66 | TIMEOUT = 300 s | 66 | TIMEOUT = 300 s |
@@ -74,7 +74,7 @@ ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; | |||
74 | 74 | ||
75 | [statistics] | 75 | [statistics] |
76 | PORT = 12008 | 76 | PORT = 12008 |
77 | AUTOSTART = YES | 77 | START_ON_DEMAND = YES |
78 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; | 78 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; |
79 | DISABLE = NO | 79 | DISABLE = NO |
80 | 80 | ||
@@ -86,18 +86,18 @@ USE_PROGRESSBARS = YES | |||
86 | PEERGROUP_TIMEOUT = 2400 s | 86 | PEERGROUP_TIMEOUT = 2400 s |
87 | 87 | ||
88 | [PATHS] | 88 | [PATHS] |
89 | SERVICEHOME = /tmp/perf-regex/ | 89 | SERVICEHOME = $GNUNET_TMP/perf-regex/ |
90 | 90 | ||
91 | [dns] | 91 | [dns] |
92 | AUTOSTART = NO | 92 | START_ON_DEMAND = NO |
93 | 93 | ||
94 | [nse] | 94 | [nse] |
95 | AUTOSTART = YES | 95 | START_ON_DEMAND = YES |
96 | # Minimize proof-of-work CPU consumption by NSE | 96 | # Minimize proof-of-work CPU consumption by NSE |
97 | WORKBITS = 1 | 97 | WORKBITS = 1 |
98 | 98 | ||
99 | [vpn] | 99 | [vpn] |
100 | AUTOSTART = NO | 100 | START_ON_DEMAND = NO |
101 | 101 | ||
102 | [nat] | 102 | [nat] |
103 | # Allow running on systems with only loopback? | 103 | # Allow running on systems with only loopback? |
diff --git a/contrib/testbed_configs/testbed_cluster.conf b/contrib/testbed_configs/testbed_cluster.conf index 6d646a0ce..62c83ec78 100644 --- a/contrib/testbed_configs/testbed_cluster.conf +++ b/contrib/testbed_configs/testbed_cluster.conf | |||
@@ -1,32 +1,32 @@ | |||
1 | [testbed] | 1 | [testbed] |
2 | AUTOSTART = NO | 2 | START_ON_DEMAND = NO |
3 | PORT = 12113 | 3 | PORT = 12113 |
4 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; 10.0.0.0/8; | 4 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; 10.0.0.0/8; |
5 | HOSTNAME = localhost | 5 | HOSTNAME = localhost |
6 | OVERLAY_TOPOLOGY = RANDOM | 6 | OVERLAY_TOPOLOGY = RANDOM |
7 | OVERLAY_RANDOM_LINKS = 10000 | 7 | OVERLAY_RANDOM_LINKS = 10000 |
8 | OPERATION_TIMEOUT = 45 s | 8 | OPERATION_TIMEOUT = 45 s |
9 | # LOG_FILE = /tmp/testbed.log | 9 | # LOG_FILE = $GNUNET_TMP/testbed.log |
10 | SETUP_TIMEOUT = 30m | 10 | SETUP_TIMEOUT = 30m |
11 | MAX_OPEN_FDS = 512 | 11 | MAX_OPEN_FDS = 512 |
12 | 12 | ||
13 | [fs] | 13 | [fs] |
14 | AUTOSTART = NO | 14 | START_ON_DEMAND = NO |
15 | 15 | ||
16 | [resolver] | 16 | [resolver] |
17 | AUTOSTART = NO | 17 | START_ON_DEMAND = NO |
18 | 18 | ||
19 | [cadet] | 19 | [cadet] |
20 | AUTOSTART = NO | 20 | START_ON_DEMAND = NO |
21 | PORT = 71 | 21 | PORT = 71 |
22 | 22 | ||
23 | [dht] | 23 | [dht] |
24 | AUTOSTART = NO | 24 | START_ON_DEMAND = NO |
25 | PORT = 70 | 25 | PORT = 70 |
26 | DISABLE_TRY_CONNECT = YES | 26 | DISABLE_TRY_CONNECT = YES |
27 | 27 | ||
28 | [statistics] | 28 | [statistics] |
29 | AUTOSTART = NO | 29 | START_ON_DEMAND = NO |
30 | PORT = 72 | 30 | PORT = 72 |
31 | 31 | ||
32 | [dhtcache] | 32 | [dhtcache] |
@@ -42,7 +42,7 @@ NEIGHBOUR_LIMIT = 10 | |||
42 | 42 | ||
43 | [core] | 43 | [core] |
44 | PORT = 12092 | 44 | PORT = 12092 |
45 | AUTOSTART = YES | 45 | START_ON_DEMAND = YES |
46 | USE_EPHEMERAL_KEYS = NO | 46 | USE_EPHEMERAL_KEYS = NO |
47 | 47 | ||
48 | [arm] | 48 | [arm] |
@@ -55,31 +55,31 @@ PORT = 12368 | |||
55 | BROADCAST = NO | 55 | BROADCAST = NO |
56 | 56 | ||
57 | [PATHS] | 57 | [PATHS] |
58 | SERVICEHOME = /tmp/test-testbed/ | 58 | SERVICEHOME = $GNUNET_TMP/test-testbed/ |
59 | 59 | ||
60 | [dns] | 60 | [dns] |
61 | AUTOSTART = NO | 61 | START_ON_DEMAND = NO |
62 | 62 | ||
63 | [nse] | 63 | [nse] |
64 | AUTOSTART = NO | 64 | START_ON_DEMAND = NO |
65 | 65 | ||
66 | [vpn] | 66 | [vpn] |
67 | AUTOSTART = NO | 67 | START_ON_DEMAND = NO |
68 | 68 | ||
69 | [nat] | 69 | [nat] |
70 | RETURN_LOCAL_ADDRESSES = YES | 70 | RETURN_LOCAL_ADDRESSES = YES |
71 | 71 | ||
72 | [gns] | 72 | [gns] |
73 | AUTOSTART = NO | 73 | START_ON_DEMAND = NO |
74 | 74 | ||
75 | [peerinfo] | 75 | [peerinfo] |
76 | NO_IO = YES | 76 | NO_IO = YES |
77 | 77 | ||
78 | [consensus] | 78 | [consensus] |
79 | AUTOSTART = NO | 79 | START_ON_DEMAND = NO |
80 | 80 | ||
81 | [dv] | 81 | [dv] |
82 | AUTOSTART = NO | 82 | START_ON_DEMAND = NO |
83 | 83 | ||
84 | [lockmanager] | 84 | [lockmanager] |
85 | AUTOSTART = NO | 85 | START_ON_DEMAND = NO |
diff --git a/contrib/testbed_configs/testbed_infiniband.conf b/contrib/testbed_configs/testbed_infiniband.conf index 7ad50d77a..812945eea 100644 --- a/contrib/testbed_configs/testbed_infiniband.conf +++ b/contrib/testbed_configs/testbed_infiniband.conf | |||
@@ -1,32 +1,32 @@ | |||
1 | [testbed] | 1 | [testbed] |
2 | AUTOSTART = NO | 2 | START_ON_DEMAND = NO |
3 | PORT = 12113 | 3 | PORT = 12113 |
4 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; | 4 | ACCEPT_FROM = 127.0.0.1; 192.168.1.0/24; |
5 | HOSTNAME = localhost | 5 | HOSTNAME = localhost |
6 | OVERLAY_TOPOLOGY = RANDOM | 6 | OVERLAY_TOPOLOGY = RANDOM |
7 | OVERLAY_RANDOM_LINKS = 1000 | 7 | OVERLAY_RANDOM_LINKS = 1000 |
8 | OPERATION_TIMEOUT = 45 s | 8 | OPERATION_TIMEOUT = 45 s |
9 | # LOG_FILE = /tmp/testbed.log | 9 | # LOG_FILE = $GNUNET_TMP/testbed.log |
10 | SETUP_TIMEOUT = 30m | 10 | SETUP_TIMEOUT = 30m |
11 | MAX_OPEN_FDS = 512 | 11 | MAX_OPEN_FDS = 512 |
12 | 12 | ||
13 | [fs] | 13 | [fs] |
14 | AUTOSTART = NO | 14 | START_ON_DEMAND = NO |
15 | 15 | ||
16 | [resolver] | 16 | [resolver] |
17 | AUTOSTART = NO | 17 | START_ON_DEMAND = NO |
18 | 18 | ||
19 | [cadet] | 19 | [cadet] |
20 | AUTOSTART = NO | 20 | START_ON_DEMAND = NO |
21 | PORT = 71 | 21 | PORT = 71 |
22 | 22 | ||
23 | [dht] | 23 | [dht] |
24 | AUTOSTART = NO | 24 | START_ON_DEMAND = NO |
25 | PORT = 70 | 25 | PORT = 70 |
26 | DISABLE_TRY_CONNECT = YES | 26 | DISABLE_TRY_CONNECT = YES |
27 | 27 | ||
28 | [statistics] | 28 | [statistics] |
29 | AUTOSTART = NO | 29 | START_ON_DEMAND = NO |
30 | PORT = 72 | 30 | PORT = 72 |
31 | 31 | ||
32 | [dhtcache] | 32 | [dhtcache] |
@@ -42,7 +42,7 @@ NEIGHBOUR_LIMIT = 10 | |||
42 | 42 | ||
43 | [core] | 43 | [core] |
44 | PORT = 12092 | 44 | PORT = 12092 |
45 | AUTOSTART = YES | 45 | START_ON_DEMAND = YES |
46 | USE_EPHEMERAL_KEYS = NO | 46 | USE_EPHEMERAL_KEYS = NO |
47 | 47 | ||
48 | [arm] | 48 | [arm] |
@@ -55,31 +55,31 @@ PORT = 12368 | |||
55 | BROADCAST = NO | 55 | BROADCAST = NO |
56 | 56 | ||
57 | [PATHS] | 57 | [PATHS] |
58 | SERVICEHOME = /tmp/test-testbed/ | 58 | SERVICEHOME = $GNUNET_TMP/test-testbed/ |
59 | 59 | ||
60 | [dns] | 60 | [dns] |
61 | AUTOSTART = NO | 61 | START_ON_DEMAND = NO |
62 | 62 | ||
63 | [nse] | 63 | [nse] |
64 | AUTOSTART = NO | 64 | START_ON_DEMAND = NO |
65 | 65 | ||
66 | [vpn] | 66 | [vpn] |
67 | AUTOSTART = NO | 67 | START_ON_DEMAND = NO |
68 | 68 | ||
69 | [nat] | 69 | [nat] |
70 | RETURN_LOCAL_ADDRESSES = YES | 70 | RETURN_LOCAL_ADDRESSES = YES |
71 | 71 | ||
72 | [gns] | 72 | [gns] |
73 | AUTOSTART = NO | 73 | START_ON_DEMAND = NO |
74 | 74 | ||
75 | [peerinfo] | 75 | [peerinfo] |
76 | NO_IO = YES | 76 | NO_IO = YES |
77 | 77 | ||
78 | [consensus] | 78 | [consensus] |
79 | AUTOSTART = NO | 79 | START_ON_DEMAND = NO |
80 | 80 | ||
81 | [dv] | 81 | [dv] |
82 | AUTOSTART = NO | 82 | START_ON_DEMAND = NO |
83 | 83 | ||
84 | [lockmanager] | 84 | [lockmanager] |
85 | AUTOSTART = NO | 85 | START_ON_DEMAND = NO |
diff --git a/contrib/testbed_configs/testbed_supermuc.conf b/contrib/testbed_configs/testbed_supermuc.conf index 35c6e0789..47bfee43c 100644 --- a/contrib/testbed_configs/testbed_supermuc.conf +++ b/contrib/testbed_configs/testbed_supermuc.conf | |||
@@ -1,5 +1,5 @@ | |||
1 | [testbed] | 1 | [testbed] |
2 | AUTOSTART = NO | 2 | START_ON_DEMAND = NO |
3 | PORT = 12113 | 3 | PORT = 12113 |
4 | ACCEPT_FROM = 127.0.0.1;10.0.0.0/8; | 4 | ACCEPT_FROM = 127.0.0.1;10.0.0.0/8; |
5 | HOSTNAME = localhost | 5 | HOSTNAME = localhost |
@@ -8,28 +8,28 @@ MAX_PARALLEL_OPERATIONS = 500 | |||
8 | OVERLAY_TOPOLOGY = 2D_TORUS | 8 | OVERLAY_TOPOLOGY = 2D_TORUS |
9 | OVERLAY_RANDOM_LINKS = 4000 | 9 | OVERLAY_RANDOM_LINKS = 4000 |
10 | OPERATION_TIMEOUT = 10 s | 10 | OPERATION_TIMEOUT = 10 s |
11 | # LOG_FILE = /tmp/testbed.log | 11 | # LOG_FILE = $GNUNET_TMP/testbed.log |
12 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args | 12 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args |
13 | MAX_OPEN_FDS=512 | 13 | MAX_OPEN_FDS=512 |
14 | SETUP_TIMEOUT = 30 m | 14 | SETUP_TIMEOUT = 30 m |
15 | 15 | ||
16 | [fs] | 16 | [fs] |
17 | AUTOSTART = NO | 17 | START_ON_DEMAND = NO |
18 | 18 | ||
19 | [resolver] | 19 | [resolver] |
20 | AUTOSTART = NO | 20 | START_ON_DEMAND = NO |
21 | 21 | ||
22 | [cadet] | 22 | [cadet] |
23 | AUTOSTART = NO | 23 | START_ON_DEMAND = NO |
24 | PORT = 71 | 24 | PORT = 71 |
25 | 25 | ||
26 | [dht] | 26 | [dht] |
27 | AUTOSTART = NO | 27 | START_ON_DEMAND = NO |
28 | PORT = 70 | 28 | PORT = 70 |
29 | DISABLE_TRY_CONNECT = YES | 29 | DISABLE_TRY_CONNECT = YES |
30 | 30 | ||
31 | [statistics] | 31 | [statistics] |
32 | AUTOSTART = NO | 32 | START_ON_DEMAND = NO |
33 | PORT = 72 | 33 | PORT = 72 |
34 | 34 | ||
35 | [dhtcache] | 35 | [dhtcache] |
@@ -45,7 +45,7 @@ NEIGHBOUR_LIMIT = 10 | |||
45 | 45 | ||
46 | [core] | 46 | [core] |
47 | PORT = 12092 | 47 | PORT = 12092 |
48 | AUTOSTART = YES | 48 | START_ON_DEMAND = YES |
49 | USE_EPHEMERAL_KEYS = NO | 49 | USE_EPHEMERAL_KEYS = NO |
50 | 50 | ||
51 | [arm] | 51 | [arm] |
@@ -59,14 +59,14 @@ PORT = 12368 | |||
59 | BROADCAST = NO | 59 | BROADCAST = NO |
60 | 60 | ||
61 | [PATHS] | 61 | [PATHS] |
62 | SERVICEHOME = /tmp/test-testbed/ | 62 | SERVICEHOME = $GNUNET_TMP/test-testbed/ |
63 | 63 | ||
64 | [nat] | 64 | [nat] |
65 | BEHIND_NAT = NO | 65 | BEHIND_NAT = NO |
66 | RETURN_LOCAL_ADDRESSES = NO | 66 | RETURN_LOCAL_ADDRESSES = NO |
67 | 67 | ||
68 | [peerinfo] | 68 | [peerinfo] |
69 | AUTOSTART = NO | 69 | START_ON_DEMAND = NO |
70 | NO_IO = YES | 70 | NO_IO = YES |
71 | 71 | ||
72 | [testing] | 72 | [testing] |
diff --git a/contrib/testbed_perfhacks.patch b/contrib/testbed_perfhacks.patch deleted file mode 100644 index 1ad524a30..000000000 --- a/contrib/testbed_perfhacks.patch +++ /dev/null | |||
@@ -1,90 +0,0 @@ | |||
1 | Index: src/include/gnunet_constants.h | ||
2 | =================================================================== | ||
3 | --- src/include/gnunet_constants.h (revision 26030) | ||
4 | +++ src/include/gnunet_constants.h (working copy) | ||
5 | @@ -49,7 +49,7 @@ | ||
6 | * After how long do we consider a connection to a peer dead | ||
7 | * if we don't receive messages from the peer? | ||
8 | */ | ||
9 | -#define GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 5) | ||
10 | +#define GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS, 5) | ||
11 | |||
12 | /** | ||
13 | * How long do we delay reading more from a peer after a quota violation? | ||
14 | @@ -61,7 +61,7 @@ | ||
15 | * even if we assume that the service commonly does not | ||
16 | * respond instantly (DNS, Database, etc.). | ||
17 | */ | ||
18 | -#define GNUNET_CONSTANTS_SERVICE_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 10) | ||
19 | +#define GNUNET_CONSTANTS_SERVICE_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS, 10) | ||
20 | |||
21 | /** | ||
22 | * How long do we delay messages to get larger packet sizes (CORKing)? | ||
23 | Index: src/transport/gnunet-service-transport_neighbours.c | ||
24 | =================================================================== | ||
25 | --- src/transport/gnunet-service-transport_neighbours.c (revision 26030) | ||
26 | +++ src/transport/gnunet-service-transport_neighbours.c (working copy) | ||
27 | @@ -65,7 +65,7 @@ | ||
28 | * send 3 keepalives in each interval, so 3 messages would need to be | ||
29 | * lost in a row for a disconnect). | ||
30 | */ | ||
31 | -#define KEEPALIVE_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 100) | ||
32 | +#define KEEPALIVE_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS, 100) | ||
33 | |||
34 | /** | ||
35 | * How long are we willing to wait for a response from ATS before timing out? | ||
36 | Index: src/transport/gnunet-service-transport_validation.c | ||
37 | =================================================================== | ||
38 | --- src/transport/gnunet-service-transport_validation.c (revision 26030) | ||
39 | +++ src/transport/gnunet-service-transport_validation.c (working copy) | ||
40 | @@ -43,7 +43,7 @@ | ||
41 | * OTOH, we don't want to spend too much time generating PONG signatures, | ||
42 | * so they must have some lifetime to reduce our CPU usage. | ||
43 | */ | ||
44 | -#define PONG_SIGNATURE_LIFETIME GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_HOURS, 1) | ||
45 | +#define PONG_SIGNATURE_LIFETIME GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_HOURS, 12) | ||
46 | |||
47 | /** | ||
48 | * After how long do we expire an address in a HELLO that we just | ||
49 | @@ -58,24 +58,24 @@ | ||
50 | * we cannot validate (because after this time we can destroy the | ||
51 | * validation record). | ||
52 | */ | ||
53 | -#define UNVALIDATED_PING_KEEPALIVE GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 5) | ||
54 | +#define UNVALIDATED_PING_KEEPALIVE GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_HOURS, 4) | ||
55 | |||
56 | /** | ||
57 | * How often do we PING an address that we have successfully validated | ||
58 | * in the past but are not actively using? Should be (significantly) | ||
59 | * smaller than HELLO_ADDRESS_EXPIRATION. | ||
60 | */ | ||
61 | -#define VALIDATED_PING_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 15) | ||
62 | +#define VALIDATED_PING_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_HOURS, 6) | ||
63 | |||
64 | /** | ||
65 | * How often do we PING an address that we are currently using? | ||
66 | */ | ||
67 | -#define CONNECTED_PING_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 2) | ||
68 | +#define CONNECTED_PING_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS, 2) | ||
69 | |||
70 | /** | ||
71 | * How much delay is acceptable for sending the PING or PONG? | ||
72 | */ | ||
73 | -#define ACCEPTABLE_PING_DELAY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 1) | ||
74 | +#define ACCEPTABLE_PING_DELAY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 1) | ||
75 | |||
76 | /** | ||
77 | * Size of the validation map hashmap. | ||
78 | @@ -745,9 +745,9 @@ | ||
79 | void | ||
80 | GST_validation_start (unsigned int max_fds) | ||
81 | { | ||
82 | - validation_next = GNUNET_TIME_absolute_get(); | ||
83 | - validation_delay.rel_value = (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT.rel_value) / max_fds; | ||
84 | - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Delay between validations: %u ms\n ", validation_delay.rel_value); | ||
85 | + validation_next = GNUNET_TIME_absolute_get(); | ||
86 | + validation_delay.rel_value = GNUNET_TIME_UNIT_MILLISECONDS.rel_value; | ||
87 | + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Delay between validations: %u ms\n ", validation_delay.rel_value); | ||
88 | validation_map = GNUNET_CONTAINER_multihashmap_create (VALIDATION_MAP_SIZE, | ||
89 | GNUNET_NO); | ||
90 | pnc = GNUNET_PEERINFO_notify (GST_cfg, &process_peerinfo_hello, NULL); | ||
diff --git a/contrib/testbed_setup_pre_ecc_tree.sh b/contrib/testbed_setup_pre_ecc_tree.sh deleted file mode 100755 index 4c6920144..000000000 --- a/contrib/testbed_setup_pre_ecc_tree.sh +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | svn up -r26032 | ||
4 | svn up -r26167 src/nse/ | ||
5 | svn up -r26079 src/include/gnunet_helper_lib.h src/util/helper.c | ||
6 | svn up -r26219 src/include/gnunet_protocols.h | ||
7 | svn up src/include/gnunet_testbed_service.h src/testbed/ src/regex/ src/dht/ | ||
8 | svn up contrib | ||
9 | svn up configure.ac | ||
diff --git a/contrib/timeout_watchdog.c b/contrib/timeout_watchdog.c deleted file mode 100644 index fc61a7cc7..000000000 --- a/contrib/timeout_watchdog.c +++ /dev/null | |||
@@ -1,118 +0,0 @@ | |||
1 | /* | ||
2 | This file is part of GNUnet | ||
3 | Copyright (C) 2010 GNUnet e.V. | ||
4 | |||
5 | GNUnet is free software; you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published | ||
7 | by the Free Software Foundation; either version 3, or (at your | ||
8 | option) any later version. | ||
9 | |||
10 | GNUnet is distributed in the hope that it will be useful, but | ||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with GNUnet; see the file COPYING. If not, write to the | ||
17 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
18 | Boston, MA 02110-1301, USA. | ||
19 | */ | ||
20 | |||
21 | /** | ||
22 | * @file contrib/timeout_watchdog.c | ||
23 | * @brief small tool starting a child process, waiting that it terminates or killing it after a given timeout period | ||
24 | * @author Matthias Wachs | ||
25 | */ | ||
26 | |||
27 | #include <sys/types.h> | ||
28 | #include <sys/wait.h> | ||
29 | #include <signal.h> | ||
30 | #include <stdio.h> | ||
31 | #include <stdlib.h> | ||
32 | #include <unistd.h> | ||
33 | |||
34 | static pid_t child; | ||
35 | |||
36 | |||
37 | static void | ||
38 | sigchld_handler (int val) | ||
39 | { | ||
40 | int status = 0; | ||
41 | int ret = 0; | ||
42 | |||
43 | (void) val; | ||
44 | waitpid (child, &status, 0); | ||
45 | if (WIFEXITED (status) != 0) | ||
46 | { | ||
47 | ret = WEXITSTATUS (status); | ||
48 | printf ("Test process exited with result %u\n", ret); | ||
49 | } | ||
50 | if (WIFSIGNALED (status) != 0) | ||
51 | { | ||
52 | ret = WTERMSIG (status); | ||
53 | printf ("Test process was signaled %u\n", ret); | ||
54 | } | ||
55 | exit (ret); | ||
56 | } | ||
57 | |||
58 | |||
59 | static void | ||
60 | sigint_handler (int val) | ||
61 | { | ||
62 | kill (0, val); | ||
63 | exit (val); | ||
64 | } | ||
65 | |||
66 | |||
67 | int | ||
68 | main (int argc, | ||
69 | char *argv[]) | ||
70 | { | ||
71 | int timeout = 0; | ||
72 | pid_t gpid = 0; | ||
73 | |||
74 | if (argc < 3) | ||
75 | { | ||
76 | printf | ||
77 | ("arg 1: timeout in sec., arg 2: executable, arg<n> arguments\n"); | ||
78 | exit (1); | ||
79 | } | ||
80 | |||
81 | timeout = atoi (argv[1]); | ||
82 | |||
83 | if (timeout == 0) | ||
84 | timeout = 600; | ||
85 | |||
86 | /* with getpgid() it does not compile, but getpgrp is the BSD version and working */ | ||
87 | gpid = getpgrp (); | ||
88 | |||
89 | signal (SIGCHLD, sigchld_handler); | ||
90 | signal (SIGABRT, sigint_handler); | ||
91 | signal (SIGFPE, sigint_handler); | ||
92 | signal (SIGILL, sigint_handler); | ||
93 | signal (SIGINT, sigint_handler); | ||
94 | signal (SIGSEGV, sigint_handler); | ||
95 | signal (SIGTERM, sigint_handler); | ||
96 | |||
97 | child = fork (); | ||
98 | if (child == 0) | ||
99 | { | ||
100 | /* int setpgrp(pid_t pid, pid_t pgid); is not working on this machine */ | ||
101 | //setpgrp (0, pid_t gpid); | ||
102 | if (-1 != gpid) | ||
103 | setpgid (0, gpid); | ||
104 | execvp (argv[2], &argv[2]); | ||
105 | exit (1); | ||
106 | } | ||
107 | if (child > 0) | ||
108 | { | ||
109 | sleep (timeout); | ||
110 | printf ("Child processes were killed after timeout of %u seconds\n", | ||
111 | timeout); | ||
112 | kill (0, SIGTERM); | ||
113 | exit (1); | ||
114 | } | ||
115 | exit (1); | ||
116 | } | ||
117 | |||
118 | /* end of timeout_watchdog.c */ | ||
diff --git a/contrib/timeout_watchdog_w32.c b/contrib/timeout_watchdog_w32.c deleted file mode 100644 index fa7cd81fd..000000000 --- a/contrib/timeout_watchdog_w32.c +++ /dev/null | |||
@@ -1,193 +0,0 @@ | |||
1 | /* | ||
2 | This file is part of GNUnet | ||
3 | Copyright (C) 2010 GNUnet e.V. | ||
4 | |||
5 | GNUnet is free software; you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published | ||
7 | by the Free Software Foundation; either version 3, or (at your | ||
8 | option) any later version. | ||
9 | |||
10 | GNUnet is distributed in the hope that it will be useful, but | ||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with GNUnet; see the file COPYING. If not, write to the | ||
17 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
18 | Boston, MA 02110-1301, USA. | ||
19 | */ | ||
20 | |||
21 | /** | ||
22 | * @file contrib/timeout_watchdog_w32.c | ||
23 | * @brief small tool starting a child process, waiting that it terminates or killing it after a given timeout period | ||
24 | * @author LRN | ||
25 | */ | ||
26 | |||
27 | #include <windows.h> | ||
28 | #include <sys/types.h> | ||
29 | #include <stdio.h> | ||
30 | |||
31 | int | ||
32 | main (int argc, char *argv[]) | ||
33 | { | ||
34 | int i; | ||
35 | DWORD wait_result; | ||
36 | wchar_t *commandline; | ||
37 | wchar_t **wargv; | ||
38 | wchar_t *arg; | ||
39 | unsigned int cmdlen; | ||
40 | STARTUPINFOW start; | ||
41 | PROCESS_INFORMATION proc; | ||
42 | |||
43 | wchar_t wpath[MAX_PATH + 1]; | ||
44 | |||
45 | wchar_t *pathbuf; | ||
46 | DWORD pathbuf_len, alloc_len; | ||
47 | wchar_t *ptr; | ||
48 | wchar_t *non_const_filename; | ||
49 | wchar_t *wcmd; | ||
50 | int wargc; | ||
51 | int timeout = 0; | ||
52 | ssize_t wrote; | ||
53 | |||
54 | HANDLE job; | ||
55 | |||
56 | if (argc < 3) | ||
57 | { | ||
58 | printf | ||
59 | ("arg 1: timeout in sec., arg 2: executable, arg<n> arguments\n"); | ||
60 | exit (1); | ||
61 | } | ||
62 | |||
63 | timeout = atoi (argv[1]); | ||
64 | |||
65 | if (timeout == 0) | ||
66 | timeout = 600; | ||
67 | |||
68 | commandline = GetCommandLineW (); | ||
69 | if (commandline == NULL) | ||
70 | { | ||
71 | printf ("Failed to get commandline: %lu\n", GetLastError ()); | ||
72 | exit (2); | ||
73 | } | ||
74 | |||
75 | wargv = CommandLineToArgvW (commandline, &wargc); | ||
76 | if (wargv == NULL || wargc <= 1) | ||
77 | { | ||
78 | printf ("Failed to get parse commandline: %lu\n", GetLastError ()); | ||
79 | exit (3); | ||
80 | } | ||
81 | |||
82 | job = CreateJobObject (NULL, NULL); | ||
83 | if (job == NULL) | ||
84 | { | ||
85 | printf ("Failed to create a job: %lu\n", GetLastError ()); | ||
86 | exit (4); | ||
87 | } | ||
88 | |||
89 | pathbuf_len = GetEnvironmentVariableW (L"PATH", (wchar_t *) &pathbuf, 0); | ||
90 | |||
91 | alloc_len = pathbuf_len + 1; | ||
92 | |||
93 | pathbuf = malloc (alloc_len * sizeof (wchar_t)); | ||
94 | |||
95 | ptr = pathbuf; | ||
96 | |||
97 | alloc_len = GetEnvironmentVariableW (L"PATH", ptr, pathbuf_len); | ||
98 | |||
99 | cmdlen = wcslen (wargv[2]); | ||
100 | if (cmdlen < 5 || wcscmp (&wargv[2][cmdlen - 4], L".exe") != 0) | ||
101 | { | ||
102 | non_const_filename = malloc (sizeof (wchar_t) * (cmdlen + 5)); | ||
103 | swprintf (non_const_filename, cmdlen + 5, L"%S.exe", wargv[2]); | ||
104 | } | ||
105 | else | ||
106 | { | ||
107 | non_const_filename = wcsdup (wargv[2]); | ||
108 | } | ||
109 | |||
110 | /* Check that this is the full path. If it isn't, search. */ | ||
111 | if (non_const_filename[1] == L':') | ||
112 | swprintf (wpath, sizeof (wpath) / sizeof (wchar_t), L"%S", non_const_filename); | ||
113 | else if (!SearchPathW | ||
114 | (pathbuf, non_const_filename, NULL, sizeof (wpath) / sizeof (wchar_t), | ||
115 | wpath, NULL)) | ||
116 | { | ||
117 | printf ("Failed to get find executable: %lu\n", GetLastError ()); | ||
118 | exit (5); | ||
119 | } | ||
120 | free (pathbuf); | ||
121 | free (non_const_filename); | ||
122 | |||
123 | cmdlen = wcslen (wpath) + 4; | ||
124 | i = 3; | ||
125 | while (NULL != (arg = wargv[i++])) | ||
126 | cmdlen += wcslen (arg) + 4; | ||
127 | |||
128 | wcmd = malloc (sizeof (wchar_t) * (cmdlen + 1)); | ||
129 | wrote = 0; | ||
130 | i = 2; | ||
131 | while (NULL != (arg = wargv[i++])) | ||
132 | { | ||
133 | /* This is to escape trailing slash */ | ||
134 | wchar_t arg_lastchar = arg[wcslen (arg) - 1]; | ||
135 | if (wrote == 0) | ||
136 | { | ||
137 | wrote += swprintf (&wcmd[wrote], cmdlen + 1 - wrote, L"\"%S%S\" ", wpath, | ||
138 | arg_lastchar == L'\\' ? L"\\" : L""); | ||
139 | } | ||
140 | else | ||
141 | { | ||
142 | if (wcschr (arg, L' ') != NULL) | ||
143 | wrote += swprintf (&wcmd[wrote], cmdlen + 1 - wrote, L"\"%S%S\"%S", arg, | ||
144 | arg_lastchar == L'\\' ? L"\\" : L"", i == wargc ? L"" : L" "); | ||
145 | else | ||
146 | wrote += swprintf (&wcmd[wrote], cmdlen + 1 - wrote, L"%S%S%S", arg, | ||
147 | arg_lastchar == L'\\' ? L"\\" : L"", i == wargc ? L"" : L" "); | ||
148 | } | ||
149 | } | ||
150 | |||
151 | LocalFree (wargv); | ||
152 | |||
153 | memset (&start, 0, sizeof (start)); | ||
154 | start.cb = sizeof (start); | ||
155 | |||
156 | if (!CreateProcessW (wpath, wcmd, NULL, NULL, TRUE, CREATE_SUSPENDED, | ||
157 | NULL, NULL, &start, &proc)) | ||
158 | { | ||
159 | wprintf (L"Failed to get spawn process `%S' with arguments `%S': %lu\n", wpath, wcmd, GetLastError ()); | ||
160 | exit (6); | ||
161 | } | ||
162 | |||
163 | AssignProcessToJobObject (job, proc.hProcess); | ||
164 | |||
165 | ResumeThread (proc.hThread); | ||
166 | CloseHandle (proc.hThread); | ||
167 | |||
168 | free (wcmd); | ||
169 | |||
170 | wait_result = WaitForSingleObject (proc.hProcess, timeout * 1000); | ||
171 | if (wait_result == WAIT_OBJECT_0) | ||
172 | { | ||
173 | DWORD status; | ||
174 | wait_result = GetExitCodeProcess (proc.hProcess, &status); | ||
175 | CloseHandle (proc.hProcess); | ||
176 | if (wait_result != 0) | ||
177 | { | ||
178 | printf ("Test process exited with result %lu\n", status); | ||
179 | TerminateJobObject (job, status); | ||
180 | exit (status); | ||
181 | } | ||
182 | printf ("Test process exited (failed to obtain exit status)\n"); | ||
183 | TerminateJobObject (job, 0); | ||
184 | exit (0); | ||
185 | } | ||
186 | printf ("Child processes were killed after timeout of %u seconds\n", | ||
187 | timeout); | ||
188 | TerminateJobObject (job, 1); | ||
189 | CloseHandle (proc.hProcess); | ||
190 | exit (1); | ||
191 | } | ||
192 | |||
193 | /* end of timeout_watchdog_w32.c */ | ||
diff --git a/contrib/transpot_delay.patch b/contrib/transpot_delay.patch deleted file mode 100644 index 9ba806960..000000000 --- a/contrib/transpot_delay.patch +++ /dev/null | |||
@@ -1,77 +0,0 @@ | |||
1 | Index: src/transport/gnunet-service-transport_neighbours.c | ||
2 | =================================================================== | ||
3 | --- src/transport/gnunet-service-transport_neighbours.c (revision 27335) | ||
4 | +++ src/transport/gnunet-service-transport_neighbours.c (working copy) | ||
5 | @@ -65,7 +65,7 @@ | ||
6 | * send 3 keepalives in each interval, so 3 messages would need to be | ||
7 | * lost in a row for a disconnect). | ||
8 | */ | ||
9 | -#define KEEPALIVE_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 100) | ||
10 | +#define KEEPALIVE_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS, 100) | ||
11 | |||
12 | /** | ||
13 | * How long are we willing to wait for a response from ATS before timing out? | ||
14 | Index: src/transport/gnunet-service-transport_validation.c | ||
15 | =================================================================== | ||
16 | --- src/transport/gnunet-service-transport_validation.c (revision 27335) | ||
17 | +++ src/transport/gnunet-service-transport_validation.c (working copy) | ||
18 | @@ -42,7 +42,7 @@ | ||
19 | * OTOH, we don't want to spend too much time generating PONG signatures, | ||
20 | * so they must have some lifetime to reduce our CPU usage. | ||
21 | */ | ||
22 | -#define PONG_SIGNATURE_LIFETIME GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_HOURS, 1) | ||
23 | +#define PONG_SIGNATURE_LIFETIME GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_HOURS, 12) | ||
24 | |||
25 | /** | ||
26 | * After how long do we expire an address in a HELLO that we just | ||
27 | @@ -57,24 +57,24 @@ | ||
28 | * we cannot validate (because after this time we can destroy the | ||
29 | * validation record). | ||
30 | */ | ||
31 | -#define UNVALIDATED_PING_KEEPALIVE GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 5) | ||
32 | +#define UNVALIDATED_PING_KEEPALIVE GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_HOURS, 4) | ||
33 | |||
34 | /** | ||
35 | * How often do we PING an address that we have successfully validated | ||
36 | * in the past but are not actively using? Should be (significantly) | ||
37 | * smaller than HELLO_ADDRESS_EXPIRATION. | ||
38 | */ | ||
39 | -#define VALIDATED_PING_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 15) | ||
40 | +#define VALIDATED_PING_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_HOURS, 6) | ||
41 | |||
42 | /** | ||
43 | * How often do we PING an address that we are currently using? | ||
44 | */ | ||
45 | -#define CONNECTED_PING_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 2) | ||
46 | +#define CONNECTED_PING_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS, 2) | ||
47 | |||
48 | /** | ||
49 | * How much delay is acceptable for sending the PING or PONG? | ||
50 | */ | ||
51 | -#define ACCEPTABLE_PING_DELAY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 1) | ||
52 | +#define ACCEPTABLE_PING_DELAY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 1) | ||
53 | |||
54 | /** | ||
55 | * Size of the validation map hashmap. | ||
56 | Index: src/include/gnunet_constants.h | ||
57 | =================================================================== | ||
58 | --- src/include/gnunet_constants.h (revision 27335) | ||
59 | +++ src/include/gnunet_constants.h (working copy) | ||
60 | @@ -49,7 +49,7 @@ | ||
61 | * After how long do we consider a connection to a peer dead | ||
62 | * if we don't receive messages from the peer? | ||
63 | */ | ||
64 | -#define GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 5) | ||
65 | +#define GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS, 5) | ||
66 | |||
67 | /** | ||
68 | * How long do we delay reading more from a peer after a quota violation? | ||
69 | @@ -61,7 +61,7 @@ | ||
70 | * even if we assume that the service commonly does not | ||
71 | * respond instantly (DNS, Database, etc.). | ||
72 | */ | ||
73 | -#define GNUNET_CONSTANTS_SERVICE_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 10) | ||
74 | +#define GNUNET_CONSTANTS_SERVICE_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS, 10) | ||
75 | |||
76 | /** | ||
77 | * How long do we delay messages to get larger packet sizes (CORKing)? | ||
diff --git a/contrib/log.php b/contrib/web/log.php index b2ca9ed6c..b2ca9ed6c 100644 --- a/contrib/log.php +++ b/contrib/web/log.php | |||