Compare commits
730 Commits
Author | SHA1 | Date | |
---|---|---|---|
aee1e1feac | |||
d0f12e0877 | |||
7e8b2da74f | |||
df7f42d5be | |||
f66b185c46 | |||
d0baf54e53 | |||
2d0c4947ab | |||
b3e2fe2de3 | |||
4d24f2ed6f | |||
40ec4ff658 | |||
f462f9ad6e | |||
d1f5dfc416 | |||
d18be36599 | |||
e8a43f1995 | |||
93a062c3b2 | |||
b7f01ea0ed | |||
a80957c518 | |||
9538dff96f | |||
ecb587e4ca | |||
f8ec272d98 | |||
6832fb4b86 | |||
19e06cfa25 | |||
ec23791517 | |||
c6e9561ad3 | |||
b73336755b | |||
cbc45525cb | |||
49f326edc0 | |||
41816751a7 | |||
cd32783cd4 | |||
083fcd06d3 | |||
2ff8c30548 | |||
7b837d6477 | |||
039d9762a0 | |||
6e032c3c48 | |||
34e22af614 | |||
162bb0e7b1 | |||
1a5de3fe2e | |||
45c4a70c70 | |||
408a1ce5f8 | |||
97dbf2b604 | |||
5949b53aec | |||
6cc2014202 | |||
c5aea19d56 | |||
27b0f971c4 | |||
640ce18679 | |||
24c8c47230 | |||
905859a6e5 | |||
43f8147749 | |||
e97fab2665 | |||
b59bbdba4b | |||
79901543b9 | |||
147ebe6ddf | |||
48d39cf96d | |||
8f4008713a | |||
3c1a0fc27d | |||
66e0b08d34 | |||
99bf66f3fa | |||
9ff9d9f5a9 | |||
9838cad9cd | |||
a30b08b717 | |||
b29f7528ec | |||
ccdf108ca7 | |||
73c6f16baf | |||
3628891789 | |||
5a5c6de3a3 | |||
f2f70c21d0 | |||
1d963578e8 | |||
374422ea1c | |||
d7f369b571 | |||
c7c286c6bd | |||
c8d7e90fd6 | |||
655a99f166 | |||
7f10ac33e9 | |||
40c8b89cd4 | |||
605e308c95 | |||
6a5b312730 | |||
be36ea4b52 | |||
3027bacf95 | |||
269589146c | |||
b469853812 | |||
f61e40610d | |||
cbb4d229de | |||
7456c4f5f0 | |||
a05e2570c9 | |||
bdd371c5c5 | |||
cb38b6cbc7 | |||
f573f84eb7 | |||
d5cc5f8997 | |||
71a08b5a5a | |||
a4cb4a74f9 | |||
a48c674fba | |||
a11fd69735 | |||
19ced38f1c | |||
a22e1a0032 | |||
f23d4bbce3 | |||
553d21da6c | |||
406e390962 | |||
5d198c2b2c | |||
5d30057695 | |||
40ebbf72d5 | |||
095f042ed6 | |||
4674fc6afd | |||
67232478db | |||
95576b4df0 | |||
39779eb195 | |||
feeaa015c1 | |||
aa36a26eb3 | |||
1d8454639f | |||
a946ea1a33 | |||
24d4a0a1fb | |||
ae16c95f1b | |||
0977ada851 | |||
0289b8b2ba | |||
779073c575 | |||
dc2bfdc815 | |||
42241208d9 | |||
d6398c869c | |||
dabaa05d27 | |||
06fcee63cf | |||
3b7bd6e540 | |||
bd300b7194 | |||
df740caf54 | |||
34fd3caabf | |||
89283c138e | |||
c50070173d | |||
f1e48297cf | |||
44f79a0bd0 | |||
65fb0b79f7 | |||
981d979047 | |||
96b1f091e7 | |||
245d9ba21e | |||
af78cb0486 | |||
ef5c8bb412 | |||
78be2e8b74 | |||
8366cb0a20 | |||
bb74a7ffeb | |||
2b13361bc7 | |||
d47db7b16d | |||
27e411fa83 | |||
5d513d4659 | |||
fab9d6e1a9 | |||
9486dbb339 | |||
dedfa94368 | |||
8f77821522 | |||
79d72011ee | |||
c1140eb9ed | |||
08ad8f9fe2 | |||
c51cd0cd69 | |||
e08ee7cd34 | |||
486fd7f700 | |||
6de3f11637 | |||
3afaae4984 | |||
1d0fde7ee1 | |||
9fdc8c4269 | |||
476ecf2a2a | |||
79ab093518 | |||
8b629a3c01 | |||
8f3054a0f8 | |||
79bf25cd9c | |||
2e86c0816f | |||
6488a6c6e2 | |||
dd78da09b0 | |||
ce01a2b11c | |||
3aae99fe71 | |||
8388b1c826 | |||
6e0a1663bd | |||
d39e3b71ea | |||
f0af48f0dd | |||
bd4f4d1686 | |||
b9cc24839b | |||
7f7d990483 | |||
0735ddf744 | |||
469976d55d | |||
5b51848c76 | |||
a6f05c5a81 | |||
70b0a8e542 | |||
a94769ce27 | |||
09da661006 | |||
9a3dd116a6 | |||
00c4970435 | |||
5dc6169bc8 | |||
806582a5d1 | |||
fbd717c389 | |||
7fa7fe22d8 | |||
866641d4c5 | |||
67882e56d1 | |||
e4aa80dfde | |||
7eda8369fc | |||
8c9252aa6d | |||
1abc8b3966 | |||
e485310ab2 | |||
c782a8d9d9 | |||
e64f2fab92 | |||
bd4255680d | |||
aac34eca90 | |||
0eb5fc5232 | |||
ba5d9dd476 | |||
513824a8be | |||
83390dac2f | |||
ac490c02c5 | |||
5f65c96e8d | |||
9f08b76631 | |||
fee0547799 | |||
decce786a3 | |||
ef386bf7a2 | |||
9a9073a132 | |||
173f8a2f7b | |||
dfa5820b67 | |||
c5241454dd | |||
0a5af1b93c | |||
9290a748e9 | |||
ed46a79213 | |||
61418e5584 | |||
9f092db85a | |||
2700764acc | |||
2caf4d6cdf | |||
f655f41bfe | |||
01463beb79 | |||
66611879f1 | |||
bdfb892ba8 | |||
13b238dc86 | |||
35d07e3da5 | |||
ceb2e03912 | |||
572e79df7e | |||
5f1ace8e38 | |||
da2cef55b2 | |||
8577d4a049 | |||
12050cf11c | |||
02957106a0 | |||
7f0caf57cc | |||
5767a2da4b | |||
2620fa178d | |||
9dcfa182a2 | |||
10ecd90213 | |||
07b1d80a2a | |||
68649d1007 | |||
3138d6993e | |||
32af9539a3 | |||
6827072857 | |||
c0c7fdaf24 | |||
0a0449d729 | |||
eea1d6dc90 | |||
7d55c6003c | |||
634cf2bb1e | |||
fcdcb7353e | |||
a26ed14a4a | |||
b1b9d15a05 | |||
24ef6bccfb | |||
a02992a246 | |||
1dec40f870 | |||
bb602cb6c6 | |||
b51714bd05 | |||
597efd7a26 | |||
60af91ca85 | |||
f1a7a624d0 | |||
71844322a4 | |||
9461a9f94b | |||
2c14106a02 | |||
ed4cae50da | |||
349727dc46 | |||
4675c6dd36 | |||
e62541be0f | |||
9587319333 | |||
21b3f33978 | |||
994fe998b7 | |||
e0a39ba09d | |||
604f6ef85f | |||
368e143a1c | |||
41872ffade | |||
438c8c1626 | |||
e18108acb4 | |||
9a9623a68a | |||
5b2d616c9e | |||
00125bdf58 | |||
aee0043bd7 | |||
a811e45824 | |||
71cf49b774 | |||
46ccbea870 | |||
4c71c20eff | |||
4565980313 | |||
eeccee1870 | |||
e03d43714a | |||
ca01aeb57f | |||
08c2d1480b | |||
7f1e6e9d5a | |||
4519e94b74 | |||
ec1a663195 | |||
c093fb1fdc | |||
90d376a75a | |||
a83a1e8358 | |||
5bacfec2da | |||
9cae9c886b | |||
1a9148fbdf | |||
f62e418c86 | |||
0c234889c4 | |||
78661cb1f4 | |||
b9b1aa6392 | |||
3b67fc9f9f | |||
86fd4e305e | |||
c07d1c1c4f | |||
fb2cd32c9a | |||
804eccf8f7 | |||
dbeaa7e666 | |||
dfcfe0bb9c | |||
9ab36bc233 | |||
8551d39f4f | |||
0dd1f7d2d7 | |||
5a26d1ce12 | |||
3d98acc9e3 | |||
acd547dc95 | |||
770b1d2b56 | |||
9e9305542e | |||
50b2a2375a | |||
ab41ce7f4e | |||
4a4a5152f4 | |||
1d29c889ad | |||
256f6b1826 | |||
71bbe65311 | |||
9ae79400ff | |||
060c159b08 | |||
7d34731067 | |||
5fe099afdd | |||
0c169930c0 | |||
06b917856f | |||
1a38fbaa86 | |||
ceeb85bd00 | |||
cd484b534e | |||
fc7d1be79e | |||
94c465d0eb | |||
0d6cf32721 | |||
ae06048bf5 | |||
4b951d1e38 | |||
e8f167a623 | |||
f444faa94a | |||
661887f558 | |||
f95c5c48d4 | |||
f5fdf23a68 | |||
6e57492839 | |||
81df21507b | |||
eadaa97548 | |||
2160f338a7 | |||
8ec8a8c5ff | |||
2c654490f3 | |||
4e4451019c | |||
73267cec46 | |||
054202d020 | |||
bb4e529664 | |||
a5896e8ca4 | |||
5ac52bd0fe | |||
6bcacd55e5 | |||
c4237d8e0c | |||
654b4d48bc | |||
1a7c9a5d50 | |||
48a12d3b25 | |||
de8607d77d | |||
340bb6b7ef | |||
cb25972fd1 | |||
3e8dac148a | |||
c1cb4cb9f6 | |||
20e64d3499 | |||
a81cfb649d | |||
8f448d619a | |||
15398e6a4c | |||
e98b30909b | |||
283e290434 | |||
1be35910f7 | |||
f00c00475f | |||
7ed89d7421 | |||
6408f422a5 | |||
df80cdf297 | |||
c89313e071 | |||
0e24492341 | |||
ad8084da0d | |||
8981d7925e | |||
cdd6819318 | |||
c9a191fc48 | |||
3ab9652a86 | |||
d2c1222627 | |||
cf436a560d | |||
9d734b60a7 | |||
3039ec962e | |||
c5f6151390 | |||
a7fea19fcd | |||
732af77cce | |||
7149d1693d | |||
a73e7037e5 | |||
de79efdeb8 | |||
e36a0e0cde | |||
f17d68067e | |||
bd4ae4f5e8 | |||
b1f916abbc | |||
5bafa1d721 | |||
61a0026a94 | |||
1215965a4c | |||
b07cfd724f | |||
db34168a7f | |||
b492f7ef0f | |||
e0d893e86d | |||
9b6de7c506 | |||
013df874db | |||
03876cf506 | |||
80acf4b867 | |||
0658184944 | |||
a4ed5b4212 | |||
3cd556d486 | |||
ce937d3710 | |||
f55afd83b1 | |||
7ed6934f3b | |||
dc18766b10 | |||
b64af8f81d | |||
0be9cea199 | |||
4ec981d9c2 | |||
d3f851c516 | |||
a96a256083 | |||
f3fe4c10ee | |||
cf44dc072a | |||
c168c910c5 | |||
8546adf80b | |||
016b63bdf0 | |||
585ad00b5b | |||
55bddd5e4e | |||
ac8ac9e052 | |||
22f7ceb695 | |||
3225e5b26e | |||
6078765666 | |||
30efb515ce | |||
1f9db235e7 | |||
86980bc75c | |||
b9b664c5a8 | |||
b379c44c35 | |||
ec38d6f741 | |||
1ef3ac82a3 | |||
03e3da2212 | |||
fbec5b949b | |||
d92b09cd75 | |||
1ff38366b8 | |||
32d99cb772 | |||
c53bd25b13 | |||
d0f82df205 | |||
ad9f127302 | |||
c84ad82a2d | |||
d3364dfdc8 | |||
9001662b9f | |||
c80e6b96e5 | |||
2922cd9bbc | |||
d3bba70771 | |||
36d9965af0 | |||
0f2721d044 | |||
b39d3a7eb6 | |||
dc8fb25734 | |||
c344d4b73f | |||
3b004cc72d | |||
48f4c061f4 | |||
25f03fd6e4 | |||
20f9a22c27 | |||
ff8e021225 | |||
f81b33b50c | |||
d7b97e21a7 | |||
bde3fe5718 | |||
6e9607bd2a | |||
d092ccc40f | |||
655429a0d4 | |||
70249927b7 | |||
9b0848d523 | |||
bfdc145153 | |||
e026563f01 | |||
943ddcb712 | |||
9ee5bd0415 | |||
4d8d7c02d7 | |||
29cabba3d7 | |||
2650d5e1f5 | |||
a101588921 | |||
dffdac06c0 | |||
bb738f9fcd | |||
939c50c390 | |||
4e116e9dad | |||
fd81eb7c48 | |||
0355de2e77 | |||
ee3ea86b37 | |||
17879605fe | |||
b87a11340f | |||
a1adfb0f06 | |||
fe66e2fffe | |||
047e7dd9ec | |||
0237f1ceb6 | |||
0d2c389fad | |||
f8b7b075b6 | |||
73411a7ff1 | |||
451dc19353 | |||
e6bad6b63d | |||
ca6b026303 | |||
f9b754c29a | |||
d5a6521013 | |||
58c7620cdc | |||
c0bf82b6ab | |||
cbe19bf006 | |||
58ed524966 | |||
0ba2b9d33d | |||
79b898e319 | |||
7bf6f345e0 | |||
7c95619cb1 | |||
1bdcd7a4ee | |||
f9d57f2b57 | |||
72e5aa4e1e | |||
cd51b90fbf | |||
8f55eef246 | |||
d87df9bd39 | |||
25ba9c31f5 | |||
73078906f3 | |||
429a7b231c | |||
e73447f693 | |||
4c5d05ea8a | |||
745263589f | |||
c2a5a4e7ea | |||
0d91565e62 | |||
2db4205f0e | |||
5fd531ba4b | |||
b178fa8ecb | |||
ae5d30a0b3 | |||
81a206f52b | |||
8c6d365373 | |||
9cc26dc622 | |||
629544be0f | |||
fc0e627bac | |||
c271fc1f35 | |||
a42342912b | |||
0d1c147f60 | |||
e4cb660160 | |||
6358653596 | |||
04518c364b | |||
b270ef9981 | |||
fdb060f0b5 | |||
7ab1fd91a4 | |||
d276da48bc | |||
5d9c2c7081 | |||
085692c8bb | |||
2878d145fc | |||
b8014fd212 | |||
61e1f108a9 | |||
aaf2992d90 | |||
3c1c56781d | |||
6ba861ae36 | |||
f5109f20ff | |||
851ae08e3e | |||
01079727fe | |||
29dc9a52d7 | |||
38f7f297c8 | |||
1c122e737e | |||
20bf8ea693 | |||
505bc9b025 | |||
ae381879f3 | |||
6c98ac2c62 | |||
d6a5bef11e | |||
aa7ea14fb9 | |||
91489adb7f | |||
b6afa9a8b5 | |||
62d57d1b23 | |||
0b4c3bd307 | |||
0df2524acb | |||
5d885f4ff3 | |||
3f71c79768 | |||
2e0d6cdec4 | |||
0a3f919972 | |||
4fa7ba0b32 | |||
d3734b7a1d | |||
0d9a76de6d | |||
d78a8c26c2 | |||
4d72d80665 | |||
d29ba605af | |||
63f20e6677 | |||
9d936f12db | |||
b458de9b9e | |||
0c1bfd2c8d | |||
8158a19fd7 | |||
112b095944 | |||
f2bf5fbb04 | |||
135e77d32f | |||
29e17f65a8 | |||
85fdcd5520 | |||
a6b81d5581 | |||
9b39a9dcf4 | |||
e7a7807bd6 | |||
22eaee8e01 | |||
6917467c2b | |||
24ee5dc907 | |||
f0e7f90bff | |||
0e9fec979d | |||
03fa904c0c | |||
98b7c37d37 | |||
d73422c186 | |||
509a4a40f9 | |||
2a2ce08a6d | |||
adf44c7bae | |||
6384277611 | |||
797bdcedc9 | |||
f60c5e4eb6 | |||
43a9427046 | |||
53a5986ad6 | |||
be57e68954 | |||
938ec1620a | |||
b7011dfe44 | |||
007fb4388f | |||
70d15c9ac6 | |||
8d873a5a47 | |||
d8bd837669 | |||
807232203a | |||
815b51d97a | |||
0702f48ef4 | |||
b2c887844f | |||
5266426b21 | |||
9dfe733e99 | |||
c7fc151eec | |||
b27375a9b8 | |||
abb7a4bd6b | |||
7f784f576b | |||
bd776c2b09 | |||
50adb8a660 | |||
4f949f7486 | |||
bdd6899b55 | |||
53525f914d | |||
5805492002 | |||
d0d1de0f2b | |||
3260b7d3cc | |||
7c67aee258 | |||
039c9d5ac7 | |||
538a5feada | |||
f639ab2a4f | |||
e693c444af | |||
4753d88c39 | |||
88af7cacd3 | |||
2b05485f3e | |||
2780c1a866 | |||
f31be1499b | |||
b4d6b11139 | |||
01a9dfb2fa | |||
5b28dc16a4 | |||
9fb9716640 | |||
e4b987c106 | |||
5364d09433 | |||
406270059e | |||
ca515fc8b2 | |||
6a0043cdd8 | |||
c215520578 | |||
63a3d5b802 | |||
ca1ac6643e | |||
e555ed6f7b | |||
7cea74a3b2 | |||
d46a1e5d45 | |||
b98b3b742b | |||
ba22ac05da | |||
85b0721095 | |||
7b8e1dff1a | |||
3c6481cc6e | |||
9153cb155e | |||
6fb5dd4fd8 | |||
7a568d5fca | |||
4f1812f88d | |||
0af6b0c18e | |||
344cc3a1e1 | |||
b17a97f223 | |||
fb2236f9f7 | |||
10d00920f5 | |||
ef94872159 | |||
47d6bf6c61 | |||
9a9715a814 | |||
90fdc8bd5e | |||
90fc9d3f14 | |||
a7bd8c9cad | |||
e3e0f36719 | |||
2d35438bc6 | |||
8c6e2867c3 | |||
628e343e79 | |||
b7798a07f9 | |||
ce1ee02a25 | |||
93d9ff3da0 | |||
810e9a8061 | |||
4a298c7543 | |||
b353cc3c3a | |||
ec00fc016a | |||
21db4ab052 | |||
0e82fa4c34 | |||
5672a265ce | |||
c5492563da | |||
b2260f93e2 | |||
cca34e38fd | |||
e66603539b | |||
a944bd9259 | |||
36e9b16e24 | |||
10b108a603 | |||
74bbb8c2ec | |||
70c7025d3b | |||
4182ffa0a8 | |||
4a3d34729a | |||
782579bec6 | |||
a2cc6bf953 | |||
56ef5184e1 | |||
30d0a8f9e4 | |||
33877c815d | |||
1683535a33 | |||
edf33d1a65 | |||
c6b6e737e8 | |||
f694f3ff6b | |||
bfdefc0f02 | |||
f62abee7ad | |||
4fd7194248 | |||
15209649bd | |||
27a37f1670 | |||
214c226f9e | |||
11d571eaa7 | |||
7b3b254063 | |||
054fd1a7d0 | |||
3abb8b6969 | |||
2d649f800f | |||
ea9d622c0c | |||
049c31c4bb | |||
c29e6d4805 | |||
729aa67db7 | |||
a55fdc3f25 | |||
e8861f6971 | |||
478ddedc12 | |||
fb2d0cc633 | |||
06524fd52c | |||
acf0ec024a | |||
22d94ca46d | |||
3c06aa7b30 | |||
64530a9c66 | |||
fe1dd39087 | |||
0c62ccf927 | |||
680d2f49da | |||
c290f216c4 |
2
.gitignore
vendored
@ -72,6 +72,7 @@
|
||||
/docs/libvirt-lxc-*.xml
|
||||
/docs/libvirt-qemu-*.xml
|
||||
/docs/libvirt-refs.xml
|
||||
/docs/news.html.in
|
||||
/docs/search.php
|
||||
/docs/todo.html.in
|
||||
/examples/admin/client_close
|
||||
@ -79,6 +80,7 @@
|
||||
/examples/admin/client_limits
|
||||
/examples/admin/list_clients
|
||||
/examples/admin/list_servers
|
||||
/examples/admin/logging
|
||||
/examples/admin/threadpool_params
|
||||
/examples/object-events/event-test
|
||||
/examples/dominfo/info1
|
||||
|
2
.gnulib
27
HACKING
@ -65,8 +65,6 @@ Moreover, such patch needs to be prefixed correctly with
|
||||
"--subject-prefix=PATCHv2" appended to "git send-email" (substitute "v2" with
|
||||
the correct version if needed though).
|
||||
|
||||
|
||||
|
||||
(5) In your commit message, make the summary line reasonably short (60 characters
|
||||
is typical), followed by a blank line, followed by any longer description of
|
||||
why your patch makes sense. If the patch fixes a regression, and you know what
|
||||
@ -77,8 +75,6 @@ You can use 'git shortlog -30' to get an idea of typical summary lines.
|
||||
Libvirt does not currently attach any meaning to Signed-off-by: lines, so it
|
||||
is up to you if you want to include or omit them in the commit message.
|
||||
|
||||
|
||||
|
||||
(6) Split large changes into a series of smaller patches, self-contained if
|
||||
possible, with an explanation of each patch and an explanation of how the
|
||||
sequence of patches fits together. Moreover, please keep in mind that it's
|
||||
@ -88,8 +84,6 @@ of a series, but intermediate patches must compile and not cause test-suite
|
||||
failures (this is to preserve the usefulness of "git bisect", among other
|
||||
things).
|
||||
|
||||
|
||||
|
||||
(7) Make sure your patches apply against libvirt GIT. Developers only follow GIT
|
||||
and don't care much about released versions.
|
||||
|
||||
@ -155,8 +149,6 @@ the file is stored.
|
||||
|
||||
VIR_TEST_FILE_ACCESS=1 VIR_TEST_FILE_ACCESS_OUTPUT="/tmp/file_access.txt" ./qemuxml2argvtest
|
||||
|
||||
|
||||
|
||||
(9) The Valgrind test should produce similar output to "make check". If the output
|
||||
has traces within libvirt API's, then investigation is required in order to
|
||||
determine the cause of the issue. Output such as the following indicates some
|
||||
@ -231,12 +223,15 @@ to "tests/.valgrind.supp" in order to suppress the warning:
|
||||
obj:*/lib*/ld-2.*so*
|
||||
}
|
||||
|
||||
|
||||
|
||||
(10) Update tests and/or documentation, particularly if you are adding a new
|
||||
feature or changing the output of a program.
|
||||
|
||||
|
||||
(11) Don't forget to update the release notes <news.html> by changing
|
||||
"docs/news.xml" if your changes are significant. All user-visible changes,
|
||||
such as adding new XML elements or fixing all but the most obscure bugs, must
|
||||
be (briefly) described in a release notes entry; changes that are only
|
||||
relevant to other libvirt developers, such as code refactoring, don't belong
|
||||
in the release notes.
|
||||
|
||||
There is more on this subject, including lots of links to background reading
|
||||
on the subject, on Richard Jones' guide to working with open source projects
|
||||
@ -575,8 +570,6 @@ true) ...". Rather, write "if (seen)...".
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Of course, take all of the above with a grain of salt. If you're about to use
|
||||
some system interface that requires a type like "size_t", "pid_t" or "off_t",
|
||||
use matching types for any corresponding variables.
|
||||
@ -688,8 +681,6 @@ size:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
File handling
|
||||
=============
|
||||
Usage of the "fdopen()", "close()", "fclose()" APIs is deprecated in libvirt
|
||||
@ -733,8 +724,6 @@ APIs, use the macros from virfile.h
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
String comparisons
|
||||
==================
|
||||
Do not use the strcmp, strncmp, etc functions directly. Instead use one of the
|
||||
@ -782,8 +771,6 @@ following semantically named macros
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
String copying
|
||||
==============
|
||||
Do not use the strncpy function. According to the man page, it does *not*
|
||||
@ -952,8 +939,6 @@ by further potentially failing calls. You should almost certainly be using a
|
||||
conditional and a block instead of a goto. Perhaps some of your function's
|
||||
logic would be better pulled out into a helper function.
|
||||
|
||||
|
||||
|
||||
Although libvirt does not encourage the Linux kernel wind/unwind style of
|
||||
multiple labels, there's a good general discussion of the issue archived at
|
||||
KernelTrap <http://kerneltrap.org/node/553/2131>
|
||||
|
26
Makefile.am
@ -46,13 +46,25 @@ EXTRA_DIST = \
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libvirt.pc libvirt-qemu.pc libvirt-lxc.pc libvirt-admin.pc
|
||||
|
||||
NEWS: $(top_srcdir)/docs/news.xsl $(top_srcdir)/docs/news.html.in
|
||||
$(AM_V_GEN)if [ -x $(XSLTPROC) ] ; then \
|
||||
$(XSLTPROC) --nonet $(top_srcdir)/docs/news.xsl \
|
||||
$(top_srcdir)/docs/news.html.in \
|
||||
| perl -0777 -pe 's/\n\n+$$/\n/' \
|
||||
| perl -pe 's/[ \t]+$$//' \
|
||||
> $@-t && mv $@-t $@ ; fi
|
||||
NEWS: \
|
||||
$(srcdir)/docs/news.xml \
|
||||
$(srcdir)/docs/news-ascii.xsl \
|
||||
$(srcdir)/docs/reformat-news.py
|
||||
$(AM_V_GEN) \
|
||||
if [ -x $(XSLTPROC) ]; then \
|
||||
$(XSLTPROC) --nonet \
|
||||
$(srcdir)/docs/news-ascii.xsl \
|
||||
$(srcdir)/docs/news.xml \
|
||||
>$@-tmp \
|
||||
|| { rm -f $@-tmp; exit 1; }; \
|
||||
$(srcdir)/docs/reformat-news.py $@-tmp >$@ \
|
||||
|| { rm -f $@-tmp; exit 1; }; \
|
||||
rm -f $@-tmp; \
|
||||
fi
|
||||
EXTRA_DIST += \
|
||||
$(srcdir)/docs/news.xml \
|
||||
$(srcdir)/docs/news-ascii.xsl \
|
||||
$(srcdir)/docs/reformat-news.py
|
||||
|
||||
$(top_srcdir)/HACKING: $(top_srcdir)/docs/hacking1.xsl \
|
||||
$(top_srcdir)/docs/hacking2.xsl \
|
||||
|
42
bootstrap
@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Print a version string.
|
||||
scriptversion=2016-01-24.06; # UTC
|
||||
scriptversion=2017-01-09.19; # UTC
|
||||
|
||||
# Bootstrap this package from checked-out sources.
|
||||
|
||||
# Copyright (C) 2003-2016 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -418,28 +418,30 @@ sort_ver() { # sort -V is not generally available
|
||||
done
|
||||
}
|
||||
|
||||
get_version_sed='
|
||||
# Move version to start of line.
|
||||
s/.*[v ]\([0-9]\)/\1/
|
||||
|
||||
# Skip lines that do not start with version.
|
||||
/^[0-9]/!d
|
||||
|
||||
# Remove characters after the version.
|
||||
s/[^.a-z0-9-].*//
|
||||
|
||||
# The first component must be digits only.
|
||||
s/^\([0-9]*\)[a-z-].*/\1/
|
||||
|
||||
#the following essentially does s/5.005/5.5/
|
||||
s/\.0*\([1-9]\)/.\1/g
|
||||
p
|
||||
q'
|
||||
|
||||
get_version() {
|
||||
app=$1
|
||||
|
||||
$app --version >/dev/null 2>&1 || { $app --version; return 1; }
|
||||
|
||||
$app --version 2>&1 |
|
||||
sed -n '# Move version to start of line.
|
||||
s/.*[v ]\([0-9]\)/\1/
|
||||
|
||||
# Skip lines that do not start with version.
|
||||
/^[0-9]/!d
|
||||
|
||||
# Remove characters after the version.
|
||||
s/[^.a-z0-9-].*//
|
||||
|
||||
# The first component must be digits only.
|
||||
s/^\([0-9]*\)[a-z-].*/\1/
|
||||
|
||||
#the following essentially does s/5.005/5.5/
|
||||
s/\.0*\([1-9]\)/.\1/g
|
||||
p
|
||||
q'
|
||||
$app --version 2>&1 | sed -n "$get_version_sed"
|
||||
}
|
||||
|
||||
check_versions() {
|
||||
@ -788,7 +790,7 @@ symlink_to_dir()
|
||||
# Leave any existing symlink alone, if it already points to the source,
|
||||
# so that broken build tools that care about symlink times
|
||||
# aren't confused into doing unnecessary builds. Conversely, if the
|
||||
# existing symlink's time stamp is older than the source, make it afresh,
|
||||
# existing symlink's timestamp is older than the source, make it afresh,
|
||||
# so that broken tools aren't confused into skipping needed builds. See
|
||||
# <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00326.html>.
|
||||
test -h "$dst" &&
|
||||
|
22
cfg.mk
@ -1009,17 +1009,6 @@ sc_gettext_init:
|
||||
halt='the above files do not call virGettextInitialize' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# <dt> is mostly used to document symbols, in which case it should contain
|
||||
# a <code> element. The regular expression below trades speed and readability
|
||||
# for accuracy, and won't catch someone trying to stick a <canvas> inside a
|
||||
# <dt>, but that's what code reviews are for :)
|
||||
sc_prohibit_dt_without_code:
|
||||
@prohibit='<dt>([^<]|<[^c])' \
|
||||
exclude='exempt from syntax-check' \
|
||||
in_vc_files='docs/.*$$' \
|
||||
halt='Use <code> inside <dt> when documenting symbols' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# We don't use this feature of maint.mk.
|
||||
prev_version_file = /dev/null
|
||||
|
||||
@ -1149,7 +1138,7 @@ exclude_file_name_regexp--sc_prohibit_close = \
|
||||
(\.p[yl]$$|\.spec\.in$$|^docs/|^(src/util/virfile\.c|src/libvirt-stream\.c|tests/vir.+mock\.c)$$)
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = \
|
||||
(^tests/(qemuhelp|virhostcpu|virpcitest)data/|\.diff|tests/virconfdata/no-newline\.conf$$)
|
||||
(^tests/(qemuhelp|virhostcpu|virpcitest)data/|docs/js/.*\.js|docs/fonts/.*\.woff|\.diff|tests/virconfdata/no-newline\.conf$$)
|
||||
|
||||
_src2=src/(util/vircommand|libvirt|lxc/lxc_controller|locking/lock_daemon|logging/log_daemon)
|
||||
exclude_file_name_regexp--sc_prohibit_fork_wrappers = \
|
||||
@ -1164,13 +1153,13 @@ exclude_file_name_regexp--sc_prohibit_newline_at_end_of_diagnostic = \
|
||||
^src/rpc/gendispatch\.pl$$
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_nonreentrant = \
|
||||
^((po|tests)/|docs/.*(py|html\.in)|run.in$$|tools/wireshark/util/genxdrstub\.pl$$)
|
||||
^((po|tests)/|docs/.*(py|js|html\.in)|run.in$$|tools/wireshark/util/genxdrstub\.pl$$)
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_select = \
|
||||
^cfg\.mk$$
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_raw_allocation = \
|
||||
^(docs/hacking\.html\.in|src/util/viralloc\.[ch]|examples/.*|tests/(securityselinuxhelper|vircgroupmock)\.c|tools/wireshark/src/packet-libvirt\.c)$$
|
||||
^(docs/hacking\.html\.in|src/util/viralloc\.[ch]|examples/.*|tests/(securityselinuxhelper|(vircgroup|nss)mock)\.c|tools/wireshark/src/packet-libvirt\.c)$$
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_readlink = \
|
||||
^src/(util/virutil|lxc/lxc_container)\.c$$
|
||||
@ -1200,7 +1189,7 @@ exclude_file_name_regexp--sc_trailing_blank = \
|
||||
/qemuhelpdata/|/sysinfodata/.*\.data|/virhostcpudata/.*\.cpuinfo$$
|
||||
|
||||
exclude_file_name_regexp--sc_unmarked_diagnostics = \
|
||||
^(docs/apibuild.py|tests/virt-aa-helper-test)$$
|
||||
^(docs/apibuild.py|tests/virt-aa-helper-test|docs/js/.*\.js)$$
|
||||
|
||||
exclude_file_name_regexp--sc_size_of_brackets = cfg.mk
|
||||
|
||||
@ -1248,9 +1237,6 @@ exclude_file_name_regexp--sc_prohibit_sysconf_pagesize = \
|
||||
exclude_file_name_regexp--sc_prohibit_pthread_create = \
|
||||
^(cfg\.mk|src/util/virthread\.c|tests/.*)$$
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_dt_without_code = \
|
||||
^docs/(newapi\.xsl|(apps|contact)\.html\.in)$$
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_always-defined_macros = \
|
||||
^tests/virtestmock.c$$
|
||||
|
||||
|
@ -26,16 +26,18 @@
|
||||
*/
|
||||
|
||||
#ifdef LIBVIRT_SETUID_RPC_CLIENT
|
||||
# undef HAVE_LIBDEVMAPPER_H
|
||||
# undef HAVE_LIBNL
|
||||
# undef HAVE_LIBNL3
|
||||
# undef HAVE_LIBSASL2
|
||||
# undef HAVE_SYS_ACL_H
|
||||
# undef WITH_CAPNG
|
||||
# undef WITH_CURL
|
||||
# undef WITH_DBUS
|
||||
# undef WITH_DEVMAPPER
|
||||
# undef WITH_DTRACE_PROBES
|
||||
# undef WITH_GNUTLS
|
||||
# undef WITH_GNUTLS_GCRYPT
|
||||
# undef WITH_LIBSSH
|
||||
# undef WITH_MACVTAP
|
||||
# undef WITH_NUMACTL
|
||||
# undef WITH_SASL
|
||||
@ -51,15 +53,17 @@
|
||||
* explanation above.
|
||||
*/
|
||||
#ifdef LIBVIRT_NSS
|
||||
# undef HAVE_LIBDEVMAPPER_H
|
||||
# undef HAVE_LIBNL
|
||||
# undef HAVE_LIBNL3
|
||||
# undef HAVE_LIBSASL2
|
||||
# undef HAVE_SYS_ACL_H
|
||||
# undef WITH_CAPNG
|
||||
# undef WITH_CURL
|
||||
# undef WITH_DEVMAPPER
|
||||
# undef WITH_DTRACE_PROBES
|
||||
# undef WITH_GNUTLS
|
||||
# undef WITH_GNUTLS_GCRYPT
|
||||
# undef WITH_LIBSSH
|
||||
# undef WITH_MACVTAP
|
||||
# undef WITH_NUMACTL
|
||||
# undef WITH_SASL
|
||||
|
2515
configure.ac
@ -67,6 +67,7 @@ EXTRA_DIST = \
|
||||
libvirt.rules \
|
||||
libvirtd.sasl \
|
||||
libvirtd.service.in \
|
||||
virt-guest-shutdown.target \
|
||||
libvirtd.sysconf \
|
||||
libvirtd.sysctl \
|
||||
libvirtd.aug \
|
||||
@ -456,8 +457,11 @@ install-init-systemd: install-sysconfig libvirtd.service
|
||||
$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
|
||||
$(INSTALL_DATA) libvirtd.service \
|
||||
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service
|
||||
$(INSTALL_DATA) $(srcdir)/virt-guest-shutdown.target \
|
||||
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/virt-guest-shutdown.target
|
||||
|
||||
uninstall-init-systemd: uninstall-sysconfig
|
||||
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/virt-guest-shutdown.target
|
||||
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service
|
||||
rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
|
||||
else ! LIBVIRT_INIT_SCRIPT_SYSTEMD
|
||||
|
104
daemon/admin.c
@ -383,4 +383,108 @@ adminDispatchServerSetClientLimits(virNetServerPtr server ATTRIBUTE_UNUSED,
|
||||
virObjectUnref(srv);
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* Returns the number of outputs stored in @outputs */
|
||||
static int
|
||||
adminConnectGetLoggingOutputs(char **outputs, unsigned int flags)
|
||||
{
|
||||
char *tmp = NULL;
|
||||
|
||||
virCheckFlags(0, -1);
|
||||
|
||||
if (!(tmp = virLogGetOutputs()))
|
||||
return -1;
|
||||
|
||||
*outputs = tmp;
|
||||
return virLogGetNbOutputs();
|
||||
}
|
||||
|
||||
/* Returns the number of defined filters or -1 in case of an error */
|
||||
static int
|
||||
adminConnectGetLoggingFilters(char **filters, unsigned int flags)
|
||||
{
|
||||
char *tmp = NULL;
|
||||
int ret = 0;
|
||||
|
||||
virCheckFlags(0, -1);
|
||||
|
||||
if ((ret = virLogGetNbFilters()) > 0 && !(tmp = virLogGetFilters()))
|
||||
return -1;
|
||||
|
||||
*filters = tmp;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
adminConnectSetLoggingOutputs(virNetDaemonPtr dmn ATTRIBUTE_UNUSED,
|
||||
const char *outputs,
|
||||
unsigned int flags)
|
||||
{
|
||||
virCheckFlags(0, -1);
|
||||
|
||||
return virLogSetOutputs(outputs);
|
||||
}
|
||||
|
||||
static int
|
||||
adminConnectSetLoggingFilters(virNetDaemonPtr dmn ATTRIBUTE_UNUSED,
|
||||
const char *filters,
|
||||
unsigned int flags)
|
||||
{
|
||||
virCheckFlags(0, -1);
|
||||
|
||||
return virLogSetFilters(filters);
|
||||
}
|
||||
|
||||
static int
|
||||
adminDispatchConnectGetLoggingOutputs(virNetServerPtr server ATTRIBUTE_UNUSED,
|
||||
virNetServerClientPtr client ATTRIBUTE_UNUSED,
|
||||
virNetMessagePtr msg ATTRIBUTE_UNUSED,
|
||||
virNetMessageErrorPtr rerr,
|
||||
admin_connect_get_logging_outputs_args *args,
|
||||
admin_connect_get_logging_outputs_ret *ret)
|
||||
{
|
||||
char *outputs = NULL;
|
||||
int noutputs = 0;
|
||||
|
||||
if ((noutputs = adminConnectGetLoggingOutputs(&outputs, args->flags) < 0)) {
|
||||
virNetMessageSaveError(rerr);
|
||||
return -1;
|
||||
}
|
||||
|
||||
VIR_STEAL_PTR(ret->outputs, outputs);
|
||||
ret->noutputs = noutputs;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
adminDispatchConnectGetLoggingFilters(virNetServerPtr server ATTRIBUTE_UNUSED,
|
||||
virNetServerClientPtr client ATTRIBUTE_UNUSED,
|
||||
virNetMessagePtr msg ATTRIBUTE_UNUSED,
|
||||
virNetMessageErrorPtr rerr,
|
||||
admin_connect_get_logging_filters_args *args,
|
||||
admin_connect_get_logging_filters_ret *ret)
|
||||
{
|
||||
char *filters = NULL;
|
||||
int nfilters = 0;
|
||||
|
||||
if ((nfilters = adminConnectGetLoggingFilters(&filters, args->flags)) < 0) {
|
||||
virNetMessageSaveError(rerr);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (nfilters == 0) {
|
||||
ret->filters = NULL;
|
||||
} else {
|
||||
char **ret_filters = NULL;
|
||||
if (VIR_ALLOC(ret_filters) < 0)
|
||||
return -1;
|
||||
|
||||
*ret_filters = filters;
|
||||
ret->filters = ret_filters;
|
||||
}
|
||||
ret->nfilters = nfilters;
|
||||
|
||||
return 0;
|
||||
}
|
||||
#include "admin_dispatch.h"
|
||||
|
@ -675,103 +675,33 @@ daemonSetupLogging(struct daemonConfig *config,
|
||||
* Libvirtd's order of precedence is:
|
||||
* cmdline > environment > config
|
||||
*
|
||||
* In order to achieve this, we must process configuration in
|
||||
* different order for the log level versus the filters and
|
||||
* outputs. Because filters and outputs append, we have to look at
|
||||
* the environment first and then only check the config file if
|
||||
* there was no result from the environment. The default output is
|
||||
* then applied only if there was no setting from either of the
|
||||
* first two. Because we don't have a way to determine if the log
|
||||
* level has been set, we must process variables in the opposite
|
||||
* The default output is applied only if there was no setting from either
|
||||
* the config or the environment. Because we don't have a way to determine
|
||||
* if the log level has been set, we must process variables in the opposite
|
||||
* order, each one overriding the previous.
|
||||
*/
|
||||
if (config->log_level != 0)
|
||||
virLogSetDefaultPriority(config->log_level);
|
||||
|
||||
if (virLogSetDefaultOutput("libvirtd.log", godaemon, privileged) < 0)
|
||||
return -1;
|
||||
|
||||
/* In case the config is empty, the filters become empty and outputs will
|
||||
* be set to default
|
||||
*/
|
||||
ignore_value(virLogSetFilters(config->log_filters));
|
||||
ignore_value(virLogSetOutputs(config->log_outputs));
|
||||
|
||||
/* If there are some environment variables defined, use those instead */
|
||||
virLogSetFromEnv();
|
||||
|
||||
if (virLogGetNbFilters() == 0)
|
||||
virLogSetFilters(config->log_filters);
|
||||
|
||||
if (config->log_outputs && virLogGetNbOutputs() == 0)
|
||||
virLogSetOutputs(config->log_outputs);
|
||||
|
||||
/*
|
||||
* Command line override for --verbose
|
||||
*/
|
||||
if ((verbose) && (virLogGetDefaultPriority() > VIR_LOG_INFO))
|
||||
virLogSetDefaultPriority(VIR_LOG_INFO);
|
||||
|
||||
/*
|
||||
* If no defined outputs, and either running
|
||||
* as daemon or not on a tty, then first try
|
||||
* to direct it to the systemd journal
|
||||
* (if it exists)....
|
||||
*/
|
||||
if (virLogGetNbOutputs() == 0 &&
|
||||
(godaemon || !isatty(STDIN_FILENO))) {
|
||||
char *tmp;
|
||||
if (access("/run/systemd/journal/socket", W_OK) >= 0) {
|
||||
virLogPriority priority = virLogGetDefaultPriority();
|
||||
|
||||
/* By default we don't want to log too much stuff into journald as
|
||||
* it may employ rate limiting and thus block libvirt execution. */
|
||||
if (priority == VIR_LOG_DEBUG)
|
||||
priority = VIR_LOG_INFO;
|
||||
|
||||
if (virAsprintf(&tmp, "%d:journald", priority) < 0)
|
||||
goto error;
|
||||
virLogSetOutputs(tmp);
|
||||
VIR_FREE(tmp);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* otherwise direct to libvirtd.log when running
|
||||
* as daemon. Otherwise the default output is stderr.
|
||||
*/
|
||||
if (virLogGetNbOutputs() == 0) {
|
||||
char *tmp = NULL;
|
||||
|
||||
if (godaemon) {
|
||||
if (privileged) {
|
||||
if (virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log",
|
||||
virLogGetDefaultPriority(),
|
||||
LOCALSTATEDIR) == -1)
|
||||
goto error;
|
||||
} else {
|
||||
char *logdir = virGetUserCacheDirectory();
|
||||
mode_t old_umask;
|
||||
|
||||
if (!logdir)
|
||||
goto error;
|
||||
|
||||
old_umask = umask(077);
|
||||
if (virFileMakePath(logdir) < 0) {
|
||||
umask(old_umask);
|
||||
goto error;
|
||||
}
|
||||
umask(old_umask);
|
||||
|
||||
if (virAsprintf(&tmp, "%d:file:%s/libvirtd.log",
|
||||
virLogGetDefaultPriority(), logdir) == -1) {
|
||||
VIR_FREE(logdir);
|
||||
goto error;
|
||||
}
|
||||
VIR_FREE(logdir);
|
||||
}
|
||||
} else {
|
||||
if (virAsprintf(&tmp, "%d:stderr", virLogGetDefaultPriority()) < 0)
|
||||
goto error;
|
||||
}
|
||||
virLogSetOutputs(tmp);
|
||||
VIR_FREE(tmp);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
@ -64,6 +64,8 @@ struct daemonClientPrivate {
|
||||
size_t nstorageEventCallbacks;
|
||||
daemonClientEventCallbackPtr *nodeDeviceEventCallbacks;
|
||||
size_t nnodeDeviceEventCallbacks;
|
||||
daemonClientEventCallbackPtr *secretEventCallbacks;
|
||||
size_t nsecretEventCallbacks;
|
||||
bool closeRegistered;
|
||||
|
||||
# if WITH_SASL
|
||||
|
316
daemon/remote.c
@ -235,6 +235,34 @@ remoteRelayNodeDeviceEventCheckACL(virNetServerClientPtr client,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool
|
||||
remoteRelaySecretEventCheckACL(virNetServerClientPtr client,
|
||||
virConnectPtr conn,
|
||||
virSecretPtr secret)
|
||||
{
|
||||
virSecretDef def;
|
||||
virIdentityPtr identity = NULL;
|
||||
bool ret = false;
|
||||
|
||||
/* For now, we just create a virSecretDef with enough contents to
|
||||
* satisfy what viraccessdriverpolkit.c references. This is a bit
|
||||
* fragile, but I don't know of anything better. */
|
||||
memcpy(def.uuid, secret->uuid, VIR_UUID_BUFLEN);
|
||||
def.usage_type = secret->usageType;
|
||||
def.usage_id = secret->usageID;
|
||||
|
||||
if (!(identity = virNetServerClientGetIdentity(client)))
|
||||
goto cleanup;
|
||||
if (virIdentitySetCurrent(identity) < 0)
|
||||
goto cleanup;
|
||||
ret = virConnectSecretEventRegisterAnyCheckACL(conn, &def);
|
||||
|
||||
cleanup:
|
||||
ignore_value(virIdentitySetCurrent(NULL));
|
||||
virObjectUnref(identity);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool
|
||||
remoteRelayDomainQemuMonitorEventCheckACL(virNetServerClientPtr client,
|
||||
virConnectPtr conn, virDomainPtr dom)
|
||||
@ -1223,6 +1251,50 @@ remoteRelayDomainEventDeviceRemovalFailed(virConnectPtr conn,
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
remoteRelayDomainEventMetadataChange(virConnectPtr conn,
|
||||
virDomainPtr dom,
|
||||
int type,
|
||||
const char *nsuri,
|
||||
void *opaque)
|
||||
{
|
||||
daemonClientEventCallbackPtr callback = opaque;
|
||||
remote_domain_event_callback_metadata_change_msg data;
|
||||
char **nsurip;
|
||||
|
||||
if (callback->callbackID < 0 ||
|
||||
!remoteRelayDomainEventCheckACL(callback->client, conn, dom))
|
||||
return -1;
|
||||
|
||||
VIR_DEBUG("Relaying domain metadata change %s %d %d %s, callback %d",
|
||||
dom->name, dom->id, type, NULLSTR(nsuri), callback->callbackID);
|
||||
|
||||
/* build return data */
|
||||
memset(&data, 0, sizeof(data));
|
||||
|
||||
data.type = type;
|
||||
if (nsuri) {
|
||||
if (VIR_ALLOC(nsurip) < 0)
|
||||
return -1;
|
||||
if (VIR_STRDUP(*nsurip, nsuri) < 0) {
|
||||
VIR_FREE(nsurip);
|
||||
return -1;
|
||||
}
|
||||
data.nsuri = nsurip;
|
||||
}
|
||||
|
||||
make_nonnull_domain(&data.dom, dom);
|
||||
data.callbackID = callback->callbackID;
|
||||
|
||||
remoteDispatchObjectEventSend(callback->client, remoteProgram,
|
||||
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_METADATA_CHANGE,
|
||||
(xdrproc_t)xdr_remote_domain_event_callback_metadata_change_msg,
|
||||
&data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static virConnectDomainEventGenericCallback domainEventCallbacks[] = {
|
||||
VIR_DOMAIN_EVENT_CALLBACK(remoteRelayDomainEventLifecycle),
|
||||
@ -1248,6 +1320,7 @@ static virConnectDomainEventGenericCallback domainEventCallbacks[] = {
|
||||
VIR_DOMAIN_EVENT_CALLBACK(remoteRelayDomainEventMigrationIteration),
|
||||
VIR_DOMAIN_EVENT_CALLBACK(remoteRelayDomainEventJobCompleted),
|
||||
VIR_DOMAIN_EVENT_CALLBACK(remoteRelayDomainEventDeviceRemovalFailed),
|
||||
VIR_DOMAIN_EVENT_CALLBACK(remoteRelayDomainEventMetadataChange),
|
||||
};
|
||||
|
||||
verify(ARRAY_CARDINALITY(domainEventCallbacks) == VIR_DOMAIN_EVENT_ID_LAST);
|
||||
@ -1423,6 +1496,73 @@ static virConnectNodeDeviceEventGenericCallback nodeDeviceEventCallbacks[] = {
|
||||
|
||||
verify(ARRAY_CARDINALITY(nodeDeviceEventCallbacks) == VIR_NODE_DEVICE_EVENT_ID_LAST);
|
||||
|
||||
static int
|
||||
remoteRelaySecretEventLifecycle(virConnectPtr conn,
|
||||
virSecretPtr secret,
|
||||
int event,
|
||||
int detail,
|
||||
void *opaque)
|
||||
{
|
||||
daemonClientEventCallbackPtr callback = opaque;
|
||||
remote_secret_event_lifecycle_msg data;
|
||||
|
||||
if (callback->callbackID < 0 ||
|
||||
!remoteRelaySecretEventCheckACL(callback->client, conn, secret))
|
||||
return -1;
|
||||
|
||||
VIR_DEBUG("Relaying node secretice lifecycle event %d, detail %d, callback %d",
|
||||
event, detail, callback->callbackID);
|
||||
|
||||
/* build return data */
|
||||
memset(&data, 0, sizeof(data));
|
||||
make_nonnull_secret(&data.secret, secret);
|
||||
data.callbackID = callback->callbackID;
|
||||
data.event = event;
|
||||
data.detail = detail;
|
||||
|
||||
remoteDispatchObjectEventSend(callback->client, remoteProgram,
|
||||
REMOTE_PROC_SECRET_EVENT_LIFECYCLE,
|
||||
(xdrproc_t)xdr_remote_secret_event_lifecycle_msg,
|
||||
&data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
remoteRelaySecretEventValueChanged(virConnectPtr conn,
|
||||
virSecretPtr secret,
|
||||
void *opaque)
|
||||
{
|
||||
daemonClientEventCallbackPtr callback = opaque;
|
||||
remote_secret_event_value_changed_msg data;
|
||||
|
||||
if (callback->callbackID < 0 ||
|
||||
!remoteRelaySecretEventCheckACL(callback->client, conn, secret))
|
||||
return -1;
|
||||
|
||||
VIR_DEBUG("Relaying node secret value changed callback %d",
|
||||
callback->callbackID);
|
||||
|
||||
/* build return data */
|
||||
memset(&data, 0, sizeof(data));
|
||||
make_nonnull_secret(&data.secret, secret);
|
||||
data.callbackID = callback->callbackID;
|
||||
|
||||
remoteDispatchObjectEventSend(callback->client, remoteProgram,
|
||||
REMOTE_PROC_SECRET_EVENT_VALUE_CHANGED,
|
||||
(xdrproc_t)xdr_remote_secret_event_value_changed_msg,
|
||||
&data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static virConnectSecretEventGenericCallback secretEventCallbacks[] = {
|
||||
VIR_SECRET_EVENT_CALLBACK(remoteRelaySecretEventLifecycle),
|
||||
VIR_SECRET_EVENT_CALLBACK(remoteRelaySecretEventValueChanged),
|
||||
};
|
||||
|
||||
verify(ARRAY_CARDINALITY(secretEventCallbacks) == VIR_SECRET_EVENT_ID_LAST);
|
||||
|
||||
static void
|
||||
remoteRelayDomainQemuMonitorEvent(virConnectPtr conn,
|
||||
virDomainPtr dom,
|
||||
@ -1560,6 +1700,21 @@ void remoteClientFreeFunc(void *data)
|
||||
}
|
||||
VIR_FREE(priv->nodeDeviceEventCallbacks);
|
||||
|
||||
for (i = 0; i < priv->nsecretEventCallbacks; i++) {
|
||||
int callbackID = priv->secretEventCallbacks[i]->callbackID;
|
||||
if (callbackID < 0) {
|
||||
VIR_WARN("unexpected incomplete secret callback %zu", i);
|
||||
continue;
|
||||
}
|
||||
VIR_DEBUG("Deregistering remote secret event relay %d",
|
||||
callbackID);
|
||||
priv->secretEventCallbacks[i]->callbackID = -1;
|
||||
if (virConnectSecretEventDeregisterAny(priv->conn,
|
||||
callbackID) < 0)
|
||||
VIR_WARN("unexpected secret event deregister failure");
|
||||
}
|
||||
VIR_FREE(priv->secretEventCallbacks);
|
||||
|
||||
for (i = 0; i < priv->nqemuEventCallbacks; i++) {
|
||||
int callbackID = priv->qemuEventCallbacks[i]->callbackID;
|
||||
if (callbackID < 0) {
|
||||
@ -5425,7 +5580,7 @@ remoteDispatchConnectGetCPUModelNames(virNetServerPtr server ATTRIBUTE_UNUSED,
|
||||
cleanup:
|
||||
if (rv < 0)
|
||||
virNetMessageSaveError(rerr);
|
||||
virStringFreeList(models);
|
||||
virStringListFree(models);
|
||||
return rv;
|
||||
}
|
||||
|
||||
@ -5892,6 +6047,127 @@ remoteDispatchConnectNodeDeviceEventDeregisterAny(virNetServerPtr server ATTRIBU
|
||||
return rv;
|
||||
}
|
||||
|
||||
static int
|
||||
remoteDispatchConnectSecretEventRegisterAny(virNetServerPtr server ATTRIBUTE_UNUSED,
|
||||
virNetServerClientPtr client,
|
||||
virNetMessagePtr msg ATTRIBUTE_UNUSED,
|
||||
virNetMessageErrorPtr rerr ATTRIBUTE_UNUSED,
|
||||
remote_connect_secret_event_register_any_args *args,
|
||||
remote_connect_secret_event_register_any_ret *ret)
|
||||
{
|
||||
int callbackID;
|
||||
int rv = -1;
|
||||
daemonClientEventCallbackPtr callback = NULL;
|
||||
daemonClientEventCallbackPtr ref;
|
||||
struct daemonClientPrivate *priv =
|
||||
virNetServerClientGetPrivateData(client);
|
||||
virSecretPtr secret = NULL;
|
||||
|
||||
if (!priv->conn) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
virMutexLock(&priv->lock);
|
||||
|
||||
if (args->secret &&
|
||||
!(secret = get_nonnull_secret(priv->conn, *args->secret)))
|
||||
goto cleanup;
|
||||
|
||||
if (args->eventID >= VIR_SECRET_EVENT_ID_LAST || args->eventID < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("unsupported secret event ID %d"), args->eventID);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* If we call register first, we could append a complete callback
|
||||
* to our array, but on OOM append failure, we'd have to then hope
|
||||
* deregister works to undo our register. So instead we append an
|
||||
* incomplete callback to our array, then register, then fix up
|
||||
* our callback; but since VIR_APPEND_ELEMENT clears 'callback' on
|
||||
* success, we use 'ref' to save a copy of the pointer. */
|
||||
if (VIR_ALLOC(callback) < 0)
|
||||
goto cleanup;
|
||||
callback->client = client;
|
||||
callback->eventID = args->eventID;
|
||||
callback->callbackID = -1;
|
||||
ref = callback;
|
||||
if (VIR_APPEND_ELEMENT(priv->secretEventCallbacks,
|
||||
priv->nsecretEventCallbacks,
|
||||
callback) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if ((callbackID = virConnectSecretEventRegisterAny(priv->conn,
|
||||
secret,
|
||||
args->eventID,
|
||||
secretEventCallbacks[args->eventID],
|
||||
ref,
|
||||
remoteEventCallbackFree)) < 0) {
|
||||
VIR_SHRINK_N(priv->secretEventCallbacks,
|
||||
priv->nsecretEventCallbacks, 1);
|
||||
callback = ref;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ref->callbackID = callbackID;
|
||||
ret->callbackID = callbackID;
|
||||
|
||||
rv = 0;
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(callback);
|
||||
if (rv < 0)
|
||||
virNetMessageSaveError(rerr);
|
||||
virObjectUnref(secret);
|
||||
virMutexUnlock(&priv->lock);
|
||||
return rv;
|
||||
}
|
||||
|
||||
static int
|
||||
remoteDispatchConnectSecretEventDeregisterAny(virNetServerPtr server ATTRIBUTE_UNUSED,
|
||||
virNetServerClientPtr client,
|
||||
virNetMessagePtr msg ATTRIBUTE_UNUSED,
|
||||
virNetMessageErrorPtr rerr ATTRIBUTE_UNUSED,
|
||||
remote_connect_secret_event_deregister_any_args *args)
|
||||
{
|
||||
int rv = -1;
|
||||
size_t i;
|
||||
struct daemonClientPrivate *priv =
|
||||
virNetServerClientGetPrivateData(client);
|
||||
|
||||
if (!priv->conn) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
virMutexLock(&priv->lock);
|
||||
|
||||
for (i = 0; i < priv->nsecretEventCallbacks; i++) {
|
||||
if (priv->secretEventCallbacks[i]->callbackID == args->callbackID)
|
||||
break;
|
||||
}
|
||||
if (i == priv->nsecretEventCallbacks) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("node device event callback %d not registered"),
|
||||
args->callbackID);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (virConnectSecretEventDeregisterAny(priv->conn, args->callbackID) < 0)
|
||||
goto cleanup;
|
||||
|
||||
VIR_DELETE_ELEMENT(priv->secretEventCallbacks, i,
|
||||
priv->nsecretEventCallbacks);
|
||||
|
||||
rv = 0;
|
||||
|
||||
cleanup:
|
||||
if (rv < 0)
|
||||
virNetMessageSaveError(rerr);
|
||||
virMutexUnlock(&priv->lock);
|
||||
return rv;
|
||||
}
|
||||
|
||||
static int
|
||||
qemuDispatchConnectDomainMonitorEventRegister(virNetServerPtr server ATTRIBUTE_UNUSED,
|
||||
virNetServerClientPtr client,
|
||||
@ -6594,6 +6870,44 @@ remoteDispatchDomainInterfaceAddresses(virNetServerPtr server ATTRIBUTE_UNUSED,
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
remoteDispatchStorageVolGetInfoFlags(virNetServerPtr server ATTRIBUTE_UNUSED,
|
||||
virNetServerClientPtr client,
|
||||
virNetMessagePtr msg ATTRIBUTE_UNUSED,
|
||||
virNetMessageErrorPtr rerr,
|
||||
remote_storage_vol_get_info_flags_args *args,
|
||||
remote_storage_vol_get_info_flags_ret *ret)
|
||||
{
|
||||
int rv = -1;
|
||||
virStorageVolPtr vol = NULL;
|
||||
virStorageVolInfo tmp;
|
||||
struct daemonClientPrivate *priv =
|
||||
virNetServerClientGetPrivateData(client);
|
||||
|
||||
if (!priv->conn) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (!(vol = get_nonnull_storage_vol(priv->conn, args->vol)))
|
||||
goto cleanup;
|
||||
|
||||
if (virStorageVolGetInfoFlags(vol, &tmp, args->flags) < 0)
|
||||
goto cleanup;
|
||||
|
||||
ret->type = tmp.type;
|
||||
ret->capacity = tmp.capacity;
|
||||
ret->allocation = tmp.allocation;
|
||||
rv = 0;
|
||||
|
||||
cleanup:
|
||||
if (rv < 0)
|
||||
virNetMessageSaveError(rerr);
|
||||
virObjectUnref(vol);
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
/*----- Helpers. -----*/
|
||||
|
||||
/* get_nonnull_domain and get_nonnull_network turn an on-wire
|
||||
|
@ -719,7 +719,7 @@ daemonStreamHandleWrite(virNetServerClientPtr client,
|
||||
* worth of data, and then queues that for transmission
|
||||
* to the client.
|
||||
*
|
||||
* Returns 0 if data was queued for TX, or a error RPC
|
||||
* Returns 0 if data was queued for TX, or an error RPC
|
||||
* was sent, or -1 on fatal error, indicating client should
|
||||
* be killed
|
||||
*/
|
||||
|
3
daemon/virt-guest-shutdown.target
Normal file
@ -0,0 +1,3 @@
|
||||
[Unit]
|
||||
Description=Libvirt guests shutdown
|
||||
Documentation=http://libvirt.org
|
@ -15,10 +15,5 @@
|
||||
locate the content on this site or mailing list archives</li>
|
||||
</ul>
|
||||
|
||||
<p class="image">
|
||||
<img src="/libvirtLogo404.png" alt="libvirt Logo"/>
|
||||
</p>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
118
docs/Makefile.am
@ -64,17 +64,30 @@ devhelpcss = devhelp/style.css
|
||||
|
||||
devhelpxsl = devhelp/devhelp.xsl devhelp/html.xsl
|
||||
|
||||
logofiles = \
|
||||
logos/logo-base.svg \
|
||||
logos/logo-square.svg \
|
||||
logos/logo-square-powered.svg \
|
||||
logos/logo-banner-dark.svg \
|
||||
logos/logo-banner-light.svg \
|
||||
logos/logo-square-96.png \
|
||||
logos/logo-square-128.png \
|
||||
logos/logo-square-192.png \
|
||||
logos/logo-square-256.png \
|
||||
logos/logo-square-powered-96.png \
|
||||
logos/logo-square-powered-128.png \
|
||||
logos/logo-square-powered-192.png \
|
||||
logos/logo-square-powered-256.png \
|
||||
logos/logo-banner-dark-256.png \
|
||||
logos/logo-banner-dark-800.png \
|
||||
logos/logo-banner-light-256.png \
|
||||
logos/logo-banner-light-800.png
|
||||
|
||||
png = \
|
||||
32favicon.png \
|
||||
libvirt-header-bg.png \
|
||||
libvirt-header-logo.png \
|
||||
libvirtLogo.png \
|
||||
libvirt-net-logical.png \
|
||||
libvirt-net-physical.png \
|
||||
libvirt-daemon-arch.png \
|
||||
libvirt-driver-arch.png \
|
||||
libvirt-object-model.png \
|
||||
madeWith.png \
|
||||
migration-managed-direct.png \
|
||||
migration-managed-p2p.png \
|
||||
migration-native.png \
|
||||
@ -90,16 +103,13 @@ internals_html_in = \
|
||||
$(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/internals/*.html.in))
|
||||
internals_html = $(internals_html_in:%.html.in=%.html)
|
||||
|
||||
# todo.html is special - it is shipped in the tarball, but we
|
||||
# have a dedicated 'todo' target to rebuild it from a proper
|
||||
# config file, all other users are able to build it locally.
|
||||
# For all other files, since we ship pre-built html in the
|
||||
# tarball, we must also ship the sources, even when those
|
||||
# sources are themselves generated.
|
||||
# Generate hvsupport.html first, since it takes one extra step.
|
||||
# Since we ship pre-built html in the tarball, we must also
|
||||
# ship the sources, even when those sources are themselves
|
||||
# generated.
|
||||
# Generate hvsupport.html and news.html first, since they take one extra step.
|
||||
dot_html_in = \
|
||||
hvsupport.html.in \
|
||||
todo.html.in \
|
||||
news.html.in \
|
||||
$(notdir $(wildcard $(srcdir)/*.html.in))
|
||||
dot_html = $(dot_html_in:%.html.in=%.html)
|
||||
|
||||
@ -133,8 +143,6 @@ api_DATA = \
|
||||
libvirt-admin-api.xml
|
||||
|
||||
fig = \
|
||||
libvirt-net-logical.fig \
|
||||
libvirt-net-physical.fig \
|
||||
libvirt-daemon-arch.fig \
|
||||
libvirt-driver-arch.fig \
|
||||
libvirt-object-model.fig \
|
||||
@ -149,15 +157,15 @@ schema_DATA = $(wildcard $(srcdir)/schemas/*.rng)
|
||||
|
||||
EXTRA_DIST= \
|
||||
apibuild.py genaclperms.pl \
|
||||
site.xsl subsite.xsl newapi.xsl news.xsl page.xsl \
|
||||
site.xsl subsite.xsl newapi.xsl page.xsl \
|
||||
hacking1.xsl hacking2.xsl wrapstring.xsl \
|
||||
$(dot_html) $(dot_html_in) $(gif) $(apihtml) $(apipng) \
|
||||
$(devhelphtml) $(devhelppng) $(devhelpcss) $(devhelpxsl) \
|
||||
$(xml) $(qemu_xml) $(lxc_xml) $(admin_xml) $(fig) $(png) $(css) \
|
||||
$(patches) $(dot_php_in) $(dot_php_code_in) $(dot_php)\
|
||||
$(logofiles) $(patches) $(dot_php_in) $(dot_php_code_in) $(dot_php)\
|
||||
$(internals_html_in) $(internals_html) \
|
||||
sitemap.html.in aclperms.htmlinc \
|
||||
todo.pl hvsupport.pl todo.cfg-example \
|
||||
aclperms.htmlinc \
|
||||
hvsupport.pl \
|
||||
$(schema_DATA)
|
||||
|
||||
acl_generated = aclperms.htmlinc
|
||||
@ -184,24 +192,6 @@ admin_api: $(srcdir)/libvirt-admin-api.xml $(srcdir)/libvirt-admin-refs.xml
|
||||
web: $(dot_html) $(internals_html) html/index.html devhelp/index.html \
|
||||
$(dot_php)
|
||||
|
||||
todo.html.in: todo.pl
|
||||
if [ -f todo.cfg ]; then \
|
||||
echo "Generating $@"; \
|
||||
$(PERL) $< > $@ \
|
||||
|| { rm $@ && exit 1; }; \
|
||||
else \
|
||||
echo "Stubbing $@"; \
|
||||
printf "%s\n" \
|
||||
"<html xmlns=\"http://www.w3.org/1999/xhtml\">" \
|
||||
"<body>" \
|
||||
"<h1>Todo list unavailable: no config file</h1>" \
|
||||
"</body></html>" > $@ ; \
|
||||
fi
|
||||
|
||||
todo:
|
||||
rm -f todo.html.in
|
||||
$(MAKE) todo.html
|
||||
|
||||
hvsupport.html: $(srcdir)/hvsupport.html.in
|
||||
|
||||
$(srcdir)/hvsupport.html.in: $(srcdir)/hvsupport.pl $(api_DATA) \
|
||||
@ -211,13 +201,34 @@ $(srcdir)/hvsupport.html.in: $(srcdir)/hvsupport.pl $(api_DATA) \
|
||||
$(AM_V_GEN)$(PERL) $(srcdir)/hvsupport.pl $(top_srcdir)/src > $@ \
|
||||
|| { rm $@ && exit 1; }
|
||||
|
||||
.PHONY: todo
|
||||
# xsltproc seems to add the xmlns="" attribute to random output elements:
|
||||
# use sed to strip it out, as leaving it there triggers XML errors during
|
||||
# further transformation steps
|
||||
news.html.in: \
|
||||
$(srcdir)/news.xml \
|
||||
$(srcdir)/news-html.xsl
|
||||
$(AM_V_GEN) \
|
||||
if [ -x $(XSLTPROC) ]; then \
|
||||
$(XSLTPROC) --nonet \
|
||||
$(srcdir)/news-html.xsl \
|
||||
$(srcdir)/news.xml \
|
||||
>$@-tmp \
|
||||
|| { rm -f $@-tmp; exit 1; }; \
|
||||
sed 's/ xmlns=""//g' $@-tmp >$@ \
|
||||
|| { rm -f $@-tmp; exit 1; }; \
|
||||
rm -f $@-tmp; \
|
||||
fi
|
||||
EXTRA_DIST += \
|
||||
$(srcdir)/news.xml \
|
||||
$(srcdir)/news-html.xsl
|
||||
MAINTAINERCLEANFILES += \
|
||||
$(srcdir)/news.html.in
|
||||
|
||||
%.png: %.fig
|
||||
convert -rotate 90 $< $@
|
||||
|
||||
%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \
|
||||
sitemap.html.in $(acl_generated)
|
||||
$(acl_generated)
|
||||
@if [ -x $(XSLTPROC) ] ; then \
|
||||
echo "Generating $@"; \
|
||||
name=`echo $@ | sed -e 's/.tmp//'`; \
|
||||
@ -243,7 +254,7 @@ $(srcdir)/hvsupport.html.in: $(srcdir)/hvsupport.pl $(api_DATA) \
|
||||
|| { rm $(srcdir)/$@ && exit 1; }; \
|
||||
else echo "missing XHTML1 DTD"; cat $< > $(srcdir)/$@ ; fi ; fi
|
||||
|
||||
%.php.tmp: %.php.in site.xsl page.xsl sitemap.html.in
|
||||
%.php.tmp: %.php.in site.xsl page.xsl
|
||||
@if [ -x $(XSLTPROC) ] ; then \
|
||||
echo "Generating $@"; \
|
||||
$(XSLTPROC) --stringparam pagename $(@:.tmp=) --nonet \
|
||||
@ -259,7 +270,7 @@ $(srcdir)/hvsupport.html.in: $(srcdir)/hvsupport.pl $(api_DATA) \
|
||||
|
||||
$(apihtml_generated): html/index.html
|
||||
|
||||
html/index.html: libvirt-api.xml newapi.xsl page.xsl sitemap.html.in
|
||||
html/index.html: libvirt-api.xml newapi.xsl page.xsl $(APIBUILD_STAMP)
|
||||
$(AM_V_GEN)if [ -x $(XSLTPROC) ] ; then \
|
||||
$(XSLTPROC) --nonet -o $(srcdir)/ \
|
||||
--stringparam builddir '$(abs_top_builddir)' \
|
||||
@ -317,6 +328,16 @@ $(APIBUILD_STAMP): $(srcdir)/apibuild.py \
|
||||
$(top_srcdir)/include/libvirt/libvirt-admin.h \
|
||||
$(top_srcdir)/include/libvirt/virterror.h \
|
||||
$(top_srcdir)/src/libvirt.c \
|
||||
$(top_srcdir)/src/libvirt-domain-snapshot.c \
|
||||
$(top_srcdir)/src/libvirt-domain.c \
|
||||
$(top_srcdir)/src/libvirt-host.c \
|
||||
$(top_srcdir)/src/libvirt-interface.c \
|
||||
$(top_srcdir)/src/libvirt-network.c \
|
||||
$(top_srcdir)/src/libvirt-nodedev.c \
|
||||
$(top_srcdir)/src/libvirt-nwfilter.c \
|
||||
$(top_srcdir)/src/libvirt-secret.c \
|
||||
$(top_srcdir)/src/libvirt-storage.c \
|
||||
$(top_srcdir)/src/libvirt-stream.c \
|
||||
$(top_srcdir)/src/libvirt-lxc.c \
|
||||
$(top_srcdir)/src/libvirt-qemu.c \
|
||||
$(top_srcdir)/src/libvirt-admin.c \
|
||||
@ -331,11 +352,10 @@ check-local: all
|
||||
dist-local: all
|
||||
|
||||
clean-local:
|
||||
rm -f *~ *.bak *.hierarchy *.signals *-unused.txt *.html
|
||||
rm -f *~ *.bak *.hierarchy *.signals *-unused.txt *.html html/*.html
|
||||
|
||||
maintainer-clean-local: clean-local
|
||||
rm -rf $(srcdir)/libvirt-api.xml $(srcdir)/libvirt-refs.xml \
|
||||
todo.html.in
|
||||
rm -rf $(srcdir)/libvirt-api.xml $(srcdir)/libvirt-refs.xml
|
||||
rm -rf $(srcdir)/libvirt-qemu-api.xml $(srcdir)/libvirt-qemu-refs.xml
|
||||
rm -rf $(srcdir)/libvirt-lxc-api.xml $(srcdir)/libvirt-lxc-refs.xml
|
||||
rm -rf $(srcdir)/libvirt-admin-api.xml $(srcdir)/libvirt-admin-refs.xml
|
||||
@ -347,6 +367,9 @@ install-data-local:
|
||||
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)
|
||||
for f in $(css) $(dot_html) $(gif) $(png); do \
|
||||
$(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR); done
|
||||
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/logos
|
||||
for f in $(logofiles); do \
|
||||
$(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR)/logos; done
|
||||
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/html
|
||||
for h in $(apihtml); do \
|
||||
$(INSTALL) -m 0644 $(srcdir)/$$h $(DESTDIR)$(HTML_DIR)/html; done
|
||||
@ -359,12 +382,14 @@ install-data-local:
|
||||
for file in $(devhelphtml) $(devhelppng) $(devhelpcss); do \
|
||||
$(INSTALL) -m 0644 $(srcdir)/$${file} $(DESTDIR)$(DEVHELP_DIR) ; \
|
||||
done
|
||||
$(INSTALL_DATA) $(srcdir)/libvirtLogo.png $(DESTDIR)$(pkgdatadir)
|
||||
|
||||
uninstall-local:
|
||||
for f in $(css) $(dot_html) $(gif) $(png); do \
|
||||
rm -f $(DESTDIR)$(HTML_DIR)/$$f; \
|
||||
done
|
||||
for f in $(logofiles); do \
|
||||
rm -f $(DESTDIR)$(HTML_DIR)/$$f; \
|
||||
done
|
||||
for h in $(apihtml); do rm -f $(DESTDIR)$(HTML_DIR)/$$h; done
|
||||
for p in $(apipng); do rm -f $(DESTDIR)$(HTML_DIR)/$$p; done
|
||||
for f in $(internals_html); do \
|
||||
@ -373,4 +398,3 @@ uninstall-local:
|
||||
for f in $(devhelphtml) $(devhelppng) $(devhelpcss); do \
|
||||
rm -f $(DESTDIR)$(DEVHELP_DIR)/$$(basename $$f); \
|
||||
done
|
||||
rm -f $(DESTDIR)$(pkgdatadir)/libvirtLogo.png
|
||||
|
@ -334,9 +334,9 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
polkit.addRule(function(action, subject) {
|
||||
....logic to check 'action' and 'subject'...
|
||||
});
|
||||
polkit.addRule(function(action, subject) {
|
||||
....logic to check 'action' and 'subject'...
|
||||
});
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
|
@ -2607,10 +2607,9 @@ class app:
|
||||
dirs = [srcdir + "/../src",
|
||||
srcdir + "/../src/util",
|
||||
srcdir + "/../include/libvirt"]
|
||||
if builddir:
|
||||
if (builddir and
|
||||
not os.path.exists(srcdir + "/../include/libvirt/libvirt-common.h")):
|
||||
dirs.append(builddir + "/../include/libvirt")
|
||||
if glob.glob(srcdir + "/../include/libvirt/libvirt.h") == [] :
|
||||
dirs.append("../include/libvirt")
|
||||
builder = docBuilder(name, srcdir, dirs, [])
|
||||
elif glob.glob("src/libvirt.c") != [] :
|
||||
if not quiet:
|
||||
|
@ -19,12 +19,15 @@
|
||||
be added here, or simply send a patch against the documentation
|
||||
in the libvirt.git docs subdirectory.
|
||||
If your application uses libvirt as its API,
|
||||
the following graphic is available for your website to advertise
|
||||
the following graphics are available for your website to advertise
|
||||
support for libvirt:
|
||||
</p>
|
||||
|
||||
<p class="image">
|
||||
<img src="madeWith.png" alt="Made with libvirt"/>
|
||||
<img src="logos/logo-square-powered-96.png" alt="libvirt powered"/>
|
||||
<img src="logos/logo-square-powered-128.png" alt="libvirt powered"/>
|
||||
<img src="logos/logo-square-powered-192.png" alt="libvirt powered"/>
|
||||
<img src="logos/logo-square-powered-256.png" alt="libvirt powered"/>
|
||||
</p>
|
||||
|
||||
<h2><a name="clientserver">Client/Server applications</a></h2>
|
||||
@ -208,6 +211,17 @@
|
||||
to remote consoles supporting the VNC protocol. Also provides
|
||||
an optional mozilla browser plugin.
|
||||
</dd>
|
||||
<dt><a href="http://f1ash.github.io/qt-virt-manager">qt-virt-manager</a></dt>
|
||||
<dd>
|
||||
The Qt GUI for create and control VMs and another virtual entities
|
||||
(aka networks, storages, interfaces, secrets, network filters).
|
||||
Contains integrated LXC/SPICE/VNC viewer for accessing the graphical or
|
||||
text console associated with a virtual machine or container.
|
||||
</dd>
|
||||
<dt><a href="http://f1ash.github.io/qt-virt-manager/#virtual-machines-viewer">qt-remote-viewer</a></dt>
|
||||
<dd>
|
||||
The Qt VNC/SPICE viewer for access to remote desktops or VMs.
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<h2><a name="iaas">Infrastructure as a Service (IaaS)</a></h2>
|
||||
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<body>
|
||||
<h1>Domain management architecture</h1>
|
||||
</body>
|
||||
</html>
|
@ -1,54 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<body>
|
||||
<h1>Network management architecture</h1>
|
||||
|
||||
<ul id="toc"></ul>
|
||||
|
||||
<h2><a name="architecture">Architecture illustration</a></h2>
|
||||
|
||||
<p>
|
||||
The diagrams below illustrate some of the network configurations
|
||||
enabled by the libvirt networking APIs
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><strong>VLAN 1</strong>. This virtual network has connectivity
|
||||
to <code>LAN 2</code> with traffic forwarded and NATed.
|
||||
</li>
|
||||
<li><strong>VLAN 2</strong>. This virtual network is completely
|
||||
isolated from any physical LAN.
|
||||
</li>
|
||||
<li><strong>Guest A</strong>. The first network interface is bridged
|
||||
to the physical <code>LAN 1</code>. The second interface is connected
|
||||
to a virtual network <code>VLAN 1</code>.
|
||||
</li>
|
||||
<li><strong>Guest B</strong>. The first network interface is connected
|
||||
to a virtual network <code>VLAN 1</code>, giving it limited NAT
|
||||
based connectivity to LAN2. It has a second network interface
|
||||
connected to <code>VLAN 2</code>. It acts a router allowing limited
|
||||
traffic between the two VLANs, thus giving <code>Guest C</code>
|
||||
connectivity to the physical <code>LAN 2</code>.
|
||||
</li>
|
||||
<li><strong>Guest C</strong>. The only network interface is connected
|
||||
to a virtual network <code>VLAN 2</code>. It has no direct connectivity
|
||||
to a physical LAN, relying on <code>Guest B</code> to route traffic
|
||||
on its behalf.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3><a name="logical">Logical diagram</a></h3>
|
||||
|
||||
<p class="image">
|
||||
<img src="libvirt-net-logical.png" alt="Logical network architecture"/>
|
||||
</p>
|
||||
|
||||
<h3><a name="physical">Physical diagram</a></h3>
|
||||
|
||||
<p class="image">
|
||||
<img src="libvirt-net-physical.png" alt="Physical network architecture"/>
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<body>
|
||||
<h1>Node device management architecture</h1>
|
||||
</body>
|
||||
</html>
|
@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<body>
|
||||
<h1>Storage management architecture</h1>
|
||||
|
||||
<p>
|
||||
The storage management APIs are based around 2 core concepts
|
||||
</p>
|
||||
<ol>
|
||||
<li>
|
||||
<strong>Volume</strong> - a single storage volume which can
|
||||
be assigned to a guest, or used for creating further pools. A
|
||||
volume is either a block device, a raw file, or a special format
|
||||
file.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Pool</strong> - provides a means for taking a chunk
|
||||
of storage and carving it up into volumes. A pool can be used to
|
||||
manage things such as a physical disk, a NFS server, a iSCSI target,
|
||||
a host adapter, an LVM group.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
These two concepts are mapped through to two libvirt objects, a
|
||||
<code>virStorageVolPtr</code> and a <code>virStoragePoolPtr</code>,
|
||||
each with a collection of APIs for their management.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -173,7 +173,7 @@ the libvirt daemon.
|
||||
<h2><a name="ACL_server_polkit">UNIX socket PolicyKit auth</a></h2>
|
||||
<p>
|
||||
If libvirt contains support for PolicyKit, then access control options are
|
||||
more advanced. The <code>unix_sock_auth</code> parameter will default to
|
||||
more advanced. The <code>auth_unix_rw</code> parameter will default to
|
||||
<code>polkit</code>, and the file permissions will default to <code>0777</code>
|
||||
even on the RW socket. Upon connecting to the socket, the client application
|
||||
will be required to identify itself with PolicyKit. The default policy for the
|
||||
|
@ -15,8 +15,8 @@
|
||||
<a href="csharp.html">C# bindings</a>.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Go</strong>: Kyle Kelley et al. are developing
|
||||
<a href="https://github.com/rgbkrk/libvirt-go">Go bindings</a>.
|
||||
<strong>Go</strong>: Daniel Berrange develops
|
||||
<a href="https://godoc.org/github.com/libvirt/libvirt-go">Go bindings</a>.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Java</strong>: Daniel Veillard develops
|
||||
|
@ -221,11 +221,11 @@ $ROOT
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<resource>
|
||||
<partition>/machine/production</partition>
|
||||
</resource>
|
||||
...
|
||||
...
|
||||
<resource>
|
||||
<partition>/machine/production</partition>
|
||||
</resource>
|
||||
...
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
|
@ -13,9 +13,9 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ xz -c libvirt-x.x.x.tar.xz | tar xvf -
|
||||
$ cd libvirt-x.x.x
|
||||
$ ./configure</pre>
|
||||
$ xz -c libvirt-x.x.x.tar.xz | tar xvf -
|
||||
$ cd libvirt-x.x.x
|
||||
$ ./configure</pre>
|
||||
|
||||
<p>
|
||||
The <i>configure</i> script can be given options to change its default
|
||||
@ -28,7 +28,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ ./configure <i>--help</i></pre>
|
||||
$ ./configure <i>--help</i></pre>
|
||||
|
||||
<p>
|
||||
When you have determined which options you want to use (if any),
|
||||
@ -49,9 +49,9 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ ./configure <i>[possible options]</i>
|
||||
$ make
|
||||
$ <b>sudo</b> <i>make install</i></pre>
|
||||
$ ./configure <i>[possible options]</i>
|
||||
$ make
|
||||
$ <b>sudo</b> <i>make install</i></pre>
|
||||
|
||||
<p>
|
||||
At this point you <b>may</b> have to run ldconfig or a similar utility
|
||||
@ -91,7 +91,7 @@
|
||||
drive or manual download, and run this any time libvirt.git
|
||||
updates the commit stored in the .gnulib submodule:</p>
|
||||
<pre>
|
||||
$ GNULIB_SRCDIR=/path/to/gnulib ./autogen.sh --no-git
|
||||
$ GNULIB_SRCDIR=/path/to/gnulib ./autogen.sh --no-git
|
||||
</pre>
|
||||
|
||||
<p>To build & install libvirt to your home
|
||||
@ -99,9 +99,9 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ ./autogen.sh --prefix=$HOME/usr
|
||||
$ make
|
||||
$ <b>sudo</b> make install</pre>
|
||||
$ ./autogen.sh --prefix=$HOME/usr
|
||||
$ make
|
||||
$ <b>sudo</b> make install</pre>
|
||||
|
||||
<p>
|
||||
Be aware though, that binaries built with a custom prefix will not
|
||||
@ -111,8 +111,8 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ ./autogen.sh --system
|
||||
$ make
|
||||
$ ./autogen.sh --system
|
||||
$ make
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -123,9 +123,9 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ su -
|
||||
# service libvirtd stop (or systemctl stop libvirtd.service)
|
||||
# /home/to/your/checkout/daemon/libvirtd
|
||||
$ su -
|
||||
# service libvirtd stop (or systemctl stop libvirtd.service)
|
||||
# /home/to/your/checkout/daemon/libvirtd
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -134,7 +134,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ ./run ./tools/virsh ....
|
||||
$ ./run ./tools/virsh ....
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<body>
|
||||
<h1>Contacting the development team</h1>
|
||||
<h1>Contacting the project contributors</h1>
|
||||
|
||||
<ul id="toc"></ul>
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
There are three mailing-lists:
|
||||
</p>
|
||||
|
||||
<dl>
|
||||
<dl class="mail">
|
||||
<dt><a href="https://www.redhat.com/mailman/listinfo/libvir-list">libvir-list@redhat.com</a> (for development)</dt>
|
||||
<dd>
|
||||
Archives at <a href="https://www.redhat.com/archives/libvir-list">https://www.redhat.com/archives/libvir-list</a>
|
||||
|
140
docs/contribute.html.in
Normal file
@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<body>
|
||||
<h1>Contributing to libvirt</h1>
|
||||
|
||||
<p>
|
||||
This page provides guidance on how to contribute to the
|
||||
libvirt project
|
||||
</p>
|
||||
|
||||
<ul id="toc"></ul>
|
||||
|
||||
<h2><a name="skills">Contributions required</a></h2>
|
||||
|
||||
<p>
|
||||
The libvirt project is always looking for new contributors to
|
||||
participate in ongoing activities. While code development is a
|
||||
major part of the project, assistance is needed in many other
|
||||
areas including documentation writing, bug triage, testing,
|
||||
application integration, website / wiki content management,
|
||||
translation, branding, social media and more. The only
|
||||
requirement is an interest in virtualization and desire to
|
||||
help.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The following is a non-exhaustive list of areas in which
|
||||
people can contribute to libvirt. If you have ideas for
|
||||
other contributions feel free to follow them.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><strong>Software development</strong>. The core library / daemon (and
|
||||
thus the bulk of coding) is written in C, but there are
|
||||
language bindings written in Python, Perl, Java, Ruby,
|
||||
Php, OCaml and Go. There are also higher level wrappers
|
||||
mapping libvirt into other object frameworks, such GLib,
|
||||
CIM and SNMP</li>
|
||||
<li><strong>Translation</strong>. All the libvirt modules aim to support
|
||||
translations where appropriate. All translation is
|
||||
handling outside of the normal libvirt review process,
|
||||
using the <a href="http://fedora.zanata.org">Fedora
|
||||
instance</a> of the Zanata tool. Thus people wishing
|
||||
to contribute to translation should join the Fedora
|
||||
translation team</li>
|
||||
<li><strong>Documentation</strong>. There are docbook guides on various
|
||||
aspects of libvirt, particularly application development
|
||||
guides for the C library and Python, and a virsh command
|
||||
reference. There is thus scope for work by people who are
|
||||
familiar with using or developing against libvirt, to
|
||||
write further content for these guides. There is also a
|
||||
need for people to review existing content for copy editing
|
||||
and identifying gaps in the docs</li>
|
||||
<li><strong>Website / wiki curation</strong>. The bulk of the website is
|
||||
maintained in the primary GIT repository, while the wiki
|
||||
site uses mediawiki. In both cases there is a need for
|
||||
people to both write new content and curate existing
|
||||
content to identify outdated information, improve its
|
||||
organization and target gaps.</li>
|
||||
<li><strong>Testing</strong>. There are a number of tests suites that can run
|
||||
automated tests against libvirt. The coverage of the tests
|
||||
is never complete, so there is a need for people to create
|
||||
new test suites and / or provide environments to actually
|
||||
run the tests in a variety of deployment scenarios.</li>
|
||||
<li><strong>Code analysis</strong>. The libvirt project has access to the coverity
|
||||
tool to run static analysis against the codebase, however,
|
||||
there are other types of code analysis that can be useful.
|
||||
In particular fuzzing of the inputs can be very effective
|
||||
at identifying problematic edge cases.</li>
|
||||
<li><strong>Security handling</strong>. Downstream (operating system) vendors
|
||||
who distribute libvirt may wish to propose a person to
|
||||
be part of the security handling team, to get early access
|
||||
to information about forthcoming vulnerability fixes.</li>
|
||||
<li><strong>Evangalism</strong>. Work done by the project is of no benefit
|
||||
unless the (potential) user community knows that it
|
||||
exists. Thus it is critically important to the health
|
||||
and future growth of the project, that there are a people
|
||||
who evangalise the work created by the project. This can
|
||||
take many forms, writing blog posts (about usage of features,
|
||||
personal user experiances, areas for future work, and more),
|
||||
syndicating docs and blogs via social media, giving user
|
||||
group and/or conference talks about libvirt.</li>
|
||||
<li><strong>User assistance</strong>. Since documentation
|
||||
is never perfect, there are inevitably cases where users
|
||||
will struggle to attain a deployment goal they have, or
|
||||
run into trouble with managing an existing deployment.
|
||||
While some users may be able to contact a software vendor
|
||||
to obtain support, it is common to rely on community help
|
||||
forums such as <a href="contact.html#email">libvirt users
|
||||
mailing list</a>, or sites such as
|
||||
<a href="http://stackoverflow.com/questions/tagged/libvirt">stackoverflow.</a>
|
||||
People who are familiar with libvirt and have ability &
|
||||
desire to help other users are encouraged to participate in
|
||||
these help forums.</li>
|
||||
</ul>
|
||||
|
||||
<h2><a name="comms">Communication</a></h2>
|
||||
|
||||
<p>
|
||||
For full details on contacting other project contributors
|
||||
read the <a href="contact.html">contact</a> page. There
|
||||
are two main channels that libvirt uses for communication
|
||||
between contributors:
|
||||
</p>
|
||||
|
||||
<h3><a name="email">Mailing lists</a></h3>
|
||||
|
||||
<p>
|
||||
The project has a number of
|
||||
<a href="contact.html#email">mailing lists</a> for
|
||||
general communication between contributors.
|
||||
In general any design discussions and review
|
||||
of contributions will take place on the mailing
|
||||
lists, so it is important for all contributors
|
||||
to follow the traffic.
|
||||
</p>
|
||||
|
||||
<h3><a name="irc">Instant messaging / chat</a></h3>
|
||||
|
||||
<p>
|
||||
Contributors to libvirt are encouraged to join the
|
||||
<a href="contact.html#irc">IRC channel</a> used by
|
||||
the project, where they can have live conversations
|
||||
with others members.
|
||||
</p>
|
||||
|
||||
<h2><a name="outreach">Student / outreach coding programs</a></h2>
|
||||
|
||||
<p>
|
||||
Since 2016, the libvirt project directly participates as an
|
||||
organization in the <a href="http://wiki.libvirt.org/page/Google_Summer_of_Code_Ideas">Google Summer of Code program</a>. Prior to
|
||||
this the project had a number of students in the program
|
||||
via a joint application with the QEMU project. People are
|
||||
encouraged to look at both the libvirt and QEMU programs
|
||||
to identify potentially interesting projects to work on.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,50 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<body>
|
||||
<h1>Deployment</h1>
|
||||
|
||||
<ul id="toc"></ul>
|
||||
|
||||
<h2><a name="packages">Pre-packaged releases</a></h2>
|
||||
|
||||
<p>
|
||||
The libvirt API is now available in all major Linux distributions,
|
||||
so the simplest deployment approach is to use your distributions'
|
||||
package management software to install the <code>libvirt</code>
|
||||
module.
|
||||
</p>
|
||||
|
||||
<h2><a name="tarball">Self-built releases</a></h2>
|
||||
|
||||
<p>
|
||||
libvirt uses GNU autotools for its build system, so deployment
|
||||
follows the usual process of <code>configure; make ; make install</code>
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
|
||||
# ./configure --prefix=$HOME/usr
|
||||
# make
|
||||
# make install
|
||||
</pre>
|
||||
|
||||
<h2><a name="git">Built from GIT</a></h2>
|
||||
|
||||
<p>
|
||||
When building from GIT it is necessary to generate the autotools
|
||||
support files. This requires having <code>autoconf</code>,
|
||||
<code>automake</code>, <code>libtool</code> and <code>intltool</code>
|
||||
installed. The process can be automated with the <code>autogen.sh</code>
|
||||
script.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
|
||||
# ./autogen.sh --prefix=$HOME/usr
|
||||
# make
|
||||
# make install
|
||||
</pre>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -28,14 +28,14 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
# C language
|
||||
$ git clone <a href="http://libvirt.org/git/?p=libvirt-appdev-guide.git">git://libvirt.org/libvirt-appdev-guide.git</a>
|
||||
# C language
|
||||
$ git clone <a href="http://libvirt.org/git/?p=libvirt-appdev-guide.git">git://libvirt.org/libvirt-appdev-guide.git</a>
|
||||
|
||||
# Python language
|
||||
$ git clone <a href="http://libvirt.org/git/?p=libvirt-appdev-guide-python.git">git://libvirt.org/libvirt-appdev-guide-python.git</a>
|
||||
# Python language
|
||||
$ git clone <a href="http://libvirt.org/git/?p=libvirt-appdev-guide-python.git">git://libvirt.org/libvirt-appdev-guide-python.git</a>
|
||||
|
||||
# Publican Style/Theme
|
||||
$ git clone <a href="http://libvirt.org/git/?p=libvirt-publican.git">git://libvirt.org/libvirt-publican.git</a>
|
||||
# Publican Style/Theme
|
||||
$ git clone <a href="http://libvirt.org/git/?p=libvirt-publican.git">git://libvirt.org/libvirt-publican.git</a>
|
||||
</pre>
|
||||
|
||||
</body>
|
||||
|
@ -1,7 +1,166 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<body>
|
||||
<h1>Documentation</h1>
|
||||
<body class="docs">
|
||||
<div class="panel">
|
||||
<h2>Deployment / operation</h2>
|
||||
|
||||
<dl>
|
||||
<dt><a href="apps.html">Applications</a></dt>
|
||||
<dd>Applications known to use libvirt</dd>
|
||||
|
||||
<dt><a href="windows.html">Windows</a></dt>
|
||||
<dd>Downloads for Windows</dd>
|
||||
|
||||
<dt><a href="migration.html">Migration</a></dt>
|
||||
<dd>Migrating guests between machines</dd>
|
||||
|
||||
<dt><a href="remote.html">Remote access</a></dt>
|
||||
<dd>Enable remote access over TCP</dd>
|
||||
|
||||
<dt><a href="auth.html">Authentication</a></dt>
|
||||
<dd>Configure authentication for the libvirt daemon</dd>
|
||||
|
||||
<dt><a href="acl.html">Access control</a></dt>
|
||||
<dd>Configure access control libvirt APIs with <a href="aclpolkit.html">polkit</a></dd>
|
||||
|
||||
<dt><a href="logging.html">Logging</a></dt>
|
||||
<dd>The library and the daemon logging support</dd>
|
||||
|
||||
<dt><a href="auditlog.html">Audit log</a></dt>
|
||||
<dd>Audit trail logs for host operations</dd>
|
||||
|
||||
<dt><a href="firewall.html">Firewall</a></dt>
|
||||
<dd>Firewall and network filter configuration</dd>
|
||||
|
||||
<dt><a href="hooks.html">Hooks</a></dt>
|
||||
<dd>Hooks for system specific management</dd>
|
||||
|
||||
<dt><a href="nss.html">NSS module</a></dt>
|
||||
<dd>Enable domain host name translation to IP addresses</dd>
|
||||
|
||||
<dt><a href="http://wiki.libvirt.org/page/FAQ">FAQ</a></dt>
|
||||
<dd>Frequently asked questions</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<h2>Application development</h2>
|
||||
<dl>
|
||||
<dt><a href="devguide.html">Development Guide</a></dt>
|
||||
<dd>A guide and reference for developing with libvirt</dd>
|
||||
|
||||
<dt><a href="virshcmdref.html">Virsh Commands</a></dt>
|
||||
<dd>Command reference for virsh</dd>
|
||||
|
||||
<dt><a href="bindings.html">Language bindings</a></dt>
|
||||
<dd>Bindings of the libvirt API for
|
||||
<a href="csharp.html">c#</a>,
|
||||
<a href="https://godoc.org/github.com/libvirt/libvirt-go">go</a>,
|
||||
<a href="java.html">java</a>,
|
||||
<a href="http://libvirt.org/ocaml/">ocaml</a>.
|
||||
<a href="http://search.cpan.org/dist/Sys-Virt/">perl</a>,
|
||||
<a href="python.html">python</a>,
|
||||
<a href="php.html">php</a>,
|
||||
<a href="http://libvirt.org/ruby/">ruby</a></dd>
|
||||
|
||||
|
||||
<dt><a href="format.html">XML schemas</a></dt>
|
||||
<dd>Description of the XML schemas for
|
||||
<a href="formatdomain.html">domains</a>,
|
||||
<a href="formatnetwork.html">networks</a>,
|
||||
<a href="formatnwfilter.html">network filtering</a>,
|
||||
<a href="formatstorage.html">storage</a>,
|
||||
<a href="formatstorageencryption.html">storage encryption</a>,
|
||||
<a href="formatcaps.html">capabilities</a>,
|
||||
<a href="formatdomaincaps.html">domain capabilities</a>,
|
||||
<a href="formatnode.html">node devices</a>,
|
||||
<a href="formatsecret.html">secrets</a>,
|
||||
<a href="formatsnapshot.html">snapshots</a></dd>
|
||||
|
||||
<dt><a href="uri.html">URI format</a></dt>
|
||||
<dd>The URI formats used for connecting to libvirt</dd>
|
||||
|
||||
<dt><a href="locking.html">Disk locking</a></dt>
|
||||
<dd>Ensuring exclusive guest access to disks with
|
||||
<a href="locking-lockd.html">virtlockd</a> or
|
||||
<a href="locking-sanlock.html">Sanlock</a></dd>
|
||||
|
||||
<dt><a href="cgroups.html">CGroups</a></dt>
|
||||
<dd>Control groups integration</dd>
|
||||
|
||||
<dt><a href="html/index.html">API reference</a></dt>
|
||||
<dd>Reference manual for the C public API, split in
|
||||
<a href="html/libvirt-libvirt-common.html">common</a>,
|
||||
<a href="html/libvirt-libvirt-domain.html">domain</a>,
|
||||
<a href="html/libvirt-libvirt-domain-snapshot.html">domain snapshot</a>,
|
||||
<a href="html/libvirt-virterror.html">error</a>,
|
||||
<a href="html/libvirt-libvirt-event.html">event</a>,
|
||||
<a href="html/libvirt-libvirt-host.html">host</a>,
|
||||
<a href="html/libvirt-libvirt-interface.html">interface</a>,
|
||||
<a href="html/libvirt-libvirt-network.html">network</a>,
|
||||
<a href="html/libvirt-libvirt-nodedev.html">node device</a>,
|
||||
<a href="html/libvirt-libvirt-nwfilter.html">network filter</a>,
|
||||
<a href="html/libvirt-libvirt-secret.html">secret</a>,
|
||||
<a href="html/libvirt-libvirt-storage.html">storage</a>,
|
||||
<a href="html/libvirt-libvirt-stream.html">stream</a>
|
||||
</dd>
|
||||
|
||||
<dt><a href="drivers.html">Drivers</a></dt>
|
||||
<dd>Hypervisor specific driver information</dd>
|
||||
|
||||
<dt><a href="hvsupport.html">Driver support</a></dt>
|
||||
<dd>matrix of API support per hypervisor per release</dd>
|
||||
|
||||
<dt><a href="secureusage.html">Secure usage</a></dt>
|
||||
<dd>Secure usage of the libvirt APIs</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<h2>Project development</h2>
|
||||
<dl>
|
||||
<dt><a href="hacking.html">Contributor guidelines</a></dt>
|
||||
<dd>General hacking guidelines for contributors</dd>
|
||||
|
||||
<dt><a href="bugs.html">Bug reports</a></dt>
|
||||
<dd>How and where to report bugs and request features</dd>
|
||||
|
||||
<dt><a href="compiling.html">Compiling</a></dt>
|
||||
<dd>How to compile libvirt</dd>
|
||||
|
||||
<dt><a href="goals.html">Goals</a></dt>
|
||||
<dd>Terminology and goals of libvirt API</dd>
|
||||
|
||||
<dt><a href="api.html">API concepts</a></dt>
|
||||
<dd>The libvirt API concepts</dd>
|
||||
|
||||
<dt><a href="api_extension.html">API extensions</a></dt>
|
||||
<dd>Adding new public libvirt APIs</dd>
|
||||
|
||||
<dt><a href="internals/eventloop.html">Event loop and worker pool</a></dt>
|
||||
<dd>Libvirt's event loop and worker pool mode</dd>
|
||||
|
||||
<dt><a href="internals/command.html">Spawning commands</a></dt>
|
||||
<dd>Spawning commands from libvirt driver code</dd>
|
||||
|
||||
<dt><a href="internals/rpc.html">RPC protocol & APIs</a></dt>
|
||||
<dd>RPC protocol information and API / dispatch guide</dd>
|
||||
|
||||
<dt><a href="internals/locking.html">Lock managers</a></dt>
|
||||
<dd>Use lock managers to protect disk content</dd>
|
||||
|
||||
<dt><a href="internals/oomtesting.html">Out of memory testing</a></dt>
|
||||
<dd>Simulating OOM conditions in the test suite</dd>
|
||||
|
||||
<dt><a href="testsuites.html">Functional testing</a></dt>
|
||||
<dd>Testing libvirt with <a href="testtck.html">TCK test suite</a> and
|
||||
<a href="testapi.html">Libvirt-test-API</a></dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<br class="clear"/>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -6,15 +6,383 @@
|
||||
|
||||
<ul id="toc"></ul>
|
||||
|
||||
<h2><a name="releases">Official Releases</a></h2>
|
||||
<h2><a name="releases">Project modules</a></h2>
|
||||
|
||||
<p>
|
||||
The latest versions of the libvirt C library can be downloaded from:
|
||||
The libvirt project maintains a number of inter-related modules beyond
|
||||
the core C library/daemon.
|
||||
</p>
|
||||
|
||||
<table class="top_table downloads">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Module</th>
|
||||
<th>Releases</th>
|
||||
<th>GIT Repo</th>
|
||||
<th>GIT Mirrors</th>
|
||||
<th>Resources</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>libvirt</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/">http</a>
|
||||
<a href="https://libvirt.org/sources/">https</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt">github</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="html/index.html">api ref</a>
|
||||
<a href="news.html">changes</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="7">Language bindings</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>C#</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/csharp/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/csharp/">http</a>
|
||||
<a href="https://libvirt.org/sources/csharp/">https</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-csharp.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-csharp">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-csharp">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Go</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/go/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/go/">http</a>
|
||||
<a href="https://libvirt.org/sources/go/">https</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-go.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-go">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-go">github</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://godoc.org/github.com/libvirt/libvirt-go">api ref</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Java</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/java/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/java/">http</a>
|
||||
<a href="https://libvirt.org/sources/java/">https</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-java.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-java">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-java">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>OCaml</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/ocaml/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/ocaml/">http</a>
|
||||
<a href="https://libvirt.org/sources/ocaml/">https</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-ocaml.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-ocaml">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-ocaml">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Perl (Sys::Virt)</td>
|
||||
<td>
|
||||
<a href="http://search.cpan.org/dist/Sys-Virt/">cpan</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-perl.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-perl">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-perl">github</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://search.cpan.org/dist/Sys-Virt/">api ref</a>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-perl.git;a=blob;f=Changes;hb=HEAD">changes</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PHP</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/php/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/php/">http</a>
|
||||
<a href="https://libvirt.org/sources/php/">https</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-php.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-php">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-php">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Python</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/python/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/python/">http</a>
|
||||
<a href="https://libvirt.org/sources/python/">https</a>
|
||||
<a href="https://pypi.python.org/pypi/libvirt-python">pypi</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-python.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-python">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-python">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ruby</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/ruby/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/ruby/">http</a>
|
||||
<a href="https://libvirt.org/sources/ruby/">https</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=ruby-libvirt.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/ruby-libvirt">gitlab</a>
|
||||
<a href="https://github.com/libvirt/ruby-libvirt">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="7">Integration modules</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>GLib / GConfig / GObject</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/glib/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/glib/">http</a>
|
||||
<a href="https://libvirt.org/sources/glib/">https</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-glib.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-glib">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-glib">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CIM provider</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/CIM/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/CIM/">http</a>
|
||||
<a href="https://libvirt.org/sources/CIM/">https</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-cim.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-cim">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-cim">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CIM utils</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/CIM/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/CIM/">http</a>
|
||||
<a href="https://libvirt.org/sources/CIM/">https</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libcmpiutil.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libcmpiutil">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libcmpiutil">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SNMP</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/snmp/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/snmp/">http</a>
|
||||
<a href="https://libvirt.org/sources/snmp/">https</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-snmp.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-snmp">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-snmp">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Application Sandbox</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/sandbox/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/sandbox/">http</a>
|
||||
<a href="https://libvirt.org/sources/sandbox/">https</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-sandbox.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-sandbox">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-sandbox">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="7">Testing</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>TCK</td>
|
||||
<td>
|
||||
<a href="ftp://libvirt.org/libvirt/tck/">ftp</a>
|
||||
<a href="http://libvirt.org/sources/tck/">http</a>
|
||||
<a href="https://libvirt.org/sources/tck/">https</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-tck.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-tck">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-tck">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Test API</td>
|
||||
<td></td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-test-API.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-test-API">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-test-API">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Jenkins Config</td>
|
||||
<td></td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-jenkins-ci.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-jenkins-ci">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-jenkins-ci">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CIM Test</td>
|
||||
<td></td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=cimtest.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/cimtest">gitlab</a>
|
||||
<a href="https://github.com/libvirt/cimtest">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="7">Documentation</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Publican Brand</td>
|
||||
<td></td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-publican.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-publican">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-publican">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>App Development Guide</td>
|
||||
<td></td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-appdev-guide.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-appdev-guide">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-appdev-guide">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>App Development Guide Python</td>
|
||||
<td></td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-appdev-guide-python.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-appdev-guide-python">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-appdev-guide-python">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>virsh Command Reference</td>
|
||||
<td></td>
|
||||
<td>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-virshcmdref.git;a=summary">libvirt</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://gitlab.com/libvirt/libvirt-virshcmdref">gitlab</a>
|
||||
<a href="https://github.com/libvirt/libvirt-virshcmdref">github</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>Primary download site</h2>
|
||||
|
||||
<p>
|
||||
Most modules have releases made available for download on the project
|
||||
site, via FTP, HTTP or HTTPS. Some modules are instead made available
|
||||
at alternative locations, for example, the Perl binding is made
|
||||
available only on CPAN.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="ftp://libvirt.org/libvirt/">libvirt.org FTP server</a></li>
|
||||
<li><a href="http://libvirt.org/sources/">libvirt.org HTTP server</a></li>
|
||||
<li><a href="https://libvirt.org/sources/">libvirt.org HTTPS server</a></li>
|
||||
</ul>
|
||||
|
||||
<h2><a name="hourly">Hourly development snapshots</a></h2>
|
||||
@ -35,23 +403,25 @@
|
||||
<h2><a name="schedule">Primary release schedule</a></h2>
|
||||
|
||||
<p>
|
||||
Libvirt follows a time based plan, with releases made once a month
|
||||
on the 1st of each month give or take a few days. The only exception
|
||||
is at the start of the year where there are two 6 weeks gaps (first
|
||||
release in the middle of Jan, then skip the Feb release), giving
|
||||
a total of 11 releases a year.
|
||||
The core libvirt module follows a time based plan, with releases made
|
||||
once a month on the 1st of each month give or take a few days. The only
|
||||
exception is at the start of the year where there are two 6 weeks gaps
|
||||
(first release in the middle of Jan, then skip the Feb release), giving
|
||||
a total of 11 releases a year. The Python and Perl modules will aim to
|
||||
release at the same time as the core libvirt module. Other modules have
|
||||
independant ad-hoc releases with no fixed time schedle.
|
||||
</p>
|
||||
|
||||
<h2><a name="numbering">Release numbering</a></h2>
|
||||
|
||||
<p>
|
||||
Since libvirt 2.0.0, a time based version numbering rule
|
||||
is applied. As such, the changes in version number have
|
||||
do not have any implications with respect to the scope of
|
||||
features or bugfixes included, the stability of the code,
|
||||
or the API / ABI compatibility (libvirt API / ABI is guaranteed
|
||||
stable forever). The rules applied for changing the libvirt
|
||||
version number are:
|
||||
is applied to the core library releases. As such, the changes
|
||||
in version number have do not have any implications with respect
|
||||
to the scope of features or bugfixes included, the stability of
|
||||
the code, or the API / ABI compatibility (libvirt API / ABI is
|
||||
guaranteed stable forever). The rules applied for changing the
|
||||
libvirt version number are:
|
||||
</p>
|
||||
|
||||
<dl>
|
||||
@ -59,7 +429,8 @@
|
||||
<dd>incremented by 1 for the first release of the year (the
|
||||
Jan 15th release)</dd>
|
||||
<dt><code>minor</code></dt>
|
||||
<dd>incremented by 1 for each monthly release from git master</dd>
|
||||
<dd>reset to 0 with every major increment, otherwise incremented by 1
|
||||
for each monthly release from git master</dd>
|
||||
<dt><code>micro</code></dt>
|
||||
<dd>always 0 for releases from git master, incremented by 1
|
||||
for each stable maintenance release</dd>
|
||||
@ -68,13 +439,18 @@
|
||||
<p>
|
||||
Prior to 2.0.0, the major/minor numbers were incremented
|
||||
fairly arbitrarily, and maintenance releases appended a
|
||||
fourth digit.
|
||||
fourth digit. The language bindings will aim to use the
|
||||
same version number as the most recent core library API
|
||||
they support. The other modules have their own distinct
|
||||
release numbering sequence, though they generally aim
|
||||
to follow the above rules for incrementing major/minor/micro
|
||||
digits.
|
||||
</p>
|
||||
|
||||
<h2><a name="maintenance">Maintenance releases</a></h2>
|
||||
<p>
|
||||
In the git repository are several stable maintenance branches,
|
||||
matching the
|
||||
In the git repository are several stable maintenance branches
|
||||
for the core library, matching the
|
||||
pattern <code>v<i>major</i>.<i>minor</i>-maint</code>;
|
||||
these branches are forked off the corresponding
|
||||
<code>v<i>major</i>.<i>minor</i>.0</code> formal
|
||||
@ -88,7 +464,9 @@
|
||||
to the primary releases which are made once a month, there
|
||||
is no formal schedule for the maintenance releases, which
|
||||
are made whenever there is a need to make available key
|
||||
bugfixes to downstream consumers.
|
||||
bugfixes to downstream consumers. The language bindings
|
||||
and other modules generally do not provide stable branch
|
||||
releases.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -100,22 +478,16 @@
|
||||
<h2><a name="git">GIT source repository</a></h2>
|
||||
|
||||
<p>
|
||||
Libvirt code source is now maintained in a <a href="http://git-scm.com/">git</a>
|
||||
repository available on <a href="http://libvirt.org/git/">libvirt.org</a>:
|
||||
All modules maintained by the libvirt project have their primary
|
||||
source available in the <a href="http://libvirt.org/git/">project GIT server</a>.
|
||||
Each module can be cloned anonymously using:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
git clone git://libvirt.org/libvirt.git</pre>
|
||||
git clone git://libvirt.org/[module name].git</pre>
|
||||
|
||||
<p>
|
||||
It can also be browsed at:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<a href="http://libvirt.org/git/?p=libvirt.git;a=summary">http://libvirt.org/git/?p=libvirt.git;a=summary</a></pre>
|
||||
|
||||
<p>
|
||||
In addition to this repository, there are the following read-only git
|
||||
In addition to this primary repository, there are the following read-only git
|
||||
repositories which mirror the master one. Note that we currently do not
|
||||
use the full set of features on these mirrors (e.g. pull requests on
|
||||
GitHub, so please don't use them). All patch review and discussion only
|
||||
@ -124,58 +496,8 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<a href="https://github.com/libvirt/libvirt">https://github.com/libvirt/libvirt</a>
|
||||
<a href="http://repo.or.cz/w/libvirt.git">http://repo.or.cz/w/libvirt.git</a>
|
||||
<a href="https://gitlab.com/libvirt/libvirt">https://gitlab.com/libvirt/libvirt</a></pre>
|
||||
<a href="https://github.com/libvirt/">https://github.com/libvirt/</a>
|
||||
<a href="https://gitlab.com/libvirt/libvirt">https://gitlab.com/libvirt/</a></pre>
|
||||
|
||||
<br />
|
||||
|
||||
<h1>libvirt Application Development Guide</h1>
|
||||
|
||||
<p>
|
||||
The guide is both a learning tool for developing with libvirt and an
|
||||
API reference document. It is a work in progress, composed by a
|
||||
professional author from contributions written by members of the
|
||||
libvirt team.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Contributions to the guide are <b>VERY</b> welcome. If you'd like to get
|
||||
your name on this and demonstrate your virtualisation prowess, a solid
|
||||
contribution to the content here will do it. :)
|
||||
</p>
|
||||
|
||||
<h2><a name="appdevpdf">Application Development Guide PDF</a></h2>
|
||||
|
||||
<p>
|
||||
PDF download is available here:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://libvirt.org/guide/pdf/Application_Development_Guide.pdf">libvirt App Dev Guide</a> (PDF)</li>
|
||||
</ul>
|
||||
|
||||
<h2><a name="appdevgit">Application Development Guide source GIT repository</a></h2>
|
||||
|
||||
<p>
|
||||
The source is also in a git repository:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
git clone git://libvirt.org/libvirt-appdev-guide.git</pre>
|
||||
|
||||
<p>
|
||||
Browsable at:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<a href="http://libvirt.org/git/?p=libvirt-appdev-guide.git;a=summary">http://libvirt.org/git/?p=libvirt-appdev-guide.git;a=summary</a></pre>
|
||||
|
||||
<br />
|
||||
|
||||
<p>
|
||||
Once you've have obtained the libvirt source code, you can compile it
|
||||
using the <a href="compiling.html">instructions here</a>.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -154,13 +154,13 @@ the following to the domain XML (<span class="since">Since 1.2.4</span>):
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<devices>
|
||||
<serial type="nmdm">
|
||||
<source master="/dev/nmdm0A" slave="/dev/nmdm0B"/>
|
||||
</serial>
|
||||
</devices>
|
||||
...</pre>
|
||||
...
|
||||
<devices>
|
||||
<serial type="nmdm">
|
||||
<source master="/dev/nmdm0A" slave="/dev/nmdm0B"/>
|
||||
</serial>
|
||||
</devices>
|
||||
...</pre>
|
||||
|
||||
|
||||
<p>Make sure to load the <code>nmdm</code> kernel module if you plan to use that.</p>
|
||||
@ -219,12 +219,12 @@ tweak them.</p>
|
||||
An example of domain XML device entry for that will look like:</p>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<disk type='volume' device='disk'>
|
||||
<source pool='zfspool' volume='vol1'/>
|
||||
<target dev='vdb' bus='virtio'/>
|
||||
</disk>
|
||||
...</pre>
|
||||
...
|
||||
<disk type='volume' device='disk'>
|
||||
<source pool='zfspool' volume='vol1'/>
|
||||
<target dev='vdb' bus='virtio'/>
|
||||
</disk>
|
||||
...</pre>
|
||||
|
||||
<p>Please refer to the <a href="storage.html">Storage documentation</a> for more details on storage
|
||||
management.</p>
|
||||
@ -241,10 +241,10 @@ the first disk in the domain (either <code>cdrom</code>- or
|
||||
attempt to boot from the first partition in the disk image.</p>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<bootloader>/usr/local/sbin/grub-bhyve</bootloader>
|
||||
<bootloader_args>...</bootloader_args>
|
||||
...
|
||||
...
|
||||
<bootloader>/usr/local/sbin/grub-bhyve</bootloader>
|
||||
<bootloader_args>...</bootloader_args>
|
||||
...
|
||||
</pre>
|
||||
|
||||
<p>Caveat: <code>bootloader_args</code> does not support any quoting.
|
||||
|
@ -467,14 +467,14 @@ ethernet0.checkMACAddress = "false"
|
||||
Here a domain XML snippet:
|
||||
</p>
|
||||
<pre>
|
||||
...
|
||||
<disk type='file' device='disk'>
|
||||
<source file='[local-storage] Fedora11/Fedora11.vmdk'/>
|
||||
<target dev='sda' bus='scsi'/>
|
||||
<address type='drive' controller='0' bus='0' unit='0'/>
|
||||
</disk>
|
||||
<controller type='scsi' index='0' model='<strong>lsilogic</strong>'/>
|
||||
...
|
||||
...
|
||||
<disk type='file' device='disk'>
|
||||
<source file='[local-storage] Fedora11/Fedora11.vmdk'/>
|
||||
<target dev='sda' bus='scsi'/>
|
||||
<address type='drive' controller='0' bus='0' unit='0'/>
|
||||
</disk>
|
||||
<controller type='scsi' index='0' model='<strong>lsilogic</strong>'/>
|
||||
...
|
||||
</pre>
|
||||
<p>
|
||||
The controller element is supported <span class="since">since 0.8.2</span>.
|
||||
@ -482,13 +482,13 @@ ethernet0.checkMACAddress = "false"
|
||||
specify the SCSI controller model. This attribute usage is deprecated now.
|
||||
</p>
|
||||
<pre>
|
||||
...
|
||||
<disk type='file' device='disk'>
|
||||
<driver name='<strong>lsilogic</strong>'/>
|
||||
<source file='[local-storage] Fedora11/Fedora11.vmdk'/>
|
||||
<target dev='sda' bus='scsi'/>
|
||||
</disk>
|
||||
...
|
||||
...
|
||||
<disk type='file' device='disk'>
|
||||
<driver name='<strong>lsilogic</strong>'/>
|
||||
<source file='[local-storage] Fedora11/Fedora11.vmdk'/>
|
||||
<target dev='sda' bus='scsi'/>
|
||||
</disk>
|
||||
...
|
||||
</pre>
|
||||
|
||||
|
||||
@ -513,13 +513,13 @@ ethernet0.checkMACAddress = "false"
|
||||
Here a domain XML snippet:
|
||||
</p>
|
||||
<pre>
|
||||
...
|
||||
<interface type='bridge'>
|
||||
<mac address='00:50:56:25:48:c7'/>
|
||||
<source bridge='VM Network'/>
|
||||
<model type='<strong>e1000</strong>'/>
|
||||
</interface>
|
||||
...
|
||||
...
|
||||
<interface type='bridge'>
|
||||
<mac address='00:50:56:25:48:c7'/>
|
||||
<source bridge='VM Network'/>
|
||||
<model type='<strong>e1000</strong>'/>
|
||||
</interface>
|
||||
...
|
||||
</pre>
|
||||
|
||||
|
||||
|
@ -62,12 +62,12 @@ would use the following XML
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<os>
|
||||
<type arch='x86_64'>exe</type>
|
||||
<init>/bin/systemd</init>
|
||||
<initarg>--unit</initarg>
|
||||
<initarg>emergency.service</initarg>
|
||||
</os>
|
||||
<os>
|
||||
<type arch='x86_64'>exe</type>
|
||||
<init>/bin/systemd</init>
|
||||
<initarg>--unit</initarg>
|
||||
<initarg>emergency.service</initarg>
|
||||
</os>
|
||||
</pre>
|
||||
|
||||
<h3><a name="envvars">Environment variables</a></h3>
|
||||
@ -611,6 +611,10 @@ ignored.
|
||||
</domain>
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
The use of namespace passthrough requires libvirt >= 1.2.19
|
||||
</p>
|
||||
|
||||
<h2><a name="usage">Container usage / management</a></h2>
|
||||
|
||||
<p>
|
||||
|
90
docs/fonts/LICENSE.md
Normal file
@ -0,0 +1,90 @@
|
||||
## License
|
||||
|
||||
Copyright (C) 2015 Red Hat, Inc.,
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
#### SIL OPEN FONT LICENSE
|
||||
Version 1.1 - 26 February 2007
|
||||
|
||||
---
|
||||
|
||||
#### PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide development
|
||||
of collaborative font projects, to support the font creation efforts of
|
||||
academic and linguistic communities, and to provide a free and open framework
|
||||
in which fonts may be shared and improved in partnership with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The fonts,
|
||||
including any derivative works, can be bundled, embedded, redistributed and/or
|
||||
sold with any software provided that any reserved names are not used by
|
||||
derivative works. The fonts and derivatives, however, cannot be released under
|
||||
any other type of license. The requirement for fonts to remain under this
|
||||
license does not apply to any document created using the fonts or their
|
||||
derivatives.
|
||||
|
||||
#### DEFINITIONS
|
||||
“Font Software” refers to the set of files released by the Copyright Holder(s)
|
||||
under this license and clearly marked as such. This may include source files,
|
||||
build scripts and documentation.
|
||||
|
||||
“Reserved Font Name” refers to any names specified as such after the copyright
|
||||
statement(s).
|
||||
|
||||
“Original Version” refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
“Modified Version” refers to any derivative made by adding to, deleting, or
|
||||
substituting—in part or in whole—any of the components of the Original Version,
|
||||
by changing formats or by porting the Font Software to a new environment.
|
||||
|
||||
“Author” refers to any designer, engineer, programmer, technical writer or
|
||||
other person who contributed to the Font Software.
|
||||
|
||||
#### PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
the Font Software, to use, study, copy, merge, embed, modify, redistribute, and
|
||||
sell modified and unmodified copies of the Font Software, subject to the
|
||||
following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components, in Original
|
||||
or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy contains
|
||||
the above copyright notice and this license. These can be included either as
|
||||
stand-alone text files, human-readable headers or in the appropriate machine-
|
||||
readable metadata fields within text or binary files as long as those fields
|
||||
can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font Name(s)
|
||||
unless explicit written permission is granted by the corresponding Copyright
|
||||
Holder. This restriction only applies to the primary font name as presented to
|
||||
the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software
|
||||
shall not be used to promote, endorse or advertise any Modified Version, except
|
||||
to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s)
|
||||
or with their explicit written permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole, must be
|
||||
distributed entirely under this license, and must not be distributed under any
|
||||
other license. The requirement for fonts to remain under this license does not
|
||||
apply to any document created using the Font Software.
|
||||
|
||||
#### TERMINATION
|
||||
This license becomes null and void if any of the above conditions are not met.
|
||||
|
||||
#### DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
|
||||
TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR
|
||||
ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL,
|
||||
INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF
|
||||
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE
|
||||
THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
|
BIN
docs/fonts/overpass-bold-italic.woff
Normal file
BIN
docs/fonts/overpass-bold.woff
Normal file
BIN
docs/fonts/overpass-italic.woff
Normal file
BIN
docs/fonts/overpass-light-italic.woff
Normal file
BIN
docs/fonts/overpass-light.woff
Normal file
BIN
docs/fonts/overpass-mono-bold.woff
Normal file
BIN
docs/fonts/overpass-mono-light.woff
Normal file
BIN
docs/fonts/overpass-mono-regular.woff
Normal file
BIN
docs/fonts/overpass-mono-semibold.woff
Normal file
BIN
docs/fonts/overpass-regular.woff
Normal file
62
docs/fonts/stylesheet.css
Normal file
@ -0,0 +1,62 @@
|
||||
@font-face {
|
||||
font-family: 'LibvirtOverpass';
|
||||
src: url('overpass-regular.woff') format('woff');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'LibvirtOverpass';
|
||||
src: url('overpass-italic.woff') format('woff');
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'LibvirtOverpass';
|
||||
src: url('overpass-bold.woff') format('woff');
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'LibvirtOverpass';
|
||||
src: url('overpass-bold-italic.woff') format('woff');
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'LibvirtOverpassLight';
|
||||
src: url('overpass-light.woff') format('woff');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'LibvirtOverpassLight';
|
||||
src: url('overpass-light-italic.woff') format('woff');
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'LibvirtOverpassMono';
|
||||
src: url('overpass-mono-regular.woff') format('woff');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'LibvirtOverpassMono';
|
||||
src: url('overpass-mono-bold.woff') format('woff');
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'LibvirtOverpassMonoLight';
|
||||
src: url('overpass-mono-light.woff') format('woff');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
}
|
@ -2,9 +2,43 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<body>
|
||||
<h1 >XML Format</h1>
|
||||
<h1>XML Format</h1>
|
||||
|
||||
|
||||
<p>
|
||||
Objects in the libvirt API are configured using XML documents to allow
|
||||
for ease of extension in future releases. Each XML document has an
|
||||
associated Relax-NG schema that can be used to validate documents
|
||||
prior to usage.
|
||||
</p>
|
||||
|
||||
|
||||
<ul>
|
||||
<li><a href="formatdomain.html" shape="rect">Domains</a></li>
|
||||
<li><a href="formatnetwork.html" shape="rect">Networks</a></li>
|
||||
<li><a href="formatnwfilter.html" shape="rect">Network filtering</a></li>
|
||||
<li><a href="formatstorage.html" shape="rect">Storage</a></li>
|
||||
<li><a href="formatstorageencryption.html" shape="rect">Storage encryption</a></li>
|
||||
<li><a href="formatcaps.html" shape="rect">Capabilities</a></li>
|
||||
<li><a href="formatdomaincaps.html" shape="rect">Domain capabilities</a></li>
|
||||
<li><a href="formatnode.html" shape="rect">Node devices</a></li>
|
||||
<li><a href="formatsecret.html" shape="rect">Secrets</a></li>
|
||||
<li><a href="formatsnapshot.html" shape="rect">Snapshots</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>Command line validation</h2>
|
||||
|
||||
<p>
|
||||
The <code>virt-xml-validate</code> tool provides a simple command line
|
||||
for validating XML documents prior to giving them to libvirt. It uses
|
||||
the locally instaled RNG schema documents. It will auto-detect which
|
||||
schema to use for validation based on the name of the top level element
|
||||
in the input document. Thus it merely requires the XML document filename
|
||||
to be passed on the command line
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ virt-xml-validate /path/to/XML/file</pre>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -13,7 +13,7 @@
|
||||
interface has been added in 0.2.1 allowing to list the set of supported
|
||||
virtualization capabilities on the host:</p>
|
||||
|
||||
<pre> char * virConnectGetCapabilities (virConnectPtr conn);</pre>
|
||||
<pre>char * virConnectGetCapabilities (virConnectPtr conn);</pre>
|
||||
|
||||
<p>The value returned is an XML document listing the virtualization
|
||||
capabilities of the host and virtualization engine to which
|
||||
|
@ -35,14 +35,14 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<network ipv6='yes' trustGuestRxFilters='no'>
|
||||
<name>default</name>
|
||||
<uuid>3e3fce45-4f53-4fa7-bb32-11f34168b82b</uuid>
|
||||
<metadata>
|
||||
<app1:foo xmlns:app1="http://app1.org/app1/">..</app1:foo>
|
||||
<app2:bar xmlns:app2="http://app1.org/app2/">..</app2:bar>
|
||||
</metadata>
|
||||
...</pre>
|
||||
<network ipv6='yes' trustGuestRxFilters='no'>
|
||||
<name>default</name>
|
||||
<uuid>3e3fce45-4f53-4fa7-bb32-11f34168b82b</uuid>
|
||||
<metadata>
|
||||
<app1:foo xmlns:app1="http://app1.org/app1/">..</app1:foo>
|
||||
<app2:bar xmlns:app2="http://app1.org/app2/">..</app2:bar>
|
||||
</metadata>
|
||||
...</pre>
|
||||
|
||||
<dl>
|
||||
<dt><code>name</code></dt>
|
||||
@ -91,11 +91,11 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<bridge name="virbr0" stp="on" delay="5" macTableManager="libvirt"/>
|
||||
<domain name="example.com" localOnly="no"/>
|
||||
<forward mode="nat" dev="eth0"/>
|
||||
...</pre>
|
||||
...
|
||||
<bridge name="virbr0" stp="on" delay="5" macTableManager="libvirt"/>
|
||||
<domain name="example.com" localOnly="no"/>
|
||||
<forward mode="nat" dev="eth0"/>
|
||||
...</pre>
|
||||
|
||||
<dl>
|
||||
<dt><code>bridge</code></dt>
|
||||
@ -815,18 +815,17 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<ip address="192.168.122.1" netmask="255.255.255.0">
|
||||
<dhcp>
|
||||
<range start="192.168.122.128" end="192.168.122.254" />
|
||||
</dhcp>
|
||||
</ip>
|
||||
<route address="192.168.222.0" prefix="24" gateway="192.168.122.2" />
|
||||
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64" />
|
||||
<route family="ipv6" address="2001:db8:ca2:3::" prefix="64" gateway="2001:db8:ca2:2::2"/>
|
||||
<route family="ipv6" address="2001:db9:4:1::" prefix="64" gateway="2001:db8:ca2:2::3" metric='2'>
|
||||
</route>
|
||||
...
|
||||
...
|
||||
<ip address="192.168.122.1" netmask="255.255.255.0">
|
||||
<dhcp>
|
||||
<range start="192.168.122.128" end="192.168.122.254"/>
|
||||
</dhcp>
|
||||
</ip>
|
||||
<route address="192.168.222.0" prefix="24" gateway="192.168.122.2"/>
|
||||
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64"/>
|
||||
<route family="ipv6" address="2001:db8:ca2:3::" prefix="64" gateway="2001:db8:ca2:2::2"/>
|
||||
<route family="ipv6" address="2001:db9:4:1::" prefix="64" gateway="2001:db8:ca2:2::3" metric='2'/>
|
||||
...
|
||||
</pre>
|
||||
|
||||
<h3><a name="elementsAddress">Addressing</a></h3>
|
||||
@ -841,30 +840,31 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<mac address='00:16:3E:5D:C7:9E'/>
|
||||
<domain name="example.com"/>
|
||||
<dns>
|
||||
<txt name="example" value="example value" />
|
||||
<forwarder addr="8.8.8.8"/>
|
||||
<forwarder domain='example.com' addr="8.8.4.4"/>
|
||||
<forwarder domain='www.example.com'/>
|
||||
<srv service='name' protocol='tcp' domain='test-domain-name' target='.' port='1024' priority='10' weight='10'/>
|
||||
<host ip='192.168.122.2'>
|
||||
<hostname>myhost</hostname>
|
||||
<hostname>myhostalias</hostname>
|
||||
</host>
|
||||
</dns>
|
||||
<ip address="192.168.122.1" netmask="255.255.255.0">
|
||||
<dhcp>
|
||||
<range start="192.168.122.100" end="192.168.122.254" />
|
||||
<host mac="00:16:3e:77:e2:ed" name="foo.example.com" ip="192.168.122.10" />
|
||||
<host mac="00:16:3e:3e:a9:1a" name="bar.example.com" ip="192.168.122.11" />
|
||||
</dhcp>
|
||||
</ip>
|
||||
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64" />
|
||||
<route family="ipv6" address="2001:db9:ca1:1::" prefix="64" gateway="2001:db8:ca2:2::2" />
|
||||
</network></pre>
|
||||
...
|
||||
<mac address='00:16:3E:5D:C7:9E'/>
|
||||
<domain name="example.com"/>
|
||||
<dns>
|
||||
<txt name="example" value="example value"/>
|
||||
<forwarder addr="8.8.8.8"/>
|
||||
<forwarder domain='example.com' addr="8.8.4.4"/>
|
||||
<forwarder domain='www.example.com'/>
|
||||
<srv service='name' protocol='tcp' domain='test-domain-name' target='.'
|
||||
port='1024' priority='10' weight='10'/>
|
||||
<host ip='192.168.122.2'>
|
||||
<hostname>myhost</hostname>
|
||||
<hostname>myhostalias</hostname>
|
||||
</host>
|
||||
</dns>
|
||||
<ip address="192.168.122.1" netmask="255.255.255.0" localPtr="yes">
|
||||
<dhcp>
|
||||
<range start="192.168.122.100" end="192.168.122.254"/>
|
||||
<host mac="00:16:3e:77:e2:ed" name="foo.example.com" ip="192.168.122.10"/>
|
||||
<host mac="00:16:3e:3e:a9:1a" name="bar.example.com" ip="192.168.122.11"/>
|
||||
</dhcp>
|
||||
</ip>
|
||||
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64" localPtr="yes"/>
|
||||
<route family="ipv6" address="2001:db9:ca1:1::" prefix="64" gateway="2001:db8:ca2:2::2"/>
|
||||
</pre>
|
||||
|
||||
<dl>
|
||||
<dt><code>mac</code></dt>
|
||||
@ -958,58 +958,61 @@
|
||||
<dd>The <code>dns</code> element can have also 0 or more <code>srv</code>
|
||||
record elements. Each <code>srv</code> record element defines a DNS SRV record
|
||||
and has 2 mandatory and 5 optional attributes. The mandatory attributes
|
||||
are service name and protocol (tcp, udp) and the optional attributes are
|
||||
target, port, priority, weight and domain as defined in DNS server SRV
|
||||
RFC (RFC 2782).
|
||||
are service <code>name</code> and <code>protocol</code> (tcp, udp)
|
||||
and the optional attributes are <code>target</code>,
|
||||
<code>port</code>, <code>priority</code>, <code>weight</code> and
|
||||
<code>domain</code> as defined in DNS server SRV RFC (RFC 2782).
|
||||
<span class="since">Since 0.9.9</span>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt><code>ip</code></dt>
|
||||
<dd>The <code>address</code> attribute defines an IPv4 address in
|
||||
dotted-decimal format, or an IPv6 address in standard
|
||||
colon-separated hexadecimal format, that will be configured on
|
||||
the bridge
|
||||
device associated with the virtual network. To the guests this IPv4
|
||||
address will be their IPv4 default route. For IPv6, the default route is
|
||||
established via Router Advertisement.
|
||||
For IPv4 addresses, the <code>netmask</code>
|
||||
attribute defines the significant bits of the network address,
|
||||
again specified in dotted-decimal format. For IPv6 addresses,
|
||||
and as an alternate method for IPv4 addresses, you can specify
|
||||
the significant bits of the network address with the <code>prefix</code>
|
||||
attribute, which is an integer (for example, <code>netmask='255.255.255.0'</code>
|
||||
could also be given as <code>prefix='24'</code>. The <code>family</code>
|
||||
attribute is used to specify the type of address - 'ipv4' or 'ipv6'; if no
|
||||
<code>family</code> is given, 'ipv4' is assumed. A network can have more than
|
||||
one of each family of address defined, but only a single IPv4 address can have a
|
||||
<code>dhcp</code> or <code>tftp</code> element. <span class="since">Since 0.3.0 </span>
|
||||
IPv6, multiple addresses on a single network, <code>family</code>, and
|
||||
<code>prefix</code> are support <span class="since">Since 0.8.7</span>.
|
||||
Similar to IPv4, one IPv6 address per network can also have
|
||||
a <code>dhcp</code> definition. <span class="since">Since 1.0.1</span>
|
||||
dotted-decimal format, or an IPv6 address in standard colon-separated
|
||||
hexadecimal format, that will be configured on the bridge device
|
||||
associated with the virtual network. To the guests this IPv4 address
|
||||
will be their IPv4 default route. For IPv6, the default route is
|
||||
established via Router Advertisement. For IPv4 addresses, the
|
||||
<code>netmask</code> attribute defines the significant bits of the
|
||||
network address, again specified in dotted-decimal format. For IPv6
|
||||
addresses, and as an alternate method for IPv4 addresses, the
|
||||
significant bits of the network address can be specified with the
|
||||
<code>prefix</code> attribute, which is an integer (for example,
|
||||
<code>netmask='255.255.255.0'</code> could also be given as
|
||||
<code>prefix='24'</code>). The <code>family</code> attribute is used
|
||||
to specify the type of address — <code>ipv4</code> or
|
||||
<code>ipv6</code>; if no <code>family</code> is given,
|
||||
<code>ipv4</code> is assumed. More than one address of each family can
|
||||
be defined for a network. The optional <code>localPtr</code> attribute
|
||||
(<span class="since">since 3.0.0</span>) configures the DNS server to
|
||||
not forward any reverse DNS requests for IP addresses from the network
|
||||
configured by the <code>address</code> and
|
||||
<code>netmask</code>/<code>prefix</code> attributes. For some unusual
|
||||
network prefixes (not divisible by 8 for IPv4 or not divisible by 4 for
|
||||
IPv6) libvirt may be unable to compute the PTR domain automatically.
|
||||
The <code>ip</code> element is supported <span class="since">since
|
||||
0.3.0</span>. IPv6, multiple addresses on a single network,
|
||||
<code>family</code>, and <code>prefix</code> are supported
|
||||
<span class="since">since 0.8.7</span>. The <code>ip</code> element may
|
||||
contain the following elements:
|
||||
|
||||
<dl>
|
||||
<dt><code>tftp</code></dt>
|
||||
<dd>Immediately within
|
||||
the <code>ip</code> element there is an optional <code>tftp</code>
|
||||
element. The presence of this element and of its attribute
|
||||
<code>root</code> enables TFTP services. The attribute specifies
|
||||
the path to the root directory served via TFTP. <code>tftp</code> is not
|
||||
supported for IPv6 addresses, and can only be specified on a single IPv4 address
|
||||
per network.
|
||||
<dd>The optional <code>tftp</code> element and its mandatory
|
||||
<code>root</code> attribute enable TFTP services. The attribute
|
||||
specifies the path to the root directory served via TFTP. The
|
||||
<code>tftp</code> element is not supported for IPv6 addresses,
|
||||
and can only be specified on a single IPv4 address per network.
|
||||
<span class="since">Since 0.7.1</span>
|
||||
</dd>
|
||||
|
||||
<dt><code>dhcp</code></dt>
|
||||
<dd>Also within the <code>ip</code> element there is an
|
||||
optional <code>dhcp</code> element. The presence of this element
|
||||
enables DHCP services on the virtual network. It will further
|
||||
contain one or more <code>range</code> elements. The
|
||||
<code>dhcp</code> element supported for both
|
||||
IPv4 <span class="since">Since 0.3.0</span>
|
||||
and IPv6 <span class="since">Since 1.0.1</span>, but
|
||||
only for one IP address of each type per network.
|
||||
<dd>The presence of this element enables DHCP services on the
|
||||
virtual network. The <code>dhcp</code> element is supported for
|
||||
both IPv4 (<span class="since">since 0.3.0</span>) and IPv6
|
||||
(<span class="since">since 1.0.1</span>), but only for one IP
|
||||
address of each type per network. The following sub-elements are
|
||||
supported:
|
||||
<dl>
|
||||
<dt><code>range</code></dt>
|
||||
<dd>The <code>start</code> and <code>end</code> attributes on the
|
||||
@ -1019,39 +1022,39 @@
|
||||
<code>ip</code> element. There may be zero or more
|
||||
<code>range</code> elements specified.
|
||||
<span class="since">Since 0.3.0</span>
|
||||
<code>range</code> can be specified for one IPv4 address,
|
||||
one IPv6 address, or both. <span class="since">Since 1.0.1</span>
|
||||
</dd>
|
||||
<dt><code>host</code></dt>
|
||||
<dd>Within the <code>dhcp</code> element there may be zero or more
|
||||
<code>host</code> elements. These specify hosts which will be given
|
||||
names and predefined IP addresses by the built-in DHCP server. Any
|
||||
IPv4 <code>host</code> element must specify the MAC address of the host to be assigned
|
||||
a given name (via the <code>mac</code> attribute), the IP to be
|
||||
assigned to that host (via the <code>ip</code> attribute), and the
|
||||
name to be given that host by the DHCP server (via the
|
||||
<code>name</code> attribute). <span class="since">Since 0.4.5</span>
|
||||
An IPv6 <code>host</code> element differs slightly from that for IPv4:
|
||||
there is no <code>mac</code> attribute since a MAC address has no
|
||||
defined meaning in IPv6. Instead, the <code>name</code> attribute is
|
||||
used to identify the host to be assigned the IPv6 address. For DHCPv6,
|
||||
the name is the plain name of the client host sent by the
|
||||
client to the server. Note that this method of assigning a
|
||||
specific IP address can also be used instead of the <code>mac</code>
|
||||
attribute for IPv4. <span class="since">Since 1.0.1</span>
|
||||
<dd>Within the <code>dhcp</code> element there may be zero or
|
||||
more <code>host</code> elements. These specify hosts which will
|
||||
be given names and predefined IP addresses by the built-in DHCP
|
||||
server. Any IPv4 <code>host</code> element must specify the MAC
|
||||
address of the host to be assigned a given name (via the
|
||||
<code>mac</code> attribute), the IP to be assigned to that host
|
||||
(via the <code>ip</code> attribute), and the name itself (the
|
||||
<code>name</code> attribute). The IPv6 <code>host</code>
|
||||
element differs slightly from that for IPv4: there is no
|
||||
<code>mac</code> attribute since a MAC address has no defined
|
||||
meaning in IPv6. Instead, the <code>name</code> attribute is
|
||||
used to identify the host to be assigned the IPv6 address. For
|
||||
DHCPv6, the name is the plain name of the client host sent by the
|
||||
client to the server. Note that this method of assigning a
|
||||
specific IP address can also be used for IPv4 instead of the
|
||||
<code>mac</code> attribute.
|
||||
<span class="since">Since 0.4.5</span>
|
||||
</dd>
|
||||
<dt><code>bootp</code></dt>
|
||||
<dd>The optional <code>bootp</code>
|
||||
element specifies BOOTP options to be provided by the DHCP
|
||||
server for IPv4 only.
|
||||
Two attributes are supported: <code>file</code> is mandatory and
|
||||
gives the file to be used for the boot image; <code>server</code> is
|
||||
optional and gives the address of the TFTP server from which the boot
|
||||
image will be fetched. <code>server</code> defaults to the same host
|
||||
that runs the DHCP server, as is the case when the <code>tftp</code>
|
||||
element is used. The BOOTP options currently have to be the same
|
||||
for all address ranges and statically assigned addresses.<span
|
||||
class="since">Since 0.7.1 (<code>server</code> since 0.7.3).</span>
|
||||
<dd>The optional <code>bootp</code> element specifies BOOTP
|
||||
options to be provided by the DHCP server for IPv4 only. Two
|
||||
attributes are supported: <code>file</code> is mandatory and
|
||||
gives the file to be used for the boot image;
|
||||
<code>server</code> is optional and gives the address of the
|
||||
TFTP server from which the boot image will be fetched.
|
||||
<code>server</code> defaults to the same host that runs the
|
||||
DHCP server, as is the case when the <code>tftp</code> element
|
||||
is used. The BOOTP options currently have to be the same for
|
||||
all address ranges and statically assigned addresses. <span
|
||||
class="since">Since 0.7.1</span> (<code>server</code>
|
||||
<span class="since">since 0.7.3</span>)
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
@ -1074,17 +1077,17 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<network>
|
||||
<name>default</name>
|
||||
<bridge name="virbr0" />
|
||||
<forward mode="nat"/>
|
||||
<ip address="192.168.122.1" netmask="255.255.255.0">
|
||||
<dhcp>
|
||||
<range start="192.168.122.2" end="192.168.122.254" />
|
||||
</dhcp>
|
||||
</ip>
|
||||
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64" />
|
||||
</network></pre>
|
||||
<network>
|
||||
<name>default</name>
|
||||
<bridge name="virbr0"/>
|
||||
<forward mode="nat"/>
|
||||
<ip address="192.168.122.1" netmask="255.255.255.0">
|
||||
<dhcp>
|
||||
<range start="192.168.122.2" end="192.168.122.254"/>
|
||||
</dhcp>
|
||||
</ip>
|
||||
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64"/>
|
||||
</network></pre>
|
||||
|
||||
|
||||
<p>
|
||||
@ -1093,21 +1096,21 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<network>
|
||||
<name>default6</name>
|
||||
<bridge name="virbr0" />
|
||||
<forward mode="nat"/>
|
||||
<ip address="192.168.122.1" netmask="255.255.255.0">
|
||||
<dhcp>
|
||||
<range start="192.168.122.2" end="192.168.122.254" />
|
||||
</dhcp>
|
||||
</ip>
|
||||
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64" >
|
||||
<dhcp>
|
||||
<range start="2001:db8:ca2:2:1::10" end="2001:db8:ca2:2:1::ff" />
|
||||
</dhcp>
|
||||
</ip>
|
||||
</network></pre>
|
||||
<network>
|
||||
<name>default6</name>
|
||||
<bridge name="virbr0"/>
|
||||
<forward mode="nat"/>
|
||||
<ip address="192.168.122.1" netmask="255.255.255.0">
|
||||
<dhcp>
|
||||
<range start="192.168.122.2" end="192.168.122.254"/>
|
||||
</dhcp>
|
||||
</ip>
|
||||
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64">
|
||||
<dhcp>
|
||||
<range start="2001:db8:ca2:2:1::10" end="2001:db8:ca2:2:1::ff"/>
|
||||
</dhcp>
|
||||
</ip>
|
||||
</network></pre>
|
||||
|
||||
<h3><a name="examplesRoute">Routed network config</a></h3>
|
||||
|
||||
@ -1121,17 +1124,17 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<network>
|
||||
<name>local</name>
|
||||
<bridge name="virbr1" />
|
||||
<forward mode="route" dev="eth1"/>
|
||||
<ip address="192.168.122.1" netmask="255.255.255.0">
|
||||
<dhcp>
|
||||
<range start="192.168.122.2" end="192.168.122.254" />
|
||||
</dhcp>
|
||||
</ip>
|
||||
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64" />
|
||||
</network></pre>
|
||||
<network>
|
||||
<name>local</name>
|
||||
<bridge name="virbr1"/>
|
||||
<forward mode="route" dev="eth1"/>
|
||||
<ip address="192.168.122.1" netmask="255.255.255.0">
|
||||
<dhcp>
|
||||
<range start="192.168.122.2" end="192.168.122.254"/>
|
||||
</dhcp>
|
||||
</ip>
|
||||
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64"/>
|
||||
</network></pre>
|
||||
|
||||
<p>
|
||||
Below is another IPv6 variation. Instead of a dhcp range being
|
||||
@ -1144,24 +1147,25 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<network>
|
||||
<name>local6</name>
|
||||
<bridge name="virbr1" />
|
||||
<forward mode="route" dev="eth1"/>
|
||||
<ip address="192.168.122.1" netmask="255.255.255.0">
|
||||
<dhcp>
|
||||
<range start="192.168.122.2" end="192.168.122.254" />
|
||||
</dhcp>
|
||||
</ip>
|
||||
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64" >
|
||||
<dhcp>
|
||||
<host name="paul" ip="2001:db8:ca2:2:3::1" />
|
||||
<host id="0:1:0:1:18:aa:62:fe:0:16:3e:44:55:66" ip="2001:db8:ca2:2:3::2" />
|
||||
<host id="0:3:0:1:0:16:3e:11:22:33" name="ralph" ip="2001:db8:ca2:2:3::3" />
|
||||
<host id="0:4:7e:7d:f0:7d:a8:bc:c5:d2:13:32:11:ed:16:ea:84:63" name="badbob" ip="2001:db8:ca2:2:3::4" />
|
||||
</dhcp>
|
||||
</ip>
|
||||
</network></pre>
|
||||
<network>
|
||||
<name>local6</name>
|
||||
<bridge name="virbr1"/>
|
||||
<forward mode="route" dev="eth1"/>
|
||||
<ip address="192.168.122.1" netmask="255.255.255.0">
|
||||
<dhcp>
|
||||
<range start="192.168.122.2" end="192.168.122.254"/>
|
||||
</dhcp>
|
||||
</ip>
|
||||
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64">
|
||||
<dhcp>
|
||||
<host name="paul" ip="2001:db8:ca2:2:3::1"/>
|
||||
<host id="0:1:0:1:18:aa:62:fe:0:16:3e:44:55:66" ip="2001:db8:ca2:2:3::2"/>
|
||||
<host id="0:3:0:1:0:16:3e:11:22:33" name="ralph" ip="2001:db8:ca2:2:3::3"/>
|
||||
<host id="0:4:7e:7d:f0:7d:a8:bc:c5:d2:13:32:11:ed:16:ea:84:63"
|
||||
name="badbob" ip="2001:db8:ca2:2:3::4"/>
|
||||
</dhcp>
|
||||
</ip>
|
||||
</network></pre>
|
||||
|
||||
<p>
|
||||
Below is yet another IPv6 variation. This variation has only
|
||||
@ -1176,19 +1180,19 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<network>
|
||||
<name>net7</name>
|
||||
<bridge name="virbr7" />
|
||||
<forward mode="route"/>
|
||||
<ip family="ipv6" address="2001:db8:ca2:7::1" prefix="64" >
|
||||
<dhcp>
|
||||
<range start="2001:db8:ca2:7::100" end="2001:db8:ca2::1ff" />
|
||||
<host id="0:4:7e:7d:f0:7d:a8:bc:c5:d2:13:32:11:ed:16:ea:84:63" name="lucas" ip="2001:db8:ca2:2:3::4" />
|
||||
</dhcp>
|
||||
</ip>
|
||||
<route family="ipv6" address="2001:db8:ca2:8::" prefix="64" gateway="2001:db8:ca2:7::4" >
|
||||
</route>
|
||||
</network></pre>
|
||||
<network>
|
||||
<name>net7</name>
|
||||
<bridge name="virbr7"/>
|
||||
<forward mode="route"/>
|
||||
<ip family="ipv6" address="2001:db8:ca2:7::1" prefix="64">
|
||||
<dhcp>
|
||||
<range start="2001:db8:ca2:7::100" end="2001:db8:ca2::1ff"/>
|
||||
<host id="0:4:7e:7d:f0:7d:a8:bc:c5:d2:13:32:11:ed:16:ea:84:63"
|
||||
name="lucas" ip="2001:db8:ca2:2:3::4"/>
|
||||
</dhcp>
|
||||
</ip>
|
||||
<route family="ipv6" address="2001:db8:ca2:8::" prefix="64" gateway="2001:db8:ca2:7::4"/>
|
||||
</network></pre>
|
||||
|
||||
<h3><a name="examplesPrivate">Isolated network config</a></h3>
|
||||
|
||||
@ -1201,16 +1205,16 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<network>
|
||||
<name>private</name>
|
||||
<bridge name="virbr2" />
|
||||
<ip address="192.168.152.1" netmask="255.255.255.0">
|
||||
<dhcp>
|
||||
<range start="192.168.152.2" end="192.168.152.254" />
|
||||
</dhcp>
|
||||
</ip>
|
||||
<ip family="ipv6" address="2001:db8:ca2:3::1" prefix="64" />
|
||||
</network></pre>
|
||||
<network>
|
||||
<name>private</name>
|
||||
<bridge name="virbr2"/>
|
||||
<ip address="192.168.152.1" netmask="255.255.255.0">
|
||||
<dhcp>
|
||||
<range start="192.168.152.2" end="192.168.152.254"/>
|
||||
</dhcp>
|
||||
</ip>
|
||||
<ip family="ipv6" address="2001:db8:ca2:3::1" prefix="64"/>
|
||||
</network></pre>
|
||||
|
||||
<h3><a name="examplesPrivate6">Isolated IPv6 network config</a></h3>
|
||||
|
||||
@ -1224,18 +1228,19 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<network>
|
||||
<name>sixnet</name>
|
||||
<bridge name="virbr6" />
|
||||
<ip family="ipv6" address="2001:db8:ca2:6::1" prefix="64" >
|
||||
<dhcp>
|
||||
<host name="peter" ip="2001:db8:ca2:6:6::1" />
|
||||
<host id="0:1:0:1:18:aa:62:fe:0:16:3e:44:55:66" ip="2001:db8:ca2:6:6::2" />
|
||||
<host id="0:3:0:1:0:16:3e:11:22:33" name="dariusz" ip="2001:db8:ca2:6:6::3" />
|
||||
<host id="0:4:7e:7d:f0:7d:a8:bc:c5:d2:13:32:11:ed:16:ea:84:63" name="anita" ip="2001:db8:ca2:6:6::4" />
|
||||
</dhcp>
|
||||
</ip>
|
||||
</network></pre>
|
||||
<network>
|
||||
<name>sixnet</name>
|
||||
<bridge name="virbr6"/>
|
||||
<ip family="ipv6" address="2001:db8:ca2:6::1" prefix="64">
|
||||
<dhcp>
|
||||
<host name="peter" ip="2001:db8:ca2:6:6::1"/>
|
||||
<host id="0:1:0:1:18:aa:62:fe:0:16:3e:44:55:66" ip="2001:db8:ca2:6:6::2"/>
|
||||
<host id="0:3:0:1:0:16:3e:11:22:33" name="dariusz" ip="2001:db8:ca2:6:6::3"/>
|
||||
<host id="0:4:7e:7d:f0:7d:a8:bc:c5:d2:13:32:11:ed:16:ea:84:63"
|
||||
name="anita" ip="2001:db8:ca2:6:6::4"/>
|
||||
</dhcp>
|
||||
</ip>
|
||||
</network></pre>
|
||||
|
||||
<h3><a name="examplesBridge">Using an existing host bridge</a></h3>
|
||||
|
||||
@ -1249,11 +1254,11 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<network>
|
||||
<name>host-bridge</name>
|
||||
<forward mode="bridge"/>
|
||||
<bridge name="br0"/>
|
||||
</network></pre>
|
||||
<network>
|
||||
<name>host-bridge</name>
|
||||
<forward mode="bridge"/>
|
||||
<bridge name="br0"/>
|
||||
</network></pre>
|
||||
|
||||
<h3><a name="examplesDirect">Using a macvtap "direct" connection</a></h3>
|
||||
|
||||
@ -1279,16 +1284,16 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<network>
|
||||
<name>direct-macvtap</name>
|
||||
<forward mode="bridge">
|
||||
<interface dev="eth20"/>
|
||||
<interface dev="eth21"/>
|
||||
<interface dev="eth22"/>
|
||||
<interface dev="eth23"/>
|
||||
<interface dev="eth24"/>
|
||||
</forward>
|
||||
</network></pre>
|
||||
<network>
|
||||
<name>direct-macvtap</name>
|
||||
<forward mode="bridge">
|
||||
<interface dev="eth20"/>
|
||||
<interface dev="eth21"/>
|
||||
<interface dev="eth22"/>
|
||||
<interface dev="eth23"/>
|
||||
<interface dev="eth24"/>
|
||||
</forward>
|
||||
</network></pre>
|
||||
|
||||
<h3><a name="examplesNoGateway">Network config with no gateway addresses</a></h3>
|
||||
|
||||
@ -1303,12 +1308,12 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<network ipv6='yes'>
|
||||
<name>nogw</name>
|
||||
<uuid>7a3b7497-1ec7-8aef-6d5c-38dff9109e93</uuid>
|
||||
<bridge name="virbr2" stp="on" delay="0" />
|
||||
<mac address='00:16:3E:5D:C7:9E'/>
|
||||
</network></pre>
|
||||
<network ipv6='yes'>
|
||||
<name>nogw</name>
|
||||
<uuid>7a3b7497-1ec7-8aef-6d5c-38dff9109e93</uuid>
|
||||
<bridge name="virbr2" stp="on" delay="0"/>
|
||||
<mac address='00:16:3E:5D:C7:9E'/>
|
||||
</network></pre>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -61,14 +61,14 @@
|
||||
the filter <code>clean-traffic</code>.
|
||||
</p>
|
||||
<pre>
|
||||
...
|
||||
<devices>
|
||||
<interface type='bridge'>
|
||||
<mac address='00:16:3e:5d:c7:9e'/>
|
||||
<filterref filter='clean-traffic'/>
|
||||
</interface>
|
||||
</devices>
|
||||
...</pre>
|
||||
...
|
||||
<devices>
|
||||
<interface type='bridge'>
|
||||
<mac address='00:16:3e:5d:c7:9e'/>
|
||||
<filterref filter='clean-traffic'/>
|
||||
</interface>
|
||||
</devices>
|
||||
...</pre>
|
||||
|
||||
<p>
|
||||
Network filters are written in XML and may either contain references
|
||||
@ -91,16 +91,16 @@
|
||||
the parameter <code>IP</code> and a dotted IP address as value.
|
||||
</p>
|
||||
<pre>
|
||||
...
|
||||
<devices>
|
||||
<interface type='bridge'>
|
||||
<mac address='00:16:3e:5d:c7:9e'/>
|
||||
<filterref filter='clean-traffic'>
|
||||
<parameter name='IP' value='10.0.0.1'/>
|
||||
</filterref>
|
||||
</interface>
|
||||
</devices>
|
||||
...</pre>
|
||||
...
|
||||
<devices>
|
||||
<interface type='bridge'>
|
||||
<mac address='00:16:3e:5d:c7:9e'/>
|
||||
<filterref filter='clean-traffic'>
|
||||
<parameter name='IP' value='10.0.0.1'/>
|
||||
</filterref>
|
||||
</interface>
|
||||
</devices>
|
||||
...</pre>
|
||||
|
||||
<p>
|
||||
In this particular example, the <code>clean-traffic</code> network
|
||||
@ -285,18 +285,18 @@
|
||||
providing multiple elements for the IP variable is:
|
||||
</p>
|
||||
<pre>
|
||||
...
|
||||
<devices>
|
||||
<interface type='bridge'>
|
||||
<mac address='00:16:3e:5d:c7:9e'/>
|
||||
<filterref filter='clean-traffic'>
|
||||
<parameter name='IP' value='10.0.0.1'/>
|
||||
<parameter name='IP' value='10.0.0.2'/>
|
||||
<parameter name='IP' value='10.0.0.3'/>
|
||||
</filterref>
|
||||
</interface>
|
||||
</devices>
|
||||
...</pre>
|
||||
...
|
||||
<devices>
|
||||
<interface type='bridge'>
|
||||
<mac address='00:16:3e:5d:c7:9e'/>
|
||||
<filterref filter='clean-traffic'>
|
||||
<parameter name='IP' value='10.0.0.1'/>
|
||||
<parameter name='IP' value='10.0.0.2'/>
|
||||
<parameter name='IP' value='10.0.0.3'/>
|
||||
</filterref>
|
||||
</interface>
|
||||
</devices>
|
||||
...</pre>
|
||||
<p>
|
||||
This then allows filters to enable multiple IP addresses
|
||||
per interface. Therefore, with the list
|
||||
@ -304,11 +304,11 @@
|
||||
individual filtering rules, one for each IP address.
|
||||
</p>
|
||||
<pre>
|
||||
...
|
||||
<rule action='accept' direction='in' priority='500'>
|
||||
<tcp srpipaddr='$IP'/>
|
||||
</rule>
|
||||
...
|
||||
...
|
||||
<rule action='accept' direction='in' priority='500'>
|
||||
<tcp srpipaddr='$IP'/>
|
||||
</rule>
|
||||
...
|
||||
</pre>
|
||||
<p>
|
||||
<span class="since">Since 0.9.10</span> it is possible to access
|
||||
@ -317,11 +317,11 @@
|
||||
of the variable DSTPORTS.
|
||||
</p>
|
||||
<pre>
|
||||
...
|
||||
<rule action='accept' direction='in' priority='500'>
|
||||
<udp dstportstart='$DSTPORTS[1]'/>
|
||||
</rule>
|
||||
...
|
||||
...
|
||||
<rule action='accept' direction='in' priority='500'>
|
||||
<udp dstportstart='$DSTPORTS[1]'/>
|
||||
</rule>
|
||||
...
|
||||
</pre>
|
||||
<p>
|
||||
<span class="since">Since 0.9.10</span> it is possible to create
|
||||
@ -336,29 +336,29 @@
|
||||
iterators to access their elements.
|
||||
</p>
|
||||
<pre>
|
||||
...
|
||||
<rule action='accept' direction='in' priority='500'>
|
||||
<ip srcipaddr='$SRCIPADDRESSES[@1]' dstportstart='$DSTPORTS[@2]'/>
|
||||
</rule>
|
||||
...
|
||||
...
|
||||
<rule action='accept' direction='in' priority='500'>
|
||||
<ip srcipaddr='$SRCIPADDRESSES[@1]' dstportstart='$DSTPORTS[@2]'/>
|
||||
</rule>
|
||||
...
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
In an example we assign concrete values to SRCIPADDRESSES and DSTPORTS
|
||||
</p>
|
||||
<pre>
|
||||
SRCIPADDRESSES = [ 10.0.0.1, 11.1.2.3 ]
|
||||
DSTPORTS = [ 80, 8080 ]
|
||||
SRCIPADDRESSES = [ 10.0.0.1, 11.1.2.3 ]
|
||||
DSTPORTS = [ 80, 8080 ]
|
||||
</pre>
|
||||
<p>
|
||||
Accessing the variables using $SRCIPADDRESSES[@1] and $DSTPORTS[@2] would
|
||||
then result in all combinations of addresses and ports being created:
|
||||
</p>
|
||||
<pre>
|
||||
10.0.0.1, 80
|
||||
10.0.0.1, 8080
|
||||
11.1.2.3, 80
|
||||
11.1.2.3, 8080
|
||||
10.0.0.1, 80
|
||||
10.0.0.1, 8080
|
||||
11.1.2.3, 80
|
||||
11.1.2.3, 8080
|
||||
</pre>
|
||||
<p>
|
||||
Accessing the same variables using a single iterator, for example by using
|
||||
@ -366,8 +366,8 @@
|
||||
parallel access to both lists and result in the following combinations:
|
||||
</p>
|
||||
<pre>
|
||||
10.0.0.1, 80
|
||||
11.1.2.3, 8080
|
||||
10.0.0.1, 80
|
||||
11.1.2.3, 8080
|
||||
</pre>
|
||||
<p>
|
||||
Further, the notation of $VARIABLE is short-hand for $VARIABLE[@0]. The
|
||||
@ -440,12 +440,12 @@
|
||||
using the DHCP snooping method:
|
||||
</p>
|
||||
<pre>
|
||||
<interface type='bridge'>
|
||||
<source bridge='virbr0'/>
|
||||
<filterref filter='clean-traffic'>
|
||||
<parameter name='CTRL_IP_LEARNING' value='dhcp'/>
|
||||
</filterref>
|
||||
</interface>
|
||||
<interface type='bridge'>
|
||||
<source bridge='virbr0'/>
|
||||
<filterref filter='clean-traffic'>
|
||||
<parameter name='CTRL_IP_LEARNING' value='dhcp'/>
|
||||
</filterref>
|
||||
</interface>
|
||||
</pre>
|
||||
|
||||
<h3><a name="nwfelemsReservedVars">Reserved Variables</a></h3>
|
||||
@ -658,10 +658,10 @@
|
||||
</p>
|
||||
<pre>
|
||||
[...]
|
||||
<rule action='drop' direction='in'>
|
||||
<protocol match='no' attribute1='value1' attribute2='value2'/>
|
||||
<protocol attribute3='value3'/>
|
||||
</rule>
|
||||
<rule action='drop' direction='in'>
|
||||
<protocol match='no' attribute1='value1' attribute2='value2'/>
|
||||
<protocol attribute3='value3'/>
|
||||
</rule>
|
||||
[...]
|
||||
</pre>
|
||||
<p>
|
||||
@ -1896,11 +1896,11 @@
|
||||
turned off for incoming connections to TCP port 12345.
|
||||
</p>
|
||||
<pre>
|
||||
[...]
|
||||
<rule direction='in' action='accept' statematch='false'>
|
||||
<tcp dstportstart='12345'/>
|
||||
</rule>
|
||||
[...]
|
||||
[...]
|
||||
<rule direction='in' action='accept' statematch='false'>
|
||||
<tcp dstportstart='12345'/>
|
||||
</rule>
|
||||
[...]
|
||||
</pre>
|
||||
<p>
|
||||
This now allows incoming traffic to TCP port 12345, but would also
|
||||
@ -1918,26 +1918,26 @@
|
||||
time, the following XML fragment can be used to achieve this.
|
||||
</p>
|
||||
<pre>
|
||||
[...]
|
||||
<rule action='drop' direction='in' priority='400'>
|
||||
<tcp connlimit-above='1'/>
|
||||
</rule>
|
||||
<rule action='accept' direction='in' priority='500'>
|
||||
<tcp dstportstart='22'/>
|
||||
</rule>
|
||||
<rule action='drop' direction='out' priority='400'>
|
||||
<icmp connlimit-above='1'/>
|
||||
</rule>
|
||||
<rule action='accept' direction='out' priority='500'>
|
||||
<icmp/>
|
||||
</rule>
|
||||
<rule action='accept' direction='out' priority='500'>
|
||||
<udp dstportstart='53'/>
|
||||
</rule>
|
||||
<rule action='drop' direction='inout' priority='1000'>
|
||||
<all/>
|
||||
</rule>
|
||||
[...]
|
||||
[...]
|
||||
<rule action='drop' direction='in' priority='400'>
|
||||
<tcp connlimit-above='1'/>
|
||||
</rule>
|
||||
<rule action='accept' direction='in' priority='500'>
|
||||
<tcp dstportstart='22'/>
|
||||
</rule>
|
||||
<rule action='drop' direction='out' priority='400'>
|
||||
<icmp connlimit-above='1'/>
|
||||
</rule>
|
||||
<rule action='accept' direction='out' priority='500'>
|
||||
<icmp/>
|
||||
</rule>
|
||||
<rule action='accept' direction='out' priority='500'>
|
||||
<udp dstportstart='53'/>
|
||||
</rule>
|
||||
<rule action='drop' direction='inout' priority='1000'>
|
||||
<all/>
|
||||
</rule>
|
||||
[...]
|
||||
</pre>
|
||||
<p>
|
||||
Note that the rule for the limit has to logically appear
|
||||
@ -1958,7 +1958,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
echo 3 > /proc/sys/net/netfilter/nf_conntrack_icmp_timeout
|
||||
echo 3 > /proc/sys/net/netfilter/nf_conntrack_icmp_timeout
|
||||
</pre>
|
||||
<p>
|
||||
sets the ICMP connection tracking timeout to 3 seconds. The
|
||||
@ -2201,12 +2201,12 @@
|
||||
the domain XML of the <code>test</code> VM could then look like this:
|
||||
</p>
|
||||
<pre>
|
||||
[...]
|
||||
<interface type='bridge'>
|
||||
<source bridge='mybridge'/>
|
||||
<filterref filter='test-eth0'/>
|
||||
</interface>
|
||||
[...]
|
||||
[...]
|
||||
<interface type='bridge'>
|
||||
<source bridge='mybridge'/>
|
||||
<filterref filter='test-eth0'/>
|
||||
</interface>
|
||||
[...]
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -2216,15 +2216,15 @@
|
||||
<code>ICMP</code> rule can be replaced with the following two rules:
|
||||
</p>
|
||||
<pre>
|
||||
<!-- enable outgoing ICMP echo requests-->
|
||||
<rule action='accept' direction='out'>
|
||||
<icmp type='8'/>
|
||||
</rule>
|
||||
<!-- enable outgoing ICMP echo requests-->
|
||||
<rule action='accept' direction='out'>
|
||||
<icmp type='8'/>
|
||||
</rule>
|
||||
|
||||
<!-- enable incoming ICMP echo replies-->
|
||||
<rule action='accept' direction='in'>
|
||||
<icmp type='0'/>
|
||||
</rule>
|
||||
<!-- enable incoming ICMP echo replies-->
|
||||
<rule action='accept' direction='in'>
|
||||
<icmp type='0'/>
|
||||
</rule>
|
||||
</pre>
|
||||
|
||||
<h3><a name="nwfwriteexample2nd">Second example custom filter</a></h3>
|
||||
@ -2326,9 +2326,9 @@
|
||||
the ftp connection with the VM is established.
|
||||
</p>
|
||||
<pre>
|
||||
modprobe nf_conntrack_ftp # where available or
|
||||
modprobe nf_conntrack_ftp # where available or
|
||||
|
||||
modprobe ip_conntrack_ftp # if above is not available
|
||||
modprobe ip_conntrack_ftp # if above is not available
|
||||
</pre>
|
||||
<p>
|
||||
If other protocols than ftp are to be used in conjunction with the
|
||||
|
@ -61,26 +61,26 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<secret ephemeral='no' private='yes'>
|
||||
<description>Super secret name of my first puppy</description>
|
||||
<uuid>0a81f5b2-8403-7b23-c8d6-21ccc2f80d6f</uuid>
|
||||
<usage type='volume'>
|
||||
<volume>/var/lib/libvirt/images/puppyname.img</volume>
|
||||
</usage>
|
||||
</secret>
|
||||
<secret ephemeral='no' private='yes'>
|
||||
<description>Super secret name of my first puppy</description>
|
||||
<uuid>0a81f5b2-8403-7b23-c8d6-21ccc2f80d6f</uuid>
|
||||
<usage type='volume'>
|
||||
<volume>/var/lib/libvirt/images/puppyname.img</volume>
|
||||
</usage>
|
||||
</secret>
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Define the secret and set the passphrase as follows:
|
||||
</p>
|
||||
<pre>
|
||||
# virsh secret-define volume-secret.xml
|
||||
Secret 0a81f5b2-8403-7b23-c8d6-21ccc2f80d6f created
|
||||
#
|
||||
# MYSECRET=`printf %s "open sesame" | base64`
|
||||
# virsh secret-set-value 0a81f5b2-8403-7b23-c8d6-21ccc2f80d6f $MYSECRET
|
||||
Secret value set
|
||||
#
|
||||
# virsh secret-define volume-secret.xml
|
||||
Secret 0a81f5b2-8403-7b23-c8d6-21ccc2f80d6f created
|
||||
#
|
||||
# MYSECRET=`printf %s "open sesame" | base64`
|
||||
# virsh secret-set-value 0a81f5b2-8403-7b23-c8d6-21ccc2f80d6f $MYSECRET
|
||||
Secret value set
|
||||
#
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -88,9 +88,9 @@
|
||||
volume <a href="formatstorageencryption.html">encryption</a> as follows:
|
||||
</p>
|
||||
<pre>
|
||||
<encryption format='qcow'>
|
||||
<secret type='passphrase' uuid='0a81f5b2-8403-7b23-c8d6-21ccc2f80d6f'/>
|
||||
</encryption>
|
||||
<encryption format='qcow'>
|
||||
<secret type='passphrase' uuid='0a81f5b2-8403-7b23-c8d6-21ccc2f80d6f'/>
|
||||
</encryption>
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -102,22 +102,22 @@
|
||||
<span class="since">since 2.1.0</span>. An example follows:
|
||||
</p>
|
||||
<pre>
|
||||
# cat luks-secret.xml
|
||||
<secret ephemeral='no' private='yes'>
|
||||
<description>LUKS Sample Secret</description>
|
||||
<uuid>f52a81b2-424e-490c-823d-6bd4235bc57</uuid>
|
||||
<usage type='volume'>
|
||||
<volume>/var/lib/libvirt/images/luks-sample.img</volume>
|
||||
</usage>
|
||||
</secret>
|
||||
# cat luks-secret.xml
|
||||
<secret ephemeral='no' private='yes'>
|
||||
<description>LUKS Sample Secret</description>
|
||||
<uuid>f52a81b2-424e-490c-823d-6bd4235bc57</uuid>
|
||||
<usage type='volume'>
|
||||
<volume>/var/lib/libvirt/images/luks-sample.img</volume>
|
||||
</usage>
|
||||
</secret>
|
||||
|
||||
# virsh secret-define luks-secret.xml
|
||||
Secret f52a81b2-424e-490c-823d-6bd4235bc57 created
|
||||
#
|
||||
# MYSECRET=`printf %s "letmein" | base64`
|
||||
# virsh secret-set-value f52a81b2-424e-490c-823d-6bd4235bc57 $MYSECRET
|
||||
Secret value set
|
||||
#
|
||||
# virsh secret-define luks-secret.xml
|
||||
Secret f52a81b2-424e-490c-823d-6bd4235bc57 created
|
||||
#
|
||||
# MYSECRET=`printf %s "letmein" | base64`
|
||||
# virsh secret-set-value f52a81b2-424e-490c-823d-6bd4235bc57 $MYSECRET
|
||||
Secret value set
|
||||
#
|
||||
</pre>
|
||||
|
||||
<h3><a name="CephUsageType">Usage type "ceph"</a></h3>
|
||||
@ -134,12 +134,12 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<secret ephemeral='no' private='yes'>
|
||||
<description>CEPH passphrase example</description>
|
||||
<usage type='ceph'>
|
||||
<name>ceph_example</name>
|
||||
</usage>
|
||||
</secret>
|
||||
<secret ephemeral='no' private='yes'>
|
||||
<description>CEPH passphrase example</description>
|
||||
<usage type='ceph'>
|
||||
<name>ceph_example</name>
|
||||
</usage>
|
||||
</secret>
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -149,19 +149,19 @@
|
||||
chosen secret pass phrase.
|
||||
</p>
|
||||
<pre>
|
||||
# virsh secret-define ceph-secret.xml
|
||||
Secret 1b40a534-8301-45d5-b1aa-11894ebb1735 created
|
||||
#
|
||||
# virsh secret-list
|
||||
UUID Usage
|
||||
-----------------------------------------------------------
|
||||
1b40a534-8301-45d5-b1aa-11894ebb1735 cephx ceph_example
|
||||
#
|
||||
# CEPHPHRASE=`printf %s "pass phrase" | base64`
|
||||
# virsh secret-set-value 1b40a534-8301-45d5-b1aa-11894ebb1735 $CEPHPHRASE
|
||||
Secret value set
|
||||
# virsh secret-define ceph-secret.xml
|
||||
Secret 1b40a534-8301-45d5-b1aa-11894ebb1735 created
|
||||
#
|
||||
# virsh secret-list
|
||||
UUID Usage
|
||||
-----------------------------------------------------------
|
||||
1b40a534-8301-45d5-b1aa-11894ebb1735 cephx ceph_example
|
||||
#
|
||||
# CEPHPHRASE=`printf %s "pass phrase" | base64`
|
||||
# virsh secret-set-value 1b40a534-8301-45d5-b1aa-11894ebb1735 $CEPHPHRASE
|
||||
Secret value set
|
||||
|
||||
#
|
||||
#
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -171,9 +171,9 @@
|
||||
element as follows:
|
||||
</p>
|
||||
<pre>
|
||||
<auth username='myname'>
|
||||
<secret type='ceph' usage='ceph_example'/>
|
||||
</auth>
|
||||
<auth username='myname'>
|
||||
<secret type='ceph' usage='ceph_example'/>
|
||||
</auth>
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -182,9 +182,9 @@
|
||||
<code><source></code> element as follows:
|
||||
</p>
|
||||
<pre>
|
||||
<auth type='ceph' username='myname'>
|
||||
<secret usage='ceph_example'/>
|
||||
</auth>
|
||||
<auth type='ceph' username='myname'>
|
||||
<secret usage='ceph_example'/>
|
||||
</auth>
|
||||
</pre>
|
||||
|
||||
<h3><a name="iSCSIUsageType">Usage type "iscsi"</a></h3>
|
||||
@ -203,11 +203,11 @@
|
||||
authentication file:
|
||||
</p>
|
||||
<pre>
|
||||
<target iqn.2013-07.com.example:iscsi-pool>
|
||||
backing-store /home/tgtd/iscsi-pool/disk1
|
||||
backing-store /home/tgtd/iscsi-pool/disk2
|
||||
incominguser myname mysecret
|
||||
</target>
|
||||
<target iqn.2013-07.com.example:iscsi-pool>
|
||||
backing-store /home/tgtd/iscsi-pool/disk1
|
||||
backing-store /home/tgtd/iscsi-pool/disk2
|
||||
incominguser myname mysecret
|
||||
</target>
|
||||
</pre>
|
||||
<p>
|
||||
Define an iscsi-secret.xml file to describe the secret. Use the
|
||||
@ -219,12 +219,12 @@
|
||||
or disk XML description.
|
||||
</p>
|
||||
<pre>
|
||||
<secret ephemeral='no' private='yes'>
|
||||
<description>Passphrase for the iSCSI example.com server</description>
|
||||
<usage type='iscsi'>
|
||||
<target>libvirtiscsi</target>
|
||||
</usage>
|
||||
</secret>
|
||||
<secret ephemeral='no' private='yes'>
|
||||
<description>Passphrase for the iSCSI example.com server</description>
|
||||
<usage type='iscsi'>
|
||||
<target>libvirtiscsi</target>
|
||||
</usage>
|
||||
</secret>
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -235,18 +235,18 @@
|
||||
used in the iSCSI authentication configuration file.
|
||||
</p>
|
||||
<pre>
|
||||
# virsh secret-define secret.xml
|
||||
Secret c4dbe20b-b1a3-4ac1-b6e6-2ac97852ebb6 created
|
||||
# virsh secret-define secret.xml
|
||||
Secret c4dbe20b-b1a3-4ac1-b6e6-2ac97852ebb6 created
|
||||
|
||||
# virsh secret-list
|
||||
UUID Usage
|
||||
-----------------------------------------------------------
|
||||
c4dbe20b-b1a3-4ac1-b6e6-2ac97852ebb6 iscsi libvirtiscsi
|
||||
# virsh secret-list
|
||||
UUID Usage
|
||||
-----------------------------------------------------------
|
||||
c4dbe20b-b1a3-4ac1-b6e6-2ac97852ebb6 iscsi libvirtiscsi
|
||||
|
||||
# MYSECRET=`printf %s "mysecret" | base64`
|
||||
# virsh secret-set-value c4dbe20b-b1a3-4ac1-b6e6-2ac97852ebb6 $MYSECRET
|
||||
Secret value set
|
||||
#
|
||||
# MYSECRET=`printf %s "mysecret" | base64`
|
||||
# virsh secret-set-value c4dbe20b-b1a3-4ac1-b6e6-2ac97852ebb6 $MYSECRET
|
||||
Secret value set
|
||||
#
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -256,9 +256,9 @@
|
||||
element as follows:
|
||||
</p>
|
||||
<pre>
|
||||
<auth username='myname'>
|
||||
<secret type='iscsi' usage='libvirtiscsi'/>
|
||||
</auth>
|
||||
<auth username='myname'>
|
||||
<secret type='iscsi' usage='libvirtiscsi'/>
|
||||
</auth>
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -267,9 +267,9 @@
|
||||
<code><source></code> element as follows:
|
||||
</p>
|
||||
<pre>
|
||||
<auth type='chap' username='myname'>
|
||||
<secret usage='libvirtiscsi'/>
|
||||
</auth>
|
||||
<auth type='chap' username='myname'>
|
||||
<secret usage='libvirtiscsi'/>
|
||||
</auth>
|
||||
</pre>
|
||||
|
||||
<h3><a name="tlsUsageType">Usage type "tls"</a></h3>
|
||||
@ -286,22 +286,22 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
# cat tls-secret.xml
|
||||
<secret ephemeral='no' private='yes'>
|
||||
<description>sample tls secret</description>
|
||||
<usage type='tls'>
|
||||
<name>TLS_example</name>
|
||||
</usage>
|
||||
</secret>
|
||||
# cat tls-secret.xml
|
||||
<secret ephemeral='no' private='yes'>
|
||||
<description>sample tls secret</description>
|
||||
<usage type='tls'>
|
||||
<name>TLS_example</name>
|
||||
</usage>
|
||||
</secret>
|
||||
|
||||
# virsh secret-define tls-secret.xml
|
||||
Secret 718c71bd-67b5-4a2b-87ec-a24e8ca200dc created
|
||||
# virsh secret-define tls-secret.xml
|
||||
Secret 718c71bd-67b5-4a2b-87ec-a24e8ca200dc created
|
||||
|
||||
# virsh secret-list
|
||||
UUID Usage
|
||||
-----------------------------------------------------------
|
||||
718c71bd-67b5-4a2b-87ec-a24e8ca200dc tls TLS_example
|
||||
#
|
||||
# virsh secret-list
|
||||
UUID Usage
|
||||
-----------------------------------------------------------
|
||||
718c71bd-67b5-4a2b-87ec-a24e8ca200dc tls TLS_example
|
||||
#
|
||||
|
||||
</pre>
|
||||
|
||||
@ -320,9 +320,9 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
# MYSECRET=`printf %s "letmein" | base64`
|
||||
# virsh secret-set-value 718c71bd-67b5-4a2b-87ec-a24e8ca200dc $MYSECRET
|
||||
Secret value set
|
||||
# MYSECRET=`printf %s "letmein" | base64`
|
||||
# virsh secret-set-value 718c71bd-67b5-4a2b-87ec-a24e8ca200dc $MYSECRET
|
||||
Secret value set
|
||||
|
||||
</pre>
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
There are several types of snapshots:
|
||||
</p>
|
||||
<dl>
|
||||
<dt>disk snapshot</dt> <!-- exempt from syntax-check -->
|
||||
<dt>disk snapshot</dt>
|
||||
<dd>Contents of disks (whether a subset or all disks associated
|
||||
with the domain) are saved at a given point of time, and can
|
||||
be restored back to that state. On a running guest, a disk
|
||||
@ -26,14 +26,14 @@
|
||||
since the snapshot in a single file) and external (the
|
||||
snapshot is one file, and the changes since the snapshot are
|
||||
in another file).</dd>
|
||||
<dt>memory state (or VM state)</dt> <!-- exempt from syntax-check -->
|
||||
<dt>memory state (or VM state)</dt>
|
||||
<dd>Tracks only the state of RAM and all other resources in use
|
||||
by the VM. If the disks are unmodified between the time a VM
|
||||
state snapshot is taken and restored, then the guest will
|
||||
resume in a consistent state; but if the disks are modified
|
||||
externally in the meantime, this is likely to lead to data
|
||||
corruption.</dd>
|
||||
<dt>system checkpoint</dt> <!-- exempt from syntax-check -->
|
||||
<dt>system checkpoint</dt>
|
||||
<dd>A combination of disk snapshots for all disks as well as VM
|
||||
memory state, which can be used to resume the guest from where it
|
||||
left off with symptoms similar to hibernation (that is, TCP
|
||||
|
@ -31,13 +31,13 @@
|
||||
<h3><a name="StoragePoolFirst">General metadata</a></h3>
|
||||
|
||||
<pre>
|
||||
<pool type="iscsi">
|
||||
<name>virtimages</name>
|
||||
<uuid>3e3fce45-4f53-4fa7-bb32-11f34168b82b</uuid>
|
||||
<allocation>10000000</allocation>
|
||||
<capacity>50000000</capacity>
|
||||
<available>40000000</available>
|
||||
...</pre>
|
||||
<pool type="iscsi">
|
||||
<name>virtimages</name>
|
||||
<uuid>3e3fce45-4f53-4fa7-bb32-11f34168b82b</uuid>
|
||||
<allocation>10000000</allocation>
|
||||
<capacity>50000000</capacity>
|
||||
<available>40000000</available>
|
||||
...</pre>
|
||||
|
||||
<dl>
|
||||
<dt><code>name</code></dt>
|
||||
@ -75,50 +75,50 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<source>
|
||||
<host name="iscsi.example.com"/>
|
||||
<device path="iqn.2013-06.com.example:iscsi-pool"/>
|
||||
<auth type='chap' username='myname'>
|
||||
<secret usage='mycluster_myname'/>
|
||||
</auth>
|
||||
<vendor name="Acme"/>
|
||||
<product name="model"/>
|
||||
</source>
|
||||
...</pre>
|
||||
...
|
||||
<source>
|
||||
<host name="iscsi.example.com"/>
|
||||
<device path="iqn.2013-06.com.example:iscsi-pool"/>
|
||||
<auth type='chap' username='myname'>
|
||||
<secret usage='mycluster_myname'/>
|
||||
</auth>
|
||||
<vendor name="Acme"/>
|
||||
<product name="model"/>
|
||||
</source>
|
||||
...</pre>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<source>
|
||||
<device path='/dev/mapper/mpatha' part_separator='no'/>
|
||||
<format type='gpt'/>
|
||||
</source>
|
||||
...</pre>
|
||||
...
|
||||
<source>
|
||||
<device path='/dev/mapper/mpatha' part_separator='no'/>
|
||||
<format type='gpt'/>
|
||||
</source>
|
||||
...</pre>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<source>
|
||||
<adapter type='scsi_host' name='scsi_host1'/>
|
||||
</source>
|
||||
...</pre>
|
||||
...
|
||||
<source>
|
||||
<adapter type='scsi_host' name='scsi_host1'/>
|
||||
</source>
|
||||
...</pre>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<source>
|
||||
<adapter type='scsi_host'>
|
||||
<parentaddr unique_id='1'>
|
||||
<address domain='0x0000' bus='0x00' slot='0x1f' addr='0x2'/>
|
||||
</parentaddr>
|
||||
</adapter>
|
||||
</source>
|
||||
...</pre>
|
||||
...
|
||||
<source>
|
||||
<adapter type='scsi_host'>
|
||||
<parentaddr unique_id='1'>
|
||||
<address domain='0x0000' bus='0x00' slot='0x1f' addr='0x2'/>
|
||||
</parentaddr>
|
||||
</adapter>
|
||||
</source>
|
||||
...</pre>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<source>
|
||||
<adapter type='fc_host' parent='scsi_host5' wwnn='20000000c9831b4b' wwpn='10000000c9831b4b'/>
|
||||
</source>
|
||||
...</pre>
|
||||
...
|
||||
<source>
|
||||
<adapter type='fc_host' parent='scsi_host5' wwnn='20000000c9831b4b' wwpn='10000000c9831b4b'/>
|
||||
</source>
|
||||
...</pre>
|
||||
|
||||
<dl>
|
||||
<dt><code>device</code></dt>
|
||||
@ -237,6 +237,23 @@
|
||||
the scsi_hostN of some existing storage pool.
|
||||
<span class="since">Since 1.0.4</span>
|
||||
</dd>
|
||||
<dt><code>parent_wwnn</code> and <code>parent_wwpn</code></dt>
|
||||
<dd>Instead of the <code>parent</code> to specify which scsi_host
|
||||
to use by name, it's possible to provide the wwnn and wwpn of
|
||||
the parent to be used for the vHBA in order to ensure that
|
||||
between reboots or after a hardware configuration change that
|
||||
the scsi_host parent name doesn't change. Both the parent_wwnn
|
||||
and parent_wwpn must be provided.
|
||||
<span class="since">Since 3.0.0</span>
|
||||
</dd>
|
||||
<dt><code>parent_fabric_wwn</code></dt>
|
||||
<dd>Instead of the <code>parent</code> to specify which scsi_host
|
||||
to use by name, it's possible to provide the fabric_wwn on which
|
||||
the scsi_host exists. This provides flexibility for choosing
|
||||
a scsi_host that may be available on the fabric rather than
|
||||
requiring a specific parent by wwnn or wwpn to be available.
|
||||
<span class="since">Since 3.0.0</span>
|
||||
</dd>
|
||||
<dt><code>managed</code></dt>
|
||||
<dd>An optional attribute to instruct the SCSI storage backend to
|
||||
manage destroying the vHBA when the pool is destroyed. For
|
||||
@ -380,32 +397,24 @@
|
||||
<code>pool</code> element for some types of pools (pool
|
||||
types <code>dir</code>, <code>fs</code>, <code>netfs</code>,
|
||||
<code>logical</code>, <code>disk</code>, <code>iscsi</code>,
|
||||
<code>scsi</code>, <code>mpath</code>). This tag is used to
|
||||
describe the mapping of
|
||||
<code>scsi</code>, <code>mpath</code>, <code>zfs</code>).
|
||||
This tag is used to describe the mapping of
|
||||
the storage pool into the host filesystem. It can contain the following
|
||||
child elements:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<target>
|
||||
<path>/dev/disk/by-path</path>
|
||||
<permissions>
|
||||
<owner>107</owner>
|
||||
<group>107</group>
|
||||
<mode>0744</mode>
|
||||
<label>virt_image_t</label>
|
||||
</permissions>
|
||||
<timestamps>
|
||||
<atime>1341933637.273190990</atime>
|
||||
<mtime>1341930622.047245868</mtime>
|
||||
<ctime>1341930622.047245868</ctime>
|
||||
</timestamps>
|
||||
<encryption type='...'>
|
||||
...
|
||||
</encryption>
|
||||
</target>
|
||||
</pool></pre>
|
||||
...
|
||||
<target>
|
||||
<path>/dev/disk/by-path</path>
|
||||
<permissions>
|
||||
<owner>107</owner>
|
||||
<group>107</group>
|
||||
<mode>0744</mode>
|
||||
<label>virt_image_t</label>
|
||||
</permissions>
|
||||
</target>
|
||||
</pool></pre>
|
||||
|
||||
<dl>
|
||||
<dt><code>path</code></dt>
|
||||
@ -419,6 +428,8 @@
|
||||
guaranteed stable across reboots, since they are allocated on
|
||||
demand. It is preferable to use a stable location such as one
|
||||
of the <code>/dev/disk/by-{path|id|uuid|label}</code> locations.
|
||||
For <code>logical</code> and <code>zfs</code> pool types, a
|
||||
provided value is ignored and a default path generated.
|
||||
For a Multipath pool (type <code>mpath</code>), the provided
|
||||
value is ignored and the default value of "/dev/mapper" is used.
|
||||
<span class="since">Since 0.4.1</span>
|
||||
@ -494,12 +505,12 @@
|
||||
<h3><a name="StorageVolFirst">General metadata</a></h3>
|
||||
|
||||
<pre>
|
||||
<volume type='file'>
|
||||
<name>sparse.img</name>
|
||||
<key>/var/lib/xen/images/sparse.img</key>
|
||||
<allocation>0</allocation>
|
||||
<capacity unit="T">1</capacity>
|
||||
...</pre>
|
||||
<volume type='file'>
|
||||
<name>sparse.img</name>
|
||||
<key>/var/lib/xen/images/sparse.img</key>
|
||||
<allocation>0</allocation>
|
||||
<capacity unit="T">1</capacity>
|
||||
...</pre>
|
||||
|
||||
<dl>
|
||||
<dt><code>name</code></dt>
|
||||
@ -556,6 +567,11 @@
|
||||
specified with the same semantics as for <code>allocation</code>
|
||||
This is compulsory when creating a volume.
|
||||
<span class="since">Since 0.4.1</span></dd>
|
||||
<dt><code>physical</code></dt>
|
||||
<dd>This output only element provides the host physical size of
|
||||
the target storage volume. The default output <code>unit</code>
|
||||
will be in bytes.
|
||||
<span class="since">Since 3.0.0</span></dd>
|
||||
<dt><code>source</code></dt>
|
||||
<dd>Provides information about the underlying storage allocation
|
||||
of the volume. This may not be available for some pool types.
|
||||
@ -575,22 +591,30 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<target>
|
||||
<path>/var/lib/virt/images/sparse.img</path>
|
||||
<format type='qcow2'/>
|
||||
<permissions>
|
||||
<owner>107</owner>
|
||||
<group>107</group>
|
||||
<mode>0744</mode>
|
||||
<label>virt_image_t</label>
|
||||
</permissions>
|
||||
<compat>1.1</compat>
|
||||
<nocow/>
|
||||
<features>
|
||||
<lazy_refcounts/>
|
||||
</features>
|
||||
</target></pre>
|
||||
...
|
||||
<target>
|
||||
<path>/var/lib/virt/images/sparse.img</path>
|
||||
<format type='qcow2'/>
|
||||
<permissions>
|
||||
<owner>107</owner>
|
||||
<group>107</group>
|
||||
<mode>0744</mode>
|
||||
<label>virt_image_t</label>
|
||||
</permissions>
|
||||
<timestamps>
|
||||
<atime>1341933637.273190990</atime>
|
||||
<mtime>1341930622.047245868</mtime>
|
||||
<ctime>1341930622.047245868</ctime>
|
||||
</timestamps>
|
||||
<encryption type='...'>
|
||||
...
|
||||
</encryption>
|
||||
<compat>1.1</compat>
|
||||
<nocow/>
|
||||
<features>
|
||||
<lazy_refcounts/>
|
||||
</features>
|
||||
</target></pre>
|
||||
|
||||
<dl>
|
||||
<dt><code>path</code></dt>
|
||||
@ -665,18 +689,18 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<backingStore>
|
||||
<path>/var/lib/virt/images/master.img</path>
|
||||
<format type='raw'/>
|
||||
<permissions>
|
||||
<owner>107</owner>
|
||||
<group>107</group>
|
||||
<mode>0744</mode>
|
||||
<label>virt_image_t</label>
|
||||
</permissions>
|
||||
</backingStore>
|
||||
</volume></pre>
|
||||
...
|
||||
<backingStore>
|
||||
<path>/var/lib/virt/images/master.img</path>
|
||||
<format type='raw'/>
|
||||
<permissions>
|
||||
<owner>107</owner>
|
||||
<group>107</group>
|
||||
<mode>0744</mode>
|
||||
<label>virt_image_t</label>
|
||||
</permissions>
|
||||
</backingStore>
|
||||
</volume></pre>
|
||||
|
||||
<dl>
|
||||
<dt><code>path</code></dt>
|
||||
@ -711,62 +735,62 @@
|
||||
<h3><a name="exampleFile">File based storage pool</a></h3>
|
||||
|
||||
<pre>
|
||||
<pool type="dir">
|
||||
<name>virtimages</name>
|
||||
<target>
|
||||
<path>/var/lib/virt/images</path>
|
||||
</target>
|
||||
</pool></pre>
|
||||
<pool type="dir">
|
||||
<name>virtimages</name>
|
||||
<target>
|
||||
<path>/var/lib/virt/images</path>
|
||||
</target>
|
||||
</pool></pre>
|
||||
|
||||
<h3><a name="exampleISCSI">iSCSI based storage pool</a></h3>
|
||||
|
||||
<pre>
|
||||
<pool type="iscsi">
|
||||
<name>virtimages</name>
|
||||
<source>
|
||||
<host name="iscsi.example.com"/>
|
||||
<device path="iqn.2013-06.com.example:iscsi-pool"/>
|
||||
<auth type='chap' username='myuser'>
|
||||
<secret usage='libvirtiscsi'/>
|
||||
</auth>
|
||||
</source>
|
||||
<target>
|
||||
<path>/dev/disk/by-path</path>
|
||||
</target>
|
||||
</pool></pre>
|
||||
<pool type="iscsi">
|
||||
<name>virtimages</name>
|
||||
<source>
|
||||
<host name="iscsi.example.com"/>
|
||||
<device path="iqn.2013-06.com.example:iscsi-pool"/>
|
||||
<auth type='chap' username='myuser'>
|
||||
<secret usage='libvirtiscsi'/>
|
||||
</auth>
|
||||
</source>
|
||||
<target>
|
||||
<path>/dev/disk/by-path</path>
|
||||
</target>
|
||||
</pool></pre>
|
||||
|
||||
<h3><a name="exampleVol">Storage volume</a></h3>
|
||||
|
||||
<pre>
|
||||
<volume>
|
||||
<name>sparse.img</name>
|
||||
<allocation>0</allocation>
|
||||
<capacity unit="T">1</capacity>
|
||||
<target>
|
||||
<path>/var/lib/virt/images/sparse.img</path>
|
||||
<permissions>
|
||||
<owner>107</owner>
|
||||
<group>107</group>
|
||||
<mode>0744</mode>
|
||||
<label>virt_image_t</label>
|
||||
</permissions>
|
||||
</target>
|
||||
</volume></pre>
|
||||
<volume>
|
||||
<name>sparse.img</name>
|
||||
<allocation>0</allocation>
|
||||
<capacity unit="T">1</capacity>
|
||||
<target>
|
||||
<path>/var/lib/virt/images/sparse.img</path>
|
||||
<permissions>
|
||||
<owner>107</owner>
|
||||
<group>107</group>
|
||||
<mode>0744</mode>
|
||||
<label>virt_image_t</label>
|
||||
</permissions>
|
||||
</target>
|
||||
</volume></pre>
|
||||
|
||||
<h3><a name="exampleLuks">Storage volume using LUKS</a></h3>
|
||||
|
||||
<pre>
|
||||
<volume>
|
||||
<name>MyLuks.img</name>
|
||||
<capacity unit="G">5</capacity>
|
||||
<target>
|
||||
<path>/var/lib/virt/images/MyLuks.img</path>
|
||||
<format type='raw'/>
|
||||
<encryption format='luks'>
|
||||
<secret type='passphrase' uuid='f52a81b2-424e-490c-823d-6bd4235bc572'/>
|
||||
</encryption>
|
||||
</target>
|
||||
</volume>
|
||||
<volume>
|
||||
<name>MyLuks.img</name>
|
||||
<capacity unit="G">5</capacity>
|
||||
<target>
|
||||
<path>/var/lib/virt/images/MyLuks.img</path>
|
||||
<format type='raw'/>
|
||||
<encryption format='luks'>
|
||||
<secret type='passphrase' uuid='f52a81b2-424e-490c-823d-6bd4235bc572'/>
|
||||
</encryption>
|
||||
</target>
|
||||
</volume>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -126,9 +126,9 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<encryption format='qcow'>
|
||||
<secret type='passphrase' uuid='c1f11a6d-8c5d-4a3e-ac7a-4e171c5e0d4a' />
|
||||
</encryption></pre>
|
||||
<encryption format='qcow'>
|
||||
<secret type='passphrase' uuid='c1f11a6d-8c5d-4a3e-ac7a-4e171c5e0d4a' />
|
||||
</encryption></pre>
|
||||
|
||||
<p>
|
||||
Assuming a <a href="formatsecret.html#VolumeUsageType">
|
||||
@ -138,9 +138,9 @@
|
||||
as part of a domain volume definition:
|
||||
</p>
|
||||
<pre>
|
||||
<encryption format='luks'>
|
||||
<secret type='passphrase' uuid='f52a81b2-424e-490c-823d-6bd4235bc572'/>
|
||||
</encryption>
|
||||
<encryption format='luks'>
|
||||
<secret type='passphrase' uuid='f52a81b2-424e-490c-823d-6bd4235bc572'/>
|
||||
</encryption>
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -148,19 +148,19 @@
|
||||
a specific cipher algorithm for volume creation:
|
||||
</p>
|
||||
<pre>
|
||||
<volume>
|
||||
<name>twofish.luks</name>
|
||||
<capacity unit='G'>5</capacity>
|
||||
<target>
|
||||
<path>/var/lib/libvirt/images/demo.luks</path>
|
||||
<format type='raw'/>
|
||||
<encryption format='luks'>
|
||||
<secret type='passphrase' uuid='f52a81b2-424e-490c-823d-6bd4235bc572'/>
|
||||
<cipher name='twofish' size='256' mode='cbc' hash='sha256'/>
|
||||
<ivgen name='plain64' hash='sha256'/>
|
||||
</encryption>
|
||||
</target>
|
||||
</volume>
|
||||
<volume>
|
||||
<name>twofish.luks</name>
|
||||
<capacity unit='G'>5</capacity>
|
||||
<target>
|
||||
<path>/var/lib/libvirt/images/demo.luks</path>
|
||||
<format type='raw'/>
|
||||
<encryption format='luks'>
|
||||
<secret type='passphrase' uuid='f52a81b2-424e-490c-823d-6bd4235bc572'/>
|
||||
<cipher name='twofish' size='256' mode='cbc' hash='sha256'/>
|
||||
<ivgen name='plain64' hash='sha256'/>
|
||||
</encryption>
|
||||
</target>
|
||||
</volume>
|
||||
</pre>
|
||||
|
||||
</body>
|
||||
|
@ -2,15 +2,13 @@ body {
|
||||
margin: 0em;
|
||||
padding: 0px;
|
||||
color: rgb(0,0,0);
|
||||
font-family: sans-serif;
|
||||
font-size: 90%;
|
||||
background: #ffffff;
|
||||
font-family: LibvirtOverpass;
|
||||
}
|
||||
|
||||
p, ul, ol, dl {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
p {
|
||||
@ -42,7 +40,6 @@ h1, h2, h3, h4, h5, h6 {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
margin-bottom: 0.25em;
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
|
||||
h1 {
|
||||
@ -74,3 +71,15 @@ h6 {
|
||||
margin-top: 0.75em;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
code, pre {
|
||||
font-family: LibvirtOverpassMono;
|
||||
}
|
||||
|
||||
dd code, p code {
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
@ -8,20 +8,26 @@
|
||||
|
||||
<h2><a name="patches">General tips for contributing patches</a></h2>
|
||||
<ol>
|
||||
<li>Discuss any large changes on the mailing list first. Post patches
|
||||
early and listen to feedback.</li>
|
||||
<li>
|
||||
<p>Discuss any large changes on the mailing list first. Post patches
|
||||
early and listen to feedback.</p>
|
||||
</li>
|
||||
|
||||
<li>Official upstream repository is kept in git
|
||||
<li>
|
||||
<p>Official upstream repository is kept in git
|
||||
(<code>git://libvirt.org/libvirt.git</code>) and is browsable
|
||||
along with other libvirt-related repositories
|
||||
(e.g. libvirt-python) <a href="http://libvirt.org/git/">online</a>.</li>
|
||||
(e.g. libvirt-python) <a href="http://libvirt.org/git/">online</a>.</p>
|
||||
</li>
|
||||
|
||||
<li>Patches to translations are maintained via
|
||||
<li>
|
||||
<p>Patches to translations are maintained via
|
||||
the <a href="https://fedora.zanata.org/">zanata project</a>.
|
||||
If you want to fix a translation in a .po file, join the
|
||||
appropriate language team. The libvirt release process
|
||||
automatically pulls the latest version of each translation
|
||||
file from zanata.</li>
|
||||
file from zanata.</p>
|
||||
</li>
|
||||
|
||||
<li><p>Post patches using "git send-email", with git rename
|
||||
detection enabled. You need a one-time setup of:</p>
|
||||
@ -98,8 +104,11 @@
|
||||
of <code>git bisect</code>, among other things).</p>
|
||||
</li>
|
||||
|
||||
<li>Make sure your patches apply against libvirt GIT. Developers
|
||||
only follow GIT and don't care much about released versions.</li>
|
||||
<li>
|
||||
<p>Make sure your patches apply against libvirt GIT. Developers
|
||||
only follow GIT and don't care much about released versions.</p>
|
||||
</li>
|
||||
|
||||
<li><p>Run the automated tests on your code before submitting any changes.
|
||||
In particular, configure with compile warnings set to
|
||||
-Werror. This is done automatically for a git checkout; from a
|
||||
@ -280,8 +289,21 @@
|
||||
}
|
||||
</pre>
|
||||
</li>
|
||||
<li>Update tests and/or documentation, particularly if you are adding
|
||||
a new feature or changing the output of a program.</li>
|
||||
|
||||
<li>
|
||||
<p>Update tests and/or documentation, particularly if you are adding
|
||||
a new feature or changing the output of a program.</p>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<p>Don't forget to update the <a href="news.html">release notes</a>
|
||||
by changing <code>docs/news.xml</code> if your changes are
|
||||
significant. All user-visible changes, such as adding new XML elements
|
||||
or fixing all but the most obscure bugs, must be (briefly) described
|
||||
in a release notes entry; changes that are only relevant to other
|
||||
libvirt developers, such as code refactoring, don't belong in the
|
||||
release notes.</p>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
|
@ -37,6 +37,8 @@ from docs/hacking.html.in!
|
||||
<xsl:value-of select="normalize-space(.)"/>
|
||||
<xsl:text>
|
||||
</xsl:text>======================
|
||||
|
||||
|
||||
</xsl:template>
|
||||
|
||||
|
||||
@ -93,20 +95,13 @@ from docs/hacking.html.in!
|
||||
|
||||
|
||||
|
||||
<xsl:template match="html:ol|html:ul|html:p">
|
||||
<xsl:template match="html:p">
|
||||
<xsl:apply-templates/><xsl:value-of select="$newline"/><xsl:value-of select="$newline"/>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
|
||||
<xsl:template match="html:ol/html:li">
|
||||
<xsl:choose>
|
||||
<xsl:when test=".//node()[position()=last()]/self::pre">(<xsl:value-of select="position()"/>) <xsl:apply-templates/>
|
||||
</xsl:when>
|
||||
<!-- only append two newlines when the last element isn't a pre element -->
|
||||
<xsl:otherwise>(<xsl:value-of select="position()"/>) <xsl:apply-templates/><xsl:value-of select="$newline"/><xsl:value-of select="$newline"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:template match="html:ol/html:li">(<xsl:value-of select="position()"/>) <xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
|
@ -334,10 +334,7 @@ print <<EOF;
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>libvirt API support matrix</title>
|
||||
</head>
|
||||
<body>
|
||||
<body class="hvsupport">
|
||||
<h1>libvirt API support matrix</h1>
|
||||
|
||||
<ul id="toc"></ul>
|
||||
|
@ -1,103 +1,90 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<body>
|
||||
<head>
|
||||
<script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>
|
||||
<script type="text/javascript" src="js/moment.min.js"></script>
|
||||
<script type="text/javascript" src="js/jquery.rss.min.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
jQuery(function($) {
|
||||
$("#planet").rss("http://planet.virt-tools.org/atom.xml", {
|
||||
ssl: true,
|
||||
layoutTemplate: '<dl>{entries}</dl>',
|
||||
entryTemplate: '<dt><a href="{url}">{title}</a></dt><dd>by {author} on {date}</li>',
|
||||
dateFormat: 'DD MMM YYYY'
|
||||
})
|
||||
})
|
||||
// -->
|
||||
</script>
|
||||
</head>
|
||||
<body class="index">
|
||||
<h1>The virtualization API</h1>
|
||||
|
||||
<h2>libvirt is:</h2>
|
||||
<div class="panel">
|
||||
<h2>Introduction</h2>
|
||||
<p>
|
||||
The libvirt project:
|
||||
</p>
|
||||
<ul>
|
||||
<li>is a toolkit to manage virtualization hosts</li>
|
||||
<li>is accessible from C, Python, Perl, Java and more</li>
|
||||
<li>is licensed under open source licenses</li>
|
||||
<li>supports <a href="drvqemu.html">KVM</a>,
|
||||
<a href="drvqemu.html">QEMU</a>, <a href="drvxen.html">Xen</a>,
|
||||
<a href="drvvirtuozzo.html">Virtuozzo</a>,
|
||||
<a href="drvesx.html">VMWare ESX</a>,
|
||||
<a href="drvlxc.html">LXC</a>,
|
||||
<a href="drvbhyve.html">BHyve</a> and
|
||||
<a href="drivers.html">more</a></li>
|
||||
<li>targets Linux, FreeBSD, <a href="windows.html">Windows</a> and OS-X</li>
|
||||
<li>is used by many <a href="apps.html">applications</a></li>
|
||||
</ul>
|
||||
<p>Recent / forthcoming <a href="news.html">release changes</a></p>
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
A toolkit to interact with the virtualization capabilities
|
||||
of recent versions of Linux (and other OSes), see our
|
||||
<a href="goals.html">project goals</a> for details.
|
||||
</li>
|
||||
<li>
|
||||
Free software available under the
|
||||
<a href="http://www.opensource.org/licenses/lgpl-license.html">GNU
|
||||
Lesser General Public License</a>.
|
||||
</li>
|
||||
<div class="panel">
|
||||
<h2>Quick Links</h2>
|
||||
|
||||
<li>
|
||||
A long term stable C API
|
||||
</li>
|
||||
<li>
|
||||
A set of bindings for common languages
|
||||
</li>
|
||||
<li>
|
||||
A <a href="CIM/">CIM provider</a> for the DMTF virtualization schema
|
||||
</li>
|
||||
<li>
|
||||
A <a href="/qpid/">QMF agent</a> for the AMQP/QPid messaging system
|
||||
</li>
|
||||
<li>
|
||||
A <a href="governance.html">technical meritocracy</a>, in which
|
||||
participants gain influence over a project through recognition
|
||||
of their contributions.
|
||||
</li>
|
||||
</ul>
|
||||
<dl>
|
||||
<dt><a href="contribute.html">New contributors</a></dt>
|
||||
<dd>Get involved in the libvirt community & student outreach programs</dd>
|
||||
|
||||
<h2>libvirt supports:</h2>
|
||||
<dt><a href="securityprocess.html">Security vulnerabilities</a></dt>
|
||||
<dd>Report vulnerabilities to the libvirt security response team</dd>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvqemu.html">KVM/QEMU</a> Linux hypervisor
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvxen.html">Xen</a> hypervisor
|
||||
on Linux and Solaris hosts.
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvlxc.html">LXC</a> Linux container system
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvopenvz.html">OpenVZ</a> Linux container system
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvuml.html">User Mode Linux</a> paravirtualized kernel
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvvbox.html">VirtualBox</a> hypervisor
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvesx.html">VMware ESX and GSX</a> hypervisors
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvvmware.html">VMware Workstation and Player</a> hypervisors
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvhyperv.html">Microsoft Hyper-V</a> hypervisor
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvphyp.html">IBM PowerVM</a> hypervisor
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvvirtuozzo.html">Virtuozzo</a> hypervisor
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvbhyve.html">Bhyve</a> hypervisor
|
||||
</li>
|
||||
<li>
|
||||
Virtual networks using bridging, NAT, VEPA and VN-LINK.
|
||||
</li>
|
||||
<li>
|
||||
Storage on IDE/SCSI/USB disks, FibreChannel, LVM, iSCSI, NFS and filesystems
|
||||
</li>
|
||||
</ul>
|
||||
<dt><a href="bugs.html">Bug reporting</a></dt>
|
||||
<dd>View and report bugs in libvirt packages</dd>
|
||||
|
||||
<h2>libvirt provides:</h2>
|
||||
<dt><a href="format.html">XML configuration</a></dt>
|
||||
<dd>Description of the XML schemas for
|
||||
<a href="formatdomain.html" shape="rect">domains</a>,
|
||||
<a href="formatnetwork.html" shape="rect">networks</a>,
|
||||
<a href="formatnwfilter.html" shape="rect">network filtering</a>,
|
||||
<a href="formatstorage.html" shape="rect">storage</a>,
|
||||
<a href="formatstorageencryption.html" shape="rect">storage encryption</a>,
|
||||
<a href="formatcaps.html" shape="rect">capabilities</a>,
|
||||
<a href="formatdomaincaps.html" shape="rect">domain capabilities</a>,
|
||||
<a href="formatnode.html" shape="rect">node devices</a>,
|
||||
<a href="formatsecret.html" shape="rect">secrets</a>,
|
||||
<a href="formatsnapshot.html" shape="rect">snapshots</a></dd>
|
||||
<dt><a href="http://wiki.libvirt.org">Wiki</a></dt>
|
||||
<dd>Read further community contributed content</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
<li>Remote management using TLS encryption and x509 certificates</li>
|
||||
<li>Remote management authenticating with Kerberos and SASL</li>
|
||||
<li>Local access control using PolicyKit</li>
|
||||
<li>Zero-conf discovery using Avahi multicast-DNS</li>
|
||||
<li>Management of virtual machines, virtual networks and storage</li>
|
||||
<li>Portable client API for Linux, Solaris and Windows</li>
|
||||
</ul>
|
||||
<div class="panel">
|
||||
<h2>Blog Planet</h2>
|
||||
<div id="planet">
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Read more on the <a href="http://planet.virt-tools.org/">Virt Tools blog planet</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<br class="clear"/>
|
||||
|
||||
<p class="image">
|
||||
<img src="libvirtLogo.png" alt="libvirt Logo"/>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -83,7 +83,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandPtr cmd = virCommandNew("/usr/bin/dnsmasq");
|
||||
virCommandPtr cmd = virCommandNew("/usr/bin/dnsmasq");
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -100,7 +100,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandAddArg(cmd, "-strict-order");
|
||||
virCommandAddArg(cmd, "-strict-order");
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -109,7 +109,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandAddArgPair(cmd, "--conf-file", "/etc/dnsmasq.conf");
|
||||
virCommandAddArgPair(cmd, "--conf-file", "/etc/dnsmasq.conf");
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -118,20 +118,20 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandAddArgFormat(cmd, "%d", count);
|
||||
virCommandAddArgFormat(cmd, "%d", count);
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
To add a entire NULL terminated array of arguments in one go,
|
||||
To add an entire NULL terminated array of arguments in one go,
|
||||
there are two options.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
const char *const args[] = {
|
||||
"--strict-order", "--except-interface", "lo", NULL
|
||||
};
|
||||
virCommandAddArgSet(cmd, args);
|
||||
virCommandAddArgList(cmd, "--domain", "localdomain", NULL);
|
||||
const char *const args[] = {
|
||||
"--strict-order", "--except-interface", "lo", NULL
|
||||
};
|
||||
virCommandAddArgSet(cmd, args);
|
||||
virCommandAddArgList(cmd, "--domain", "localdomain", NULL);
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -140,14 +140,14 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
const char *const args[] = {
|
||||
"/usr/bin/dnsmasq",
|
||||
"--strict-order", "--except-interface",
|
||||
"lo", "--domain", "localdomain", NULL
|
||||
};
|
||||
virCommandPtr cmd1 = virCommandNewArgs(cmd, args);
|
||||
virCommandPtr cmd2 = virCommandNewArgList("/usr/bin/dnsmasq",
|
||||
"--domain", "localdomain", NULL);
|
||||
const char *const args[] = {
|
||||
"/usr/bin/dnsmasq",
|
||||
"--strict-order", "--except-interface",
|
||||
"lo", "--domain", "localdomain", NULL
|
||||
};
|
||||
virCommandPtr cmd1 = virCommandNewArgs(cmd, args);
|
||||
virCommandPtr cmd2 = virCommandNewArgList("/usr/bin/dnsmasq",
|
||||
"--domain", "localdomain", NULL);
|
||||
</pre>
|
||||
|
||||
<h3><a name="env">Setting up the environment</a></h3>
|
||||
@ -163,7 +163,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandAddEnvPassCommon(cmd);
|
||||
virCommandAddEnvPassCommon(cmd);
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -177,8 +177,8 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandAddEnvPass(cmd, "DISPLAY");
|
||||
virCommandAddEnvPass(cmd, "XAUTHORITY");
|
||||
virCommandAddEnvPass(cmd, "DISPLAY");
|
||||
virCommandAddEnvPass(cmd, "XAUTHORITY");
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -187,7 +187,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandAddEnvPair(cmd, "TERM", "xterm");
|
||||
virCommandAddEnvPair(cmd, "TERM", "xterm");
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -196,7 +196,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandAddEnvString(cmd, "TERM=xterm");
|
||||
virCommandAddEnvString(cmd, "TERM=xterm");
|
||||
</pre>
|
||||
|
||||
<h3><a name="misc">Miscellaneous other options</a></h3>
|
||||
@ -210,7 +210,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandDaemonize(cmd);
|
||||
virCommandDaemonize(cmd);
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -221,7 +221,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandSetPidFile(cmd, "/var/run/dnsmasq.pid");
|
||||
virCommandSetPidFile(cmd, "/var/run/dnsmasq.pid");
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -240,7 +240,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandClearCaps(cmd);
|
||||
virCommandClearCaps(cmd);
|
||||
</pre>
|
||||
|
||||
<h3><a name="fds">Managing file handles</a></h3>
|
||||
@ -256,13 +256,13 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
int sharedfd = open("cmd.log", "w+");
|
||||
int childfd = open("conf.txt", "r");
|
||||
virCommandPassFD(cmd, sharedfd, 0);
|
||||
virCommandPassFD(cmd, childfd,
|
||||
VIR_COMMAND_PASS_FD_CLOSE_PARENT);
|
||||
if (VIR_CLOSE(sharedfd) < 0)
|
||||
goto cleanup;
|
||||
int sharedfd = open("cmd.log", "w+");
|
||||
int childfd = open("conf.txt", "r");
|
||||
virCommandPassFD(cmd, sharedfd, 0);
|
||||
virCommandPassFD(cmd, childfd,
|
||||
VIR_COMMAND_PASS_FD_CLOSE_PARENT);
|
||||
if (VIR_CLOSE(sharedfd) < 0)
|
||||
goto cleanup;
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -282,7 +282,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandSetInputFD(cmd, 7);
|
||||
virCommandSetInputFD(cmd, 7);
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -291,10 +291,10 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
int outfd = open("out.log", "w+");
|
||||
int errfd = open("err.log", "w+");
|
||||
virCommandSetOutputFD(cmd, &outfd);
|
||||
virCommandSetErrorFD(cmd, &errfd);
|
||||
int outfd = open("out.log", "w+");
|
||||
int errfd = open("err.log", "w+");
|
||||
virCommandSetOutputFD(cmd, &outfd);
|
||||
virCommandSetErrorFD(cmd, &errfd);
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -304,10 +304,10 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
int outfd = -1;
|
||||
int errfd = -1
|
||||
virCommandSetOutputFD(cmd, &outfd);
|
||||
virCommandSetErrorFD(cmd, &errfd);
|
||||
int outfd = -1;
|
||||
int errfd = -1
|
||||
virCommandSetOutputFD(cmd, &outfd);
|
||||
virCommandSetErrorFD(cmd, &errfd);
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -326,7 +326,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandNonblockingFDs(cmd);
|
||||
virCommandNonblockingFDs(cmd);
|
||||
</pre>
|
||||
|
||||
<h3><a name="buffers">Feeding & capturing strings to/from the child</a></h3>
|
||||
@ -350,8 +350,8 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
const char *input = "Hello World\n";
|
||||
virCommandSetInputBuffer(cmd, input);
|
||||
const char *input = "Hello World\n";
|
||||
virCommandSetInputBuffer(cmd, input);
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -362,9 +362,9 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
char *output = NULL, *errors = NULL;
|
||||
virCommandSetOutputBuffer(cmd, &output);
|
||||
virCommandSetErrorBuffer(cmd, &errors);
|
||||
char *output = NULL, *errors = NULL;
|
||||
virCommandSetOutputBuffer(cmd, &output);
|
||||
virCommandSetErrorBuffer(cmd, &errors);
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -392,7 +392,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandSetWorkingDirectory(cmd, LOCALSTATEDIR);
|
||||
virCommandSetWorkingDirectory(cmd, LOCALSTATEDIR);
|
||||
</pre>
|
||||
|
||||
<h3><a name="hooks">Any additional hooks</a></h3>
|
||||
@ -406,7 +406,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandSetPreExecHook(cmd, hook, opaque);
|
||||
virCommandSetPreExecHook(cmd, hook, opaque);
|
||||
</pre>
|
||||
|
||||
<h3><a name="logging">Logging commands</a></h3>
|
||||
@ -418,20 +418,20 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
int logfd = ...;
|
||||
char *timestamp = virTimestamp();
|
||||
char *string = NULL;
|
||||
int logfd = ...;
|
||||
char *timestamp = virTimestamp();
|
||||
char *string = NULL;
|
||||
|
||||
dprintf(logfd, "%s: ", timestamp);
|
||||
VIR_FREE(timestamp);
|
||||
virCommandWriteArgLog(cmd, logfd);
|
||||
dprintf(logfd, "%s: ", timestamp);
|
||||
VIR_FREE(timestamp);
|
||||
virCommandWriteArgLog(cmd, logfd);
|
||||
|
||||
string = virCommandToString(cmd);
|
||||
if (string)
|
||||
VIR_DEBUG("about to run %s", string);
|
||||
VIR_FREE(string);
|
||||
if (virCommandRun(cmd, NULL) < 0)
|
||||
return -1;
|
||||
string = virCommandToString(cmd);
|
||||
if (string)
|
||||
VIR_DEBUG("about to run %s", string);
|
||||
VIR_FREE(string);
|
||||
if (virCommandRun(cmd, NULL) < 0)
|
||||
return -1;
|
||||
</pre>
|
||||
|
||||
<h3><a name="sync">Running commands synchronously</a></h3>
|
||||
@ -443,8 +443,8 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
if (virCommandRun(cmd, NULL) < 0)
|
||||
return -1;
|
||||
if (virCommandRun(cmd, NULL) < 0)
|
||||
return -1;
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -465,19 +465,19 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
int status;
|
||||
if (virCommandRun(cmd, &status) < 0)
|
||||
return -1;
|
||||
if (status == 1) {
|
||||
...do stuff...
|
||||
}
|
||||
int status;
|
||||
if (virCommandRun(cmd, &status) < 0)
|
||||
return -1;
|
||||
if (status == 1) {
|
||||
...do stuff...
|
||||
}
|
||||
|
||||
virCommandRawStatus(cmd2);
|
||||
if (virCommandRun(cmd2, &status) < 0)
|
||||
return -1;
|
||||
if (WIFEXITED(status) && WEXITSTATUS(status) == 1) {
|
||||
...do stuff...
|
||||
}
|
||||
virCommandRawStatus(cmd2);
|
||||
if (virCommandRun(cmd2, &status) < 0)
|
||||
return -1;
|
||||
if (WIFEXITED(status) && WEXITSTATUS(status) == 1) {
|
||||
...do stuff...
|
||||
}
|
||||
</pre>
|
||||
|
||||
<h3><a name="async">Running commands asynchronously</a></h3>
|
||||
@ -490,19 +490,19 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
pid_t pid;
|
||||
if (virCommandRunAsync(cmd, &pid) < 0)
|
||||
return -1;
|
||||
pid_t pid;
|
||||
if (virCommandRunAsync(cmd, &pid) < 0)
|
||||
return -1;
|
||||
|
||||
... do something while pid is running ...
|
||||
... do something while pid is running ...
|
||||
|
||||
int status;
|
||||
if (virCommandWait(cmd, &status) < 0)
|
||||
return -1;
|
||||
int status;
|
||||
if (virCommandWait(cmd, &status) < 0)
|
||||
return -1;
|
||||
|
||||
if (WEXITSTATUS(status)...) {
|
||||
..do stuff..
|
||||
}
|
||||
if (WEXITSTATUS(status)...) {
|
||||
..do stuff..
|
||||
}
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -540,7 +540,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virCommandFree(cmd);
|
||||
virCommandFree(cmd);
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
|
@ -122,7 +122,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
#include <libvirt/plugins/lock_manager.h>
|
||||
#include <libvirt/plugins/lock_manager.h>
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -141,7 +141,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
lockManager="sanlock"
|
||||
lockManager="sanlock"
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -169,40 +169,40 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
virLockManagerParam params[] = {
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_UUID,
|
||||
.key = "uuid",
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_STRING,
|
||||
.key = "name",
|
||||
.value = { .str = dom->def->name },
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_UINT,
|
||||
.key = "id",
|
||||
.value = { .i = dom->def->id },
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_UINT,
|
||||
.key = "pid",
|
||||
.value = { .i = dom->pid },
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_CSTRING,
|
||||
.key = "uri",
|
||||
.value = { .cstr = driver->uri },
|
||||
},
|
||||
};
|
||||
mgr = virLockManagerNew(lockPlugin,
|
||||
VIR_LOCK_MANAGER_TYPE_DOMAIN,
|
||||
ARRAY_CARDINALITY(params),
|
||||
params,
|
||||
0)));
|
||||
virLockManagerParam params[] = {
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_UUID,
|
||||
.key = "uuid",
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_STRING,
|
||||
.key = "name",
|
||||
.value = { .str = dom->def->name },
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_UINT,
|
||||
.key = "id",
|
||||
.value = { .i = dom->def->id },
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_UINT,
|
||||
.key = "pid",
|
||||
.value = { .i = dom->pid },
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_CSTRING,
|
||||
.key = "uri",
|
||||
.value = { .cstr = driver->uri },
|
||||
},
|
||||
};
|
||||
mgr = virLockManagerNew(lockPlugin,
|
||||
VIR_LOCK_MANAGER_TYPE_DOMAIN,
|
||||
ARRAY_CARDINALITY(params),
|
||||
params,
|
||||
0)));
|
||||
|
||||
foreach (initial disks)
|
||||
virLockManagerAddResource(mgr,
|
||||
VIR_LOCK_MANAGER_RESOURCE_TYPE_DISK,
|
||||
$path, 0, NULL, $flags);
|
||||
foreach (initial disks)
|
||||
virLockManagerAddResource(mgr,
|
||||
VIR_LOCK_MANAGER_RESOURCE_TYPE_DISK,
|
||||
$path, 0, NULL, $flags);
|
||||
|
||||
if (virLockManagerAcquire(lock, NULL, 0) < 0);
|
||||
...abort...
|
||||
if (virLockManagerAcquire(lock, NULL, 0) < 0);
|
||||
...abort...
|
||||
</pre>
|
||||
|
||||
<h3><a name="usageLockAttach">Lock release</a></h3>
|
||||
@ -214,40 +214,40 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
char *state = NULL;
|
||||
virLockManagerParam params[] = {
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_UUID,
|
||||
.key = "uuid",
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_STRING,
|
||||
.key = "name",
|
||||
.value = { .str = dom->def->name },
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_UINT,
|
||||
.key = "id",
|
||||
.value = { .i = dom->def->id },
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_UINT,
|
||||
.key = "pid",
|
||||
.value = { .i = dom->pid },
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_CSTRING,
|
||||
.key = "uri",
|
||||
.value = { .cstr = driver->uri },
|
||||
},
|
||||
};
|
||||
mgr = virLockManagerNew(lockPlugin,
|
||||
VIR_LOCK_MANAGER_TYPE_DOMAIN,
|
||||
ARRAY_CARDINALITY(params),
|
||||
params,
|
||||
0)));
|
||||
char *state = NULL;
|
||||
virLockManagerParam params[] = {
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_UUID,
|
||||
.key = "uuid",
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_STRING,
|
||||
.key = "name",
|
||||
.value = { .str = dom->def->name },
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_UINT,
|
||||
.key = "id",
|
||||
.value = { .i = dom->def->id },
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_UINT,
|
||||
.key = "pid",
|
||||
.value = { .i = dom->pid },
|
||||
},
|
||||
{ .type = VIR_LOCK_MANAGER_PARAM_TYPE_CSTRING,
|
||||
.key = "uri",
|
||||
.value = { .cstr = driver->uri },
|
||||
},
|
||||
};
|
||||
mgr = virLockManagerNew(lockPlugin,
|
||||
VIR_LOCK_MANAGER_TYPE_DOMAIN,
|
||||
ARRAY_CARDINALITY(params),
|
||||
params,
|
||||
0)));
|
||||
|
||||
foreach (initial disks)
|
||||
virLockManagerAddResource(mgr,
|
||||
VIR_LOCK_MANAGER_RESOURCE_TYPE_DISK,
|
||||
$path, 0, NULL, $flags);
|
||||
foreach (initial disks)
|
||||
virLockManagerAddResource(mgr,
|
||||
VIR_LOCK_MANAGER_RESOURCE_TYPE_DISK,
|
||||
$path, 0, NULL, $flags);
|
||||
|
||||
virLockManagerRelease(mgr, & state, 0);
|
||||
virLockManagerRelease(mgr, & state, 0);
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
|
@ -210,13 +210,13 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 1 | 0 | .o.oOo.o. | --> S (call)
|
||||
+--+-----------------------+-----------+
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 1 | 0 | .o.oOo.o. | --> S (call)
|
||||
+--+-----------------------+-----------+
|
||||
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply)
|
||||
+--+-----------------------+--------+
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply)
|
||||
+--+-----------------------+--------+
|
||||
</pre>
|
||||
|
||||
<h4><a name="wireexamplescallerr">Method call with error</a></h4>
|
||||
@ -226,13 +226,13 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 1 | 0 | .o.oOo.o. | --> S (call)
|
||||
+--+-----------------------+-----------+
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 1 | 0 | .o.oOo.o. | --> S (call)
|
||||
+--+-----------------------+-----------+
|
||||
|
||||
+--+-----------------------+--------------------------+
|
||||
C <-- |48| 8 | 1 | 3 | 2 | 1 | 0 | .o.oOo.o.oOo.o.oOo.o.oOo | <-- S (error)
|
||||
+--+-----------------------+--------------------------+
|
||||
+--+-----------------------+--------------------------+
|
||||
C <-- |48| 8 | 1 | 3 | 2 | 1 | 0 | .o.oOo.o.oOo.o.oOo.o.oOo | <-- S (error)
|
||||
+--+-----------------------+--------------------------+
|
||||
</pre>
|
||||
|
||||
<h4><a name="wireexamplescallup">Method call with upload stream</a></h4>
|
||||
@ -243,33 +243,33 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 1 | 0 | .o.oOo.o. | --> S (call)
|
||||
+--+-----------------------+-----------+
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 1 | 0 | .o.oOo.o. | --> S (call)
|
||||
+--+-----------------------+-----------+
|
||||
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply)
|
||||
+--+-----------------------+--------+
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply)
|
||||
+--+-----------------------+--------+
|
||||
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
...
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+
|
||||
C --> |24| 8 | 1 | 3 | 3 | 1 | 0 | --> S (stream finish)
|
||||
+--+-----------------------+
|
||||
+--+-----------------------+
|
||||
C <-- |24| 8 | 1 | 3 | 3 | 1 | 0 | <-- S (stream finish)
|
||||
+--+-----------------------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
...
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+
|
||||
C --> |24| 8 | 1 | 3 | 3 | 1 | 0 | --> S (stream finish)
|
||||
+--+-----------------------+
|
||||
+--+-----------------------+
|
||||
C <-- |24| 8 | 1 | 3 | 3 | 1 | 0 | <-- S (stream finish)
|
||||
+--+-----------------------+
|
||||
</pre>
|
||||
|
||||
<h4><a name="wireexamplescallbi">Method call bidirectional stream</a></h4>
|
||||
@ -280,80 +280,80 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 1 | 0 | .o.oOo.o. | --> S (call)
|
||||
+--+-----------------------+-----------+
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 1 | 0 | .o.oOo.o. | --> S (call)
|
||||
+--+-----------------------+-----------+
|
||||
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply)
|
||||
+--+-----------------------+--------+
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply)
|
||||
+--+-----------------------+--------+
|
||||
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C <-- |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | <-- S (stream data down)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C <-- |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | <-- S (stream data down)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C <-- |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | <-- S (stream data down)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C <-- |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | <-- S (stream data down)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
..
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+
|
||||
C --> |24| 8 | 1 | 3 | 3 | 1 | 0 | --> S (stream finish)
|
||||
+--+-----------------------+
|
||||
+--+-----------------------+
|
||||
C <-- |24| 8 | 1 | 3 | 3 | 1 | 0 | <-- S (stream finish)
|
||||
+--+-----------------------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C <-- |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | <-- S (stream data down)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C <-- |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | <-- S (stream data down)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C <-- |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | <-- S (stream data down)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C <-- |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | <-- S (stream data down)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
..
|
||||
+--+-----------------------+-------------....-------+
|
||||
C --> |38| 8 | 1 | 3 | 3 | 1 | 2 | .o.oOo.o.oOo....o.oOo. | --> S (stream data up)
|
||||
+--+-----------------------+-------------....-------+
|
||||
+--+-----------------------+
|
||||
C --> |24| 8 | 1 | 3 | 3 | 1 | 0 | --> S (stream finish)
|
||||
+--+-----------------------+
|
||||
+--+-----------------------+
|
||||
C <-- |24| 8 | 1 | 3 | 3 | 1 | 0 | <-- S (stream finish)
|
||||
+--+-----------------------+
|
||||
</pre>
|
||||
|
||||
|
||||
<h4><a name="wireexamplescallmany">Method calls overlapping</a></h4>
|
||||
<pre>
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 1 | 0 | .o.oOo.o. | --> S (call 1)
|
||||
+--+-----------------------+-----------+
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 2 | 0 | .o.oOo.o. | --> S (call 2)
|
||||
+--+-----------------------+-----------+
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 2 | 0 | .o.oOo | <-- S (reply 2)
|
||||
+--+-----------------------+--------+
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 3 | 0 | .o.oOo.o. | --> S (call 3)
|
||||
+--+-----------------------+-----------+
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 3 | 0 | .o.oOo | <-- S (reply 3)
|
||||
+--+-----------------------+--------+
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 4 | 0 | .o.oOo.o. | --> S (call 4)
|
||||
+--+-----------------------+-----------+
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply 1)
|
||||
+--+-----------------------+--------+
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 4 | 0 | .o.oOo | <-- S (reply 4)
|
||||
+--+-----------------------+--------+
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 1 | 0 | .o.oOo.o. | --> S (call 1)
|
||||
+--+-----------------------+-----------+
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 2 | 0 | .o.oOo.o. | --> S (call 2)
|
||||
+--+-----------------------+-----------+
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 2 | 0 | .o.oOo | <-- S (reply 2)
|
||||
+--+-----------------------+--------+
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 3 | 0 | .o.oOo.o. | --> S (call 3)
|
||||
+--+-----------------------+-----------+
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 3 | 0 | .o.oOo | <-- S (reply 3)
|
||||
+--+-----------------------+--------+
|
||||
+--+-----------------------+-----------+
|
||||
C --> |38| 8 | 1 | 3 | 0 | 4 | 0 | .o.oOo.o. | --> S (call 4)
|
||||
+--+-----------------------+-----------+
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply 1)
|
||||
+--+-----------------------+--------+
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 4 | 0 | .o.oOo | <-- S (reply 4)
|
||||
+--+-----------------------+--------+
|
||||
</pre>
|
||||
|
||||
<h4><a name="wireexamplescallfd">Method call with passed FD</a></h4>
|
||||
@ -368,13 +368,13 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
+--+-----------------------+---------------+-------+
|
||||
C --> |44| 8 | 1 | 3 | 0 | 1 | 0 | 2 | .o.oOo.o. | 0 | 0 | --> S (call)
|
||||
+--+-----------------------+---------------+-------+
|
||||
+--+-----------------------+---------------+-------+
|
||||
C --> |44| 8 | 1 | 3 | 0 | 1 | 0 | 2 | .o.oOo.o. | 0 | 0 | --> S (call)
|
||||
+--+-----------------------+---------------+-------+
|
||||
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply)
|
||||
+--+-----------------------+--------+
|
||||
+--+-----------------------+--------+
|
||||
C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply)
|
||||
+--+-----------------------+--------+
|
||||
</pre>
|
||||
|
||||
|
||||
|
@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<body>
|
||||
<h1>Architecture</h1>
|
||||
<p>Libvirt is a C toolkit manage the virtualization capabilities
|
||||
of recent versions of Linux (and other OSes).</p>
|
||||
<p>To avoid ambiguity about the goals, terms and specific concepts used
|
||||
in libvirt documentation please see the <a href="goals.html">Goal
|
||||
section</a>.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
4
docs/js/jquery-3.1.1.min.js
vendored
Normal file
11
docs/js/jquery.rss.min.js
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
(function(d){var e=function(a,b,c,f){this.target=a;this.url=b;this.html=[];this.effectQueue=[];this.options=d.extend({ssl:!1,host:"www.feedrapp.info",limit:null,key:null,layoutTemplate:"<ul>{entries}</ul>",entryTemplate:'<li><a href="{url}">[{author}@{date}] {title}</a><br/>{shortBodyPlain}</li>',tokens:{},outputMode:"json",dateFormat:"dddd MMM Do",dateLocale:"en",effect:"show",offsetStart:!1,offsetEnd:!1,error:function(){console.log("jQuery RSS: url doesn't link to RSS-Feed")},onData:function(){},
|
||||
success:function(){}},c||{});this.options.ssl&&"www.feedrapp.info"===this.options.host&&(this.options.host="feedrapp.herokuapp.com");this.callback=f||this.options.success};e.htmlTags="doctype,html,head,title,base,link,meta,style,script,noscript,body,article,nav,aside,section,header,footer,h1-h6,hgroup,address,p,hr,pre,blockquote,ol,ul,li,dl,dt,dd,figure,figcaption,div,table,caption,thead,tbody,tfoot,tr,th,td,col,colgroup,form,fieldset,legend,label,input,button,select,datalist,optgroup,option,textarea,keygen,output,progress,meter,details,summary,command,menu,del,ins,img,iframe,embed,object,param,video,audio,source,canvas,track,map,area,a,em,strong,i,b,u,s,small,abbr,q,cite,dfn,sub,sup,time,code,kbd,samp,var,mark,bdi,bdo,ruby,rt,rp,span,br,wbr".split(",");
|
||||
e.prototype.load=function(a){var b="http"+(this.options.ssl?"s":"")+"://"+this.options.host+"?callback=?&q="+encodeURIComponent(this.url);this.options.offsetStart&&this.options.offsetEnd&&(this.options.limit=this.options.offsetEnd);null!==this.options.limit&&(b+="&num="+this.options.limit);null!==this.options.key&&(b+="&key="+this.options.key);d.getJSON(b,a)};e.prototype.render=function(){var a=this;this.load(function(b){try{a.feed=b.responseData.feed,a.entries=b.responseData.feed.entries}catch(c){return a.entries=
|
||||
[],a.feed=null,a.options.error.call(a)}b=a.generateHTMLForEntries();a.target.append(b.layout);if(0!==b.entries.length){d.isFunction(a.options.onData)&&a.options.onData.call(a);var f=d(b.layout).is("entries")?b.layout:d("entries",b.layout);a.appendEntriesAndApplyEffects(f,b.entries)}0<a.effectQueue.length?a.executeEffectQueue(a.callback):d.isFunction(a.callback)&&a.callback.call(a)})};e.prototype.appendEntriesAndApplyEffects=function(a,b){var c=this;d.each(b,function(b,e){var d=c.wrapContent(e);"show"===
|
||||
c.options.effect?a.before(d):(d.css({display:"none"}),a.before(d),c.applyEffect(d,c.options.effect))});a.remove()};e.prototype.generateHTMLForEntries=function(){var a=this,b={entries:[],layout:null};d(this.entries).each(function(){var c=a.options.offsetStart,f=a.options.offsetEnd;c&&f?index>=c&&index<=f&&a.isRelevant(this,b.entries)&&(c=a.evaluateStringForEntry(a.options.entryTemplate,this),b.entries.push(c)):a.isRelevant(this,b.entries)&&(c=a.evaluateStringForEntry(a.options.entryTemplate,this),
|
||||
b.entries.push(c))});b.layout=this.options.entryTemplate?this.wrapContent(this.options.layoutTemplate.replace("{entries}","<entries></entries>")):this.wrapContent("<div><entries></entries></div>");return b};e.prototype.wrapContent=function(a){return 0!==d.trim(a).indexOf("<")?d("<div>"+a+"</div>"):d(a)};e.prototype.applyEffect=function(a,b,c){switch(b){case "slide":a.slideDown("slow",c);break;case "slideFast":a.slideDown(c);break;case "slideSynced":this.effectQueue.push({element:a,effect:"slide"});
|
||||
break;case "slideFastSynced":this.effectQueue.push({element:a,effect:"slideFast"})}};e.prototype.executeEffectQueue=function(a){var b=this;this.effectQueue.reverse();var c=function(){var f=b.effectQueue.pop();f?b.applyEffect(f.element,f.effect,c):a&&a()};c()};e.prototype.evaluateStringForEntry=function(a,b){var c=a,f=this;d(a.match(/(\{.*?\})/g)).each(function(){var a=this.toString();c=c.replace(a,f.getValueForToken(a,b))});return c};e.prototype.isRelevant=function(a,b){var c=this.getTokenMap(a);
|
||||
return this.options.filter?this.options.filterLimit&&this.options.filterLimit===b.length?!1:this.options.filter(a,c):!0};e.prototype.getFormattedDate=function(a){if(this.options.dateFormatFunction)return this.options.dateFormatFunction(a);return"undefined"!==typeof moment?(a=moment(new Date(a)),a=a.locale?a.locale(this.options.dateLocale):a.lang(this.options.dateLocale),a.format(this.options.dateFormat)):a};e.prototype.getTokenMap=function(a){if(!this.feedTokens){var b=JSON.parse(JSON.stringify(this.feed));
|
||||
delete b.entries;this.feedTokens=b}return d.extend({feed:this.feedTokens,url:a.link,author:a.author,date:this.getFormattedDate(a.publishedDate),title:a.title,body:a.content,shortBody:a.contentSnippet,bodyPlain:function(a){for(var a=a.content.replace(/<script[\\r\\\s\S]*<\/script>/mgi,"").replace(/<\/?[^>]+>/gi,""),b=0;b<e.htmlTags.length;b++)a=a.replace(RegExp("<"+e.htmlTags[b],"gi"),"");return a}(a),shortBodyPlain:a.contentSnippet.replace(/<\/?[^>]+>/gi,""),index:d.inArray(a,this.entries),totalEntries:this.entries.length,
|
||||
teaserImage:function(a){try{return a.content.match(/(<img.*?>)/gi)[0]}catch(b){return""}}(a),teaserImageUrl:function(a){try{return a.content.match(/(<img.*?>)/gi)[0].match(/src="(.*?)"/)[1]}catch(b){return""}}(a)},this.options.tokens)};e.prototype.getValueForToken=function(a,b){var c=this.getTokenMap(b),d=a.replace(/[\{\}]/g,""),d=c[d];if("undefined"!==typeof d)return"function"===typeof d?d(b,c):d;throw Error("Unknown token: "+a+", url:"+this.url);};d.fn.rss=function(a,b,c){(new e(this,a,b,c)).render();
|
||||
return this}})(jQuery);
|
7
docs/js/moment.min.js
vendored
Normal file
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 25 KiB |
@ -1,159 +0,0 @@
|
||||
#FIG 3.2
|
||||
Landscape
|
||||
Center
|
||||
Inches
|
||||
Letter
|
||||
100.00
|
||||
Single
|
||||
-2
|
||||
1200 2
|
||||
6 675 8400 4650 8625
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
675 8400 4650 8400
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
675 8475 4650 8475
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
675 8550 4650 8550
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
675 8625 4650 8625
|
||||
-6
|
||||
6 7575 8400 11550 8625
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
7575 8400 11550 8400
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
7575 8475 11550 8475
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
7575 8550 11550 8550
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
7575 8625 11550 8625
|
||||
-6
|
||||
6 9000 7125 9600 7425
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
9000 7125 9600 7125 9600 7425 9000 7425 9000 7125
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 9075 7350 eth1\001
|
||||
-6
|
||||
6 1950 1200 3600 2325
|
||||
6 2100 2025 2625 2325
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
2100 2025 2625 2025 2625 2325 2100 2325 2100 2025
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 2175 2250 eth0\001
|
||||
-6
|
||||
6 2850 2025 3375 2325
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
2850 2025 3375 2025 3375 2325 2850 2325 2850 2025
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 2925 2250 eth1\001
|
||||
-6
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
1950 1200 3600 1200 3600 2025 1950 2025 1950 1200
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 675 2025 1425 Guest A\001
|
||||
-6
|
||||
6 4575 1200 6225 2325
|
||||
6 4725 2025 5250 2325
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
4725 2025 5250 2025 5250 2325 4725 2325 4725 2025
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 4800 2250 eth0\001
|
||||
-6
|
||||
6 5475 2025 6000 2325
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
5475 2025 6000 2025 6000 2325 5475 2325 5475 2025
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 5550 2250 eth1\001
|
||||
-6
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
4575 1200 6225 1200 6225 2025 4575 2025 4575 1200
|
||||
2 3 0 1 0 7 50 -1 -1 0.000 0 0 0 0 0 5
|
||||
5325 1800 5475 1650 5325 1500 5175 1650 5325 1800
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 3
|
||||
5175 1650 4950 1650 4950 2025
|
||||
0.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 3
|
||||
5475 1650 5700 1650 5700 2025
|
||||
0.000 1.000 0.000
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 660 4650 1425 Guest B\001
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 420 5550 1575 FWD\001
|
||||
-6
|
||||
6 7575 1200 9225 2325
|
||||
6 7725 2025 8250 2325
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
7725 2025 8250 2025 8250 2325 7725 2325 7725 2025
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 7800 2250 eth0\001
|
||||
-6
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
7575 1200 9225 1200 9225 2025 7575 2025 7575 1200
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 675 7650 1425 Guest C\001
|
||||
-6
|
||||
6 8025 4950 8625 5250
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
8025 4950 8625 4950 8625 5250 8025 5250 8025 4950
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 480 8100 5175 virbr1\001
|
||||
-6
|
||||
6 2550 7125 3150 7425
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
2550 7125 3150 7125 3150 7425 2550 7425 2550 7125
|
||||
4 0 0 50 -1 16 12 0.0000 4 180 465 2625 7350 peth0\001
|
||||
-6
|
||||
6 2475 3675 6450 3900
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
2475 3675 6450 3675
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
2475 3750 6450 3750
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
2475 3825 6450 3825
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
2475 3900 6450 3900
|
||||
-6
|
||||
6 7500 3675 11475 3900
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
7500 3675 11475 3675
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
7500 3750 11475 3750
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
7500 3825 11475 3825
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
7500 3900 11475 3900
|
||||
-6
|
||||
6 3675 4950 4275 5250
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
3675 4950 4275 4950 4275 5250 3675 5250 3675 4950
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 480 3750 5175 virbr0\001
|
||||
-6
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
2850 7425 2850 8400
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
9300 7425 9300 8400
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
1725 5250 10275 5250 10275 7125 1725 7125 1725 5250
|
||||
2 3 0 1 0 7 50 -1 -1 0.000 0 0 0 0 0 5
|
||||
4875 6450 5100 6225 4875 6000 4650 6225 4875 6450
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
2325 2325 2325 3375 825 5400 1125 8400
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
5700 2325 5700 2925 7875 2925 7950 3675
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
7950 2325 7950 2850 8475 2850 8925 3675
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
3075 2325 3075 3150 3525 3150 3525 3675
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
4950 2325 4950 3225 4650 3225 4500 3675
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
4875 6450 4875 6825 9225 6525 9225 7125
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
3600 3900 3675 4500 4050 4500 4050 4950
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
3975 5250 3975 5625 4875 5625 4875 6000
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
8775 3900 8700 4500 8325 4500 8325 4950
|
||||
0.000 1.000 1.000 0.000
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 825 8850 lan1\001
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 7725 8850 lan2\001
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 465 2550 4125 vlan1\001
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 465 7575 4125 vlan2\001
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 420 5100 6075 FWD\001
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 570 1800 5475 Host A\001
|
Before Width: | Height: | Size: 11 KiB |
@ -1,139 +0,0 @@
|
||||
#FIG 3.2
|
||||
Landscape
|
||||
Center
|
||||
Inches
|
||||
Letter
|
||||
100.00
|
||||
Single
|
||||
-2
|
||||
1200 2
|
||||
6 675 8400 4650 8625
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
675 8400 4650 8400
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
675 8475 4650 8475
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
675 8550 4650 8550
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
675 8625 4650 8625
|
||||
-6
|
||||
6 7575 8400 11550 8625
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
7575 8400 11550 8400
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
7575 8475 11550 8475
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
7575 8550 11550 8550
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
7575 8625 11550 8625
|
||||
-6
|
||||
6 9000 7125 9600 7425
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
9000 7125 9600 7125 9600 7425 9000 7425 9000 7125
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 9075 7350 eth1\001
|
||||
-6
|
||||
6 2550 7125 3150 7425
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
2550 7125 3150 7125 3150 7425 2550 7425 2550 7125
|
||||
4 0 0 50 -1 16 12 0.0000 4 180 465 2625 7350 peth0\001
|
||||
-6
|
||||
6 1950 1200 3600 2325
|
||||
6 2100 2025 2625 2325
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
2100 2025 2625 2025 2625 2325 2100 2325 2100 2025
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 2175 2250 eth0\001
|
||||
-6
|
||||
6 2850 2025 3375 2325
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
2850 2025 3375 2025 3375 2325 2850 2325 2850 2025
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 2925 2250 eth1\001
|
||||
-6
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
1950 1200 3600 1200 3600 2025 1950 2025 1950 1200
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 675 2025 1425 Guest A\001
|
||||
-6
|
||||
6 4575 1200 6225 2325
|
||||
6 4725 2025 5250 2325
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
4725 2025 5250 2025 5250 2325 4725 2325 4725 2025
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 4800 2250 eth0\001
|
||||
-6
|
||||
6 5475 2025 6000 2325
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
5475 2025 6000 2025 6000 2325 5475 2325 5475 2025
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 5550 2250 eth1\001
|
||||
-6
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
4575 1200 6225 1200 6225 2025 4575 2025 4575 1200
|
||||
2 3 0 1 0 7 50 -1 -1 0.000 0 0 0 0 0 5
|
||||
5325 1800 5475 1650 5325 1500 5175 1650 5325 1800
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 3
|
||||
5175 1650 4950 1650 4950 2025
|
||||
0.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 3
|
||||
5475 1650 5700 1650 5700 2025
|
||||
0.000 1.000 0.000
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 660 4650 1425 Guest B\001
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 420 5550 1575 FWD\001
|
||||
-6
|
||||
6 7575 1200 9225 2325
|
||||
6 7725 2025 8250 2325
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
7725 2025 8250 2025 8250 2325 7725 2325 7725 2025
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 7800 2250 eth0\001
|
||||
-6
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
7575 1200 9225 1200 9225 2025 7575 2025 7575 1200
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 675 7650 1425 Guest C\001
|
||||
-6
|
||||
6 4950 4275 6225 4725
|
||||
2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
|
||||
6225 4725 6225 4275 4950 4275 4950 4725 6225 4725
|
||||
4 0 0 50 -1 16 12 0.0000 4 180 1080 5025 4575 Bridge virbr0\001
|
||||
-6
|
||||
6 2400 4275 3750 4725
|
||||
2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
|
||||
3750 4725 3750 4275 2400 4275 2400 4725 3750 4725
|
||||
4 0 0 50 -1 16 12 0.0000 4 180 960 2475 4575 Bridge eth0\001
|
||||
-6
|
||||
6 7725 4275 9000 4725
|
||||
2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
|
||||
9000 4725 9000 4275 7725 4275 7725 4725 9000 4725
|
||||
4 0 0 50 -1 16 12 0.0000 4 180 1080 7800 4575 Bridge virbr1\001
|
||||
-6
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
2850 7425 2850 8400
|
||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||
9300 7425 9300 8400
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
1800 825 10275 825 10275 7125 1800 7125 1800 825
|
||||
2 3 0 1 0 7 50 -1 -1 0.000 0 0 0 0 0 5
|
||||
6675 5850 6900 5625 6675 5400 6450 5625 6675 5850
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
2325 2325 2325 3375 3000 3375 3000 4275
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
3000 4725 3000 5625 2850 5625 2850 7125
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
5700 2325 5700 2925 8250 2925 8250 4275
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
7950 2325 7950 2850 8475 2850 8475 4275
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
3075 2325 3075 3450 5550 3450 5550 4275
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
4950 2325 4950 3225 5700 3225 5700 4275
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
5550 4725 5400 5100 6675 5175 6675 5400
|
||||
0.000 1.000 1.000 0.000
|
||||
3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 4
|
||||
6675 5850 6675 6300 9225 6000 9225 7125
|
||||
0.000 1.000 1.000 0.000
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 825 8850 lan1\001
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 360 7725 8850 lan2\001
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 570 1875 1050 Host A\001
|
||||
4 0 0 50 -1 16 12 0.0000 4 135 420 5850 5700 FWD\001
|
Before Width: | Height: | Size: 11 KiB |
363
docs/libvirt.css
@ -1,155 +1,113 @@
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: #3c857c;
|
||||
#nav {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
height: 100px;
|
||||
background: rgb(0, 95, 97);
|
||||
border-bottom: 3px solid rgb(60, 133, 124);
|
||||
width: 100%;
|
||||
display: table;
|
||||
}
|
||||
|
||||
#header {
|
||||
margin: 0px;
|
||||
height: 104px;
|
||||
width: 100%;
|
||||
background: url(libvirt-header-bg.png);
|
||||
#home {
|
||||
background-image: url(logos/logo-banner-light-256.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: left center;
|
||||
height: 100px;
|
||||
width: 269px;
|
||||
margin-left: 1em;
|
||||
text-indent: 100%; white-space: nowrap; overflow: hidden;
|
||||
}
|
||||
|
||||
#home a {
|
||||
color: rgb(0, 95, 97);
|
||||
height: 100px;
|
||||
width: 269px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#jumplinks {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
font-size: 16pt;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#jumplinks ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#jumplinks li {
|
||||
display: inline;
|
||||
padding-left: 2em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#jumplinks a {
|
||||
color: rgb(255, 255, 255);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#jumplinks a:hover {
|
||||
color: rgb(255, 230, 0);
|
||||
}
|
||||
|
||||
#search {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
width: 13em;
|
||||
text-align: right;
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
#search input {
|
||||
border: 0px;
|
||||
height: 2em;
|
||||
}
|
||||
|
||||
#search input[type=text] {
|
||||
background: rgb(230, 230, 230);
|
||||
color: rgb(0, 0, 0);
|
||||
width: 10em;
|
||||
padding: 0px;
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
#search input[type=submit] {
|
||||
background: rgb(60, 133, 124);
|
||||
color: rgb(255, 255, 255);
|
||||
width: 3em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#search input[type=submit]:active,
|
||||
#search input[type=submit]:hover {
|
||||
color: rgb(255, 230, 0);
|
||||
}
|
||||
|
||||
#body {
|
||||
float: left;
|
||||
width: 100%;
|
||||
border: 0px;
|
||||
left: 0px;
|
||||
margin: 0px;
|
||||
margin-top: 120px;
|
||||
margin-left: 1em;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin-left: 230px;
|
||||
margin-right: 1em;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding: 0px;
|
||||
padding-bottom: 1em;
|
||||
max-width: 60em;
|
||||
}
|
||||
|
||||
#menu {
|
||||
float: left;
|
||||
width: 220px;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
#menu ul {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
#menu li ul {
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
#menu ul li {
|
||||
list-style: none;
|
||||
color: black;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
#menu ul li a, #menu ul li span {
|
||||
text-decoration: inherit;
|
||||
color: inherit;
|
||||
display: block;
|
||||
padding: 6px;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
#menu ul li .active {
|
||||
background: #a4c6c2;
|
||||
}
|
||||
|
||||
#menu ul.l0 li .inactive {
|
||||
background: #c5dbd8;
|
||||
}
|
||||
|
||||
|
||||
#menu ul.l1 li .inactive,
|
||||
#menu ul.l2 li .inactive {
|
||||
background: #dfebea;
|
||||
border-left: 8px solid #dfebea;
|
||||
}
|
||||
|
||||
#menu ul.l1 li .inactive,
|
||||
#menu ul.l1 li .active {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
#menu ul.l1 li .inactive {
|
||||
border-left: 6px solid #dfebea;
|
||||
}
|
||||
|
||||
#menu ul.l1 li .active {
|
||||
border-left: 6px solid #a5c6c2;
|
||||
}
|
||||
|
||||
#menu ul.l2 li .inactive,
|
||||
#menu ul.l2 li .active {
|
||||
padding-left: 2em;
|
||||
border-left: 8px solid #c5dbd8;
|
||||
}
|
||||
|
||||
#menu ul.l3 li .inactive,
|
||||
#menu ul.l3 li .active {
|
||||
padding-left: 3em;
|
||||
}
|
||||
|
||||
#headerLogo {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
height: 104px;
|
||||
width: 400px;
|
||||
background: url(libvirt-header-logo.png);
|
||||
}
|
||||
|
||||
#headerSearch {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
padding: 2em;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
#headerSearch input {
|
||||
border: 1px solid #999999;
|
||||
color: #999999;
|
||||
background: white;
|
||||
padding: 3px;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
#headerSearch #submit {
|
||||
border: 1px solid #999999;
|
||||
background: #eeeeee;
|
||||
color: black;
|
||||
padding: 3px;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
#sitemap ul li {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#sitemap ul {
|
||||
margin: 1em;
|
||||
padding: 0em;
|
||||
}
|
||||
|
||||
#sitemap ul ul {
|
||||
padding-left: 2em;
|
||||
}
|
||||
|
||||
#sitemap li {
|
||||
margin: 0.5em;
|
||||
}
|
||||
|
||||
#sitemap a {
|
||||
color: inherit;
|
||||
text-decoration: underline;
|
||||
font-weight: bold;
|
||||
body.index #content,
|
||||
body.docs #content,
|
||||
body.hvsupport #content
|
||||
{
|
||||
max-width: inherit;
|
||||
}
|
||||
|
||||
pre {
|
||||
@ -160,7 +118,7 @@ pre {
|
||||
}
|
||||
|
||||
a {
|
||||
color: #566866;
|
||||
color: rgb(0, 95, 97);
|
||||
}
|
||||
|
||||
div.api {
|
||||
@ -204,10 +162,15 @@ p.image {
|
||||
|
||||
.top_table {
|
||||
border-collapse: collapse;
|
||||
min-width: 60%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.top_table th {
|
||||
background: #a4c6c2;
|
||||
background: rgb(0, 95, 97);
|
||||
color: rgb(255, 255, 255);
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.top_table th a {
|
||||
@ -216,7 +179,11 @@ p.image {
|
||||
}
|
||||
|
||||
.top_table td, .top_table th {
|
||||
border: 1px solid #999999;
|
||||
border: 1px solid rgb(60, 133, 124);
|
||||
}
|
||||
|
||||
.top_table td {
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.top_table tr:hover td, .top_table col:hover td {
|
||||
@ -451,3 +418,121 @@ h5:hover > a.headerlink,
|
||||
h6:hover > a.headerlink {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
div.panel {
|
||||
width: 24%;
|
||||
margin-left: 7%;
|
||||
float: left;
|
||||
background: rgb(230, 230, 230);
|
||||
}
|
||||
|
||||
div.panel h2 {
|
||||
margin-top: 0px;
|
||||
padding: 0.5em;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
background: rgb(0, 95, 97);
|
||||
color: rgb(255, 255, 255);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
body.index h1 {
|
||||
border: 0px;
|
||||
text-indent: 100%; white-space: nowrap; overflow: hidden;
|
||||
background: url(logos/logo-banner-dark-800.png) no-repeat center center;
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
br.clear {
|
||||
clear: both;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
#footer {
|
||||
clear: both;
|
||||
border-top: 3px solid rgb(60, 133, 124);
|
||||
margin-top: 2em;
|
||||
padding: 1em;
|
||||
background: rgb(0, 95, 97);
|
||||
color: rgb(255, 255, 255);
|
||||
}
|
||||
|
||||
#footer a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#footer a:hover {
|
||||
color: rgb(255, 230, 0);
|
||||
}
|
||||
|
||||
#conduct {
|
||||
float: right;
|
||||
text-align: right;
|
||||
font-size: smaller;
|
||||
margin-right: 3em;
|
||||
}
|
||||
|
||||
#conduct a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#contact, #community {
|
||||
float: left;
|
||||
padding: 0px;
|
||||
margin-left: 3em;
|
||||
}
|
||||
|
||||
#footer h3 {
|
||||
margin:0px;
|
||||
font-size: 1em;
|
||||
color: rgb(60, 133, 124);
|
||||
}
|
||||
|
||||
#footer ul {
|
||||
list-style: none;
|
||||
margin: 0px;
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
div.panel dd {
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
div.panel a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
div.panel ul,
|
||||
div.panel p,
|
||||
div.panel dl {
|
||||
padding: 0.5em;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
|
||||
div.panel ul {
|
||||
margin-left: 1em;
|
||||
}
|
||||
div.panel dt {
|
||||
margin: 0px;
|
||||
}
|
||||
div.panel dd {
|
||||
margin: 0px;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
dl.mail dt {
|
||||
background: rgb(0, 97, 95);
|
||||
color: rgb(255, 255, 255);
|
||||
font-weight: bold;
|
||||
padding: 0.5em;
|
||||
}
|
||||
dl.mail dt a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
dl.mail dt a:hover {
|
||||
color: rgb(255, 230, 0);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB |
@ -40,8 +40,8 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
# chkconfig virtlockd on
|
||||
# service virtlockd start
|
||||
# chkconfig virtlockd on
|
||||
# service virtlockd start
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -92,10 +92,10 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ su - root
|
||||
# augtool -s set \
|
||||
/files/etc/libvirt/qemu-lockd.conf/file_lockspace_dir \
|
||||
"/var/lib/libvirt/lockd/files"
|
||||
$ su - root
|
||||
# augtool -s set \
|
||||
/files/etc/libvirt/qemu-lockd.conf/file_lockspace_dir \
|
||||
"/var/lib/libvirt/lockd/files"
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -110,13 +110,13 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ su - root
|
||||
# augtool -s set \
|
||||
/files/etc/libvirt/qemu-lockd.conf/scsi_lockspace_dir \
|
||||
"/var/lib/libvirt/lockd/scsi"
|
||||
# augtool -s set \
|
||||
/files/etc/libvirt/qemu-lockd.conf/lvm_lockspace_dir \
|
||||
"/var/lib/libvirt/lockd/lvm"
|
||||
$ su - root
|
||||
# augtool -s set \
|
||||
/files/etc/libvirt/qemu-lockd.conf/scsi_lockspace_dir \
|
||||
"/var/lib/libvirt/lockd/scsi"
|
||||
# augtool -s set \
|
||||
/files/etc/libvirt/qemu-lockd.conf/lvm_lockspace_dir \
|
||||
"/var/lib/libvirt/lockd/lvm"
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -143,9 +143,9 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ su - root
|
||||
# augtool -s set /files/etc/libvirt/qemu.conf/lock_manager lockd
|
||||
# service libvirtd restart
|
||||
$ su - root
|
||||
# augtool -s set /files/etc/libvirt/qemu.conf/lock_manager lockd
|
||||
# service libvirtd restart
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
|
@ -23,8 +23,8 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ su - root
|
||||
# yum install libvirt-lock-sanlock
|
||||
$ su - root
|
||||
# yum install libvirt-lock-sanlock
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -37,9 +37,9 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ su - root
|
||||
# chkconfig wdmd on
|
||||
# service wdmd start
|
||||
$ su - root
|
||||
# chkconfig wdmd on
|
||||
# service wdmd start
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -48,8 +48,8 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
# chkconfig sanlock on
|
||||
# service sanlock start
|
||||
# chkconfig sanlock on
|
||||
# service sanlock start
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -59,7 +59,7 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
SANLOCKOPTS="-w 0"
|
||||
SANLOCKOPTS="-w 0"
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -82,8 +82,8 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ su - root
|
||||
# augtool -s set /files/etc/libvirt/qemu-sanlock.conf/host_id 1
|
||||
$ su - root
|
||||
# augtool -s set /files/etc/libvirt/qemu-sanlock.conf/host_id 1
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -104,9 +104,9 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ su - root
|
||||
# echo "some.nfs.server:/export/sanlock /var/lib/libvirt/sanlock nfs hard,nointr 0 0" >> /etc/fstab
|
||||
# mount /var/lib/libvirt/sanlock
|
||||
$ su - root
|
||||
# echo "some.nfs.server:/export/sanlock /var/lib/libvirt/sanlock nfs hard,nointr 0 0" >> /etc/fstab
|
||||
# mount /var/lib/libvirt/sanlock
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -121,8 +121,8 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
augtool -s set /files/etc/libvirt/qemu-sanlock.conf/user sanlock
|
||||
augtool -s set /files/etc/libvirt/qemu-sanlock.conf/group sanlock
|
||||
augtool -s set /files/etc/libvirt/qemu-sanlock.conf/user sanlock
|
||||
augtool -s set /files/etc/libvirt/qemu-sanlock.conf/group sanlock
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -168,9 +168,9 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ su - root
|
||||
# augtool -s set /files/etc/libvirt/qemu.conf/lock_manager sanlock
|
||||
# service libvirtd restart
|
||||
$ su - root
|
||||
# augtool -s set /files/etc/libvirt/qemu.conf/lock_manager sanlock
|
||||
# service libvirtd restart
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@ -180,8 +180,8 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
# ls /var/lib/libvirt/sanlock/
|
||||
__LIBVIRT__DISKS__
|
||||
# ls /var/lib/libvirt/sanlock/
|
||||
__LIBVIRT__DISKS__
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
|
@ -102,8 +102,8 @@
|
||||
variables.</p>
|
||||
<p>The format for a filter is one of:</p>
|
||||
<pre>
|
||||
x:name (log message only)
|
||||
x:+name (log message + stack trace)</pre>
|
||||
x:name (log message only)
|
||||
x:+name (log message + stack trace)</pre>
|
||||
<p>where <code>name</code> is a string which is matched against
|
||||
the category given in the VIR_LOG_INIT() at the top of each
|
||||
libvirt source file, e.g., <code>remote</code>, <code>qemu</code>,
|
||||
@ -201,23 +201,23 @@
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ journalctl MESSAGE_ID=8ae2f3fb-2dbe-498e-8fbd-012d40afa361 --output=json
|
||||
{ ...snip...
|
||||
"LIBVIRT_SOURCE" : "file",
|
||||
"PRIORITY" : "3",
|
||||
"CODE_FILE" : "qemu/qemu_capabilities.c",
|
||||
"CODE_LINE" : "2770",
|
||||
"CODE_FUNC" : "virQEMUCapsLogProbeFailure",
|
||||
"MESSAGE_ID" : "8ae2f3fb-2dbe-498e-8fbd-012d40afa361",
|
||||
"LIBVIRT_QEMU_BINARY" : "/bin/qemu-system-xtensa",
|
||||
"MESSAGE" : "Failed to probe capabilities for /bin/qemu-system-xtensa:" \
|
||||
"internal error: Child process (LC_ALL=C LD_LIBRARY_PATH=/home/berrange" \
|
||||
"/src/virt/libvirt/src/.libs PATH=/usr/lib64/ccache:/usr/local/sbin:" \
|
||||
"/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin HOME=/root " \
|
||||
"USER=root LOGNAME=root /bin/qemu-system-xtensa -help) unexpected " \
|
||||
"exit status 127: /bin/qemu-system-xtensa: error while loading shared " \
|
||||
"libraries: libglapi.so.0: cannot open shared object file: No such " \
|
||||
"file or directory\n" }
|
||||
$ journalctl MESSAGE_ID=8ae2f3fb-2dbe-498e-8fbd-012d40afa361 --output=json
|
||||
{ ...snip...
|
||||
"LIBVIRT_SOURCE" : "file",
|
||||
"PRIORITY" : "3",
|
||||
"CODE_FILE" : "qemu/qemu_capabilities.c",
|
||||
"CODE_LINE" : "2770",
|
||||
"CODE_FUNC" : "virQEMUCapsLogProbeFailure",
|
||||
"MESSAGE_ID" : "8ae2f3fb-2dbe-498e-8fbd-012d40afa361",
|
||||
"LIBVIRT_QEMU_BINARY" : "/bin/qemu-system-xtensa",
|
||||
"MESSAGE" : "Failed to probe capabilities for /bin/qemu-system-xtensa:" \
|
||||
"internal error: Child process (LC_ALL=C LD_LIBRARY_PATH=/home/berrange" \
|
||||
"/src/virt/libvirt/src/.libs PATH=/usr/lib64/ccache:/usr/local/sbin:" \
|
||||
"/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin HOME=/root " \
|
||||
"USER=root LOGNAME=root /bin/qemu-system-xtensa -help) unexpected " \
|
||||
"exit status 127: /bin/qemu-system-xtensa: error while loading shared " \
|
||||
"libraries: libglapi.so.0: cannot open shared object file: No such " \
|
||||
"file or directory\n" }
|
||||
</pre>
|
||||
|
||||
<h2>
|
||||
|
86
docs/logos/README
Normal file
@ -0,0 +1,86 @@
|
||||
Libvirt Logo README
|
||||
===================
|
||||
|
||||
The master SVG files were created in InkScape, using the Overpass font from Red
|
||||
Hat:
|
||||
|
||||
http://overpassfont.org/
|
||||
|
||||
|
||||
Logo formats
|
||||
============
|
||||
|
||||
The following SVG files are provided, along with standard bitmap sizes in PNG
|
||||
format:
|
||||
|
||||
- logo-base.svg
|
||||
|
||||
The basic "sardine tin" graphic used to create the other forms of the
|
||||
libvirt logo.
|
||||
|
||||
The tin is rotated by 20 degrees, so its angle matches the angle of the left
|
||||
side of the letter "v" in the Overpass font
|
||||
|
||||
Never use this logo file directly. It exists merely as a base for building
|
||||
the other logos
|
||||
|
||||
|
||||
- logo-square.svg
|
||||
|
||||
The minimal square format logo for libvirt. Simply embeds the word "libvirt"
|
||||
into the basic logo graphic.
|
||||
|
||||
This is intended for use where a compact, square format representation of
|
||||
the logo is required.
|
||||
|
||||
Bitmap sizes: 64, 128, 192, 256 px square
|
||||
|
||||
|
||||
- logo-square-powered.svg
|
||||
|
||||
A variant of the square logo for use by 3rd party applications, to advertize
|
||||
their use of libvirt.
|
||||
|
||||
Bitmap sizes: 64, 128, 192, 256 px square
|
||||
|
||||
|
||||
- logo-banner-light.svg
|
||||
|
||||
A wide banner format of the logo. Embeds the words "libvirt virtualization
|
||||
API" into the basic logo graphic. The text is rendered in a light color, so
|
||||
suitable for placement over a dark background.
|
||||
|
||||
Bitmap sizes: 257x92, 800x286 px
|
||||
|
||||
|
||||
- logo-banner-dark.svg
|
||||
|
||||
A wide banner format of the logo. Embeds the words "libvirt virtualization
|
||||
API" into the basic logo graphic. The text is rendered in a dark color, so
|
||||
suitable for placement over a light background.
|
||||
|
||||
Bitmap sizes: 257x92, 800x286 px
|
||||
|
||||
|
||||
PNG file creation
|
||||
=================
|
||||
|
||||
The bitmap images should not be created in Inkscape, since its anti-aliasing of
|
||||
the rendered bitmaps is too aggressive, resulting in fuzzy images. Instead the
|
||||
GIMP is used to create bitmaps as follows:
|
||||
|
||||
- File -> Open, select the SVG file
|
||||
|
||||
When prompted for the image size, enter 1024 as the width and allow height
|
||||
to be auto-set based on aspect ratio
|
||||
|
||||
- Image -> Scale Image
|
||||
|
||||
Enter desired final bitmap size and use "Cubic" as scaling method.
|
||||
|
||||
- File -> Export As
|
||||
|
||||
|
||||
It is important to let GIMP render initially at 1024 and then scale down, rather
|
||||
than rendering directly at the target size, since this the manual scaling step
|
||||
produces better quality
|
BIN
docs/logos/logo-banner-dark-256.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
docs/logos/logo-banner-dark-800.png
Normal file
After Width: | Height: | Size: 63 KiB |
655
docs/logos/logo-banner-dark.svg
Normal file
@ -0,0 +1,655 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="945"
|
||||
height="320"
|
||||
viewBox="0 0 250.03126 84.666668"
|
||||
version="1.1"
|
||||
id="svg3740"
|
||||
inkscape:version="0.92pre2 r"
|
||||
sodipodi:docname="logo-banner-dark.svg">
|
||||
<defs
|
||||
id="defs3734">
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter5799">
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood5801" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite5803" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="6"
|
||||
result="blur"
|
||||
id="feGaussianBlur5805" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset5807" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite5809" />
|
||||
</filter>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask3913">
|
||||
<path
|
||||
style="fill:#2f6962"
|
||||
id="path3915"
|
||||
d="M 95.108,61.776 244.59,10.309 c 15.666,-5.394 32.738,2.933 38.132,18.599 l 39.799,115.58 c 5.394,15.666 -2.932,32.738 -18.598,38.131 l -103.98,35.801 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask4168">
|
||||
<path
|
||||
style="fill:#7c858c"
|
||||
id="path4170"
|
||||
d="m 113.124,36.661 c 17.233,36.62 75.371,131.675 105.366,171.054 -4.069,13.505 -18.428,20.812 -30.299,17.44 L 72.849,58.555 C 72.779,46.208 95.748,31.956 113.124,36.661 Z"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3821"
|
||||
id="linearGradient7006"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="128.61047"
|
||||
y1="239.37396"
|
||||
x2="138.61214"
|
||||
y2="267.79517" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3821">
|
||||
<stop
|
||||
style="stop-color:#3e3e3e;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3823" />
|
||||
<stop
|
||||
style="stop-color:#3e3e3e;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3825" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3985"
|
||||
id="linearGradient7008"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,-2)"
|
||||
x1="173.70392"
|
||||
y1="267.11093"
|
||||
x2="166.66296"
|
||||
y2="246.63959" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3985">
|
||||
<stop
|
||||
style="stop-color:#c8c7c5;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3987" />
|
||||
<stop
|
||||
style="stop-color:#c8c7c5;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3989" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient3548"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5433331,-0.1032133,0.09131267,1.3653854,-130.42141,-95.005447)"
|
||||
cx="197.5676"
|
||||
cy="252.71837"
|
||||
fx="197.5676"
|
||||
fy="252.71837"
|
||||
r="166.51035" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4501">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4503" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4505" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient3552"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.870471,-0.6430111,0.256613,0.7464679,-116.69068,109.71214)"
|
||||
cx="135.63954"
|
||||
cy="12.000564"
|
||||
fx="135.63954"
|
||||
fy="12.000564"
|
||||
r="161.65305" />
|
||||
<filter
|
||||
inkscape:label="Ridged Border"
|
||||
inkscape:menu="Bevels"
|
||||
inkscape:menu-tooltip="Ridged border with inner bevel"
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter5576">
|
||||
<feMorphology
|
||||
radius="4.3"
|
||||
in="SourceAlpha"
|
||||
result="result91"
|
||||
id="feMorphology5578" />
|
||||
<feComposite
|
||||
operator="out"
|
||||
in="SourceGraphic"
|
||||
in2="result91"
|
||||
id="feComposite5580" />
|
||||
<feGaussianBlur
|
||||
result="result0"
|
||||
stdDeviation="1.2"
|
||||
id="feGaussianBlur5582" />
|
||||
<feDiffuseLighting
|
||||
diffuseConstant="1"
|
||||
id="feDiffuseLighting5584">
|
||||
<feDistantLight
|
||||
elevation="66"
|
||||
azimuth="225"
|
||||
id="feDistantLight5586" />
|
||||
</feDiffuseLighting>
|
||||
<feBlend
|
||||
mode="multiply"
|
||||
in2="SourceGraphic"
|
||||
id="feBlend5588" />
|
||||
<feComposite
|
||||
operator="in"
|
||||
in2="SourceAlpha"
|
||||
id="feComposite5590" />
|
||||
</filter>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3301"
|
||||
id="linearGradient7010"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="227.66476"
|
||||
y1="217.85138"
|
||||
x2="227.66476"
|
||||
y2="275.00342" />
|
||||
<linearGradient
|
||||
id="linearGradient3301">
|
||||
<stop
|
||||
id="stop3303"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3305"
|
||||
offset="1"
|
||||
style="stop-color:#868686;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask4481">
|
||||
<path
|
||||
style="clip-rule:evenodd;fill:#aaaaaa;fill-rule:evenodd"
|
||||
id="path4483"
|
||||
d="m 213.96734,236.83626 c -1.97572,1.50086 -5.71734,14.75814 -3.57441,17.84065 3.18643,4.58465 22.42412,-12.69851 20.66112,-17.24646 -1.81294,-4.67518 -15.35694,-1.41227 -17.08671,-0.59419 z m -9.6286,-7.34722 2.48938,3.78195 c 0,0 0.69017,1.04372 0.29628,3.40302 -0.6156,3.68976 -3.17495,13.25876 -3.32578,21.12255 -0.0183,0.94976 -0.91914,9.5039 7.21943,7.07006 8.1393,-2.43309 24.96824,-17.85854 28.33195,-24.69252 3.36372,-6.83399 -0.96483,-10.63865 -6.21591,-10.98709 -5.2511,-0.34921 -13.3456,0.21962 -17.06874,0.84795 -3.72313,0.62832 -3.49361,-0.75818 -6.67723,-4.3506 -0.23896,-0.26961 -5.04938,3.80468 -5.04938,3.80468 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient4507"
|
||||
cx="143.59599"
|
||||
cy="139.937"
|
||||
fx="143.59599"
|
||||
fy="139.937"
|
||||
r="68.377998"
|
||||
gradientTransform="matrix(1.3366435,0.07829819,-0.1078591,1.8412818,-33.247188,-128.96975)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4161509"
|
||||
inkscape:cx="499.59367"
|
||||
inkscape:cy="178.59842"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="g6251"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1136"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
units="px" />
|
||||
<metadata
|
||||
id="metadata3737">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(295.00558,88.906552)">
|
||||
<g
|
||||
id="g6251"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-339.10695,-192.72359)">
|
||||
<g
|
||||
id="g2296"
|
||||
transform="translate(-30,16)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:180px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#005f61;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="520.99365"
|
||||
y="566.87408"
|
||||
id="text5728"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5730"
|
||||
x="520.99365"
|
||||
y="566.87408"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Overpass;-inkscape-font-specification:'Overpass Bold';letter-spacing:-10px;fill:#005f61;fill-opacity:1">vi<tspan
|
||||
id="tspan4056"
|
||||
style="letter-spacing:-3px">rt</tspan></tspan></text>
|
||||
<g
|
||||
id="g4988"
|
||||
transform="rotate(-1.0000002,22495.34,-11327.946)">
|
||||
<g
|
||||
id="g5736"
|
||||
style="filter:url(#filter5799)">
|
||||
<path
|
||||
transform="translate(-1.9999998)"
|
||||
mask="url(#mask3913)"
|
||||
d="m 127.052,43.547 c 17.233,36.62 72.865,128.908 102.86,168.287 -2.858,14.11 -18.673,23.308 -29.809,18.791 L 84.761,64.024 c -0.07,-12.347 22.06,-27.271 42.291,-20.477 z"
|
||||
id="path2789"
|
||||
style="opacity:1;fill:#25514b"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
transform="translate(3.0630824e-7,8.0000003)"
|
||||
mask="url(#mask4168)"
|
||||
d="M 192.119,225.881 73.534,54.687 c 3.174,-9.061 16.868,-17.988 30.225,-18.875 22.158,44.223 78.164,134.394 111.831,178.223 -5.194,8.137 -14.62,12.648 -23.471,11.846 z"
|
||||
id="path2807"
|
||||
style="fill:#c8c7c5"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 11.004,141.618 C 4.711,123.341 14.425,103.424 32.702,97.131 L 249.423,22.512 c 18.277,-6.293 38.195,3.422 44.488,21.699 l 43.577,126.552 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 99.069,289.869 C 80.792,296.161 60.874,286.447 54.581,268.17 Z"
|
||||
id="path2645"
|
||||
style="fill:#7c858c"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 7.097,130.272 C 0.803,111.995 10.518,92.078 28.795,85.785 L 245.517,11.166 c 18.277,-6.293 38.194,3.422 44.488,21.699 l 43.577,126.552 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 95.162,278.523 c -18.277,6.293 -38.195,-3.422 -44.488,-21.699 z"
|
||||
id="path2651"
|
||||
style="fill:url(#linearGradient7006);fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;opacity:0.7;fill:url(#linearGradient7008);fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2655"
|
||||
d="m 156.599,246.825 13.562,-4.67 6.521,18.94 -13.562,4.67 z m 25.041,-8.622 13.562,-4.67 6.521,18.939 -13.562,4.67 z m 25.041,-8.622 13.563,-4.67 6.521,18.94 -13.562,4.67 z m 25.042,-8.623 13.562,-4.67 6.521,18.94 -13.562,4.67 z m 25.041,-8.622 13.562,-4.67 6.521,18.939 -13.562,4.67 z m -125.207,43.112 13.562,-4.67 6.521,18.94 -13.562,4.67 z" />
|
||||
<path
|
||||
d="M 2.568,124.472 C -3.725,106.195 5.989,86.278 24.266,79.985 L 245.516,3.807 c 18.277,-6.292 38.195,3.422 44.488,21.699 l 41.752,121.253 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 88.808,267.424 C 70.531,273.717 50.613,264.002 44.32,245.725 Z"
|
||||
id="path2659"
|
||||
style="fill:url(#radialGradient3548);fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 1.917,122.581 C -4.376,104.304 5.338,84.387 23.615,78.094 L 244.865,1.916 c 18.277,-6.293 38.194,3.422 44.488,21.699 l 41.752,121.253 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 88.157,265.533 C 69.88,271.826 49.962,262.111 43.669,243.834 Z"
|
||||
id="path2665"
|
||||
style="fill:#7c858c"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 5.763,123.175 C -0.35,105.42 9.086,86.072 26.841,79.958 L 243.342,5.416 c 17.755,-6.113 37.104,3.324 43.217,21.079 l 38.787,112.64 c 6.113,17.755 -3.323,37.103 -21.078,43.216 L 87.767,256.893 C 70.012,263.006 50.664,253.569 44.55,235.814 Z"
|
||||
id="path2671"
|
||||
style="fill:url(#radialGradient3552);fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 7.427,123.74 C 1.493,106.508 10.652,87.728 27.885,81.795 L 243.792,7.457 c 17.232,-5.933 36.012,3.226 41.946,20.459 l 39.771,115.497 c 5.934,17.233 -3.226,36.012 -20.458,41.945 L 89.143,259.696 C 71.91,265.629 53.131,256.469 47.197,239.237 Z"
|
||||
id="path2677"
|
||||
style="fill:#3e3e3e"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 11.049995,126.45117 c -5.3939998,-15.666 2.932,-32.737999 18.598,-38.131999 L 245.226,14.094171 c 15.666,-5.3940003 32.738,2.933 38.132,18.599 l 39.799,115.579999 c 5.394,15.666 -2.932,32.738 -18.598,38.131 l -215.578005,74.225 c -15.666,5.394 -32.738,-2.933 -38.133,-18.599 z"
|
||||
id="path3801"
|
||||
style="fill:#005f61;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2695"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 30,102.111 c -1.771,-7.695 2.602,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.737 1.025,2.977 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.069,-0.024 4.342,-2.237 7.88,5.746 0.13,0.293 0.571,0.074 0.513,-0.178 z"
|
||||
id="path2697"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 32.867,154.308 c 7.274,17.049 17.313,28.317 23.916,26.044 6.602,-2.273 7.575,-17.334 2.812,-35.247 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.694 -1.14,1.345 -1.514,2.022 -7.335,-18.703 -18.159,-31.442 -25.141,-29.038 -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.304 -1.51,-0.505 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.212 2.709,2.435 6.121,7.686 7.865,10.515 z"
|
||||
id="path2699"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 30.621,139.494 c 5.498,15.966 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.966 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.354,16.665 -0.857,32.632 z m 23.197,28.556 c 0.536,1.558 1.515,2.634 2.186,2.403 0.671,-0.231 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.186,-2.403 -0.67,0.231 -0.779,1.682 -0.243,3.239 z m -4.7,1.619 c 0.536,1.558 1.515,2.634 2.186,2.403 0.67,-0.231 0.779,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.634 -2.186,-2.402 -0.671,0.23 -0.78,1.68 -0.243,3.238 z"
|
||||
id="path2701"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2703">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,152.1324,301.1998)"
|
||||
cx="50.867001"
|
||||
cy="163.328"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2705"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2707"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2709"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 64.282,90.307 c -1.771,-7.695 2.603,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.737 1.025,2.978 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.07,-0.024 4.342,-2.237 7.88,5.746 0.13,0.292 0.572,0.074 0.513,-0.178 z"
|
||||
id="path2711"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 67.15,142.503 c 7.274,17.049 17.313,28.317 23.916,26.044 6.602,-2.273 7.575,-17.333 2.812,-35.247 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.694 -1.139,1.345 -1.514,2.022 -7.334,-18.704 -18.159,-31.442 -25.141,-29.038 -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.304 -1.51,-0.505 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.211 2.709,2.436 6.121,7.687 7.865,10.516 z"
|
||||
id="path2713"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 64.904,127.689 c 5.498,15.967 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.967 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.355,16.666 -0.857,32.632 z m 23.197,28.557 c 0.536,1.558 1.515,2.633 2.186,2.402 0.671,-0.231 0.779,-1.681 0.243,-3.239 -0.537,-1.558 -1.515,-2.633 -2.186,-2.402 -0.671,0.231 -0.779,1.681 -0.243,3.239 z m -4.7,1.619 c 0.536,1.558 1.515,2.633 2.185,2.402 0.67,-0.231 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.186,-2.402 -0.671,0.231 -0.779,1.681 -0.242,3.239 z"
|
||||
id="path2715"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2717">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,214.9873,267.075)"
|
||||
cx="85.149002"
|
||||
cy="151.524"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2719"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2721"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2723"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 98.565,78.502 c -1.771,-7.694 2.602,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.736 1.025,2.978 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.069,-0.024 4.342,-2.237 7.88,5.746 0.13,0.293 0.572,0.075 0.513,-0.177 z"
|
||||
id="path2725"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 101.433,130.699 c 7.274,17.048 17.313,28.317 23.915,26.043 6.602,-2.274 7.576,-17.333 2.812,-35.246 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.695 -1.139,1.345 -1.514,2.022 C 116.825,90.609 106,77.871 99.019,80.274 c -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.303 -1.51,-0.504 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.212 2.709,2.435 6.121,7.686 7.865,10.515 z"
|
||||
id="path2727"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 99.187,115.885 c 5.498,15.967 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.967 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.355,16.665 -0.857,32.632 z m 23.197,28.556 c 0.536,1.558 1.515,2.633 2.186,2.403 0.67,-0.231 0.779,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.634 -2.185,-2.403 -0.671,0.232 -0.78,1.682 -0.244,3.239 z m -4.701,1.619 c 0.536,1.558 1.515,2.633 2.186,2.402 0.671,-0.23 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.185,-2.402 -0.671,0.231 -0.78,1.681 -0.244,3.239 z"
|
||||
id="path2729"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2731">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,277.8429,232.9489)"
|
||||
cx="119.432"
|
||||
cy="139.72"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2733"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2735"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2739"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 96.575,238.982 c 3.342,7.154 7.811,5.77 7.88,5.746 1.371,-0.472 5.829,-2.583 4.696,-5.873 -1.025,-2.977 -8.385,-3.373 -13.437,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.946,2.208 7.316,1.736 0.07,-0.023 4.799,-0.91 2.672,-9.379 -0.078,-0.31 0.403,-0.41 0.513,-0.176 z"
|
||||
id="path2741"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 66.699,196.085 c -4.764,-17.913 -3.791,-32.973 2.812,-35.247 6.602,-2.273 16.641,8.995 23.915,26.043 1.744,2.829 5.156,8.08 7.865,10.514 1.976,1.775 1.992,2.732 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.735,19.254 5.048,35.956 -1.934,38.36 -6.982,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.677 -0.88,1.328 -1.514,2.022 -2.1,2.3 -2.675,1.536 -2.212,-1.079 0.637,-3.583 0.093,-9.822 -0.274,-13.125 z"
|
||||
id="path2743"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 74.049,209.142 c -5.498,-15.966 -5.114,-30.576 0.857,-32.632 5.971,-2.056 15.269,9.22 20.766,25.187 5.498,15.967 5.114,30.577 -0.857,32.633 -5.971,2.054 -15.268,-9.222 -20.766,-25.188 z m 0.699,-36.785 c -0.536,-1.558 -0.428,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.185,2.403 0.537,1.558 0.427,3.008 -0.243,3.239 -0.67,0.231 -1.649,-0.845 -2.185,-2.403 z m -4.701,1.619 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.186,2.403 0.536,1.558 0.427,3.008 -0.243,3.239 -0.67,0.231 -1.65,-0.845 -2.186,-2.403 z"
|
||||
id="path2745"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2747">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,204.5578,321.744)"
|
||||
cx="75.361"
|
||||
cy="177.98599"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2749"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2751"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2753"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 130.858,227.178 c 3.341,7.154 7.81,5.77 7.88,5.746 1.371,-0.472 5.829,-2.582 4.696,-5.873 -1.025,-2.977 -8.385,-3.373 -13.437,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.946,2.208 7.316,1.737 0.069,-0.024 4.799,-0.91 2.672,-9.379 -0.078,-0.312 0.404,-0.412 0.513,-0.177 z"
|
||||
id="path2755"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 100.982,184.281 c -4.764,-17.913 -3.791,-32.973 2.812,-35.247 6.602,-2.273 16.641,8.995 23.915,26.044 1.745,2.829 5.157,8.08 7.865,10.513 1.976,1.775 1.993,2.732 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.736,19.254 5.048,35.957 -1.934,38.36 -6.981,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.678 -0.879,1.328 -1.513,2.022 -2.1,2.301 -2.676,1.537 -2.212,-1.079 0.636,-3.584 0.092,-9.822 -0.275,-13.125 z"
|
||||
id="path2757"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 108.332,197.337 c -5.498,-15.966 -5.114,-30.576 0.857,-32.632 5.971,-2.056 15.268,9.22 20.766,25.187 5.498,15.966 5.114,30.576 -0.857,32.632 -5.971,2.056 -15.268,-9.22 -20.766,-25.187 z m 0.699,-36.784 c -0.536,-1.558 -0.428,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.536,1.558 0.427,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.845 -2.186,-2.402 z m -4.701,1.618 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.185,2.402 0.536,1.557 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.649,-0.844 -2.185,-2.402 z"
|
||||
id="path2759"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2761">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,267.4128,287.6192)"
|
||||
cx="109.643"
|
||||
cy="166.18201"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2763"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2765"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2767"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 165.141,215.373 c 3.342,7.154 7.811,5.77 7.88,5.746 1.371,-0.472 5.829,-2.582 4.696,-5.873 -1.025,-2.977 -8.385,-3.372 -13.438,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.945,2.208 7.316,1.737 0.069,-0.024 4.799,-0.91 2.672,-9.379 -0.078,-0.311 0.404,-0.411 0.514,-0.177 z"
|
||||
id="path2769"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 135.265,172.476 c -4.764,-17.913 -3.791,-32.973 2.812,-35.246 6.603,-2.273 16.641,8.995 23.916,26.043 1.744,2.829 5.156,8.08 7.865,10.514 1.975,1.775 1.992,2.731 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.735,19.254 5.048,35.957 -1.934,38.36 -6.982,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.678 -0.88,1.328 -1.514,2.022 -2.1,2.301 -2.676,1.537 -2.212,-1.079 0.636,-3.584 0.092,-9.823 -0.275,-13.126 z"
|
||||
id="path2771"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 142.615,185.533 c -5.498,-15.967 -5.114,-30.577 0.857,-32.633 5.971,-2.056 15.269,9.221 20.766,25.187 5.497,15.966 5.114,30.576 -0.857,32.632 -5.971,2.056 -15.268,-9.22 -20.766,-25.186 z m 0.699,-36.785 c -0.537,-1.558 -0.428,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.537,1.558 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.844 -2.186,-2.402 z m -4.701,1.619 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.537,1.558 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.845 -2.186,-2.402 z"
|
||||
id="path2773"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2775">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3256,-0.3256,-0.9455,330.2729,253.4852)"
|
||||
cx="143.92599"
|
||||
cy="154.379"
|
||||
rx="4.4289999"
|
||||
ry="2.142"
|
||||
id="ellipse2777"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2779"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#3c857c;fill-opacity:1;filter:url(#filter5576)"
|
||||
id="path2781"
|
||||
d="M 95.108,61.776 244.59003,10.309068 c 15.666,-5.3939967 32.82494,3.185516 38.32619,19.163008 l 40.59032,117.878134 c 5.50125,15.97749 -2.7378,33.302 -18.40381,38.69497 l -103.98001,35.80096 z" />
|
||||
<text
|
||||
transform="rotate(1.0000002)"
|
||||
id="text5724"
|
||||
y="176.00142"
|
||||
x="137.92564"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:180px;font-family:Overpass;-inkscape-font-specification:'Overpass Bold';letter-spacing:-10px;fill:#e6e6e6;fill-opacity:1"
|
||||
y="176.00142"
|
||||
x="137.92564"
|
||||
id="tspan5726"
|
||||
sodipodi:role="line">lib</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#3e3e3e;fill-rule:evenodd"
|
||||
id="path2795"
|
||||
d="m 218.304,241.188 c -2.9,1.834 -8.917,18.762 -6.01,22.858 4.325,6.093 32.696,-15.214 30.405,-21.183 -2.356,-6.136 -21.883,-2.64 -24.395,-1.675 z m -14.341,-9.677 3.368,5.018 c 0,0 0.934,1.385 0.252,4.412 -1.066,4.734 -5.207,16.96 -5.819,27.111 -0.074,1.226 -1.793,12.229 9.964,9.517 11.758,-2.711 36.593,-21.745 41.746,-30.395 5.153,-8.65 -0.843,-13.795 -8.332,-14.524 -7.489,-0.73 -19.089,-0.425 -24.443,0.189 -5.354,0.614 -4.956,-1.165 -9.326,-5.975 -0.327,-0.361 -7.41,4.647 -7.41,4.647 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:url(#linearGradient7010);fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2797"
|
||||
d="m 216.503,238.52 c -2.9,1.834 -8.917,18.762 -6.009,22.858 4.324,6.092 32.696,-15.214 30.405,-21.183 -2.356,-6.136 -21.882,-2.64 -24.396,-1.675 z m -13.394,-10.003 3.368,5.018 c 0,0 0.934,1.385 0.252,4.412 -1.066,4.734 -5.207,16.96 -5.819,27.111 -0.074,1.226 -1.793,12.229 9.964,9.517 11.758,-2.711 36.593,-21.745 41.746,-30.395 5.153,-8.65 -0.843,-13.795 -8.332,-14.524 -7.489,-0.73 -19.089,-0.425 -24.443,0.189 -5.354,0.614 -4.956,-1.165 -9.326,-5.975 -0.328,-0.361 -7.41,4.647 -7.41,4.647 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#54575a;fill-opacity:1"
|
||||
id="path2799"
|
||||
d="m 214.776,227.853 c -2.797,3.296 -6.24,5.845 -9.926,7.474 0.432,-2.596 -0.374,-3.792 -0.374,-3.792 l -3.368,-5.018 c 0,0 7.083,-5.008 7.41,-4.647 3.294,3.624 3.879,5.527 6.258,5.983 z"
|
||||
transform="matrix(1.4295286,0.05310508,-0.05040644,1.2918715,-77.431354,-78.804771)"
|
||||
mask="url(#mask4481)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c8c7c5"
|
||||
id="path2803"
|
||||
d="m 116.052,45.547 c 17.234,36.62 72.865,128.908 102.86,168.287 -2.858,14.11 -18.673,23.308 -29.809,18.791 L 73.761,66.024 c -0.07,-12.347 22.06,-27.271 42.291,-20.477 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#7c858c"
|
||||
id="path2805"
|
||||
d="m 113.124,44.661 c 17.233,36.62 75.371,131.675 105.366,171.054 -4.069,13.505 -18.428,20.812 -30.299,17.44 L 72.849,66.555 C 72.779,54.208 95.748,39.956 113.124,44.661 Z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:url(#radialGradient4507);fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2809"
|
||||
d="M 203.927,231.912 80.383,53.463 c 3.583,-3.084 8.164,-5.73 13.116,-7.479 6.902,12.484 25.22,44.608 54.336,88.542 22.713,34.272 46.085,68.024 64.139,91.973 -2.35,2.316 -5.102,4.145 -8.047,5.413 z m -3.597,1.245 c -1.392,0.368 -2.805,0.615 -4.223,0.733 L 75.218,59.278 c 0.699,-1.099 1.537,-2.181 2.494,-3.23 z" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-408.52026"
|
||||
y="53.587437"
|
||||
id="text5053"
|
||||
transform="rotate(1.0000002)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5055"
|
||||
x="-408.52026"
|
||||
y="88.978058" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:90px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-525.88629"
|
||||
y="-232.88652"
|
||||
id="text5057"
|
||||
transform="rotate(1.0000002)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5059"
|
||||
x="-525.88629"
|
||||
y="-153.25761" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="543.02759"
|
||||
y="-200.07454"
|
||||
id="text5069"
|
||||
transform="rotate(1.0000002)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5071"
|
||||
x="543.02759"
|
||||
y="-164.68391" /></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:180px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="798.41962"
|
||||
y="567.61206"
|
||||
id="text5811"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5813"
|
||||
x="798.41962"
|
||||
y="567.61206"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35px;font-family:Overpass;-inkscape-font-specification:'Overpass Bold';letter-spacing:-2px;fill:#005f61;fill-opacity:1"> VIRTUALIZATION API</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 35 KiB |
BIN
docs/logos/logo-banner-light-256.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
docs/logos/logo-banner-light-800.png
Normal file
After Width: | Height: | Size: 63 KiB |
651
docs/logos/logo-banner-light.svg
Normal file
@ -0,0 +1,651 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="945"
|
||||
height="320"
|
||||
viewBox="0 0 250.03126 84.666667"
|
||||
version="1.1"
|
||||
id="svg4696"
|
||||
inkscape:version="0.92pre2 r"
|
||||
sodipodi:docname="logo-banner-light.svg">
|
||||
<defs
|
||||
id="defs4690">
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter5799-39">
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood5801-0" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite5803-8" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="6"
|
||||
result="blur"
|
||||
id="feGaussianBlur5805-8" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset5807-5" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite5809-0" />
|
||||
</filter>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask3913-9">
|
||||
<path
|
||||
style="fill:#2f6962"
|
||||
id="path3915-6"
|
||||
d="M 95.108,61.776 244.59,10.309 c 15.666,-5.394 32.738,2.933 38.132,18.599 l 39.799,115.58 c 5.394,15.666 -2.932,32.738 -18.598,38.131 l -103.98,35.801 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask4168-3">
|
||||
<path
|
||||
style="fill:#7c858c"
|
||||
id="path4170-8"
|
||||
d="m 113.124,36.661 c 17.233,36.62 75.371,131.675 105.366,171.054 -4.069,13.505 -18.428,20.812 -30.299,17.44 L 72.849,58.555 C 72.779,46.208 95.748,31.956 113.124,36.661 Z"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3821"
|
||||
id="linearGradient7018"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="128.61047"
|
||||
y1="239.37396"
|
||||
x2="138.61214"
|
||||
y2="267.79517" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3821">
|
||||
<stop
|
||||
style="stop-color:#3e3e3e;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3823" />
|
||||
<stop
|
||||
style="stop-color:#3e3e3e;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3825" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3985"
|
||||
id="linearGradient7020"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,-2)"
|
||||
x1="173.70392"
|
||||
y1="267.11093"
|
||||
x2="166.66296"
|
||||
y2="246.63959" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3985">
|
||||
<stop
|
||||
style="stop-color:#c8c7c5;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3987" />
|
||||
<stop
|
||||
style="stop-color:#c8c7c5;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3989" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient3548-9"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5433331,-0.1032133,0.09131267,1.3653854,-130.42141,-95.005447)"
|
||||
cx="197.5676"
|
||||
cy="252.71837"
|
||||
fx="197.5676"
|
||||
fy="252.71837"
|
||||
r="166.51035" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4501">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4503" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4505" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient3552-8"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.870471,-0.6430111,0.256613,0.7464679,-116.69068,109.71214)"
|
||||
cx="135.63954"
|
||||
cy="12.000564"
|
||||
fx="135.63954"
|
||||
fy="12.000564"
|
||||
r="161.65305" />
|
||||
<filter
|
||||
inkscape:label="Ridged Border"
|
||||
inkscape:menu="Bevels"
|
||||
inkscape:menu-tooltip="Ridged border with inner bevel"
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter5576-1">
|
||||
<feMorphology
|
||||
radius="4.3"
|
||||
in="SourceAlpha"
|
||||
result="result91"
|
||||
id="feMorphology5578-0" />
|
||||
<feComposite
|
||||
operator="out"
|
||||
in="SourceGraphic"
|
||||
in2="result91"
|
||||
id="feComposite5580-3" />
|
||||
<feGaussianBlur
|
||||
result="result0"
|
||||
stdDeviation="1.2"
|
||||
id="feGaussianBlur5582-0" />
|
||||
<feDiffuseLighting
|
||||
diffuseConstant="1"
|
||||
id="feDiffuseLighting5584-4">
|
||||
<feDistantLight
|
||||
elevation="66"
|
||||
azimuth="225"
|
||||
id="feDistantLight5586-4" />
|
||||
</feDiffuseLighting>
|
||||
<feBlend
|
||||
mode="multiply"
|
||||
in2="SourceGraphic"
|
||||
id="feBlend5588-4" />
|
||||
<feComposite
|
||||
operator="in"
|
||||
in2="SourceAlpha"
|
||||
id="feComposite5590-4" />
|
||||
</filter>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3301"
|
||||
id="linearGradient7022"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="227.66476"
|
||||
y1="217.85138"
|
||||
x2="227.66476"
|
||||
y2="275.00342" />
|
||||
<linearGradient
|
||||
id="linearGradient3301">
|
||||
<stop
|
||||
id="stop3303"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3305"
|
||||
offset="1"
|
||||
style="stop-color:#868686;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask4481-1">
|
||||
<path
|
||||
style="clip-rule:evenodd;fill:#aaaaaa;fill-rule:evenodd"
|
||||
id="path4483-7"
|
||||
d="m 213.96734,236.83626 c -1.97572,1.50086 -5.71734,14.75814 -3.57441,17.84065 3.18643,4.58465 22.42412,-12.69851 20.66112,-17.24646 -1.81294,-4.67518 -15.35694,-1.41227 -17.08671,-0.59419 z m -9.6286,-7.34722 2.48938,3.78195 c 0,0 0.69017,1.04372 0.29628,3.40302 -0.6156,3.68976 -3.17495,13.25876 -3.32578,21.12255 -0.0183,0.94976 -0.91914,9.5039 7.21943,7.07006 8.1393,-2.43309 24.96824,-17.85854 28.33195,-24.69252 3.36372,-6.83399 -0.96483,-10.63865 -6.21591,-10.98709 -5.2511,-0.34921 -13.3456,0.21962 -17.06874,0.84795 -3.72313,0.62832 -3.49361,-0.75818 -6.67723,-4.3506 -0.23896,-0.26961 -5.04938,3.80468 -5.04938,3.80468 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient4507-5"
|
||||
cx="143.59599"
|
||||
cy="139.937"
|
||||
fx="143.59599"
|
||||
fy="139.937"
|
||||
r="68.377998"
|
||||
gradientTransform="matrix(1.3366435,0.07829819,-0.1078591,1.8412818,-33.247188,-128.96975)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4161509"
|
||||
inkscape:cx="499.59367"
|
||||
inkscape:cy="178.59842"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
fit-margin-right="10"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1136"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
units="px" />
|
||||
<metadata
|
||||
id="metadata4693">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(205.8032,-106.88511)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-257.84212,7.3014075)"
|
||||
id="g6251-2">
|
||||
<text
|
||||
id="text5728-1"
|
||||
y="566.87408"
|
||||
x="520.99365"
|
||||
style="font-style:normal;font-weight:normal;font-size:180px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Overpass;-inkscape-font-specification:'Overpass Bold';letter-spacing:-10px;fill:#e6e6e6;fill-opacity:1"
|
||||
y="566.87408"
|
||||
x="520.99365"
|
||||
id="tspan5730-7"
|
||||
sodipodi:role="line">vi<tspan
|
||||
style="letter-spacing:-3px;fill:#e6e6e6;fill-opacity:1"
|
||||
id="tspan4056-8">rt</tspan></tspan></text>
|
||||
<g
|
||||
transform="rotate(-1.0000002,22495.34,-11327.946)"
|
||||
id="g4988-5">
|
||||
<g
|
||||
style="filter:url(#filter5799-39)"
|
||||
id="g5736-7">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:1;fill:#25514b"
|
||||
id="path2789-4"
|
||||
d="m 127.052,43.547 c 17.233,36.62 72.865,128.908 102.86,168.287 -2.858,14.11 -18.673,23.308 -29.809,18.791 L 84.761,64.024 c -0.07,-12.347 22.06,-27.271 42.291,-20.477 z"
|
||||
mask="url(#mask3913-9)"
|
||||
transform="translate(-1.9999998)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c8c7c5"
|
||||
id="path2807-1"
|
||||
d="M 192.119,225.881 73.534,54.687 c 3.174,-9.061 16.868,-17.988 30.225,-18.875 22.158,44.223 78.164,134.394 111.831,178.223 -5.194,8.137 -14.62,12.648 -23.471,11.846 z"
|
||||
mask="url(#mask4168-3)"
|
||||
transform="translate(3.0630824e-7,8.0000003)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#7c858c"
|
||||
id="path2645-8"
|
||||
d="M 11.004,141.618 C 4.711,123.341 14.425,103.424 32.702,97.131 L 249.423,22.512 c 18.277,-6.293 38.195,3.422 44.488,21.699 l 43.577,126.552 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 99.069,289.869 C 80.792,296.161 60.874,286.447 54.581,268.17 Z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:url(#linearGradient7018);fill-opacity:1"
|
||||
id="path2651-5"
|
||||
d="M 7.097,130.272 C 0.803,111.995 10.518,92.078 28.795,85.785 L 245.517,11.166 c 18.277,-6.293 38.194,3.422 44.488,21.699 l 43.577,126.552 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 95.162,278.523 c -18.277,6.293 -38.195,-3.422 -44.488,-21.699 z" />
|
||||
<path
|
||||
d="m 156.599,246.825 13.562,-4.67 6.521,18.94 -13.562,4.67 z m 25.041,-8.622 13.562,-4.67 6.521,18.939 -13.562,4.67 z m 25.041,-8.622 13.563,-4.67 6.521,18.94 -13.562,4.67 z m 25.042,-8.623 13.562,-4.67 6.521,18.94 -13.562,4.67 z m 25.041,-8.622 13.562,-4.67 6.521,18.939 -13.562,4.67 z m -125.207,43.112 13.562,-4.67 6.521,18.94 -13.562,4.67 z"
|
||||
id="path2655-9"
|
||||
style="clip-rule:evenodd;opacity:0.7;fill:url(#linearGradient7020);fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:url(#radialGradient3548-9);fill-opacity:1"
|
||||
id="path2659-7"
|
||||
d="M 2.568,124.472 C -3.725,106.195 5.989,86.278 24.266,79.985 L 245.516,3.807 c 18.277,-6.292 38.195,3.422 44.488,21.699 l 41.752,121.253 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 88.808,267.424 C 70.531,273.717 50.613,264.002 44.32,245.725 Z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#7c858c"
|
||||
id="path2665-5"
|
||||
d="M 1.917,122.581 C -4.376,104.304 5.338,84.387 23.615,78.094 L 244.865,1.916 c 18.277,-6.293 38.194,3.422 44.488,21.699 l 41.752,121.253 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 88.157,265.533 C 69.88,271.826 49.962,262.111 43.669,243.834 Z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:url(#radialGradient3552-8);fill-opacity:1"
|
||||
id="path2671-3"
|
||||
d="M 5.763,123.175 C -0.35,105.42 9.086,86.072 26.841,79.958 L 243.342,5.416 c 17.755,-6.113 37.104,3.324 43.217,21.079 l 38.787,112.64 c 6.113,17.755 -3.323,37.103 -21.078,43.216 L 87.767,256.893 C 70.012,263.006 50.664,253.569 44.55,235.814 Z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#3e3e3e"
|
||||
id="path2677-8"
|
||||
d="M 7.427,123.74 C 1.493,106.508 10.652,87.728 27.885,81.795 L 243.792,7.457 c 17.232,-5.933 36.012,3.226 41.946,20.459 l 39.771,115.497 c 5.934,17.233 -3.226,36.012 -20.458,41.945 L 89.143,259.696 C 71.91,265.629 53.131,256.469 47.197,239.237 Z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#005f61;fill-opacity:1"
|
||||
id="path3801-8"
|
||||
d="m 11.049995,126.45117 c -5.3939998,-15.666 2.932,-32.737999 18.598,-38.131999 L 245.226,14.094171 c 15.666,-5.3940003 32.738,2.933 38.132,18.599 l 39.799,115.579999 c 5.394,15.666 -2.932,32.738 -18.598,38.131 l -215.578005,74.225 c -15.666,5.394 -32.738,-2.933 -38.133,-18.599 z" />
|
||||
<g
|
||||
transform="translate(0.31798936,1.8925831)"
|
||||
id="g2695-3">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
id="path2697-1"
|
||||
d="m 30,102.111 c -1.771,-7.695 2.602,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.737 1.025,2.977 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.069,-0.024 4.342,-2.237 7.88,5.746 0.13,0.293 0.571,0.074 0.513,-0.178 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
id="path2699-89"
|
||||
d="m 32.867,154.308 c 7.274,17.049 17.313,28.317 23.916,26.044 6.602,-2.273 7.575,-17.334 2.812,-35.247 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.694 -1.14,1.345 -1.514,2.022 -7.335,-18.703 -18.159,-31.442 -25.141,-29.038 -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.304 -1.51,-0.505 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.212 2.709,2.435 6.121,7.686 7.865,10.515 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2701-6"
|
||||
d="m 30.621,139.494 c 5.498,15.966 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.966 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.354,16.665 -0.857,32.632 z m 23.197,28.556 c 0.536,1.558 1.515,2.634 2.186,2.403 0.671,-0.231 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.186,-2.403 -0.67,0.231 -0.779,1.682 -0.243,3.239 z m -4.7,1.619 c 0.536,1.558 1.515,2.634 2.186,2.403 0.67,-0.231 0.779,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.634 -2.186,-2.402 -0.671,0.23 -0.78,1.68 -0.243,3.238 z" />
|
||||
<g
|
||||
id="g2703-43">
|
||||
<ellipse
|
||||
style="fill:#ffe600"
|
||||
id="ellipse2705-3"
|
||||
ry="2.142"
|
||||
rx="4.428"
|
||||
cy="163.328"
|
||||
cx="50.867001"
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,152.1324,301.1998)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffe600"
|
||||
id="path2707-3"
|
||||
d="" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="translate(0.31798936,1.8925831)"
|
||||
id="g2709-8">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
id="path2711-6"
|
||||
d="m 64.282,90.307 c -1.771,-7.695 2.603,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.737 1.025,2.978 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.07,-0.024 4.342,-2.237 7.88,5.746 0.13,0.292 0.572,0.074 0.513,-0.178 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
id="path2713-04"
|
||||
d="m 67.15,142.503 c 7.274,17.049 17.313,28.317 23.916,26.044 6.602,-2.273 7.575,-17.333 2.812,-35.247 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.694 -1.139,1.345 -1.514,2.022 -7.334,-18.704 -18.159,-31.442 -25.141,-29.038 -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.304 -1.51,-0.505 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.211 2.709,2.436 6.121,7.687 7.865,10.516 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2715-8"
|
||||
d="m 64.904,127.689 c 5.498,15.967 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.967 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.355,16.666 -0.857,32.632 z m 23.197,28.557 c 0.536,1.558 1.515,2.633 2.186,2.402 0.671,-0.231 0.779,-1.681 0.243,-3.239 -0.537,-1.558 -1.515,-2.633 -2.186,-2.402 -0.671,0.231 -0.779,1.681 -0.243,3.239 z m -4.7,1.619 c 0.536,1.558 1.515,2.633 2.185,2.402 0.67,-0.231 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.186,-2.402 -0.671,0.231 -0.779,1.681 -0.242,3.239 z" />
|
||||
<g
|
||||
id="g2717-8">
|
||||
<ellipse
|
||||
style="fill:#ffe600"
|
||||
id="ellipse2719-8"
|
||||
ry="2.142"
|
||||
rx="4.428"
|
||||
cy="151.524"
|
||||
cx="85.149002"
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,214.9873,267.075)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffe600"
|
||||
id="path2721-9"
|
||||
d="" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="translate(0.31798936,1.8925831)"
|
||||
id="g2723-7">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
id="path2725-7"
|
||||
d="m 98.565,78.502 c -1.771,-7.694 2.602,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.736 1.025,2.978 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.069,-0.024 4.342,-2.237 7.88,5.746 0.13,0.293 0.572,0.075 0.513,-0.177 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
id="path2727-6"
|
||||
d="m 101.433,130.699 c 7.274,17.048 17.313,28.317 23.915,26.043 6.602,-2.274 7.576,-17.333 2.812,-35.246 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.695 -1.139,1.345 -1.514,2.022 C 116.825,90.609 106,77.871 99.019,80.274 c -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.303 -1.51,-0.504 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.212 2.709,2.435 6.121,7.686 7.865,10.515 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2729-4"
|
||||
d="m 99.187,115.885 c 5.498,15.967 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.967 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.355,16.665 -0.857,32.632 z m 23.197,28.556 c 0.536,1.558 1.515,2.633 2.186,2.403 0.67,-0.231 0.779,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.634 -2.185,-2.403 -0.671,0.232 -0.78,1.682 -0.244,3.239 z m -4.701,1.619 c 0.536,1.558 1.515,2.633 2.186,2.402 0.671,-0.23 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.185,-2.402 -0.671,0.231 -0.78,1.681 -0.244,3.239 z" />
|
||||
<g
|
||||
id="g2731-3">
|
||||
<ellipse
|
||||
style="fill:#ffe600"
|
||||
id="ellipse2733-0"
|
||||
ry="2.142"
|
||||
rx="4.428"
|
||||
cy="139.72"
|
||||
cx="119.432"
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,277.8429,232.9489)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffe600"
|
||||
id="path2735-3"
|
||||
d="" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="translate(0.31798936,1.8925831)"
|
||||
id="g2739-0">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
id="path2741-9"
|
||||
d="m 96.575,238.982 c 3.342,7.154 7.811,5.77 7.88,5.746 1.371,-0.472 5.829,-2.583 4.696,-5.873 -1.025,-2.977 -8.385,-3.373 -13.437,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.946,2.208 7.316,1.736 0.07,-0.023 4.799,-0.91 2.672,-9.379 -0.078,-0.31 0.403,-0.41 0.513,-0.176 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
id="path2743-2"
|
||||
d="m 66.699,196.085 c -4.764,-17.913 -3.791,-32.973 2.812,-35.247 6.602,-2.273 16.641,8.995 23.915,26.043 1.744,2.829 5.156,8.08 7.865,10.514 1.976,1.775 1.992,2.732 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.735,19.254 5.048,35.956 -1.934,38.36 -6.982,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.677 -0.88,1.328 -1.514,2.022 -2.1,2.3 -2.675,1.536 -2.212,-1.079 0.637,-3.583 0.093,-9.822 -0.274,-13.125 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2745-5"
|
||||
d="m 74.049,209.142 c -5.498,-15.966 -5.114,-30.576 0.857,-32.632 5.971,-2.056 15.269,9.22 20.766,25.187 5.498,15.967 5.114,30.577 -0.857,32.633 -5.971,2.054 -15.268,-9.222 -20.766,-25.188 z m 0.699,-36.785 c -0.536,-1.558 -0.428,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.185,2.403 0.537,1.558 0.427,3.008 -0.243,3.239 -0.67,0.231 -1.649,-0.845 -2.185,-2.403 z m -4.701,1.619 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.186,2.403 0.536,1.558 0.427,3.008 -0.243,3.239 -0.67,0.231 -1.65,-0.845 -2.186,-2.403 z" />
|
||||
<g
|
||||
id="g2747-4">
|
||||
<ellipse
|
||||
style="fill:#ffe600"
|
||||
id="ellipse2749-0"
|
||||
ry="2.142"
|
||||
rx="4.428"
|
||||
cy="177.98599"
|
||||
cx="75.361"
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,204.5578,321.744)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffe600"
|
||||
id="path2751-5"
|
||||
d="" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="translate(0.31798936,1.8925831)"
|
||||
id="g2753-9">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
id="path2755-4"
|
||||
d="m 130.858,227.178 c 3.341,7.154 7.81,5.77 7.88,5.746 1.371,-0.472 5.829,-2.582 4.696,-5.873 -1.025,-2.977 -8.385,-3.373 -13.437,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.946,2.208 7.316,1.737 0.069,-0.024 4.799,-0.91 2.672,-9.379 -0.078,-0.312 0.404,-0.412 0.513,-0.177 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
id="path2757-6"
|
||||
d="m 100.982,184.281 c -4.764,-17.913 -3.791,-32.973 2.812,-35.247 6.602,-2.273 16.641,8.995 23.915,26.044 1.745,2.829 5.157,8.08 7.865,10.513 1.976,1.775 1.993,2.732 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.736,19.254 5.048,35.957 -1.934,38.36 -6.981,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.678 -0.879,1.328 -1.513,2.022 -2.1,2.301 -2.676,1.537 -2.212,-1.079 0.636,-3.584 0.092,-9.822 -0.275,-13.125 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2759-92"
|
||||
d="m 108.332,197.337 c -5.498,-15.966 -5.114,-30.576 0.857,-32.632 5.971,-2.056 15.268,9.22 20.766,25.187 5.498,15.966 5.114,30.576 -0.857,32.632 -5.971,2.056 -15.268,-9.22 -20.766,-25.187 z m 0.699,-36.784 c -0.536,-1.558 -0.428,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.536,1.558 0.427,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.845 -2.186,-2.402 z m -4.701,1.618 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.185,2.402 0.536,1.557 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.649,-0.844 -2.185,-2.402 z" />
|
||||
<g
|
||||
id="g2761-2">
|
||||
<ellipse
|
||||
style="fill:#ffe600"
|
||||
id="ellipse2763-4"
|
||||
ry="2.142"
|
||||
rx="4.428"
|
||||
cy="166.18201"
|
||||
cx="109.643"
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,267.4128,287.6192)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffe600"
|
||||
id="path2765-7"
|
||||
d="" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="translate(0.31798936,1.8925831)"
|
||||
id="g2767-7">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
id="path2769-5"
|
||||
d="m 165.141,215.373 c 3.342,7.154 7.811,5.77 7.88,5.746 1.371,-0.472 5.829,-2.582 4.696,-5.873 -1.025,-2.977 -8.385,-3.372 -13.438,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.945,2.208 7.316,1.737 0.069,-0.024 4.799,-0.91 2.672,-9.379 -0.078,-0.311 0.404,-0.411 0.514,-0.177 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
id="path2771-4"
|
||||
d="m 135.265,172.476 c -4.764,-17.913 -3.791,-32.973 2.812,-35.246 6.603,-2.273 16.641,8.995 23.916,26.043 1.744,2.829 5.156,8.08 7.865,10.514 1.975,1.775 1.992,2.731 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.735,19.254 5.048,35.957 -1.934,38.36 -6.982,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.678 -0.88,1.328 -1.514,2.022 -2.1,2.301 -2.676,1.537 -2.212,-1.079 0.636,-3.584 0.092,-9.823 -0.275,-13.126 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2773-8"
|
||||
d="m 142.615,185.533 c -5.498,-15.967 -5.114,-30.577 0.857,-32.633 5.971,-2.056 15.269,9.221 20.766,25.187 5.497,15.966 5.114,30.576 -0.857,32.632 -5.971,2.056 -15.268,-9.22 -20.766,-25.186 z m 0.699,-36.785 c -0.537,-1.558 -0.428,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.537,1.558 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.844 -2.186,-2.402 z m -4.701,1.619 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.537,1.558 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.845 -2.186,-2.402 z" />
|
||||
<g
|
||||
id="g2775-12">
|
||||
<ellipse
|
||||
style="fill:#ffe600"
|
||||
id="ellipse2777-8"
|
||||
ry="2.142"
|
||||
rx="4.4289999"
|
||||
cy="154.379"
|
||||
cx="143.92599"
|
||||
transform="matrix(-0.9455,0.3256,-0.3256,-0.9455,330.2729,253.4852)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffe600"
|
||||
id="path2779-93"
|
||||
d="" />
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
d="M 95.108,61.776 244.59003,10.309068 c 15.666,-5.3939967 32.82494,3.185516 38.32619,19.163008 l 40.59032,117.878134 c 5.50125,15.97749 -2.7378,33.302 -18.40381,38.69497 l -103.98001,35.80096 z"
|
||||
id="path2781-6"
|
||||
style="fill:#3c857c;fill-opacity:1;filter:url(#filter5576-1)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="137.92564"
|
||||
y="176.00142"
|
||||
id="text5724-8"
|
||||
transform="rotate(1.0000002)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5726-0"
|
||||
x="137.92564"
|
||||
y="176.00142"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:180px;font-family:Overpass;-inkscape-font-specification:'Overpass Bold';letter-spacing:-10px;fill:#e6e6e6;fill-opacity:1">lib</tspan></text>
|
||||
<path
|
||||
d="m 218.304,241.188 c -2.9,1.834 -8.917,18.762 -6.01,22.858 4.325,6.093 32.696,-15.214 30.405,-21.183 -2.356,-6.136 -21.883,-2.64 -24.395,-1.675 z m -14.341,-9.677 3.368,5.018 c 0,0 0.934,1.385 0.252,4.412 -1.066,4.734 -5.207,16.96 -5.819,27.111 -0.074,1.226 -1.793,12.229 9.964,9.517 11.758,-2.711 36.593,-21.745 41.746,-30.395 5.153,-8.65 -0.843,-13.795 -8.332,-14.524 -7.489,-0.73 -19.089,-0.425 -24.443,0.189 -5.354,0.614 -4.956,-1.165 -9.326,-5.975 -0.327,-0.361 -7.41,4.647 -7.41,4.647 z"
|
||||
id="path2795-21"
|
||||
style="clip-rule:evenodd;fill:#3e3e3e;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 216.503,238.52 c -2.9,1.834 -8.917,18.762 -6.009,22.858 4.324,6.092 32.696,-15.214 30.405,-21.183 -2.356,-6.136 -21.882,-2.64 -24.396,-1.675 z m -13.394,-10.003 3.368,5.018 c 0,0 0.934,1.385 0.252,4.412 -1.066,4.734 -5.207,16.96 -5.819,27.111 -0.074,1.226 -1.793,12.229 9.964,9.517 11.758,-2.711 36.593,-21.745 41.746,-30.395 5.153,-8.65 -0.843,-13.795 -8.332,-14.524 -7.489,-0.73 -19.089,-0.425 -24.443,0.189 -5.354,0.614 -4.956,-1.165 -9.326,-5.975 -0.328,-0.361 -7.41,4.647 -7.41,4.647 z"
|
||||
id="path2797-0"
|
||||
style="clip-rule:evenodd;fill:url(#linearGradient7022);fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
mask="url(#mask4481-1)"
|
||||
transform="matrix(1.4295286,0.05310508,-0.05040644,1.2918715,-77.431354,-78.804771)"
|
||||
d="m 214.776,227.853 c -2.797,3.296 -6.24,5.845 -9.926,7.474 0.432,-2.596 -0.374,-3.792 -0.374,-3.792 l -3.368,-5.018 c 0,0 7.083,-5.008 7.41,-4.647 3.294,3.624 3.879,5.527 6.258,5.983 z"
|
||||
id="path2799-5"
|
||||
style="fill:#54575a;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 116.052,45.547 c 17.234,36.62 72.865,128.908 102.86,168.287 -2.858,14.11 -18.673,23.308 -29.809,18.791 L 73.761,66.024 c -0.07,-12.347 22.06,-27.271 42.291,-20.477 z"
|
||||
id="path2803-1"
|
||||
style="fill:#c8c7c5"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 113.124,44.661 c 17.233,36.62 75.371,131.675 105.366,171.054 -4.069,13.505 -18.428,20.812 -30.299,17.44 L 72.849,66.555 C 72.779,54.208 95.748,39.956 113.124,44.661 Z"
|
||||
id="path2805-1"
|
||||
style="fill:#7c858c"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 203.927,231.912 80.383,53.463 c 3.583,-3.084 8.164,-5.73 13.116,-7.479 6.902,12.484 25.22,44.608 54.336,88.542 22.713,34.272 46.085,68.024 64.139,91.973 -2.35,2.316 -5.102,4.145 -8.047,5.413 z m -3.597,1.245 c -1.392,0.368 -2.805,0.615 -4.223,0.733 L 75.218,59.278 c 0.699,-1.099 1.537,-2.181 2.494,-3.23 z"
|
||||
id="path2809-0"
|
||||
style="clip-rule:evenodd;fill:url(#radialGradient4507-5);fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<text
|
||||
transform="rotate(1.0000002)"
|
||||
id="text5053-8"
|
||||
y="53.587437"
|
||||
x="-408.52026"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="88.978058"
|
||||
x="-408.52026"
|
||||
id="tspan5055-5"
|
||||
sodipodi:role="line" /></text>
|
||||
<text
|
||||
transform="rotate(1.0000002)"
|
||||
id="text5057-0"
|
||||
y="-232.88652"
|
||||
x="-525.88629"
|
||||
style="font-style:normal;font-weight:normal;font-size:90px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="-153.25761"
|
||||
x="-525.88629"
|
||||
id="tspan5059-6"
|
||||
sodipodi:role="line" /></text>
|
||||
<text
|
||||
transform="rotate(1.0000002)"
|
||||
id="text5069-4"
|
||||
y="-200.07454"
|
||||
x="543.02759"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="-164.68391"
|
||||
x="543.02759"
|
||||
id="tspan5071-6"
|
||||
sodipodi:role="line" /></text>
|
||||
</g>
|
||||
<text
|
||||
id="text5811-2"
|
||||
y="567.61206"
|
||||
x="798.41962"
|
||||
style="font-style:normal;font-weight:normal;font-size:180px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35px;font-family:Overpass;-inkscape-font-specification:'Overpass Bold';letter-spacing:-2px;fill:#e6e6e6;fill-opacity:1"
|
||||
y="567.61206"
|
||||
x="798.41962"
|
||||
id="tspan5813-5"
|
||||
sodipodi:role="line"> VIRTUALIZATION API</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 35 KiB |
698
docs/logos/logo-base.svg
Normal file
@ -0,0 +1,698 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="360"
|
||||
height="360"
|
||||
viewBox="0 0 95.249999 95.249999"
|
||||
version="1.1"
|
||||
id="svg709"
|
||||
inkscape:version="0.92pre2 r"
|
||||
sodipodi:docname="logo-base.svg">
|
||||
<defs
|
||||
id="defs703">
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter5799-3-6">
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood5801-7-9" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite5803-4-7" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="6"
|
||||
result="blur"
|
||||
id="feGaussianBlur5805-3-6" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset5807-7-0" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite5809-1-9" />
|
||||
</filter>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask3913-3-0">
|
||||
<path
|
||||
style="fill:#2f6962"
|
||||
id="path3915-9-7"
|
||||
d="M 95.108,61.776 244.59,10.309 c 15.666,-5.394 32.738,2.933 38.132,18.599 l 39.799,115.58 c 5.394,15.666 -2.932,32.738 -18.598,38.131 l -103.98,35.801 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask4168-6-6">
|
||||
<path
|
||||
style="fill:#7c858c"
|
||||
id="path4170-4-6"
|
||||
d="m 113.124,36.661 c 17.233,36.62 75.371,131.675 105.366,171.054 -4.069,13.505 -18.428,20.812 -30.299,17.44 L 72.849,58.555 C 72.779,46.208 95.748,31.956 113.124,36.661 Z"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3821"
|
||||
id="linearGradient7012"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="128.61047"
|
||||
y1="239.37396"
|
||||
x2="138.61214"
|
||||
y2="267.79517" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3821">
|
||||
<stop
|
||||
style="stop-color:#3e3e3e;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3823" />
|
||||
<stop
|
||||
style="stop-color:#3e3e3e;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3825" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3985"
|
||||
id="linearGradient7014"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,-2)"
|
||||
x1="173.70392"
|
||||
y1="267.11093"
|
||||
x2="166.66296"
|
||||
y2="246.63959" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3985">
|
||||
<stop
|
||||
style="stop-color:#c8c7c5;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3987" />
|
||||
<stop
|
||||
style="stop-color:#c8c7c5;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3989" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient3548-5-3"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5433331,-0.1032133,0.09131267,1.3653854,-130.42141,-95.005447)"
|
||||
cx="197.5676"
|
||||
cy="252.71837"
|
||||
fx="197.5676"
|
||||
fy="252.71837"
|
||||
r="166.51035" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4501">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4503" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4505" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient3552-6-9"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.870471,-0.6430111,0.256613,0.7464679,-116.69068,109.71214)"
|
||||
cx="135.63954"
|
||||
cy="12.000564"
|
||||
fx="135.63954"
|
||||
fy="12.000564"
|
||||
r="161.65305" />
|
||||
<filter
|
||||
inkscape:label="Ridged Border"
|
||||
inkscape:menu="Bevels"
|
||||
inkscape:menu-tooltip="Ridged border with inner bevel"
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter5576-4-7">
|
||||
<feMorphology
|
||||
radius="4.3"
|
||||
in="SourceAlpha"
|
||||
result="result91"
|
||||
id="feMorphology5578-9-2" />
|
||||
<feComposite
|
||||
operator="out"
|
||||
in="SourceGraphic"
|
||||
in2="result91"
|
||||
id="feComposite5580-1-6" />
|
||||
<feGaussianBlur
|
||||
result="result0"
|
||||
stdDeviation="1.2"
|
||||
id="feGaussianBlur5582-2-4" />
|
||||
<feDiffuseLighting
|
||||
diffuseConstant="1"
|
||||
id="feDiffuseLighting5584-3-0">
|
||||
<feDistantLight
|
||||
elevation="66"
|
||||
azimuth="225"
|
||||
id="feDistantLight5586-1-7" />
|
||||
</feDiffuseLighting>
|
||||
<feBlend
|
||||
mode="multiply"
|
||||
in2="SourceGraphic"
|
||||
id="feBlend5588-8-5" />
|
||||
<feComposite
|
||||
operator="in"
|
||||
in2="SourceAlpha"
|
||||
id="feComposite5590-1-4" />
|
||||
</filter>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3301"
|
||||
id="linearGradient7016"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="227.66476"
|
||||
y1="217.85138"
|
||||
x2="227.66476"
|
||||
y2="275.00342" />
|
||||
<linearGradient
|
||||
id="linearGradient3301">
|
||||
<stop
|
||||
id="stop3303"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3305"
|
||||
offset="1"
|
||||
style="stop-color:#868686;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask4481-9-8">
|
||||
<path
|
||||
style="clip-rule:evenodd;fill:#aaaaaa;fill-rule:evenodd"
|
||||
id="path4483-2-0"
|
||||
d="m 213.96734,236.83626 c -1.97572,1.50086 -5.71734,14.75814 -3.57441,17.84065 3.18643,4.58465 22.42412,-12.69851 20.66112,-17.24646 -1.81294,-4.67518 -15.35694,-1.41227 -17.08671,-0.59419 z m -9.6286,-7.34722 2.48938,3.78195 c 0,0 0.69017,1.04372 0.29628,3.40302 -0.6156,3.68976 -3.17495,13.25876 -3.32578,21.12255 -0.0183,0.94976 -0.91914,9.5039 7.21943,7.07006 8.1393,-2.43309 24.96824,-17.85854 28.33195,-24.69252 3.36372,-6.83399 -0.96483,-10.63865 -6.21591,-10.98709 -5.2511,-0.34921 -13.3456,0.21962 -17.06874,0.84795 -3.72313,0.62832 -3.49361,-0.75818 -6.67723,-4.3506 -0.23896,-0.26961 -5.04938,3.80468 -5.04938,3.80468 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter6162-1">
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood6164-5" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite6166-2" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="6"
|
||||
result="blur"
|
||||
id="feGaussianBlur6168-0" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset6170-7" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="fbSourceGraphic"
|
||||
id="feComposite6172-1" />
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix6174-6" />
|
||||
<feFlood
|
||||
id="feFlood6176-4"
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
in="fbSourceGraphic" />
|
||||
<feComposite
|
||||
id="feComposite6178-9"
|
||||
in2="fbSourceGraphic"
|
||||
in="flood"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur6180-5"
|
||||
in="composite1"
|
||||
stdDeviation="6"
|
||||
result="blur" />
|
||||
<feOffset
|
||||
id="feOffset6182-3"
|
||||
dx="-6"
|
||||
dy="6"
|
||||
result="offset" />
|
||||
<feComposite
|
||||
id="feComposite6184-5"
|
||||
in2="offset"
|
||||
in="fbSourceGraphic"
|
||||
operator="over"
|
||||
result="composite2" />
|
||||
</filter>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient4507-4-1"
|
||||
cx="143.59599"
|
||||
cy="139.937"
|
||||
fx="143.59599"
|
||||
fy="139.937"
|
||||
r="68.377998"
|
||||
gradientTransform="matrix(1.3366435,0.07829819,-0.1078591,1.8412818,-33.247188,-128.96975)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.2513889"
|
||||
inkscape:cx="180"
|
||||
inkscape:cy="180"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1136"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
units="in">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid254" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata706">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(221.74602,116.12083)">
|
||||
<g
|
||||
id="g4988-0-1"
|
||||
transform="matrix(0.26454304,-0.00461762,0.00461762,0.26454304,-220.57032,-106.99451)">
|
||||
<g
|
||||
id="g5736-0-0"
|
||||
style="filter:url(#filter5799-3-6)">
|
||||
<text
|
||||
transform="rotate(1.0000002)"
|
||||
id="text5724-0-0"
|
||||
y="176.00142"
|
||||
x="137.92564"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:180px;font-family:Overpass;-inkscape-font-specification:'Overpass Bold';letter-spacing:-10px;fill:#e6e6e6;fill-opacity:1"
|
||||
y="211.39204"
|
||||
x="137.92564"
|
||||
id="tspan5726-6-7"
|
||||
sodipodi:role="line" /></text>
|
||||
<g
|
||||
id="g6186-0">
|
||||
<g
|
||||
id="g6717">
|
||||
<path
|
||||
transform="translate(-1.9999998)"
|
||||
mask="url(#mask3913-3-0)"
|
||||
d="m 127.052,43.547 c 17.233,36.62 72.865,128.908 102.86,168.287 -2.858,14.11 -18.673,23.308 -29.809,18.791 L 84.761,64.024 c -0.07,-12.347 22.06,-27.271 42.291,-20.477 z"
|
||||
id="path2789-1-8"
|
||||
style="opacity:1;fill:#25514b"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
transform="translate(3.0630824e-7,8.0000003)"
|
||||
mask="url(#mask4168-6-6)"
|
||||
d="M 192.119,225.881 73.534,54.687 c 3.174,-9.061 16.868,-17.988 30.225,-18.875 22.158,44.223 78.164,134.394 111.831,178.223 -5.194,8.137 -14.62,12.648 -23.471,11.846 z"
|
||||
id="path2807-3-1"
|
||||
style="fill:#c8c7c5"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 11.004,141.618 C 4.711,123.341 14.425,103.424 32.702,97.131 L 249.423,22.512 c 18.277,-6.293 38.195,3.422 44.488,21.699 l 43.577,126.552 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 99.069,289.869 C 80.792,296.161 60.874,286.447 54.581,268.17 Z"
|
||||
id="path2645-3-6"
|
||||
style="fill:#7c858c"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 7.097,130.272 C 0.803,111.995 10.518,92.078 28.795,85.785 L 245.517,11.166 c 18.277,-6.293 38.194,3.422 44.488,21.699 l 43.577,126.552 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 95.162,278.523 c -18.277,6.293 -38.195,-3.422 -44.488,-21.699 z"
|
||||
id="path2651-0-4"
|
||||
style="fill:url(#linearGradient7012);fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;opacity:0.7;fill:url(#linearGradient7014);fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2655-0-1"
|
||||
d="m 156.599,246.825 13.562,-4.67 6.521,18.94 -13.562,4.67 z m 25.041,-8.622 13.562,-4.67 6.521,18.939 -13.562,4.67 z m 25.041,-8.622 13.563,-4.67 6.521,18.94 -13.562,4.67 z m 25.042,-8.623 13.562,-4.67 6.521,18.94 -13.562,4.67 z m 25.041,-8.622 13.562,-4.67 6.521,18.939 -13.562,4.67 z m -125.207,43.112 13.562,-4.67 6.521,18.94 -13.562,4.67 z" />
|
||||
<path
|
||||
d="M 2.568,124.472 C -3.725,106.195 5.989,86.278 24.266,79.985 L 245.516,3.807 c 18.277,-6.292 38.195,3.422 44.488,21.699 l 41.752,121.253 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 88.808,267.424 C 70.531,273.717 50.613,264.002 44.32,245.725 Z"
|
||||
id="path2659-0-4"
|
||||
style="fill:url(#radialGradient3548-5-3);fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 1.917,122.581 C -4.376,104.304 5.338,84.387 23.615,78.094 L 244.865,1.916 c 18.277,-6.293 38.194,3.422 44.488,21.699 l 41.752,121.253 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 88.157,265.533 C 69.88,271.826 49.962,262.111 43.669,243.834 Z"
|
||||
id="path2665-2-9"
|
||||
style="fill:#7c858c"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 5.763,123.175 C -0.35,105.42 9.086,86.072 26.841,79.958 L 243.342,5.416 c 17.755,-6.113 37.104,3.324 43.217,21.079 l 38.787,112.64 c 6.113,17.755 -3.323,37.103 -21.078,43.216 L 87.767,256.893 C 70.012,263.006 50.664,253.569 44.55,235.814 Z"
|
||||
id="path2671-2-8"
|
||||
style="fill:url(#radialGradient3552-6-9);fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 7.427,123.74 C 1.493,106.508 10.652,87.728 27.885,81.795 L 243.792,7.457 c 17.232,-5.933 36.012,3.226 41.946,20.459 l 39.771,115.497 c 5.934,17.233 -3.226,36.012 -20.458,41.945 L 89.143,259.696 C 71.91,265.629 53.131,256.469 47.197,239.237 Z"
|
||||
id="path2677-2-6"
|
||||
style="fill:#3e3e3e"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 11.049995,126.45117 c -5.3939998,-15.666 2.932,-32.737999 18.598,-38.131999 L 245.226,14.094171 c 15.666,-5.3940003 32.738,2.933 38.132,18.599 l 39.799,115.579999 c 5.394,15.666 -2.932,32.738 -18.598,38.131 l -215.578005,74.225 c -15.666,5.394 -32.738,-2.933 -38.133,-18.599 z"
|
||||
id="path3801-4-2"
|
||||
style="fill:#005f61;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2695-7-2"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 30,102.111 c -1.771,-7.695 2.602,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.737 1.025,2.977 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.069,-0.024 4.342,-2.237 7.88,5.746 0.13,0.293 0.571,0.074 0.513,-0.178 z"
|
||||
id="path2697-9-5"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 32.867,154.308 c 7.274,17.049 17.313,28.317 23.916,26.044 6.602,-2.273 7.575,-17.334 2.812,-35.247 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.694 -1.14,1.345 -1.514,2.022 -7.335,-18.703 -18.159,-31.442 -25.141,-29.038 -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.304 -1.51,-0.505 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.212 2.709,2.435 6.121,7.686 7.865,10.515 z"
|
||||
id="path2699-8-2"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 30.621,139.494 c 5.498,15.966 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.966 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.354,16.665 -0.857,32.632 z m 23.197,28.556 c 0.536,1.558 1.515,2.634 2.186,2.403 0.671,-0.231 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.186,-2.403 -0.67,0.231 -0.779,1.682 -0.243,3.239 z m -4.7,1.619 c 0.536,1.558 1.515,2.634 2.186,2.403 0.67,-0.231 0.779,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.634 -2.186,-2.402 -0.671,0.23 -0.78,1.68 -0.243,3.238 z"
|
||||
id="path2701-5-3"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2703-4-2">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,152.1324,301.1998)"
|
||||
cx="50.867001"
|
||||
cy="163.328"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2705-7-7"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2707-8-3"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2709-6-9"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 64.282,90.307 c -1.771,-7.695 2.603,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.737 1.025,2.978 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.07,-0.024 4.342,-2.237 7.88,5.746 0.13,0.292 0.572,0.074 0.513,-0.178 z"
|
||||
id="path2711-0-0"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 67.15,142.503 c 7.274,17.049 17.313,28.317 23.916,26.044 6.602,-2.273 7.575,-17.333 2.812,-35.247 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.694 -1.139,1.345 -1.514,2.022 -7.334,-18.704 -18.159,-31.442 -25.141,-29.038 -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.304 -1.51,-0.505 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.211 2.709,2.436 6.121,7.687 7.865,10.516 z"
|
||||
id="path2713-0-1"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 64.904,127.689 c 5.498,15.967 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.967 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.355,16.666 -0.857,32.632 z m 23.197,28.557 c 0.536,1.558 1.515,2.633 2.186,2.402 0.671,-0.231 0.779,-1.681 0.243,-3.239 -0.537,-1.558 -1.515,-2.633 -2.186,-2.402 -0.671,0.231 -0.779,1.681 -0.243,3.239 z m -4.7,1.619 c 0.536,1.558 1.515,2.633 2.185,2.402 0.67,-0.231 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.186,-2.402 -0.671,0.231 -0.779,1.681 -0.242,3.239 z"
|
||||
id="path2715-6-5"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2717-4-0">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,214.9873,267.075)"
|
||||
cx="85.149002"
|
||||
cy="151.524"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2719-3-6"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2721-7-9"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2723-5-7"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 98.565,78.502 c -1.771,-7.694 2.602,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.736 1.025,2.978 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.069,-0.024 4.342,-2.237 7.88,5.746 0.13,0.293 0.572,0.075 0.513,-0.177 z"
|
||||
id="path2725-8-9"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 101.433,130.699 c 7.274,17.048 17.313,28.317 23.915,26.043 6.602,-2.274 7.576,-17.333 2.812,-35.246 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.695 -1.139,1.345 -1.514,2.022 C 116.825,90.609 106,77.871 99.019,80.274 c -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.303 -1.51,-0.504 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.212 2.709,2.435 6.121,7.686 7.865,10.515 z"
|
||||
id="path2727-1-2"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 99.187,115.885 c 5.498,15.967 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.967 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.355,16.665 -0.857,32.632 z m 23.197,28.556 c 0.536,1.558 1.515,2.633 2.186,2.403 0.67,-0.231 0.779,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.634 -2.185,-2.403 -0.671,0.232 -0.78,1.682 -0.244,3.239 z m -4.701,1.619 c 0.536,1.558 1.515,2.633 2.186,2.402 0.671,-0.23 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.185,-2.402 -0.671,0.231 -0.78,1.681 -0.244,3.239 z"
|
||||
id="path2729-0-8"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2731-9-9">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,277.8429,232.9489)"
|
||||
cx="119.432"
|
||||
cy="139.72"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2733-3-9"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2735-0-8"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2739-2-9"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 96.575,238.982 c 3.342,7.154 7.811,5.77 7.88,5.746 1.371,-0.472 5.829,-2.583 4.696,-5.873 -1.025,-2.977 -8.385,-3.373 -13.437,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.946,2.208 7.316,1.736 0.07,-0.023 4.799,-0.91 2.672,-9.379 -0.078,-0.31 0.403,-0.41 0.513,-0.176 z"
|
||||
id="path2741-6-3"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 66.699,196.085 c -4.764,-17.913 -3.791,-32.973 2.812,-35.247 6.602,-2.273 16.641,8.995 23.915,26.043 1.744,2.829 5.156,8.08 7.865,10.514 1.976,1.775 1.992,2.732 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.735,19.254 5.048,35.956 -1.934,38.36 -6.982,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.677 -0.88,1.328 -1.514,2.022 -2.1,2.3 -2.675,1.536 -2.212,-1.079 0.637,-3.583 0.093,-9.822 -0.274,-13.125 z"
|
||||
id="path2743-4-6"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 74.049,209.142 c -5.498,-15.966 -5.114,-30.576 0.857,-32.632 5.971,-2.056 15.269,9.22 20.766,25.187 5.498,15.967 5.114,30.577 -0.857,32.633 -5.971,2.054 -15.268,-9.222 -20.766,-25.188 z m 0.699,-36.785 c -0.536,-1.558 -0.428,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.185,2.403 0.537,1.558 0.427,3.008 -0.243,3.239 -0.67,0.231 -1.649,-0.845 -2.185,-2.403 z m -4.701,1.619 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.186,2.403 0.536,1.558 0.427,3.008 -0.243,3.239 -0.67,0.231 -1.65,-0.845 -2.186,-2.403 z"
|
||||
id="path2745-3-3"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2747-8-6">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,204.5578,321.744)"
|
||||
cx="75.361"
|
||||
cy="177.98599"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2749-6-0"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2751-7-4"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2753-0-4"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 130.858,227.178 c 3.341,7.154 7.81,5.77 7.88,5.746 1.371,-0.472 5.829,-2.582 4.696,-5.873 -1.025,-2.977 -8.385,-3.373 -13.437,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.946,2.208 7.316,1.737 0.069,-0.024 4.799,-0.91 2.672,-9.379 -0.078,-0.312 0.404,-0.412 0.513,-0.177 z"
|
||||
id="path2755-8-9"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 100.982,184.281 c -4.764,-17.913 -3.791,-32.973 2.812,-35.247 6.602,-2.273 16.641,8.995 23.915,26.044 1.745,2.829 5.157,8.08 7.865,10.513 1.976,1.775 1.993,2.732 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.736,19.254 5.048,35.957 -1.934,38.36 -6.981,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.678 -0.879,1.328 -1.513,2.022 -2.1,2.301 -2.676,1.537 -2.212,-1.079 0.636,-3.584 0.092,-9.822 -0.275,-13.125 z"
|
||||
id="path2757-1-6"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 108.332,197.337 c -5.498,-15.966 -5.114,-30.576 0.857,-32.632 5.971,-2.056 15.268,9.22 20.766,25.187 5.498,15.966 5.114,30.576 -0.857,32.632 -5.971,2.056 -15.268,-9.22 -20.766,-25.187 z m 0.699,-36.784 c -0.536,-1.558 -0.428,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.536,1.558 0.427,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.845 -2.186,-2.402 z m -4.701,1.618 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.185,2.402 0.536,1.557 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.649,-0.844 -2.185,-2.402 z"
|
||||
id="path2759-9-6"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2761-8-4">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,267.4128,287.6192)"
|
||||
cx="109.643"
|
||||
cy="166.18201"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2763-1-1"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2765-6-9"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2767-4-8"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 165.141,215.373 c 3.342,7.154 7.811,5.77 7.88,5.746 1.371,-0.472 5.829,-2.582 4.696,-5.873 -1.025,-2.977 -8.385,-3.372 -13.438,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.945,2.208 7.316,1.737 0.069,-0.024 4.799,-0.91 2.672,-9.379 -0.078,-0.311 0.404,-0.411 0.514,-0.177 z"
|
||||
id="path2769-8-0"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 135.265,172.476 c -4.764,-17.913 -3.791,-32.973 2.812,-35.246 6.603,-2.273 16.641,8.995 23.916,26.043 1.744,2.829 5.156,8.08 7.865,10.514 1.975,1.775 1.992,2.731 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.735,19.254 5.048,35.957 -1.934,38.36 -6.982,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.678 -0.88,1.328 -1.514,2.022 -2.1,2.301 -2.676,1.537 -2.212,-1.079 0.636,-3.584 0.092,-9.823 -0.275,-13.126 z"
|
||||
id="path2771-5-4"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 142.615,185.533 c -5.498,-15.967 -5.114,-30.577 0.857,-32.633 5.971,-2.056 15.269,9.221 20.766,25.187 5.497,15.966 5.114,30.576 -0.857,32.632 -5.971,2.056 -15.268,-9.22 -20.766,-25.186 z m 0.699,-36.785 c -0.537,-1.558 -0.428,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.537,1.558 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.844 -2.186,-2.402 z m -4.701,1.619 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.537,1.558 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.845 -2.186,-2.402 z"
|
||||
id="path2773-0-9"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2775-1-0">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3256,-0.3256,-0.9455,330.2729,253.4852)"
|
||||
cx="143.92599"
|
||||
cy="154.379"
|
||||
rx="4.4289999"
|
||||
ry="2.142"
|
||||
id="ellipse2777-5-5"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2779-9-5"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#3c857c;fill-opacity:1;filter:url(#filter5576-4-7)"
|
||||
id="path2781-7-0"
|
||||
d="M 95.108,61.776 244.59003,10.309068 c 15.666,-5.3939967 32.82494,3.185516 38.32619,19.163008 l 40.59032,117.878134 c 5.50125,15.97749 -2.7378,33.302 -18.40381,38.69497 l -103.98001,35.80096 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#3e3e3e;fill-rule:evenodd"
|
||||
id="path2795-2-0"
|
||||
d="m 218.304,241.188 c -2.9,1.834 -8.917,18.762 -6.01,22.858 4.325,6.093 32.696,-15.214 30.405,-21.183 -2.356,-6.136 -21.883,-2.64 -24.395,-1.675 z m -14.341,-9.677 3.368,5.018 c 0,0 0.934,1.385 0.252,4.412 -1.066,4.734 -5.207,16.96 -5.819,27.111 -0.074,1.226 -1.793,12.229 9.964,9.517 11.758,-2.711 36.593,-21.745 41.746,-30.395 5.153,-8.65 -0.843,-13.795 -8.332,-14.524 -7.489,-0.73 -19.089,-0.425 -24.443,0.189 -5.354,0.614 -4.956,-1.165 -9.326,-5.975 -0.327,-0.361 -7.41,4.647 -7.41,4.647 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:url(#linearGradient7016);fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2797-8-2"
|
||||
d="m 216.503,238.52 c -2.9,1.834 -8.917,18.762 -6.009,22.858 4.324,6.092 32.696,-15.214 30.405,-21.183 -2.356,-6.136 -21.882,-2.64 -24.396,-1.675 z m -13.394,-10.003 3.368,5.018 c 0,0 0.934,1.385 0.252,4.412 -1.066,4.734 -5.207,16.96 -5.819,27.111 -0.074,1.226 -1.793,12.229 9.964,9.517 11.758,-2.711 36.593,-21.745 41.746,-30.395 5.153,-8.65 -0.843,-13.795 -8.332,-14.524 -7.489,-0.73 -19.089,-0.425 -24.443,0.189 -5.354,0.614 -4.956,-1.165 -9.326,-5.975 -0.328,-0.361 -7.41,4.647 -7.41,4.647 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#54575a;fill-opacity:1"
|
||||
id="path2799-9-8"
|
||||
d="m 214.776,227.853 c -2.797,3.296 -6.24,5.845 -9.926,7.474 0.432,-2.596 -0.374,-3.792 -0.374,-3.792 l -3.368,-5.018 c 0,0 7.083,-5.008 7.41,-4.647 3.294,3.624 3.879,5.527 6.258,5.983 z"
|
||||
transform="matrix(1.4295286,0.05310508,-0.05040644,1.2918715,-77.431354,-78.804771)"
|
||||
mask="url(#mask4481-9-8)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c8c7c5"
|
||||
id="path2803-5-8"
|
||||
d="m 116.052,45.547 c 17.234,36.62 72.865,128.908 102.86,168.287 -2.858,14.11 -18.673,23.308 -29.809,18.791 L 73.761,66.024 c -0.07,-12.347 22.06,-27.271 42.291,-20.477 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#7c858c;filter:url(#filter6162-1)"
|
||||
id="path2805-0-4"
|
||||
d="m 113.124,44.661 c 17.233,36.62 75.371,131.675 105.366,171.054 -4.069,13.505 -18.428,20.812 -30.299,17.44 L 72.849,66.555 C 72.779,54.208 95.748,39.956 113.124,44.661 Z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:url(#radialGradient4507-4-1);fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2809-2-9"
|
||||
d="M 203.927,231.912 80.383,53.463 c 3.583,-3.084 8.164,-5.73 13.116,-7.479 6.902,12.484 25.22,44.608 54.336,88.542 22.713,34.272 46.085,68.024 64.139,91.973 -2.35,2.316 -5.102,4.145 -8.047,5.413 z m -3.597,1.245 c -1.392,0.368 -2.805,0.615 -4.223,0.733 L 75.218,59.278 c 0.699,-1.099 1.537,-2.181 2.494,-3.23 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-408.52026"
|
||||
y="53.587437"
|
||||
id="text5053-7-4"
|
||||
transform="rotate(1.0000002)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5055-2-4"
|
||||
x="-408.52026"
|
||||
y="88.978058" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:90px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-525.88629"
|
||||
y="-232.88652"
|
||||
id="text5057-8-9"
|
||||
transform="rotate(1.0000002)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5059-1-1"
|
||||
x="-525.88629"
|
||||
y="-153.25761" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="543.02759"
|
||||
y="-200.07454"
|
||||
id="text5069-7-7"
|
||||
transform="rotate(1.0000002)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5071-7-5"
|
||||
x="543.02759"
|
||||
y="-164.68391" /></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 36 KiB |
BIN
docs/logos/logo-square-128.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
docs/logos/logo-square-192.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
docs/logos/logo-square-256.png
Normal file
After Width: | Height: | Size: 51 KiB |
BIN
docs/logos/logo-square-96.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
docs/logos/logo-square-powered-128.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
docs/logos/logo-square-powered-192.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
docs/logos/logo-square-powered-256.png
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
docs/logos/logo-square-powered-96.png
Normal file
After Width: | Height: | Size: 14 KiB |
732
docs/logos/logo-square-powered.svg
Normal file
@ -0,0 +1,732 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="360"
|
||||
height="360"
|
||||
viewBox="0 0 95.249999 95.249999"
|
||||
version="1.1"
|
||||
id="svg2754"
|
||||
inkscape:version="0.92pre2 r"
|
||||
sodipodi:docname="logo-square-powered.svg"
|
||||
inkscape:export-filename="/home/berrange/src/virt/libvirt/docs/logo-square.png"
|
||||
inkscape:export-xdpi="34.636364"
|
||||
inkscape:export-ydpi="34.636364">
|
||||
<defs
|
||||
id="defs2748">
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter5799-3">
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood5801-7" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite5803-4" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="6"
|
||||
result="blur"
|
||||
id="feGaussianBlur5805-3" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset5807-7" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite5809-1" />
|
||||
</filter>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask3913-3">
|
||||
<path
|
||||
style="fill:#2f6962"
|
||||
id="path3915-9"
|
||||
d="M 95.108,61.776 244.59,10.309 c 15.666,-5.394 32.738,2.933 38.132,18.599 l 39.799,115.58 c 5.394,15.666 -2.932,32.738 -18.598,38.131 l -103.98,35.801 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask4168-6">
|
||||
<path
|
||||
style="fill:#7c858c"
|
||||
id="path4170-4"
|
||||
d="m 113.124,36.661 c 17.233,36.62 75.371,131.675 105.366,171.054 -4.069,13.505 -18.428,20.812 -30.299,17.44 L 72.849,58.555 C 72.779,46.208 95.748,31.956 113.124,36.661 Z"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3821"
|
||||
id="linearGradient7024"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="128.61047"
|
||||
y1="239.37396"
|
||||
x2="138.61214"
|
||||
y2="267.79517" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3821">
|
||||
<stop
|
||||
style="stop-color:#3e3e3e;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3823" />
|
||||
<stop
|
||||
style="stop-color:#3e3e3e;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3825" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3985"
|
||||
id="linearGradient7026"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,-2)"
|
||||
x1="173.70392"
|
||||
y1="267.11093"
|
||||
x2="166.66296"
|
||||
y2="246.63959" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3985">
|
||||
<stop
|
||||
style="stop-color:#c8c7c5;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3987" />
|
||||
<stop
|
||||
style="stop-color:#c8c7c5;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3989" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient3548-5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5433331,-0.1032133,0.09131267,1.3653854,-130.42141,-95.005447)"
|
||||
cx="197.5676"
|
||||
cy="252.71837"
|
||||
fx="197.5676"
|
||||
fy="252.71837"
|
||||
r="166.51035" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4501">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4503" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4505" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient3552-6"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.870471,-0.6430111,0.256613,0.7464679,-116.69068,109.71214)"
|
||||
cx="135.63954"
|
||||
cy="12.000564"
|
||||
fx="135.63954"
|
||||
fy="12.000564"
|
||||
r="161.65305" />
|
||||
<filter
|
||||
inkscape:label="Ridged Border"
|
||||
inkscape:menu="Bevels"
|
||||
inkscape:menu-tooltip="Ridged border with inner bevel"
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter5576-4">
|
||||
<feMorphology
|
||||
radius="4.3"
|
||||
in="SourceAlpha"
|
||||
result="result91"
|
||||
id="feMorphology5578-9" />
|
||||
<feComposite
|
||||
operator="out"
|
||||
in="SourceGraphic"
|
||||
in2="result91"
|
||||
id="feComposite5580-1" />
|
||||
<feGaussianBlur
|
||||
result="result0"
|
||||
stdDeviation="1.2"
|
||||
id="feGaussianBlur5582-2" />
|
||||
<feDiffuseLighting
|
||||
diffuseConstant="1"
|
||||
id="feDiffuseLighting5584-3">
|
||||
<feDistantLight
|
||||
elevation="66"
|
||||
azimuth="225"
|
||||
id="feDistantLight5586-1" />
|
||||
</feDiffuseLighting>
|
||||
<feBlend
|
||||
mode="multiply"
|
||||
in2="SourceGraphic"
|
||||
id="feBlend5588-8" />
|
||||
<feComposite
|
||||
operator="in"
|
||||
in2="SourceAlpha"
|
||||
id="feComposite5590-1" />
|
||||
</filter>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3301"
|
||||
id="linearGradient7028"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="227.66476"
|
||||
y1="217.85138"
|
||||
x2="227.66476"
|
||||
y2="275.00342" />
|
||||
<linearGradient
|
||||
id="linearGradient3301">
|
||||
<stop
|
||||
id="stop3303"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3305"
|
||||
offset="1"
|
||||
style="stop-color:#868686;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask4481-9">
|
||||
<path
|
||||
style="clip-rule:evenodd;fill:#aaaaaa;fill-rule:evenodd"
|
||||
id="path4483-2"
|
||||
d="m 213.96734,236.83626 c -1.97572,1.50086 -5.71734,14.75814 -3.57441,17.84065 3.18643,4.58465 22.42412,-12.69851 20.66112,-17.24646 -1.81294,-4.67518 -15.35694,-1.41227 -17.08671,-0.59419 z m -9.6286,-7.34722 2.48938,3.78195 c 0,0 0.69017,1.04372 0.29628,3.40302 -0.6156,3.68976 -3.17495,13.25876 -3.32578,21.12255 -0.0183,0.94976 -0.91914,9.5039 7.21943,7.07006 8.1393,-2.43309 24.96824,-17.85854 28.33195,-24.69252 3.36372,-6.83399 -0.96483,-10.63865 -6.21591,-10.98709 -5.2511,-0.34921 -13.3456,0.21962 -17.06874,0.84795 -3.72313,0.62832 -3.49361,-0.75818 -6.67723,-4.3506 -0.23896,-0.26961 -5.04938,3.80468 -5.04938,3.80468 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter6162">
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood6164" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite6166" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="6"
|
||||
result="blur"
|
||||
id="feGaussianBlur6168" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset6170" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="fbSourceGraphic"
|
||||
id="feComposite6172" />
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix6174" />
|
||||
<feFlood
|
||||
id="feFlood6176"
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
in="fbSourceGraphic" />
|
||||
<feComposite
|
||||
id="feComposite6178"
|
||||
in2="fbSourceGraphic"
|
||||
in="flood"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur6180"
|
||||
in="composite1"
|
||||
stdDeviation="6"
|
||||
result="blur" />
|
||||
<feOffset
|
||||
id="feOffset6182"
|
||||
dx="-6"
|
||||
dy="6"
|
||||
result="offset" />
|
||||
<feComposite
|
||||
id="feComposite6184"
|
||||
in2="offset"
|
||||
in="fbSourceGraphic"
|
||||
operator="over"
|
||||
result="composite2" />
|
||||
</filter>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient4507-4"
|
||||
cx="143.59599"
|
||||
cy="139.937"
|
||||
fx="143.59599"
|
||||
fy="139.937"
|
||||
r="68.377998"
|
||||
gradientTransform="matrix(1.3366435,0.07829819,-0.1078591,1.8412818,-33.247188,-128.96975)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.5027778"
|
||||
inkscape:cx="180"
|
||||
inkscape:cy="180"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1136"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
units="px" />
|
||||
<metadata
|
||||
id="metadata2751">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(35.781731,-204.40298)">
|
||||
<g
|
||||
id="g4944"
|
||||
transform="matrix(0.24862701,-0.09049283,0.09049283,0.24862701,-92.040544,272.60195)">
|
||||
<g
|
||||
transform="rotate(19,545.20406,769.86173)"
|
||||
id="g4988-0">
|
||||
<g
|
||||
style="filter:url(#filter5799-3)"
|
||||
id="g5736-0">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="137.92564"
|
||||
y="176.00142"
|
||||
id="text5724-0"
|
||||
transform="rotate(1.0000002)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5726-6"
|
||||
x="137.92564"
|
||||
y="211.39204"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:180px;font-family:Overpass;-inkscape-font-specification:'Overpass Bold';letter-spacing:-10px;fill:#e6e6e6;fill-opacity:1" /></text>
|
||||
<g
|
||||
id="g6186">
|
||||
<path
|
||||
transform="translate(-1.9999998)"
|
||||
mask="url(#mask3913-3)"
|
||||
d="m 127.052,43.547 c 17.233,36.62 72.865,128.908 102.86,168.287 -2.858,14.11 -18.673,23.308 -29.809,18.791 L 84.761,64.024 c -0.07,-12.347 22.06,-27.271 42.291,-20.477 z"
|
||||
id="path2789-1"
|
||||
style="opacity:1;fill:#25514b"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
transform="translate(3.0630824e-7,8.0000003)"
|
||||
mask="url(#mask4168-6)"
|
||||
d="M 192.119,225.881 73.534,54.687 c 3.174,-9.061 16.868,-17.988 30.225,-18.875 22.158,44.223 78.164,134.394 111.831,178.223 -5.194,8.137 -14.62,12.648 -23.471,11.846 z"
|
||||
id="path2807-3"
|
||||
style="fill:#c8c7c5"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 11.004,141.618 C 4.711,123.341 14.425,103.424 32.702,97.131 L 249.423,22.512 c 18.277,-6.293 38.195,3.422 44.488,21.699 l 43.577,126.552 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 99.069,289.869 C 80.792,296.161 60.874,286.447 54.581,268.17 Z"
|
||||
id="path2645-3"
|
||||
style="fill:#7c858c"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 7.097,130.272 C 0.803,111.995 10.518,92.078 28.795,85.785 L 245.517,11.166 c 18.277,-6.293 38.194,3.422 44.488,21.699 l 43.577,126.552 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 95.162,278.523 c -18.277,6.293 -38.195,-3.422 -44.488,-21.699 z"
|
||||
id="path2651-0"
|
||||
style="fill:url(#linearGradient7024);fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;opacity:0.7;fill:url(#linearGradient7026);fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2655-0"
|
||||
d="m 156.599,246.825 13.562,-4.67 6.521,18.94 -13.562,4.67 z m 25.041,-8.622 13.562,-4.67 6.521,18.939 -13.562,4.67 z m 25.041,-8.622 13.563,-4.67 6.521,18.94 -13.562,4.67 z m 25.042,-8.623 13.562,-4.67 6.521,18.94 -13.562,4.67 z m 25.041,-8.622 13.562,-4.67 6.521,18.939 -13.562,4.67 z m -125.207,43.112 13.562,-4.67 6.521,18.94 -13.562,4.67 z" />
|
||||
<path
|
||||
d="M 2.568,124.472 C -3.725,106.195 5.989,86.278 24.266,79.985 L 245.516,3.807 c 18.277,-6.292 38.195,3.422 44.488,21.699 l 41.752,121.253 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 88.808,267.424 C 70.531,273.717 50.613,264.002 44.32,245.725 Z"
|
||||
id="path2659-0"
|
||||
style="fill:url(#radialGradient3548-5);fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 1.917,122.581 C -4.376,104.304 5.338,84.387 23.615,78.094 L 244.865,1.916 c 18.277,-6.293 38.194,3.422 44.488,21.699 l 41.752,121.253 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 88.157,265.533 C 69.88,271.826 49.962,262.111 43.669,243.834 Z"
|
||||
id="path2665-2"
|
||||
style="fill:#7c858c"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 5.763,123.175 C -0.35,105.42 9.086,86.072 26.841,79.958 L 243.342,5.416 c 17.755,-6.113 37.104,3.324 43.217,21.079 l 38.787,112.64 c 6.113,17.755 -3.323,37.103 -21.078,43.216 L 87.767,256.893 C 70.012,263.006 50.664,253.569 44.55,235.814 Z"
|
||||
id="path2671-2"
|
||||
style="fill:url(#radialGradient3552-6);fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 7.427,123.74 C 1.493,106.508 10.652,87.728 27.885,81.795 L 243.792,7.457 c 17.232,-5.933 36.012,3.226 41.946,20.459 l 39.771,115.497 c 5.934,17.233 -3.226,36.012 -20.458,41.945 L 89.143,259.696 C 71.91,265.629 53.131,256.469 47.197,239.237 Z"
|
||||
id="path2677-2"
|
||||
style="fill:#3e3e3e"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 11.049995,126.45117 c -5.3939998,-15.666 2.932,-32.737999 18.598,-38.131999 L 245.226,14.094171 c 15.666,-5.3940003 32.738,2.933 38.132,18.599 l 39.799,115.579999 c 5.394,15.666 -2.932,32.738 -18.598,38.131 l -215.578005,74.225 c -15.666,5.394 -32.738,-2.933 -38.133,-18.599 z"
|
||||
id="path3801-4"
|
||||
style="fill:#005f61;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2695-7"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 30,102.111 c -1.771,-7.695 2.602,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.737 1.025,2.977 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.069,-0.024 4.342,-2.237 7.88,5.746 0.13,0.293 0.571,0.074 0.513,-0.178 z"
|
||||
id="path2697-9"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 32.867,154.308 c 7.274,17.049 17.313,28.317 23.916,26.044 6.602,-2.273 7.575,-17.334 2.812,-35.247 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.694 -1.14,1.345 -1.514,2.022 -7.335,-18.703 -18.159,-31.442 -25.141,-29.038 -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.304 -1.51,-0.505 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.212 2.709,2.435 6.121,7.686 7.865,10.515 z"
|
||||
id="path2699-8"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 30.621,139.494 c 5.498,15.966 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.966 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.354,16.665 -0.857,32.632 z m 23.197,28.556 c 0.536,1.558 1.515,2.634 2.186,2.403 0.671,-0.231 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.186,-2.403 -0.67,0.231 -0.779,1.682 -0.243,3.239 z m -4.7,1.619 c 0.536,1.558 1.515,2.634 2.186,2.403 0.67,-0.231 0.779,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.634 -2.186,-2.402 -0.671,0.23 -0.78,1.68 -0.243,3.238 z"
|
||||
id="path2701-5"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2703-4">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,152.1324,301.1998)"
|
||||
cx="50.867001"
|
||||
cy="163.328"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2705-7"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2707-8"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2709-6"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 64.282,90.307 c -1.771,-7.695 2.603,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.737 1.025,2.978 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.07,-0.024 4.342,-2.237 7.88,5.746 0.13,0.292 0.572,0.074 0.513,-0.178 z"
|
||||
id="path2711-0"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 67.15,142.503 c 7.274,17.049 17.313,28.317 23.916,26.044 6.602,-2.273 7.575,-17.333 2.812,-35.247 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.694 -1.139,1.345 -1.514,2.022 -7.334,-18.704 -18.159,-31.442 -25.141,-29.038 -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.304 -1.51,-0.505 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.211 2.709,2.436 6.121,7.687 7.865,10.516 z"
|
||||
id="path2713-0"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 64.904,127.689 c 5.498,15.967 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.967 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.355,16.666 -0.857,32.632 z m 23.197,28.557 c 0.536,1.558 1.515,2.633 2.186,2.402 0.671,-0.231 0.779,-1.681 0.243,-3.239 -0.537,-1.558 -1.515,-2.633 -2.186,-2.402 -0.671,0.231 -0.779,1.681 -0.243,3.239 z m -4.7,1.619 c 0.536,1.558 1.515,2.633 2.185,2.402 0.67,-0.231 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.186,-2.402 -0.671,0.231 -0.779,1.681 -0.242,3.239 z"
|
||||
id="path2715-6"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2717-4">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,214.9873,267.075)"
|
||||
cx="85.149002"
|
||||
cy="151.524"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2719-3"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2721-7"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2723-5"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 98.565,78.502 c -1.771,-7.694 2.602,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.736 1.025,2.978 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.069,-0.024 4.342,-2.237 7.88,5.746 0.13,0.293 0.572,0.075 0.513,-0.177 z"
|
||||
id="path2725-8"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 101.433,130.699 c 7.274,17.048 17.313,28.317 23.915,26.043 6.602,-2.274 7.576,-17.333 2.812,-35.246 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.695 -1.139,1.345 -1.514,2.022 C 116.825,90.609 106,77.871 99.019,80.274 c -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.303 -1.51,-0.504 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.212 2.709,2.435 6.121,7.686 7.865,10.515 z"
|
||||
id="path2727-1"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 99.187,115.885 c 5.498,15.967 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.967 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.355,16.665 -0.857,32.632 z m 23.197,28.556 c 0.536,1.558 1.515,2.633 2.186,2.403 0.67,-0.231 0.779,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.634 -2.185,-2.403 -0.671,0.232 -0.78,1.682 -0.244,3.239 z m -4.701,1.619 c 0.536,1.558 1.515,2.633 2.186,2.402 0.671,-0.23 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.185,-2.402 -0.671,0.231 -0.78,1.681 -0.244,3.239 z"
|
||||
id="path2729-0"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2731-9">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,277.8429,232.9489)"
|
||||
cx="119.432"
|
||||
cy="139.72"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2733-3"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2735-0"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2739-2"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 96.575,238.982 c 3.342,7.154 7.811,5.77 7.88,5.746 1.371,-0.472 5.829,-2.583 4.696,-5.873 -1.025,-2.977 -8.385,-3.373 -13.437,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.946,2.208 7.316,1.736 0.07,-0.023 4.799,-0.91 2.672,-9.379 -0.078,-0.31 0.403,-0.41 0.513,-0.176 z"
|
||||
id="path2741-6"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 66.699,196.085 c -4.764,-17.913 -3.791,-32.973 2.812,-35.247 6.602,-2.273 16.641,8.995 23.915,26.043 1.744,2.829 5.156,8.08 7.865,10.514 1.976,1.775 1.992,2.732 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.735,19.254 5.048,35.956 -1.934,38.36 -6.982,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.677 -0.88,1.328 -1.514,2.022 -2.1,2.3 -2.675,1.536 -2.212,-1.079 0.637,-3.583 0.093,-9.822 -0.274,-13.125 z"
|
||||
id="path2743-4"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 74.049,209.142 c -5.498,-15.966 -5.114,-30.576 0.857,-32.632 5.971,-2.056 15.269,9.22 20.766,25.187 5.498,15.967 5.114,30.577 -0.857,32.633 -5.971,2.054 -15.268,-9.222 -20.766,-25.188 z m 0.699,-36.785 c -0.536,-1.558 -0.428,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.185,2.403 0.537,1.558 0.427,3.008 -0.243,3.239 -0.67,0.231 -1.649,-0.845 -2.185,-2.403 z m -4.701,1.619 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.186,2.403 0.536,1.558 0.427,3.008 -0.243,3.239 -0.67,0.231 -1.65,-0.845 -2.186,-2.403 z"
|
||||
id="path2745-3"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2747-8">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,204.5578,321.744)"
|
||||
cx="75.361"
|
||||
cy="177.98599"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2749-6"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2751-7"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2753-0"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 130.858,227.178 c 3.341,7.154 7.81,5.77 7.88,5.746 1.371,-0.472 5.829,-2.582 4.696,-5.873 -1.025,-2.977 -8.385,-3.373 -13.437,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.946,2.208 7.316,1.737 0.069,-0.024 4.799,-0.91 2.672,-9.379 -0.078,-0.312 0.404,-0.412 0.513,-0.177 z"
|
||||
id="path2755-8"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 100.982,184.281 c -4.764,-17.913 -3.791,-32.973 2.812,-35.247 6.602,-2.273 16.641,8.995 23.915,26.044 1.745,2.829 5.157,8.08 7.865,10.513 1.976,1.775 1.993,2.732 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.736,19.254 5.048,35.957 -1.934,38.36 -6.981,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.678 -0.879,1.328 -1.513,2.022 -2.1,2.301 -2.676,1.537 -2.212,-1.079 0.636,-3.584 0.092,-9.822 -0.275,-13.125 z"
|
||||
id="path2757-1"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 108.332,197.337 c -5.498,-15.966 -5.114,-30.576 0.857,-32.632 5.971,-2.056 15.268,9.22 20.766,25.187 5.498,15.966 5.114,30.576 -0.857,32.632 -5.971,2.056 -15.268,-9.22 -20.766,-25.187 z m 0.699,-36.784 c -0.536,-1.558 -0.428,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.536,1.558 0.427,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.845 -2.186,-2.402 z m -4.701,1.618 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.185,2.402 0.536,1.557 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.649,-0.844 -2.185,-2.402 z"
|
||||
id="path2759-9"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2761-8">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,267.4128,287.6192)"
|
||||
cx="109.643"
|
||||
cy="166.18201"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2763-1"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2765-6"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2767-4"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 165.141,215.373 c 3.342,7.154 7.811,5.77 7.88,5.746 1.371,-0.472 5.829,-2.582 4.696,-5.873 -1.025,-2.977 -8.385,-3.372 -13.438,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.945,2.208 7.316,1.737 0.069,-0.024 4.799,-0.91 2.672,-9.379 -0.078,-0.311 0.404,-0.411 0.514,-0.177 z"
|
||||
id="path2769-8"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 135.265,172.476 c -4.764,-17.913 -3.791,-32.973 2.812,-35.246 6.603,-2.273 16.641,8.995 23.916,26.043 1.744,2.829 5.156,8.08 7.865,10.514 1.975,1.775 1.992,2.731 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.735,19.254 5.048,35.957 -1.934,38.36 -6.982,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.678 -0.88,1.328 -1.514,2.022 -2.1,2.301 -2.676,1.537 -2.212,-1.079 0.636,-3.584 0.092,-9.823 -0.275,-13.126 z"
|
||||
id="path2771-5"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 142.615,185.533 c -5.498,-15.967 -5.114,-30.577 0.857,-32.633 5.971,-2.056 15.269,9.221 20.766,25.187 5.497,15.966 5.114,30.576 -0.857,32.632 -5.971,2.056 -15.268,-9.22 -20.766,-25.186 z m 0.699,-36.785 c -0.537,-1.558 -0.428,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.537,1.558 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.844 -2.186,-2.402 z m -4.701,1.619 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.537,1.558 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.845 -2.186,-2.402 z"
|
||||
id="path2773-0"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2775-1">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3256,-0.3256,-0.9455,330.2729,253.4852)"
|
||||
cx="143.92599"
|
||||
cy="154.379"
|
||||
rx="4.4289999"
|
||||
ry="2.142"
|
||||
id="ellipse2777-5"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2779-9"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#3c857c;fill-opacity:1;filter:url(#filter5576-4)"
|
||||
id="path2781-7"
|
||||
d="M 95.108,61.776 244.59003,10.309068 c 15.666,-5.3939967 32.82494,3.185516 38.32619,19.163008 l 40.59032,117.878134 c 5.50125,15.97749 -2.7378,33.302 -18.40381,38.69497 l -103.98001,35.80096 z" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:60px;line-height:69.99999881%;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:start;letter-spacing:-2px;word-spacing:0px;text-anchor:start;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="249.66805"
|
||||
y="150.21611"
|
||||
id="text6154"
|
||||
transform="rotate(-19)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan6156"
|
||||
x="249.26804"
|
||||
y="150.21611"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:57.33333206px;line-height:42px;font-family:Overpass;-inkscape-font-specification:'Overpass Bold';text-align:end;letter-spacing:-3px;text-anchor:end;fill:#e6e6e6;fill-opacity:1">libvi<tspan
|
||||
id="tspan4413"
|
||||
style="font-size:57.33333206px;line-height:42px;text-align:end;letter-spacing:-0.40000001px;word-spacing:0px;text-anchor:end">rt</tspan></tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="246.66805"
|
||||
y="193.46872"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.33333206px;line-height:69.99999881%;font-family:Overpass;-inkscape-font-specification:'Overpass, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:end;letter-spacing:-3px;writing-mode:lr-tb;text-anchor:end;fill:#e6e6e6;fill-opacity:1"
|
||||
id="tspan4946">powered</tspan><tspan
|
||||
id="tspan4813"
|
||||
sodipodi:role="line"
|
||||
x="249.66805"
|
||||
y="235.46872"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:69.99999881%;font-family:Overpass;-inkscape-font-specification:'Overpass Bold';text-align:end;letter-spacing:-3px;text-anchor:end;fill:#e6e6e6;fill-opacity:1" /></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#3e3e3e;fill-rule:evenodd"
|
||||
id="path2795-2"
|
||||
d="m 218.304,241.188 c -2.9,1.834 -8.917,18.762 -6.01,22.858 4.325,6.093 32.696,-15.214 30.405,-21.183 -2.356,-6.136 -21.883,-2.64 -24.395,-1.675 z m -14.341,-9.677 3.368,5.018 c 0,0 0.934,1.385 0.252,4.412 -1.066,4.734 -5.207,16.96 -5.819,27.111 -0.074,1.226 -1.793,12.229 9.964,9.517 11.758,-2.711 36.593,-21.745 41.746,-30.395 5.153,-8.65 -0.843,-13.795 -8.332,-14.524 -7.489,-0.73 -19.089,-0.425 -24.443,0.189 -5.354,0.614 -4.956,-1.165 -9.326,-5.975 -0.327,-0.361 -7.41,4.647 -7.41,4.647 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:url(#linearGradient7028);fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2797-8"
|
||||
d="m 216.503,238.52 c -2.9,1.834 -8.917,18.762 -6.009,22.858 4.324,6.092 32.696,-15.214 30.405,-21.183 -2.356,-6.136 -21.882,-2.64 -24.396,-1.675 z m -13.394,-10.003 3.368,5.018 c 0,0 0.934,1.385 0.252,4.412 -1.066,4.734 -5.207,16.96 -5.819,27.111 -0.074,1.226 -1.793,12.229 9.964,9.517 11.758,-2.711 36.593,-21.745 41.746,-30.395 5.153,-8.65 -0.843,-13.795 -8.332,-14.524 -7.489,-0.73 -19.089,-0.425 -24.443,0.189 -5.354,0.614 -4.956,-1.165 -9.326,-5.975 -0.328,-0.361 -7.41,4.647 -7.41,4.647 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#54575a;fill-opacity:1"
|
||||
id="path2799-9"
|
||||
d="m 214.776,227.853 c -2.797,3.296 -6.24,5.845 -9.926,7.474 0.432,-2.596 -0.374,-3.792 -0.374,-3.792 l -3.368,-5.018 c 0,0 7.083,-5.008 7.41,-4.647 3.294,3.624 3.879,5.527 6.258,5.983 z"
|
||||
transform="matrix(1.4295286,0.05310508,-0.05040644,1.2918715,-77.431354,-78.804771)"
|
||||
mask="url(#mask4481-9)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c8c7c5"
|
||||
id="path2803-5"
|
||||
d="m 116.052,45.547 c 17.234,36.62 72.865,128.908 102.86,168.287 -2.858,14.11 -18.673,23.308 -29.809,18.791 L 73.761,66.024 c -0.07,-12.347 22.06,-27.271 42.291,-20.477 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#7c858c;filter:url(#filter6162)"
|
||||
id="path2805-0"
|
||||
d="m 113.124,44.661 c 17.233,36.62 75.371,131.675 105.366,171.054 -4.069,13.505 -18.428,20.812 -30.299,17.44 L 72.849,66.555 C 72.779,54.208 95.748,39.956 113.124,44.661 Z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:url(#radialGradient4507-4);fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2809-2"
|
||||
d="M 203.927,231.912 80.383,53.463 c 3.583,-3.084 8.164,-5.73 13.116,-7.479 6.902,12.484 25.22,44.608 54.336,88.542 22.713,34.272 46.085,68.024 64.139,91.973 -2.35,2.316 -5.102,4.145 -8.047,5.413 z m -3.597,1.245 c -1.392,0.368 -2.805,0.615 -4.223,0.733 L 75.218,59.278 c 0.699,-1.099 1.537,-2.181 2.494,-3.23 z" />
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
transform="rotate(1.0000002)"
|
||||
id="text5053-7"
|
||||
y="53.587437"
|
||||
x="-408.52026"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="88.978058"
|
||||
x="-408.52026"
|
||||
id="tspan5055-2"
|
||||
sodipodi:role="line" /></text>
|
||||
<text
|
||||
transform="rotate(1.0000002)"
|
||||
id="text5057-8"
|
||||
y="-232.88652"
|
||||
x="-525.88629"
|
||||
style="font-style:normal;font-weight:normal;font-size:90px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="-153.25761"
|
||||
x="-525.88629"
|
||||
id="tspan5059-1"
|
||||
sodipodi:role="line" /></text>
|
||||
<text
|
||||
transform="rotate(1.0000002)"
|
||||
id="text5069-7"
|
||||
y="-200.07454"
|
||||
x="543.02759"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="-164.68391"
|
||||
x="543.02759"
|
||||
id="tspan5071-7"
|
||||
sodipodi:role="line" /></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:25px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="582.63574"
|
||||
y="-37.070248"
|
||||
id="text4950"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4948"
|
||||
x="582.63574"
|
||||
y="-14.179623" /></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 38 KiB |
733
docs/logos/logo-square.svg
Normal file
@ -0,0 +1,733 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="360"
|
||||
height="360"
|
||||
viewBox="0 0 95.249999 95.249999"
|
||||
version="1.1"
|
||||
id="svg1715"
|
||||
inkscape:version="0.92pre2 r"
|
||||
sodipodi:docname="logo-square.svg">
|
||||
<defs
|
||||
id="defs1709">
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter5799-3-7">
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood5801-7-7" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite5803-4-6" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="6"
|
||||
result="blur"
|
||||
id="feGaussianBlur5805-3-9" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset5807-7-1" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite5809-1-1" />
|
||||
</filter>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask3913-3-9">
|
||||
<path
|
||||
style="fill:#2f6962"
|
||||
id="path3915-9-0"
|
||||
d="M 95.108,61.776 244.59,10.309 c 15.666,-5.394 32.738,2.933 38.132,18.599 l 39.799,115.58 c 5.394,15.666 -2.932,32.738 -18.598,38.131 l -103.98,35.801 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask4168-6-8">
|
||||
<path
|
||||
style="fill:#7c858c"
|
||||
id="path4170-4-98"
|
||||
d="m 113.124,36.661 c 17.233,36.62 75.371,131.675 105.366,171.054 -4.069,13.505 -18.428,20.812 -30.299,17.44 L 72.849,58.555 C 72.779,46.208 95.748,31.956 113.124,36.661 Z"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3821"
|
||||
id="linearGradient3544-5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="128.61047"
|
||||
y1="239.37396"
|
||||
x2="138.61214"
|
||||
y2="267.79517" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3821">
|
||||
<stop
|
||||
style="stop-color:#3e3e3e;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3823" />
|
||||
<stop
|
||||
style="stop-color:#3e3e3e;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3825" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3985"
|
||||
id="linearGradient4411"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,-2)"
|
||||
x1="173.70392"
|
||||
y1="267.11093"
|
||||
x2="166.66296"
|
||||
y2="246.63959" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3985">
|
||||
<stop
|
||||
style="stop-color:#c8c7c5;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3987" />
|
||||
<stop
|
||||
style="stop-color:#c8c7c5;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3989" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient3548-5-9"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5433331,-0.1032133,0.09131267,1.3653854,-130.42141,-95.005447)"
|
||||
cx="197.5676"
|
||||
cy="252.71837"
|
||||
fx="197.5676"
|
||||
fy="252.71837"
|
||||
r="166.51035" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4501">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4503" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4505" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient3552-6-7"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.870471,-0.6430111,0.256613,0.7464679,-116.69068,109.71214)"
|
||||
cx="135.63954"
|
||||
cy="12.000564"
|
||||
fx="135.63954"
|
||||
fy="12.000564"
|
||||
r="161.65305" />
|
||||
<filter
|
||||
inkscape:label="Ridged Border"
|
||||
inkscape:menu="Bevels"
|
||||
inkscape:menu-tooltip="Ridged border with inner bevel"
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter5576-4-79">
|
||||
<feMorphology
|
||||
radius="4.3"
|
||||
in="SourceAlpha"
|
||||
result="result91"
|
||||
id="feMorphology5578-9-7" />
|
||||
<feComposite
|
||||
operator="out"
|
||||
in="SourceGraphic"
|
||||
in2="result91"
|
||||
id="feComposite5580-1-62" />
|
||||
<feGaussianBlur
|
||||
result="result0"
|
||||
stdDeviation="1.2"
|
||||
id="feGaussianBlur5582-2-7" />
|
||||
<feDiffuseLighting
|
||||
diffuseConstant="1"
|
||||
id="feDiffuseLighting5584-3-1">
|
||||
<feDistantLight
|
||||
elevation="66"
|
||||
azimuth="225"
|
||||
id="feDistantLight5586-1-5" />
|
||||
</feDiffuseLighting>
|
||||
<feBlend
|
||||
mode="multiply"
|
||||
in2="SourceGraphic"
|
||||
id="feBlend5588-8-8" />
|
||||
<feComposite
|
||||
operator="in"
|
||||
in2="SourceAlpha"
|
||||
id="feComposite5590-1-8" />
|
||||
</filter>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3301"
|
||||
id="linearGradient3299-7"
|
||||
x1="227.66476"
|
||||
y1="217.85138"
|
||||
x2="227.66476"
|
||||
y2="275.00342"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient3301">
|
||||
<stop
|
||||
id="stop3303"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3305"
|
||||
offset="1"
|
||||
style="stop-color:#868686;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask4481-9-56">
|
||||
<path
|
||||
style="clip-rule:evenodd;fill:#aaaaaa;fill-rule:evenodd"
|
||||
id="path4483-2-8"
|
||||
d="m 213.96734,236.83626 c -1.97572,1.50086 -5.71734,14.75814 -3.57441,17.84065 3.18643,4.58465 22.42412,-12.69851 20.66112,-17.24646 -1.81294,-4.67518 -15.35694,-1.41227 -17.08671,-0.59419 z m -9.6286,-7.34722 2.48938,3.78195 c 0,0 0.69017,1.04372 0.29628,3.40302 -0.6156,3.68976 -3.17495,13.25876 -3.32578,21.12255 -0.0183,0.94976 -0.91914,9.5039 7.21943,7.07006 8.1393,-2.43309 24.96824,-17.85854 28.33195,-24.69252 3.36372,-6.83399 -0.96483,-10.63865 -6.21591,-10.98709 -5.2511,-0.34921 -13.3456,0.21962 -17.06874,0.84795 -3.72313,0.62832 -3.49361,-0.75818 -6.67723,-4.3506 -0.23896,-0.26961 -5.04938,3.80468 -5.04938,3.80468 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</mask>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter6162-4">
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood6164-8" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite6166-8" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="6"
|
||||
result="blur"
|
||||
id="feGaussianBlur6168-3" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset6170-8" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="fbSourceGraphic"
|
||||
id="feComposite6172-7" />
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix6174-5" />
|
||||
<feFlood
|
||||
id="feFlood6176-2"
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
in="fbSourceGraphic" />
|
||||
<feComposite
|
||||
id="feComposite6178-4"
|
||||
in2="fbSourceGraphic"
|
||||
in="flood"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur6180-50"
|
||||
in="composite1"
|
||||
stdDeviation="6"
|
||||
result="blur" />
|
||||
<feOffset
|
||||
id="feOffset6182-5"
|
||||
dx="-6"
|
||||
dy="6"
|
||||
result="offset" />
|
||||
<feComposite
|
||||
id="feComposite6184-73"
|
||||
in2="offset"
|
||||
in="fbSourceGraphic"
|
||||
operator="over"
|
||||
result="composite2" />
|
||||
</filter>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4501"
|
||||
id="radialGradient4507-4-2"
|
||||
cx="143.59599"
|
||||
cy="139.937"
|
||||
fx="143.59599"
|
||||
fy="139.937"
|
||||
r="68.377998"
|
||||
gradientTransform="matrix(1.3366435,0.07829819,-0.1078591,1.8412818,-33.247188,-128.96975)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.5027778"
|
||||
inkscape:cx="180"
|
||||
inkscape:cy="180"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1136"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
units="px">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid678" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata1712">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(227.79363,99.489878)">
|
||||
<g
|
||||
transform="matrix(0.24862701,-0.09049283,0.09049283,0.24862701,-284.05249,-31.290898)"
|
||||
id="g4944-7">
|
||||
<g
|
||||
transform="rotate(19,545.20406,769.86173)"
|
||||
id="g4988-0-2">
|
||||
<g
|
||||
style="filter:url(#filter5799-3-7)"
|
||||
id="g5736-0-1">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="137.92564"
|
||||
y="176.00142"
|
||||
id="text5724-0-3"
|
||||
transform="rotate(1.0000002)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5726-6-4"
|
||||
x="137.92564"
|
||||
y="211.39204"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:180px;font-family:Overpass;-inkscape-font-specification:'Overpass Bold';letter-spacing:-10px;fill:#e6e6e6;fill-opacity:1" /></text>
|
||||
<g
|
||||
id="g6186-9">
|
||||
<path
|
||||
transform="translate(-1.9999998)"
|
||||
mask="url(#mask3913-3-9)"
|
||||
d="m 127.052,43.547 c 17.233,36.62 72.865,128.908 102.86,168.287 -2.858,14.11 -18.673,23.308 -29.809,18.791 L 84.761,64.024 c -0.07,-12.347 22.06,-27.271 42.291,-20.477 z"
|
||||
id="path2789-1-4"
|
||||
style="opacity:1;fill:#25514b"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
transform="translate(3.0630824e-7,8.0000003)"
|
||||
mask="url(#mask4168-6-8)"
|
||||
d="M 192.119,225.881 73.534,54.687 c 3.174,-9.061 16.868,-17.988 30.225,-18.875 22.158,44.223 78.164,134.394 111.831,178.223 -5.194,8.137 -14.62,12.648 -23.471,11.846 z"
|
||||
id="path2807-3-19"
|
||||
style="fill:#c8c7c5"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 11.004,141.618 C 4.711,123.341 14.425,103.424 32.702,97.131 L 249.423,22.512 c 18.277,-6.293 38.195,3.422 44.488,21.699 l 43.577,126.552 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 99.069,289.869 C 80.792,296.161 60.874,286.447 54.581,268.17 Z"
|
||||
id="path2645-3-5"
|
||||
style="fill:#7c858c"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 7.097,130.272 C 0.803,111.995 10.518,92.078 28.795,85.785 L 245.517,11.166 c 18.277,-6.293 38.194,3.422 44.488,21.699 l 43.577,126.552 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 95.162,278.523 c -18.277,6.293 -38.195,-3.422 -44.488,-21.699 z"
|
||||
id="path2651-0-7"
|
||||
style="fill:url(#linearGradient3544-5);fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;opacity:0.7;fill:url(#linearGradient4411);fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2655-0-4"
|
||||
d="m 156.599,246.825 13.562,-4.67 6.521,18.94 -13.562,4.67 z m 25.041,-8.622 13.562,-4.67 6.521,18.939 -13.562,4.67 z m 25.041,-8.622 13.563,-4.67 6.521,18.94 -13.562,4.67 z m 25.042,-8.623 13.562,-4.67 6.521,18.94 -13.562,4.67 z m 25.041,-8.622 13.562,-4.67 6.521,18.939 -13.562,4.67 z m -125.207,43.112 13.562,-4.67 6.521,18.94 -13.562,4.67 z" />
|
||||
<path
|
||||
d="M 2.568,124.472 C -3.725,106.195 5.989,86.278 24.266,79.985 L 245.516,3.807 c 18.277,-6.292 38.195,3.422 44.488,21.699 l 41.752,121.253 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 88.808,267.424 C 70.531,273.717 50.613,264.002 44.32,245.725 Z"
|
||||
id="path2659-0-1"
|
||||
style="fill:url(#radialGradient3548-5-9);fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 1.917,122.581 C -4.376,104.304 5.338,84.387 23.615,78.094 L 244.865,1.916 c 18.277,-6.293 38.194,3.422 44.488,21.699 l 41.752,121.253 c 6.293,18.277 -3.421,38.194 -21.698,44.487 L 88.157,265.533 C 69.88,271.826 49.962,262.111 43.669,243.834 Z"
|
||||
id="path2665-2-2"
|
||||
style="fill:#7c858c"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 5.763,123.175 C -0.35,105.42 9.086,86.072 26.841,79.958 L 243.342,5.416 c 17.755,-6.113 37.104,3.324 43.217,21.079 l 38.787,112.64 c 6.113,17.755 -3.323,37.103 -21.078,43.216 L 87.767,256.893 C 70.012,263.006 50.664,253.569 44.55,235.814 Z"
|
||||
id="path2671-2-2"
|
||||
style="fill:url(#radialGradient3552-6-7);fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 7.427,123.74 C 1.493,106.508 10.652,87.728 27.885,81.795 L 243.792,7.457 c 17.232,-5.933 36.012,3.226 41.946,20.459 l 39.771,115.497 c 5.934,17.233 -3.226,36.012 -20.458,41.945 L 89.143,259.696 C 71.91,265.629 53.131,256.469 47.197,239.237 Z"
|
||||
id="path2677-2-1"
|
||||
style="fill:#3e3e3e"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 11.049995,126.45117 c -5.3939998,-15.666 2.932,-32.737999 18.598,-38.131999 L 245.226,14.094171 c 15.666,-5.3940003 32.738,2.933 38.132,18.599 l 39.799,115.579999 c 5.394,15.666 -2.932,32.738 -18.598,38.131 l -215.578005,74.225 c -15.666,5.394 -32.738,-2.933 -38.133,-18.599 z"
|
||||
id="path3801-4-6"
|
||||
style="fill:#005f61;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2695-7-20"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 30,102.111 c -1.771,-7.695 2.602,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.737 1.025,2.977 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.069,-0.024 4.342,-2.237 7.88,5.746 0.13,0.293 0.571,0.074 0.513,-0.178 z"
|
||||
id="path2697-9-2"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 32.867,154.308 c 7.274,17.049 17.313,28.317 23.916,26.044 6.602,-2.273 7.575,-17.334 2.812,-35.247 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.694 -1.14,1.345 -1.514,2.022 -7.335,-18.703 -18.159,-31.442 -25.141,-29.038 -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.304 -1.51,-0.505 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.212 2.709,2.435 6.121,7.686 7.865,10.515 z"
|
||||
id="path2699-8-29"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 30.621,139.494 c 5.498,15.966 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.966 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.354,16.665 -0.857,32.632 z m 23.197,28.556 c 0.536,1.558 1.515,2.634 2.186,2.403 0.671,-0.231 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.186,-2.403 -0.67,0.231 -0.779,1.682 -0.243,3.239 z m -4.7,1.619 c 0.536,1.558 1.515,2.634 2.186,2.403 0.67,-0.231 0.779,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.634 -2.186,-2.402 -0.671,0.23 -0.78,1.68 -0.243,3.238 z"
|
||||
id="path2701-5-7"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2703-4-4">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,152.1324,301.1998)"
|
||||
cx="50.867001"
|
||||
cy="163.328"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2705-7-3"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2707-8-5"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2709-6-6"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 64.282,90.307 c -1.771,-7.695 2.603,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.737 1.025,2.978 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.07,-0.024 4.342,-2.237 7.88,5.746 0.13,0.292 0.572,0.074 0.513,-0.178 z"
|
||||
id="path2711-0-1"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 67.15,142.503 c 7.274,17.049 17.313,28.317 23.916,26.044 6.602,-2.273 7.575,-17.333 2.812,-35.247 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.694 -1.139,1.345 -1.514,2.022 -7.334,-18.704 -18.159,-31.442 -25.141,-29.038 -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.304 -1.51,-0.505 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.211 2.709,2.436 6.121,7.687 7.865,10.516 z"
|
||||
id="path2713-0-4"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 64.904,127.689 c 5.498,15.967 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.967 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.355,16.666 -0.857,32.632 z m 23.197,28.557 c 0.536,1.558 1.515,2.633 2.186,2.402 0.671,-0.231 0.779,-1.681 0.243,-3.239 -0.537,-1.558 -1.515,-2.633 -2.186,-2.402 -0.671,0.231 -0.779,1.681 -0.243,3.239 z m -4.7,1.619 c 0.536,1.558 1.515,2.633 2.185,2.402 0.67,-0.231 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.186,-2.402 -0.671,0.231 -0.779,1.681 -0.242,3.239 z"
|
||||
id="path2715-6-0"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2717-4-3">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,214.9873,267.075)"
|
||||
cx="85.149002"
|
||||
cy="151.524"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2719-3-1"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2721-7-2"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2723-5-77"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 98.565,78.502 c -1.771,-7.694 2.602,-9.355 2.672,-9.379 1.371,-0.472 6.183,-1.554 7.316,1.736 1.025,2.978 -4.531,7.82 -9.583,9.56 -5.015,1.727 -12.469,1.364 -13.494,-1.613 -1.133,-3.291 3.325,-5.401 4.696,-5.873 0.069,-0.024 4.342,-2.237 7.88,5.746 0.13,0.293 0.572,0.075 0.513,-0.177 z"
|
||||
id="path2725-8-98"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 101.433,130.699 c 7.274,17.048 17.313,28.317 23.915,26.043 6.602,-2.274 7.576,-17.333 2.812,-35.246 -0.367,-3.303 -0.911,-9.542 -0.275,-13.127 0.464,-2.615 -0.112,-3.379 -2.212,-1.079 -0.634,0.695 -1.139,1.345 -1.514,2.022 C 116.825,90.609 106,77.871 99.019,80.274 c -6.982,2.404 -7.669,19.106 -1.934,38.36 -0.712,-0.303 -1.51,-0.504 -2.438,-0.662 -3.071,-0.52 -3.054,0.437 -1.079,2.212 2.709,2.435 6.121,7.686 7.865,10.515 z"
|
||||
id="path2727-1-1"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 99.187,115.885 c 5.498,15.967 14.795,27.243 20.766,25.187 5.971,-2.056 6.355,-16.666 0.857,-32.632 -5.498,-15.967 -14.795,-27.243 -20.766,-25.187 -5.971,2.056 -6.355,16.665 -0.857,32.632 z m 23.197,28.556 c 0.536,1.558 1.515,2.633 2.186,2.403 0.67,-0.231 0.779,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.634 -2.185,-2.403 -0.671,0.232 -0.78,1.682 -0.244,3.239 z m -4.701,1.619 c 0.536,1.558 1.515,2.633 2.186,2.402 0.671,-0.23 0.78,-1.681 0.243,-3.239 -0.536,-1.558 -1.515,-2.633 -2.185,-2.402 -0.671,0.231 -0.78,1.681 -0.244,3.239 z"
|
||||
id="path2729-0-0"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2731-9-7">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,277.8429,232.9489)"
|
||||
cx="119.432"
|
||||
cy="139.72"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2733-3-6"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2735-0-0"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2739-2-1"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 96.575,238.982 c 3.342,7.154 7.811,5.77 7.88,5.746 1.371,-0.472 5.829,-2.583 4.696,-5.873 -1.025,-2.977 -8.385,-3.373 -13.437,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.946,2.208 7.316,1.736 0.07,-0.023 4.799,-0.91 2.672,-9.379 -0.078,-0.31 0.403,-0.41 0.513,-0.176 z"
|
||||
id="path2741-6-0"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 66.699,196.085 c -4.764,-17.913 -3.791,-32.973 2.812,-35.247 6.602,-2.273 16.641,8.995 23.915,26.043 1.744,2.829 5.156,8.08 7.865,10.514 1.976,1.775 1.992,2.732 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.735,19.254 5.048,35.956 -1.934,38.36 -6.982,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.677 -0.88,1.328 -1.514,2.022 -2.1,2.3 -2.675,1.536 -2.212,-1.079 0.637,-3.583 0.093,-9.822 -0.274,-13.125 z"
|
||||
id="path2743-4-2"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 74.049,209.142 c -5.498,-15.966 -5.114,-30.576 0.857,-32.632 5.971,-2.056 15.269,9.22 20.766,25.187 5.498,15.967 5.114,30.577 -0.857,32.633 -5.971,2.054 -15.268,-9.222 -20.766,-25.188 z m 0.699,-36.785 c -0.536,-1.558 -0.428,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.185,2.403 0.537,1.558 0.427,3.008 -0.243,3.239 -0.67,0.231 -1.649,-0.845 -2.185,-2.403 z m -4.701,1.619 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.186,2.403 0.536,1.558 0.427,3.008 -0.243,3.239 -0.67,0.231 -1.65,-0.845 -2.186,-2.403 z"
|
||||
id="path2745-3-5"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2747-8-1">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,204.5578,321.744)"
|
||||
cx="75.361"
|
||||
cy="177.98599"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2749-6-9"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2751-7-7"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2753-0-1"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 130.858,227.178 c 3.341,7.154 7.81,5.77 7.88,5.746 1.371,-0.472 5.829,-2.582 4.696,-5.873 -1.025,-2.977 -8.385,-3.373 -13.437,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.946,2.208 7.316,1.737 0.069,-0.024 4.799,-0.91 2.672,-9.379 -0.078,-0.312 0.404,-0.412 0.513,-0.177 z"
|
||||
id="path2755-8-3"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 100.982,184.281 c -4.764,-17.913 -3.791,-32.973 2.812,-35.247 6.602,-2.273 16.641,8.995 23.915,26.044 1.745,2.829 5.157,8.08 7.865,10.513 1.976,1.775 1.993,2.732 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.736,19.254 5.048,35.957 -1.934,38.36 -6.981,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.678 -0.879,1.328 -1.513,2.022 -2.1,2.301 -2.676,1.537 -2.212,-1.079 0.636,-3.584 0.092,-9.822 -0.275,-13.125 z"
|
||||
id="path2757-1-1"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 108.332,197.337 c -5.498,-15.966 -5.114,-30.576 0.857,-32.632 5.971,-2.056 15.268,9.22 20.766,25.187 5.498,15.966 5.114,30.576 -0.857,32.632 -5.971,2.056 -15.268,-9.22 -20.766,-25.187 z m 0.699,-36.784 c -0.536,-1.558 -0.428,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.536,1.558 0.427,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.845 -2.186,-2.402 z m -4.701,1.618 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.67,-0.231 1.649,0.845 2.185,2.402 0.536,1.557 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.649,-0.844 -2.185,-2.402 z"
|
||||
id="path2759-9-2"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2761-8-0">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3255,-0.3255,-0.9455,267.4128,287.6192)"
|
||||
cx="109.643"
|
||||
cy="166.18201"
|
||||
rx="4.428"
|
||||
ry="2.142"
|
||||
id="ellipse2763-1-6"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2765-6-8"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2767-4-7"
|
||||
transform="translate(0.31798936,1.8925831)">
|
||||
<path
|
||||
d="m 165.141,215.373 c 3.342,7.154 7.811,5.77 7.88,5.746 1.371,-0.472 5.829,-2.582 4.696,-5.873 -1.025,-2.977 -8.385,-3.372 -13.438,-1.633 -5.015,1.727 -10.665,6.602 -9.64,9.579 1.133,3.291 5.945,2.208 7.316,1.737 0.069,-0.024 4.799,-0.91 2.672,-9.379 -0.078,-0.311 0.404,-0.411 0.514,-0.177 z"
|
||||
id="path2769-8-4"
|
||||
style="clip-rule:evenodd;fill:#ffe600;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 135.265,172.476 c -4.764,-17.913 -3.791,-32.973 2.812,-35.246 6.603,-2.273 16.641,8.995 23.916,26.043 1.744,2.829 5.156,8.08 7.865,10.514 1.975,1.775 1.992,2.731 -1.079,2.212 -0.927,-0.157 -1.726,-0.358 -2.438,-0.662 5.735,19.254 5.048,35.957 -1.934,38.36 -6.982,2.404 -17.806,-10.334 -25.141,-29.038 -0.374,0.678 -0.88,1.328 -1.514,2.022 -2.1,2.301 -2.676,1.537 -2.212,-1.079 0.636,-3.584 0.092,-9.823 -0.275,-13.126 z"
|
||||
id="path2771-5-9"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 142.615,185.533 c -5.498,-15.967 -5.114,-30.577 0.857,-32.633 5.971,-2.056 15.269,9.221 20.766,25.187 5.497,15.966 5.114,30.576 -0.857,32.632 -5.971,2.056 -15.268,-9.22 -20.766,-25.186 z m 0.699,-36.785 c -0.537,-1.558 -0.428,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.537,1.558 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.844 -2.186,-2.402 z m -4.701,1.619 c -0.536,-1.558 -0.427,-3.008 0.243,-3.239 0.671,-0.231 1.649,0.845 2.186,2.402 0.537,1.558 0.428,3.008 -0.243,3.239 -0.671,0.231 -1.65,-0.845 -2.186,-2.402 z"
|
||||
id="path2773-0-2"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g2775-1-4">
|
||||
<ellipse
|
||||
transform="matrix(-0.9455,0.3256,-0.3256,-0.9455,330.2729,253.4852)"
|
||||
cx="143.92599"
|
||||
cy="154.379"
|
||||
rx="4.4289999"
|
||||
ry="2.142"
|
||||
id="ellipse2777-5-4"
|
||||
style="fill:#ffe600" />
|
||||
<path
|
||||
d=""
|
||||
id="path2779-9-59"
|
||||
style="fill:#ffe600"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#3c857c;fill-opacity:1;filter:url(#filter5576-4-79)"
|
||||
id="path2781-7-1"
|
||||
d="M 95.108,61.776 244.59003,10.309068 c 15.666,-5.3939967 32.82494,3.185516 38.32619,19.163008 l 40.59032,117.878134 c 5.50125,15.97749 -2.7378,33.302 -18.40381,38.69497 l -103.98001,35.80096 z" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:60px;line-height:69.99999881%;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:start;letter-spacing:-2px;word-spacing:0px;text-anchor:start;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="249.66805"
|
||||
y="150.21611"
|
||||
id="text6154-2"
|
||||
transform="rotate(-19)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan6156-8"
|
||||
x="249.26804"
|
||||
y="150.21611"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:57.33333206px;line-height:69.99999881%;font-family:Overpass;-inkscape-font-specification:'Overpass Bold';text-align:end;letter-spacing:-3px;text-anchor:end;fill:#e6e6e6;fill-opacity:1">libvi<tspan
|
||||
id="tspan4413-9"
|
||||
style="font-size:57.33333206px;line-height:69.99999881%;text-align:end;letter-spacing:-0.40000001px;word-spacing:0px;text-anchor:end">rt</tspan></tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="249.66805"
|
||||
y="192.53539"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.33333206px;line-height:69.99999881%;font-family:Overpass;-inkscape-font-specification:'Overpass, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:end;letter-spacing:-3px;writing-mode:lr-tb;text-anchor:end;fill:#e6e6e6;fill-opacity:1"
|
||||
id="tspan4946-6" /><tspan
|
||||
id="tspan4813-0"
|
||||
sodipodi:role="line"
|
||||
x="249.66805"
|
||||
y="234.53539"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:69.99999881%;font-family:Overpass;-inkscape-font-specification:'Overpass Bold';text-align:end;letter-spacing:-3px;text-anchor:end;fill:#e6e6e6;fill-opacity:1" /></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#3e3e3e;fill-rule:evenodd"
|
||||
id="path2795-2-6"
|
||||
d="m 218.304,241.188 c -2.9,1.834 -8.917,18.762 -6.01,22.858 4.325,6.093 32.696,-15.214 30.405,-21.183 -2.356,-6.136 -21.883,-2.64 -24.395,-1.675 z m -14.341,-9.677 3.368,5.018 c 0,0 0.934,1.385 0.252,4.412 -1.066,4.734 -5.207,16.96 -5.819,27.111 -0.074,1.226 -1.793,12.229 9.964,9.517 11.758,-2.711 36.593,-21.745 41.746,-30.395 5.153,-8.65 -0.843,-13.795 -8.332,-14.524 -7.489,-0.73 -19.089,-0.425 -24.443,0.189 -5.354,0.614 -4.956,-1.165 -9.326,-5.975 -0.327,-0.361 -7.41,4.647 -7.41,4.647 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:url(#linearGradient3299-7);fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2797-8-4"
|
||||
d="m 216.503,238.52 c -2.9,1.834 -8.917,18.762 -6.009,22.858 4.324,6.092 32.696,-15.214 30.405,-21.183 -2.356,-6.136 -21.882,-2.64 -24.396,-1.675 z m -13.394,-10.003 3.368,5.018 c 0,0 0.934,1.385 0.252,4.412 -1.066,4.734 -5.207,16.96 -5.819,27.111 -0.074,1.226 -1.793,12.229 9.964,9.517 11.758,-2.711 36.593,-21.745 41.746,-30.395 5.153,-8.65 -0.843,-13.795 -8.332,-14.524 -7.489,-0.73 -19.089,-0.425 -24.443,0.189 -5.354,0.614 -4.956,-1.165 -9.326,-5.975 -0.328,-0.361 -7.41,4.647 -7.41,4.647 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#54575a;fill-opacity:1"
|
||||
id="path2799-9-0"
|
||||
d="m 214.776,227.853 c -2.797,3.296 -6.24,5.845 -9.926,7.474 0.432,-2.596 -0.374,-3.792 -0.374,-3.792 l -3.368,-5.018 c 0,0 7.083,-5.008 7.41,-4.647 3.294,3.624 3.879,5.527 6.258,5.983 z"
|
||||
transform="matrix(1.4295286,0.05310508,-0.05040644,1.2918715,-77.431354,-78.804771)"
|
||||
mask="url(#mask4481-9-56)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c8c7c5"
|
||||
id="path2803-5-9"
|
||||
d="m 116.052,45.547 c 17.234,36.62 72.865,128.908 102.86,168.287 -2.858,14.11 -18.673,23.308 -29.809,18.791 L 73.761,66.024 c -0.07,-12.347 22.06,-27.271 42.291,-20.477 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#7c858c;filter:url(#filter6162-4)"
|
||||
id="path2805-0-45"
|
||||
d="m 113.124,44.661 c 17.233,36.62 75.371,131.675 105.366,171.054 -4.069,13.505 -18.428,20.812 -30.299,17.44 L 72.849,66.555 C 72.779,54.208 95.748,39.956 113.124,44.661 Z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:url(#radialGradient4507-4-2);fill-opacity:1;fill-rule:evenodd"
|
||||
id="path2809-2-4"
|
||||
d="M 203.927,231.912 80.383,53.463 c 3.583,-3.084 8.164,-5.73 13.116,-7.479 6.902,12.484 25.22,44.608 54.336,88.542 22.713,34.272 46.085,68.024 64.139,91.973 -2.35,2.316 -5.102,4.145 -8.047,5.413 z m -3.597,1.245 c -1.392,0.368 -2.805,0.615 -4.223,0.733 L 75.218,59.278 c 0.699,-1.099 1.537,-2.181 2.494,-3.23 z" />
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
transform="rotate(1.0000002)"
|
||||
id="text5053-7-6"
|
||||
y="53.587437"
|
||||
x="-408.52026"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="88.978058"
|
||||
x="-408.52026"
|
||||
id="tspan5055-2-6"
|
||||
sodipodi:role="line" /></text>
|
||||
<text
|
||||
transform="rotate(1.0000002)"
|
||||
id="text5057-8-3"
|
||||
y="-232.88652"
|
||||
x="-525.88629"
|
||||
style="font-style:normal;font-weight:normal;font-size:90px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="-153.25761"
|
||||
x="-525.88629"
|
||||
id="tspan5059-1-9"
|
||||
sodipodi:role="line" /></text>
|
||||
<text
|
||||
transform="rotate(1.0000002)"
|
||||
id="text5069-7-9"
|
||||
y="-200.07454"
|
||||
x="543.02759"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="-164.68391"
|
||||
x="543.02759"
|
||||
id="tspan5071-7-52"
|
||||
sodipodi:role="line" /></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:25px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="582.63574"
|
||||
y="-37.070248"
|
||||
id="text4950-1"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4948-3"
|
||||
x="582.63574"
|
||||
y="-14.179623" /></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 38 KiB |