forked from ungleich-public/cdist
Compare commits
7,177 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
90488d2e9e | ||
|
|
be6e7fcc08 | ||
|
|
d4bf41ce3b | ||
| 7de931829a | |||
| 17466452f0 | |||
| 7d8fc8a5c3 | |||
| 6243165645 | |||
| 483f0c1614 | |||
| ff6b2d0abf | |||
|
|
339ca9347b | ||
| 5a7542db75 | |||
| 0ae37b3445 | |||
| 5e6cde1398 | |||
|
|
77d9a757ec | ||
| e5adcf451b | |||
|
|
9839c2d8ec | ||
| 1edc4d0a60 | |||
| 3d58c9b24f | |||
|
|
6c8c692a22 | ||
|
|
abbc7dfc37 | ||
|
|
8b915b15b5 | ||
|
|
2df2578e36 | ||
|
|
6f8c774cb0 | ||
| 54a5cb17b7 | |||
| cb0fa0f2e4 | |||
|
|
af54fe6feb | ||
|
|
22039284f5 | ||
| bd44c023d3 | |||
|
|
e0150e7796 | ||
| 15e1ce6450 | |||
|
|
08ff41efde | ||
| c2c5668b70 | |||
| 6e3ad11ea0 | |||
|
|
fc6ddac718 | ||
|
3a321469a8 |
|||
| e2500248f2 | |||
| 0b710c6173 | |||
| c33d99ee12 | |||
| 560374a686 | |||
| fc9bd40c9a | |||
| 5b7cca99f7 | |||
| 15c642a9b7 | |||
|
|
bf222d0543 | ||
| 433399d4dc | |||
| 12c536dbf9 | |||
| 67a6965e1d | |||
| 398ee1e416 | |||
| b209adcfca | |||
|
72ff48154c |
|||
| 3d7b31cbb4 | |||
| d246e06710 | |||
| 12787ffe2c | |||
| 7b6789ddeb | |||
|
cd4acde67e |
|||
|
5bf0c71e7a |
|||
|
aabef7f44a |
|||
|
b7f392fa37 |
|||
|
90488fcebc |
|||
|
0f6e48dbc6 |
|||
|
d7fdc8006f |
|||
|
fcd730f905 |
|||
|
|
b8eb6e984c | ||
| b762ea0233 | |||
|
|
44741e714b | ||
|
|
0546283d0e | ||
|
|
46ed48d546 | ||
| c683bce66e | |||
|
e1e1348998 |
|||
|
67f85546ec |
|||
|
|
05c2a62191 | ||
|
|
5af1317c29 | ||
|
|
4a05669765 | ||
|
|
23fbfaf035 | ||
|
|
2ffa895f57 | ||
|
|
abc6d009b2 | ||
|
|
edcac70b2a | ||
|
|
3ae5a606ca | ||
| 841ebb9b88 | |||
| 39dcb41349 | |||
| d37772f3ea | |||
| 49a9bcdf93 | |||
| f9ce4bc33a | |||
|
|
2a0c073d40 | ||
|
|
bbcc81a984 | ||
|
|
0b3b47396f | ||
|
|
a7d6481a7d | ||
|
|
83fe6e9f5b | ||
|
|
e108cbc205 | ||
|
|
53334fb4eb | ||
|
|
542674dae8 | ||
| b0e00efe64 | |||
|
4156fea900 |
|||
|
|
cb8695cc88 | ||
| 7ce68e3cb7 | |||
| 67bcc6cae3 | |||
|
|
71fee1fd6b | ||
| 4307e8e7fa | |||
|
|
fed01ded83 | ||
| f730aa7679 | |||
|
|
c7daaabc6c | ||
|
|
fbc9594729 | ||
| bf0c355fe7 | |||
|
|
24c9406ea0 | ||
|
|
de11666161 | ||
| 8b160841ad | |||
|
|
5229337611 | ||
| 917a5d1aa8 | |||
|
46b5c24cd2 |
|||
|
0e611af2a6 |
|||
|
|
65c43d3c1d | ||
|
|
77dab4c5c6 | ||
|
|
3e76d1cd3f | ||
| b8f601ee15 | |||
|
cf0032d667 |
|||
|
7a5896acfa |
|||
|
485283f2e5 |
|||
| 166b58aeea | |||
| 521241d741 | |||
| be92731c5c | |||
|
|
853e5cf7b4 | ||
| d8da298cdf | |||
|
|
44eeb4bbfc | ||
|
30ba796d06 |
|||
|
|
243a4b904a | ||
| 6528fd1c77 | |||
| 99188b4822 | |||
| 62ea1d2721 | |||
|
a90e642c13 |
|||
|
60753ddfcc |
|||
| d937d53f3d | |||
| 2db40d8d70 | |||
|
7b3f268df2 |
|||
| b726697e07 | |||
| a3102022e1 | |||
|
|
c308a28969 | ||
| 02aa88463a | |||
|
|
6ede76b08b | ||
|
|
d596986af8 | ||
|
|
defa3c22ea | ||
| d2ce55ea6e | |||
|
e0c52d0e1d |
|||
|
b8733c65f5 |
|||
|
ab10b453f2 |
|||
|
75c71f69c1 |
|||
|
503a06ed28 |
|||
| 6210cccb28 | |||
| f14623e45f | |||
| 81b426e4e2 | |||
| a696f3cf00 | |||
| 0b05a8f5f7 | |||
| c00c8c2012 | |||
|
|
a42ebc7a78 | ||
|
|
3a25b80466 | ||
| 3e190c3481 | |||
|
|
9cf19388ab | ||
|
|
a4122882f2 | ||
|
2232435c22 |
|||
|
3a9dd5b166 |
|||
|
92fff7cb77 |
|||
|
|
0f05f38384 | ||
|
|
0d33407b18 | ||
|
|
8296051653 | ||
|
|
3cf93249c3 | ||
|
|
beb8da6d5f | ||
|
|
58b279a8d0 | ||
|
|
6ac8cbf98f | ||
|
|
512e9b23c0 | ||
| 71d79ed6ee | |||
|
13e2ad175f |
|||
|
bb24d632d6 |
|||
|
a4464209b6 |
|||
|
acf9bf91f1 |
|||
|
|
1bb696a410 | ||
| 2f05467358 | |||
|
|
1c047353a9 | ||
|
|
19bf37be1a | ||
|
|
686e4f0f2d | ||
|
|
bef1433ba3 | ||
|
|
12c2995494 | ||
|
|
e0416403c4 | ||
|
|
2ccc03fef1 | ||
|
|
92b8942a8c | ||
|
|
9ec01d9f97 | ||
| e27e88512b | |||
|
d2eec60668 |
|||
|
|
750c71fb5a | ||
|
|
199effb7ef | ||
|
|
ab811ad282 | ||
| ce79a2069c | |||
| c981f654f1 | |||
| 87698395b8 | |||
|
|
4c2d273f07 | ||
|
|
f984a918b9 | ||
|
|
1e765fcab7 | ||
| 28c13bd29b | |||
|
|
985252585c | ||
|
|
167c2ad7ea | ||
|
|
7a0b697f4c | ||
|
|
10ca1c12fd | ||
| c55397766e | |||
|
|
e47c4dd8a4 | ||
|
|
31cc592aa1 | ||
| 2f4a7e1a94 | |||
|
|
fb19f34266 | ||
|
|
ecba284fc8 | ||
|
|
ea0126dd81 | ||
|
|
e7d33891df | ||
| 1bc0d912bf | |||
|
|
8ef19d47f6 | ||
|
|
60fd7ba1f3 | ||
| dc66efa690 | |||
| 1a74470c4d | |||
| 0734288483 | |||
|
|
22f637c15b | ||
| 6358885d26 | |||
|
|
5e0572189f | ||
| b3a9c907ad | |||
| e854db096e | |||
| d1f45d3524 | |||
|
|
0835f414a5 | ||
| 2ce1fce767 | |||
| 951712740f | |||
| a9d7dfb2ed | |||
| 7398382890 | |||
| 2db0ef7c98 | |||
| 8dc6ab9738 | |||
| 4717e5ceff | |||
| aa80c09c80 | |||
| b832af5e3b | |||
| e49da474c4 | |||
| bc145bbc27 | |||
|
|
65a6a2ed52 | ||
| c8141d28c3 | |||
| cda17be38a | |||
| 73a03d75d7 | |||
| 8eccacec59 | |||
|
|
6b18cace75 | ||
|
|
f9ebb4333c | ||
|
|
4967c7ebbb | ||
|
|
3f605c31ac | ||
|
|
0f2ff47738 | ||
|
|
5051d4f40b | ||
|
|
891c98567e | ||
|
|
803367b316 | ||
|
|
1b49fec972 | ||
|
|
b4060720dc | ||
|
|
50bcd95105 | ||
|
|
534d5f6bb5 | ||
|
|
c51d68a737 | ||
|
|
35cde3e666 | ||
|
|
92a50da487 | ||
|
|
6e9b13d949 | ||
| 878a65a8b7 | |||
| cce470b556 | |||
|
|
2954347771 | ||
|
|
f0e1b3b849 | ||
|
|
c819548343 | ||
|
|
bd8ab8f26f | ||
|
|
8753b7eedf | ||
|
|
766198912d | ||
|
|
7cf85c4659 | ||
|
|
a10d43bc69 | ||
|
|
4bae2863db | ||
| 3566901e1c | |||
|
|
8dc2c4207c | ||
|
|
99d82fd0d5 | ||
|
|
1180f13ed6 | ||
|
|
4859c27900 | ||
|
|
7b7ca4d385 | ||
|
|
c36df82882 | ||
|
|
932e2496ed | ||
|
|
71f2283117 | ||
| f87da8150c | |||
| ae747ac021 | |||
| 27aca06fb8 | |||
| fca35fc858 | |||
| 645734c629 | |||
| fafa3d9ea5 | |||
| 49aec0b5e4 | |||
| c4d19a2319 | |||
|
|
69b8bc9af0 | ||
|
|
bc2948a8a5 | ||
| 0d96b31b56 | |||
| a5169ad858 | |||
|
|
a58f5ffa7f | ||
| 0546d6e476 | |||
|
|
14c81d6c7e | ||
| a1987fe410 | |||
| c5ca4cd2e1 | |||
|
|
2966296173 | ||
| 226f665fb5 | |||
| 1c61989c03 | |||
| bed08c2c5c | |||
| 3930f69456 | |||
| 087be130fa | |||
|
|
2d19856840 | ||
| ba7d16a155 | |||
|
|
d44b5cfdc9 | ||
|
|
c7fa2efe6b | ||
| 74426a7827 | |||
|
|
1055e92545 | ||
| a1db5c3d0e | |||
| bee255c1ae | |||
| f568462e49 | |||
| 84172550df | |||
|
|
23e0da521c | ||
|
|
803a9d62a7 | ||
| a234445e85 | |||
|
|
82eadb6994 | ||
| 58b28d2d75 | |||
| 9d4f69250e | |||
| 6c539d67af | |||
| d30cd5c2b2 | |||
|
|
87faffd875 | ||
|
|
eeb9871919 | ||
|
|
575bb62dc5 | ||
|
|
c1c60e3374 | ||
|
|
dcef2c19f5 | ||
|
|
f44888f192 | ||
|
|
cc29e54b85 | ||
|
|
54e689f7c2 | ||
|
|
f75d477209 | ||
|
|
76aa00b12e | ||
|
|
5092752786 | ||
|
|
a07a458871 | ||
| 105797ccb4 | |||
| 17fb8bb5d5 | |||
| ac31e95ec0 | |||
|
|
ebf471e8d0 | ||
|
|
2f70a8b540 | ||
|
|
c39eb1dbce | ||
|
|
0ee3fda94d | ||
|
|
f82e0167aa | ||
|
|
e2d4f8037a | ||
|
|
21dd500c05 | ||
|
|
87a0d91587 | ||
|
|
702f3eba4f | ||
|
|
3e48ef9e11 | ||
|
|
ba90651052 | ||
| bf9d70bb8c | |||
| 461c287323 | |||
| 304f420072 | |||
| 792b4b1076 | |||
| a95eab77a5 | |||
|
|
d2506ac04e | ||
|
|
fded60bd0f | ||
| fe8920740f | |||
| 729fdb9c1a | |||
| 1b3e1acd22 | |||
| 77397514ca | |||
| 9fc6ee0948 | |||
| 91bcc2a293 | |||
| 7777580d8f | |||
| b0f3bb3350 | |||
|
|
10abe514b8 | ||
|
|
348c6eedc9 | ||
|
|
c7c3075f62 | ||
|
|
0f1df5ef68 | ||
| bd9b21394f | |||
|
|
d28a70a73c | ||
| 67f1475a20 | |||
|
|
df881c0f98 | ||
|
|
2be8c63458 | ||
|
|
ade69729dd | ||
|
|
9d40500570 | ||
|
|
3e5f18d409 | ||
|
|
ec984f81b5 | ||
|
|
dfe9e08c28 | ||
|
|
e264fb004f | ||
|
|
c1ae3ccb2f | ||
|
|
a6c37095f1 | ||
|
|
7b30119504 | ||
|
|
63d41a1053 | ||
|
|
4aebb1f127 | ||
|
|
8728817af6 | ||
|
|
b99ca3cbdf | ||
|
|
49e867fab4 | ||
|
|
0840afce03 | ||
|
|
fe26c119b5 | ||
|
|
c37253b852 | ||
|
|
3a6b085145 | ||
|
|
f782a5a370 | ||
|
|
d453d964e1 | ||
|
|
179815b5e9 | ||
|
|
4da3968118 | ||
|
|
3ef638a611 | ||
|
|
cc599dab15 | ||
|
|
e7369a1f99 | ||
|
|
3a3be36310 | ||
|
|
d3574b2d3e | ||
|
|
d8f20a6a20 | ||
|
|
a09120977f | ||
|
|
55e7b32449 | ||
|
|
e30ecdda53 | ||
|
|
09dfcfe81e | ||
|
|
91d99bf08a | ||
|
|
87b46a6224 | ||
|
|
b9ad22595f | ||
|
|
82a9aa7902 | ||
|
|
9277e0ba19 | ||
| eda96a06a0 | |||
|
|
367da4b77e | ||
| aa5e882fce | |||
|
|
687c1d2dd9 | ||
| b139ba2a5c | |||
| f96f23e970 | |||
| 716cd37281 | |||
| e3d906a85f | |||
| 6964070282 | |||
|
|
955b847276 | ||
| 112fb984c7 | |||
| b2e6afb57e | |||
| d20fb74324 | |||
| 507fa6fa93 | |||
| 54d83a6211 | |||
| e55db1b427 | |||
| b41d80075a | |||
| 42d5d6c3e2 | |||
| 65c8af4ba3 | |||
| 174aa77280 | |||
| 1614b62f70 | |||
| fd04c03613 | |||
| 86057cef19 | |||
| fdc1ab93e9 | |||
| 3f1939716f | |||
| 45d51c0e15 | |||
| 8ecae42199 | |||
|
|
4df5c91912 | ||
| 1057ceef01 | |||
| c030deea3d | |||
| 68a280d51a | |||
|
|
5aeed14b1b | ||
|
|
3fa74b454a | ||
|
|
52b5f05163 | ||
| 34a7d8c280 | |||
| f994226d0e | |||
|
|
652c891858 | ||
| 84ade29ca9 | |||
|
|
73d6c9d469 | ||
| 8ab1b6a03d | |||
| 84a7818121 | |||
|
|
b6922508b9 | ||
|
|
0fc10749ed | ||
|
|
89a0080e13 | ||
| 139a782c96 | |||
| 2e6c12c27c | |||
| 89b6215115 | |||
| decc0ad54d | |||
|
|
2885c6a248 | ||
|
|
53b91adbd8 | ||
|
|
6b262a61c1 | ||
| a20ab63e60 | |||
| b1375464cc | |||
| f5b534df71 | |||
|
|
b5a40eb0d1 | ||
| a4a3b98568 | |||
|
|
c17541f24c | ||
|
|
ba26a437be | ||
| a8ea56253c | |||
| 2c1eca9ee7 | |||
| 52b75e513f | |||
| d239169c4f | |||
| 502d753047 | |||
|
|
6fed178529 | ||
|
|
8f94a226c7 | ||
| d6b44769e1 | |||
|
|
fa967631e3 | ||
|
|
74dd47c8c3 | ||
| 7b0a4f6831 | |||
| 54c525e36c | |||
| 4082359a2f | |||
| 6f021889ee | |||
|
17ab4bd80c |
|||
|
|
b370b70ff4 | ||
|
|
7b480f4293 | ||
|
|
71710fa00a | ||
|
|
885d5a58f4 | ||
| 935f2395bc | |||
| d37d2dc307 | |||
| 7e1428ab3c | |||
|
|
c053a2c4a0 | ||
|
|
f5b367dfdb | ||
|
|
76bb214b53 | ||
| a5f25faf25 | |||
| a6cd767c8f | |||
|
|
3a87a447d0 | ||
|
|
5dfc996feb | ||
|
|
627d215b63 | ||
| 5c5890d458 | |||
|
|
d26c36914a | ||
|
|
463b6cd6b5 | ||
| 8a8a48313c | |||
| 73f1937636 | |||
| 1b18b9487e | |||
| 263c7a90a8 | |||
|
|
70d1228dc0 | ||
|
|
511d8c96aa | ||
|
|
a923e75d9b | ||
|
|
cbf22f3b2c | ||
|
|
0ae0935afa | ||
|
|
630d987d5f | ||
|
|
0ef54a721d | ||
|
|
47e28fc441 | ||
|
|
a590504436 | ||
|
|
46d09392f0 | ||
|
|
ee71cad047 | ||
|
|
8b53f35ffa | ||
| 9df29de564 | |||
|
|
8654cbe466 | ||
| 1d5e3a5b06 | |||
|
|
ae5f0bba0b | ||
| 5d0f6caef7 | |||
|
|
595e43b8d5 | ||
|
|
fdef468f1a | ||
|
|
d8b5c733f6 | ||
| 80a0551b36 | |||
|
|
3965c7f738 | ||
|
|
8903540e91 | ||
| cc089789de | |||
| bc97073131 | |||
| 652ffea4a8 | |||
|
|
9fb7e151b8 | ||
|
|
19514662b0 | ||
| c62eaa6eab | |||
|
|
a5ae26116b | ||
|
|
b8752e9ee3 | ||
| 506a0f3f47 | |||
|
|
cb9933b4a0 | ||
| fde5627721 | |||
| e906266286 | |||
| 93506d2113 | |||
|
|
fe193ecab8 | ||
|
|
88400551f9 | ||
| 727f3dbb03 | |||
| c5a8004c9a | |||
|
|
3860f1feea | ||
|
|
6467ccbdcc | ||
|
|
9e33a8f42f | ||
|
|
999e7b0134 | ||
|
|
a263fdfe58 | ||
| 99b5dcd8f0 | |||
| 996e7fc09c | |||
| b6bf90e3f1 | |||
| 85614aabd6 | |||
|
|
077989e8fd | ||
|
|
7074f9c395 | ||
| 684043bf37 | |||
| ceedcd02f2 | |||
|
|
5364d3bc90 | ||
|
|
a9778965be | ||
|
|
49dde11def | ||
|
|
3649555f35 | ||
| 26dfdf37c2 | |||
| d478bef8a6 | |||
| e67215f93d | |||
|
|
6aae58dea7 | ||
|
|
ce07021580 | ||
|
|
a6a3fb40bf | ||
|
|
e79b26a61f | ||
|
|
97e48be39e | ||
|
|
a6543a72ad | ||
| d59ba09d71 | |||
|
|
cdb998398d | ||
| 201050a9e5 | |||
|
|
5be8437a60 | ||
| 7a48b30d7a | |||
|
|
59b98091d7 | ||
|
|
57e352cd1e | ||
|
|
831bfc822b | ||
|
|
6e9e9ad557 | ||
|
|
eba3d0505b | ||
|
|
eec7ab8e45 | ||
|
|
4167f9f60c | ||
|
|
840e417eb7 | ||
|
|
74e5d7182a | ||
| b22e09e1af | |||
| 7c490a703d | |||
|
|
955243a93b | ||
|
|
191f45eb7f | ||
|
|
58f101b8e8 | ||
|
|
a251e53495 | ||
|
|
4a81c019e3 | ||
|
|
7b262c0cec |
||
|
|
dc018fdb16 |
||
|
|
978e249043 |
||
|
|
e1ff1bfdff |
||
|
|
46574fc577 |
||
|
|
3d725f12da |
||
|
|
f5630297bd |
||
|
|
be47619b1e | ||
| c8a98c02ff | |||
|
|
89ebd7a4f7 | ||
|
|
23e66e08fa | ||
|
|
7a570f8692 | ||
|
|
790c6efae9 | ||
|
|
89e48734bf | ||
|
|
cdb0d2be41 | ||
|
|
747c6b1076 | ||
|
|
6a611e556a | ||
|
|
48d66b0143 | ||
| fc9ce280f7 | |||
|
|
55ebd1a4c5 | ||
|
|
9a4e3488c2 | ||
| 3fc36a67a1 | |||
| ba77ea9edc | |||
|
|
988190363a | ||
|
|
b354ea6e94 | ||
| b99f1eda0f | |||
| 29c0180204 | |||
|
|
abac79d4a5 | ||
|
|
ba64971a56 | ||
| 06cc20aa28 | |||
|
|
f4e1bbc87e | ||
|
|
6ba73c4be6 | ||
| 15e4b5ee3b | |||
| b7d3da443c | |||
| 716d3554f3 | |||
|
|
66f4421089 |
||
|
|
226ed02c1c | ||
| dab32b0cb6 | |||
| d1b73dd42b | |||
| 3bcbd95269 | |||
| bf25a18a04 | |||
|
|
f354d80308 | ||
| cc8dcf682c | |||
| ad58ea79c2 | |||
|
|
f9afac4dd6 | ||
| 8d639d54d0 | |||
| 2362d89976 | |||
| c5454afc72 | |||
| d5075b49c5 | |||
| 6d502f737a | |||
| 8b790b0a54 | |||
| cf44c4a01b | |||
| 7ca2bfc14a | |||
| 086e683c99 | |||
| dcfabf9268 | |||
| 42f2dceeb1 | |||
|
|
6f4649efc6 | ||
|
|
d4059fd29e | ||
|
|
f58d662b32 | ||
|
|
310045d9fb | ||
|
|
250161e42d | ||
| 888cf54d99 | |||
| ea3bd14d8b | |||
|
|
515992249d | ||
| cd0c811d74 | |||
| 965829e18a | |||
| bd66b6d948 | |||
| b31e13eacf | |||
| 56a65518ab | |||
| 0b3c417aef | |||
| 678df1ec8a | |||
| fefc828780 | |||
|
|
04b7f240eb | ||
| 8074f02bb3 | |||
| 71156258a4 | |||
| c13608fab5 | |||
| b40b95d758 | |||
| 6ec3274598 | |||
| 80d204368a | |||
| 2928795441 | |||
| fefe90e9c9 | |||
| 5981d0a5f1 | |||
| 056c7c5400 | |||
| de37b0ce45 | |||
|
|
41e59a748d | ||
|
|
38ccdfda32 | ||
| e2b26aa233 | |||
| 7d57655470 | |||
| c9c1e7d790 | |||
| 742163e38c | |||
| c3f924d350 | |||
|
|
0805fac7e9 | ||
|
|
d1eecb93ee | ||
| 8af4f7993c | |||
|
|
704e78322e | ||
|
|
1ebcc219c2 | ||
|
|
e19c1bb1e0 | ||
|
|
76d978d3d8 | ||
| d53077f4e8 | |||
|
|
ceb6b597ef | ||
|
|
890c73f6bd | ||
|
|
d034fe9369 | ||
|
|
0f639a9278 | ||
|
|
da30afe791 | ||
| 1eb02f908b | |||
|
|
b25939cdd6 | ||
|
|
df63cfe088 | ||
| 11148995d1 | |||
|
|
ec11f04ab8 | ||
|
|
66d9905029 | ||
| f00e4af5f0 | |||
| 358e04b2af | |||
|
|
f7d5f5bc97 | ||
| 4481052184 | |||
| fb32d6ed3f | |||
|
|
213f1b049c | ||
|
|
da6ccf808e | ||
| 4b24d886eb | |||
|
|
9eacba06bb | ||
|
|
46d2487f08 | ||
|
|
046f7d0663 | ||
| dd6b07d924 | |||
|
|
6b4b6534a1 | ||
|
|
b2db864eaf | ||
| aa49afd61a | |||
|
|
6db6dc4ac0 | ||
|
|
1ef126e16f | ||
|
|
d3bd2669ec | ||
| 0c49a0afda | |||
| e6f683b886 | |||
|
|
c6aba8d189 | ||
|
|
49fc21ec47 | ||
| 47ec9ada10 | |||
| e1b80f7222 | |||
| 2a5309b413 | |||
|
|
0d6bc8e8f8 | ||
|
|
0d84c91b40 | ||
|
|
364340c8d5 | ||
|
|
d895bb0e87 | ||
|
|
21c9e3db18 | ||
|
|
ceddbd15a0 | ||
| 2135381038 | |||
| 28d3760e29 | |||
|
|
1b0caeda13 | ||
| 44700424ba | |||
| a3bc8f9407 | |||
| b891bb05d5 | |||
| 09540dc6bd | |||
| 31ad1bdaad | |||
| f595664924 | |||
| 70200cd28f | |||
|
|
c09165d122 | ||
|
|
0640b02f90 | ||
|
|
9f3747cf3f | ||
|
|
cda77e5e8a | ||
| 7acbc8709b | |||
| a1536933ab | |||
|
|
58841fc4bf | ||
| 221c3820ca | |||
| b898412faf | |||
| ef089d1c61 | |||
| 5e6e17b3e5 | |||
| a761d4842c | |||
|
|
48bff66563 | ||
| c8dbd0718e | |||
| 869a38676f | |||
| 1be5a9d316 | |||
|
|
e5f9d32004 | ||
| c4f085e739 | |||
| f771840178 | |||
| b7483d73eb | |||
| 710e99f240 | |||
|
|
bcefeb240c | ||
| b3bad9468d | |||
| 08d5814e2c | |||
|
|
7a5d6d5a7d | ||
| 0edda3b528 | |||
| 6291352136 | |||
|
|
984e0dc8c4 | ||
|
|
3b5433d63a | ||
|
|
e82dd35869 | ||
|
|
0f420993e1 | ||
|
|
2d8afe0d16 | ||
|
|
f3237e5d76 | ||
| e5d86ffc93 | |||
|
|
4fe2dcba89 | ||
|
|
de1a421b68 | ||
|
|
87f30b6053 | ||
|
|
8f12a4c505 | ||
|
|
4e8ccd9b78 | ||
| f7a5ac5f7a | |||
| 1fbd2fc2bd | |||
|
|
5089f9055e | ||
| 138a449008 | |||
| e1ac97b6a5 | |||
|
|
45890cc7e4 | ||
|
|
ffb3c003ca | ||
|
|
e292c9f124 | ||
| efdeab61f3 | |||
| a518134bfa | |||
| 65c5b592a5 | |||
| 6097cd9e90 | |||
| ef2f4b9a00 | |||
| 6fa0d687f7 | |||
| f5f70671cb | |||
|
|
5a9a1ba57f | ||
| b3f36dbe5b | |||
| cd24a806e7 | |||
|
|
2cf44c66d4 | ||
| 68e5502fce | |||
| cd2d5b3f79 | |||
|
|
51b1b11cc2 | ||
|
|
4cdb8aaa03 | ||
|
|
629d0795c8 | ||
|
|
93ec4b46aa | ||
|
|
3258fc98e1 | ||
|
|
3f133dbc17 | ||
|
|
11f569959d | ||
|
|
51ba4a49d8 | ||
| b1e24881ce | |||
| d4bd49bbb5 | |||
| ec8d9571f9 | |||
| a9d491f998 | |||
| 94e32dcd78 | |||
|
|
d1a64596fe | ||
|
|
7c9dd3b03e | ||
|
|
bc1990c7c8 | ||
| 1fc845480e | |||
|
|
e201536792 | ||
|
|
7b1192257d | ||
| 9b2e273bd1 | |||
|
|
e4596593c0 | ||
|
|
72935e0a79 | ||
|
|
6369bc1ae5 | ||
| c51571b47f | |||
| 4329cced82 | |||
| 5e8dc7122d | |||
| fcc774cb7b | |||
| 24862e0208 | |||
| 9a693537f4 | |||
| c32e4040b1 | |||
| beb930c0dc | |||
|
|
df05abd15b | ||
|
|
f407e8825f | ||
|
|
9859080217 | ||
|
|
8562871da9 | ||
|
|
bd4eee7925 | ||
|
|
2c7b4ddc55 | ||
|
|
3c62a88ca7 | ||
| c58c4b8309 | |||
| 3bdc731e4f | |||
| 3ba230c10d | |||
| 35f0d4dbfa | |||
| 79d58f0813 | |||
| 22c5cd550b | |||
| 42914d26c5 | |||
| 1ad605a509 | |||
| fd430eab62 | |||
| bee95efa43 | |||
|
|
553cfc28e7 | ||
| 27b682bfe9 | |||
|
|
4735df1bed | ||
|
|
d5ac9ea348 | ||
|
|
839e7a408e | ||
| fb97574592 | |||
|
|
f2cbc01e3f | ||
|
|
71b6646b38 | ||
|
|
90e85d8128 | ||
|
|
f22349ce8a | ||
| 58cbe53e61 | |||
| 4f21bf534d | |||
|
|
320f962e1d | ||
| 05221e2159 | |||
|
|
d25c72e678 | ||
|
|
8c0ee28b99 | ||
| 648cdf8e29 | |||
|
|
a1f33ca8eb | ||
|
|
b3012b9911 | ||
| 131c736d22 | |||
|
|
332f5dcff9 | ||
|
|
da274e5ef3 | ||
|
|
f3bd439c43 | ||
|
|
3d3b59ab87 | ||
|
|
c01aa576de | ||
|
|
3b5aa8654d | ||
|
|
d1c3264cce | ||
|
|
8236de763f | ||
|
|
e44219903a | ||
| 073523be38 | |||
| 2848a6a0f4 | |||
|
|
56435492a0 | ||
| ed16270d94 | |||
| 64b07af4ab | |||
|
|
b876ebb16e | ||
| cd8ffd9046 | |||
| 4ed18e3446 | |||
|
|
b8c6f8c8f5 | ||
| 8efd2681db | |||
| 01bd01573e | |||
|
|
ac2463fe31 | ||
| 96ffb4fd02 | |||
| 37ee988d1f | |||
| 552860b9cd | |||
| 34bd96db4b | |||
|
|
0bc00477ae | ||
|
|
6c67d7194a | ||
| d10dfa7807 | |||
|
|
c1633d9301 | ||
|
|
a45e306123 | ||
|
|
f18bdd1fad | ||
|
|
a885082534 | ||
|
|
88947d45b3 | ||
|
|
8b0686766a | ||
|
|
7a17630c2d | ||
|
|
7b8f1f09d9 | ||
|
|
5fcd4bc09f | ||
|
|
fbe9fc4204 | ||
|
|
c939bd6bf6 | ||
|
|
5eb9fec550 | ||
|
|
66c85230a0 | ||
|
|
b9571a2bbd | ||
|
|
39b320a19a | ||
| fe23355bfc | |||
|
|
0ec52fd1bd | ||
|
|
cbae534af5 | ||
|
|
f276813f7f | ||
|
|
e7279680ed | ||
|
|
6eec5f87a4 | ||
|
|
00852cb17d | ||
| 2a4efb84c5 | |||
|
|
b65ceba569 | ||
|
|
d4313c7501 | ||
|
|
629d443f5a | ||
|
|
c3b066c147 | ||
|
|
50a3130b0a | ||
|
|
32c15f2ecb | ||
|
|
ecc77e55ed | ||
|
|
f6a45808f9 | ||
|
|
2d0af7b7cc | ||
|
|
fc28f58c77 | ||
|
|
9f1ec6f89e | ||
|
|
076133028f | ||
|
|
689b5a2992 | ||
|
|
778cd4ff0e | ||
|
|
6214408f2a | ||
| 1dae7cf9c9 | |||
|
|
f5c725a57f | ||
|
|
3c86c175aa | ||
| df3092d4b4 | |||
|
|
e462821e46 | ||
|
|
9567826dc1 | ||
|
|
58eb474b01 | ||
|
|
365974c447 | ||
|
|
2bc26e398c | ||
|
|
9edf5e8fe0 | ||
|
|
8b0734f719 | ||
|
|
3bbb7b02d2 | ||
|
|
00dd16d7c3 | ||
|
|
cee553a6dd | ||
|
|
30c7d153e8 | ||
|
|
f782a85470 | ||
|
|
d11b191547 | ||
|
|
e64d1710b5 | ||
|
|
522100b9fb | ||
|
|
c3af8a0cc0 | ||
| fa9a90677f | |||
|
|
b6898b097f | ||
| 0bdc62482a | |||
| e9289abfab | |||
| 48ed7f1754 | |||
| f35a1b9cdf | |||
| 7d235fb013 | |||
|
|
d1f4657ed9 | ||
|
|
be756f2189 | ||
| 2abc34f922 | |||
| 0c7d98e89e | |||
|
|
6d2e81d0dc | ||
|
|
c11e757dfa | ||
|
|
e1c08c25b5 | ||
|
|
064e992a7a | ||
|
|
da1d70e16a | ||
|
|
6e1a105c22 | ||
|
|
cbb108d61c | ||
|
|
3e7cf68de5 | ||
|
|
74568e8a0a | ||
|
|
7bf203509b | ||
|
|
77210c349e | ||
|
|
d43eb5b22f | ||
|
|
9a6ca1a343 | ||
|
|
1bab641c94 | ||
|
|
56c654808d | ||
|
|
4c21781c4b | ||
| a0c1d0d8b9 | |||
| d106632b2f | |||
|
|
69170b20f6 | ||
|
|
f5342e9a35 | ||
| 1c3379fe50 | |||
|
|
2eebc300cf | ||
|
|
9e9c3982a8 | ||
| a432d6a51e | |||
|
|
644768cc02 | ||
|
|
ee440ec619 | ||
|
|
b039e4b1b4 | ||
| 9a172b62cb | |||
|
|
81ba849af8 | ||
|
|
fba14496e7 | ||
|
|
abc765bd99 | ||
|
|
2804a8bae6 | ||
|
|
3c9eb7bce7 | ||
|
|
bf400928e2 | ||
| 4345afc8d8 | |||
| b754ae576c | |||
|
|
55f8036377 | ||
|
|
f57ce648a3 | ||
|
|
7981f81dcd | ||
| 69e5e538ac | |||
| b57482d387 | |||
| b7426b30e7 | |||
| 65f9161352 | |||
|
|
259aa13b6a | ||
|
|
bad3a4a4cb | ||
|
|
95ab68a272 | ||
|
|
092dd19611 | ||
|
|
2d751443a4 | ||
|
|
828b4c867c | ||
|
|
50156bd7cd | ||
|
|
9d8a0dae66 | ||
| f86768ab16 | |||
| 9d26fbdfb8 | |||
|
|
64c247026a | ||
|
|
5c8e31b2ef | ||
|
|
97bcfcc23c | ||
|
|
b657ba8221 | ||
|
|
90d9326740 | ||
| d147f4a86f | |||
|
|
799ec72369 | ||
|
|
eab540bd0f | ||
| 162f7d75e1 | |||
|
|
88fe83ed73 | ||
|
|
4294ff55e1 | ||
|
|
067d0a62e7 | ||
|
|
65b9e1d00f | ||
| 61ce1c4756 | |||
| 451dfaffe4 | |||
|
|
6c780c24c7 | ||
|
|
a86893889b | ||
|
|
5033f67d96 | ||
|
|
7182de5968 | ||
|
|
c0aa2214aa | ||
|
|
2f7dc5a65d | ||
|
|
c6b739b5b6 | ||
| b9303b1ef6 | |||
|
|
031d59c82c | ||
|
|
f7efde0d0a | ||
| 9773fcf719 | |||
|
|
a70d2e0af5 | ||
|
|
6bb58f8820 | ||
|
|
5c11c15ae4 | ||
|
|
6915d30015 | ||
|
|
8881ff2224 | ||
| b4f090fd7f | |||
| a4bc051ad9 | |||
| a5df0badaf | |||
| 91a6ecc701 | |||
|
|
d723f60673 | ||
| 175ab90a9e | |||
|
|
3cb4e76175 | ||
|
|
55ba49efac | ||
|
|
8315677ad1 | ||
| 3c8b470367 | |||
|
|
68837e45cc | ||
|
|
520cfeda98 | ||
| bd27d432b1 | |||
| 811ed151fc | |||
| 1d57305d35 | |||
|
|
c58ae44409 | ||
| 1f7d76ae75 | |||
|
|
4949af894e | ||
| ea291efbf6 | |||
|
|
34eec3c214 | ||
| e30d76014a | |||
| 02e10b1ffd | |||
| 03f8c3aaed | |||
|
|
21a16f5584 | ||
|
|
4a5425a95e | ||
|
|
d604a9db7a | ||
|
|
7195b594f3 | ||
| f376eb361f | |||
| 69622b0fa5 | |||
|
|
fe643b9092 | ||
|
|
ce52203ba3 | ||
|
|
5f462d6380 | ||
| 7a25ec00ed | |||
| 7dfc5bc473 | |||
| ca8bc959ed | |||
|
|
569ae29955 | ||
|
|
66cdbc5233 | ||
|
|
afa00a9094 | ||
|
|
a8ee4356ef | ||
|
|
15f01149f9 | ||
|
|
73fd1ffbc1 | ||
| 5ceb4928c7 | |||
|
|
4f40c6ac65 | ||
|
|
d696a55879 | ||
| fb52bfb353 | |||
|
|
02eb6c75a7 | ||
|
|
28082c710a | ||
|
|
735f57b3a0 | ||
|
|
4d75a05e35 | ||
|
|
aad6c34178 | ||
|
|
10a29ca9e6 | ||
| 954663475a | |||
|
|
513fde1cc1 | ||
|
|
d242f1e758 | ||
|
|
2f93320627 | ||
|
|
249ac917d3 | ||
|
|
0ab43e2405 | ||
|
|
bd9884fac4 | ||
|
|
71945ef956 | ||
|
|
fe833fdfcb | ||
|
|
6258e397ed | ||
|
|
2a0a24eccc | ||
| de1c198dc0 | |||
|
|
edfaa65d2b | ||
|
|
2505023387 | ||
|
|
6ad261fdf2 | ||
|
|
8b93bf0218 | ||
|
|
3ca337dfe0 | ||
|
|
880f653ec2 |
||
|
|
5b20950045 |
||
|
|
281691cfd9 |
||
|
|
f7ace88ec2 | ||
|
|
6dd5278ade | ||
|
|
510ea220f2 | ||
| 4c21983698 | |||
| f586937614 | |||
| d66b6969f3 | |||
| 894311a572 | |||
|
|
31b9859e08 | ||
|
|
a95d4ffefa | ||
|
|
2536cd6f95 | ||
|
|
7c0ba0d5be | ||
|
|
6bd34c74d3 | ||
|
|
e516c9741a |
||
|
|
7ca66b7b6a | ||
|
|
c2d32a78a9 |
||
|
|
5314f514c5 | ||
|
|
a8588019ee | ||
|
|
84c4bf5577 |
||
|
|
b0273af0d4 | ||
|
|
c10074780e | ||
|
|
d08ab628da | ||
|
|
c8bf78d651 |
||
| 038524ba30 | |||
| e3a900c1c9 | |||
|
|
087066687c | ||
|
|
b5bdb54b7f | ||
|
|
250f3d3fb8 | ||
|
|
3b3ac95ac3 | ||
|
|
f8d36446db |
||
| ab3544d5e8 | |||
|
|
69fc80ec95 | ||
|
|
e32982a648 |
||
| 108e46abee | |||
| 186ce77bb2 | |||
| c7e6109462 | |||
| 05225352aa | |||
| 6d71ae342a | |||
| 13df0a2a2b | |||
| 8729e39c21 | |||
| 86f45db1b9 | |||
| 0f3c162696 | |||
| 0809d89836 | |||
| f5d3196dd4 | |||
|
|
82f310f4f8 | ||
|
|
3defdfa8df |
||
|
|
aba1ae68f0 | ||
| 68f61c35ff | |||
| f23099218a | |||
| 7924c1339c | |||
| 8b3c84dfef | |||
| a1634b3ec0 | |||
| c1a34caba7 | |||
| e04d647d8e | |||
| 53c963b2ee | |||
| 8b9b2c56ab | |||
| cea639d1c9 | |||
| 731986ef8b | |||
| 9e3cd47b9a | |||
| 2b5887bdbd | |||
| ab954ffbcf | |||
| ef8ff06b5f | |||
| d71eb3d8bd | |||
| 2cde09648c | |||
|
|
e997e98a73 | ||
|
|
c7a4ae112f |
||
|
|
437af3a0a3 | ||
|
|
63d7499b75 | ||
|
|
1722fced72 | ||
|
|
a1cb9ee869 | ||
|
|
e290733a00 | ||
|
|
f4db6e908e | ||
|
|
c801fb4965 | ||
|
|
6062e3557c | ||
|
|
45e9ed441e | ||
|
|
978aee668c | ||
|
|
ec935353d7 | ||
|
|
dbf29c18c1 | ||
|
|
707426d1f0 | ||
|
|
e32d92c109 | ||
|
|
c7a9e60de0 | ||
|
|
c17f5a7ccd | ||
|
|
3a2041019b | ||
|
|
797522f91e | ||
|
|
d18584b4ff | ||
|
|
51e650423e | ||
|
|
b37b25f573 | ||
|
|
4d9a8d78f7 | ||
|
|
b21b6d0a7e |
||
| 44c9d09383 | |||
|
|
4c8037764a | ||
|
|
1c152f0acb | ||
|
|
20a16fe853 | ||
|
|
279aada5db | ||
|
|
a4ed9e4d0e | ||
|
|
2ec553b480 | ||
|
|
7a68df48f1 | ||
|
|
d11ac7dda4 | ||
|
|
540434557d | ||
|
|
e37d955845 |
||
| 204a572709 | |||
|
|
13671c666c | ||
|
|
1ba5f6276e |
||
|
|
0ce96f0860 | ||
|
|
e90e296266 | ||
|
|
671bb82a46 | ||
|
|
f6b318bb00 | ||
|
|
8ee667f57f | ||
|
|
1402e3f084 |
||
|
|
9cd95f12dc | ||
|
|
cabb0be7b6 | ||
|
|
88513e6693 | ||
|
|
0583cdff09 | ||
|
|
b47c6e3fe4 | ||
|
|
a5e66bc3f6 | ||
|
|
6e56de4580 |
||
| decd80bf5d | |||
| da6a22c71a | |||
|
|
033e0611b5 | ||
|
|
cfe2afc225 |
||
| 668dc83632 | |||
|
|
001f9023a2 | ||
|
|
cbaf1b6d8e | ||
|
|
a60ce2fcfb |
||
| 5f76bd5655 | |||
|
|
6440faf176 | ||
|
|
6eb0aa4aeb |
||
| c6fd43da81 | |||
|
|
d656058ff4 | ||
|
|
2332b52d95 |
||
| 0f6fe4764b | |||
|
|
59bff81735 | ||
|
|
996bbd084f |
||
|
|
28e2b058a4 | ||
|
|
825a47b3d9 | ||
|
|
66377d2c04 |
||
|
|
dbcf7d5543 | ||
|
|
0fc64a951c | ||
|
|
73784b04df | ||
|
|
2155ab7ea2 |
||
|
|
15ab7c0810 | ||
|
|
689f37acf6 | ||
|
|
afc7ca88b8 | ||
|
|
a40a81d36f | ||
|
|
867b9cb102 | ||
|
|
51fa8af6b7 | ||
|
|
ef9d5494cd | ||
|
|
a3a7219ad6 |
||
|
|
df693b9f47 | ||
|
|
82cfea0f3c | ||
|
|
7be3482549 |
||
|
|
a77983aead | ||
|
|
67c3c8ca12 | ||
|
|
0bdd590344 | ||
|
|
5d3598b96e | ||
|
|
0cb3cbae1b | ||
|
|
794f20007f | ||
|
|
585221db28 |
||
|
|
7d50ba01da |
||
|
|
ede076e7c5 | ||
|
|
57a3257a26 |
||
|
|
93b0727c3b | ||
|
|
fccbcb2eb8 |
||
|
|
a7f1eda328 | ||
|
|
aa456ab6c1 | ||
|
|
498628d16a | ||
|
|
827081f8a2 | ||
|
|
c492c53a98 | ||
|
|
e3b0cbe8ac | ||
|
|
77d69c987d |
||
|
|
9acb9d1f3a | ||
|
|
92610fe76c | ||
|
|
45ff67c0f5 | ||
|
|
566feba5b1 | ||
|
|
b36716ef36 | ||
|
|
183d57d6d2 | ||
|
|
75afdd4d69 | ||
|
|
a9427f6b2d |
||
|
|
d4bb114468 | ||
|
|
a7f4c8d773 | ||
|
|
f2ef1ef0d6 | ||
|
|
4a4287e02a |
||
|
|
96a0eaabf1 |
||
|
|
49f2d3bf91 | ||
|
|
3b921b5dcf |
||
| 8ad93a29c9 | |||
|
|
ccdbf1a31c | ||
|
|
7e9dce0ceb | ||
|
|
5014fd2388 | ||
|
|
45d1037491 | ||
|
|
0491b5b8db | ||
|
|
c85dfbdb10 | ||
|
|
a85f2ebdb6 | ||
|
|
3a96c21f09 |
||
|
|
0e4ff14633 |
||
|
|
6b95db8fc7 |
||
|
|
71ceba4ac5 |
||
|
|
308be1b6fa | ||
|
|
74d222079b |
||
|
|
2cae33f6d6 | ||
|
|
f8fbcdf2a7 | ||
|
|
d11174f2b7 | ||
|
|
0882a0beec | ||
|
|
a34060d703 | ||
|
|
6d70205319 | ||
|
|
14b1952edf |
||
|
|
e860f1c792 | ||
| a3a0023b2a | |||
| 1bae2be406 | |||
|
|
6895ad0207 | ||
|
|
8c03518962 | ||
|
|
3d56aa83ac | ||
|
|
72a0da5537 |
||
|
|
5480c22020 | ||
|
|
151edc6398 | ||
|
|
3b7f39cab7 | ||
|
|
09bd321c5c |
||
| c5098dfcc5 | |||
| c950dd1e90 | |||
| 5761939fa9 | |||
| c995d08ce2 | |||
| a1bf381370 | |||
| 409d736339 | |||
|
|
09870ece59 | ||
|
|
e4a7fb50fb |
||
|
|
dd5a45a809 | ||
|
|
5e99219ea5 |
||
|
|
faed292a4e | ||
|
|
7a9dea9754 | ||
|
|
610deba454 | ||
|
|
8669ccb9c1 | ||
|
|
53300b1004 | ||
|
|
dcb4395909 | ||
|
|
0f31a550cc | ||
|
|
c58e12a4b9 | ||
|
|
0b58ab8c83 | ||
|
|
9afc17f3f8 | ||
|
|
256c8324a0 | ||
|
|
52b45d4add |
||
|
|
69790ec138 | ||
|
|
0458f66c96 | ||
|
|
ec186673bf | ||
|
|
638ddd95d6 | ||
|
|
ab8f87864e | ||
|
|
cb826ad570 | ||
|
|
791473cc2e |
||
|
|
334201b945 | ||
|
|
e9b823bc39 | ||
|
|
a78baccc82 | ||
|
|
a9f27beb98 | ||
|
|
83806e767a | ||
|
|
3be1c4ad6f | ||
|
|
edaf4b46a5 | ||
|
|
cdfa2dc628 |
||
|
|
140518f1b0 | ||
|
|
8436f872a9 | ||
|
|
877b4d2748 | ||
|
|
a46016242b |
||
|
|
f039b0e6e5 | ||
|
|
68fad03a6b | ||
|
|
b284bafbee | ||
|
|
02f39bcf6f | ||
|
|
0d80b4473b | ||
|
|
9a61aab631 | ||
|
|
88d4c8a059 |
||
|
|
bf270b6f9c | ||
|
|
a369acea72 | ||
|
|
644ec85d80 | ||
|
|
16159d8fca | ||
|
|
596f3cf227 | ||
|
|
9b567ed8f7 | ||
|
|
8cea8e67aa | ||
|
|
b120a813a2 | ||
|
|
7b17ad4733 | ||
|
|
e46420e7f5 | ||
|
|
2f7b8e6db9 | ||
|
|
73d0a5bbbe | ||
|
|
73acb35a8a | ||
|
|
28889ef38a | ||
|
|
ed542cc7cb | ||
|
|
b25aff17c6 | ||
|
|
a601fa91d9 | ||
|
|
5f8c631e34 | ||
|
|
678ce2bfaa |
||
|
|
3b6d759660 | ||
|
|
d2f1d6185d | ||
|
|
0cb127822f |
||
|
|
49bb041330 |
||
|
|
c01cf38660 | ||
|
|
738f053877 | ||
|
|
68b6477fe3 |
||
|
|
f0fb5215e8 |
||
|
|
3ead8b266a |
||
|
|
34b571b7d9 | ||
|
|
bcd7fbbcc4 | ||
|
|
a0db375f91 | ||
|
|
a6fdf4255a | ||
|
|
e2593c0dcb | ||
|
|
fff656d1ac | ||
|
|
53728a7ff0 | ||
|
|
ae7ccc5995 | ||
|
|
23debd5b6f | ||
|
|
352679386d | ||
|
|
b3f4d3849a | ||
|
|
6b0f8fba22 | ||
|
|
ef8ec8641e | ||
|
|
a2ed14b6d0 |
||
| 085b2a2b10 | |||
| a46da35bbc | |||
|
|
d49d38481f | ||
|
|
66ca2fcb70 |
||
| d950ddada3 | |||
|
|
31bf6ab230 | ||
|
|
b62b41b263 |
||
| 134c84607f | |||
|
|
ab9e2264df | ||
|
|
e1b62ec560 |
||
|
|
383af6736f | ||
|
|
4403392869 |
||
|
|
8ef2773c0d | ||
|
|
44acfcdd12 | ||
|
|
3757e8c2c5 | ||
|
|
e69be05f70 |
||
|
|
d29534861b |
||
|
|
0928708d19 | ||
|
|
5ed95ce93b | ||
|
|
aef14ad39e | ||
|
|
f1369820d0 |
||
|
|
6326eae1bb | ||
|
|
e551348cd7 | ||
|
|
9cb9771e33 | ||
|
|
f705fe8fc6 |
||
|
|
82077aff25 | ||
|
|
e404ff4836 | ||
|
|
1e34fc20be |
||
|
|
c04325fdc5 | ||
|
|
4b9994f134 |
||
|
|
0c57b3083e | ||
|
|
6acf6f64dc | ||
|
|
02982ca8be | ||
|
|
1f703ab42e | ||
|
|
9b6ed0adc7 |
||
|
|
c021cd15cd | ||
|
|
f918acd725 | ||
|
|
d6952543a7 | ||
|
|
aa80e8f87d | ||
|
|
690b63081f |
||
|
|
b3f3b907a4 | ||
|
|
346f1f8af3 | ||
|
|
19a55ac75a |
||
|
|
cebe5949fc |
||
|
|
2e653409c1 | ||
|
|
c2f8c7abb3 | ||
|
|
55dcaecafe | ||
|
|
3782656569 | ||
|
|
b9ddbb1aa0 | ||
|
|
b67051fac5 |
||
|
|
a627247908 | ||
|
|
282647a88c | ||
|
|
fbc129e2ef |
||
|
|
ad46c39c86 |
||
|
|
93d877f5bf | ||
|
|
f143a70463 | ||
|
|
b12c02138d | ||
|
|
2f89d8a514 | ||
|
|
eeb0590150 | ||
|
|
0e9ba29850 |
||
|
|
f04f76524c | ||
|
|
1f2b7c84c2 | ||
|
|
e1f5fbf7b2 |
||
|
|
43982f821f | ||
|
|
37b37f6e66 | ||
|
|
8d84834db6 | ||
|
|
6c8014b407 | ||
|
|
7eae68c11d | ||
|
|
8350b6297e | ||
|
|
58b0e83655 | ||
|
|
2f20b31758 |
||
|
|
4eaace7dd5 | ||
|
|
41186d66d4 | ||
|
|
4cee4abf7b |
||
|
|
ec8f2f9488 | ||
|
|
ee64936ff9 | ||
|
|
d49daca3dc | ||
|
|
f75af95bda |
||
|
|
f9892e25a3 |
||
|
|
9d4c0331a9 | ||
|
|
5aa8dac80a | ||
|
|
b9a48c9316 | ||
|
|
75b68cd178 |
||
| d7a1645e4e | |||
| 90adefe2e4 | |||
|
|
4516ee0baa | ||
|
|
5ec99ceda2 | ||
|
|
a1a589ab59 |
||
|
|
efebe15386 | ||
|
|
81adabd1ab | ||
|
|
98ceebe386 |
||
|
|
ab62d58715 | ||
|
|
709c216096 | ||
|
|
b3a4152e00 | ||
|
|
ab696a8cb8 | ||
|
|
d662cc0d1b |
||
| e7e8f1428a | |||
|
|
fb26894cbd | ||
|
|
a3968f8313 | ||
|
|
e6b6925908 | ||
|
|
6946dc877a | ||
|
|
3cf417fa2b | ||
|
|
72bb485db7 | ||
|
|
87c48bebc5 |
||
| 22d570ae60 | |||
|
|
543bc8fed9 |
||
|
|
6c462b2617 |
||
| fdb5bbcf91 | |||
| 1efbd6a3a0 | |||
|
|
b5e96efcbf | ||
|
|
3ddd46e489 |
||
|
|
6722f56df1 |
||
| 5a7d74b905 | |||
| 4f61f6be9c | |||
|
|
3869940fc8 | ||
|
|
6893a5f990 |
||
| aa20ed5ea1 | |||
|
|
09642142f4 | ||
|
|
7349da777b | ||
|
|
2a9057f892 | ||
|
|
0d15e1aae0 |
||
|
|
f09765a03a | ||
|
|
43a65d91b1 | ||
|
|
999f221c88 | ||
|
|
60eba42141 | ||
| b695e82bec | |||
|
|
b740d415ca | ||
| 958222133b | |||
|
|
7de80678f0 | ||
|
|
ef13449687 | ||
|
|
a06ee6f9f1 | ||
|
|
d4a7b298a6 | ||
|
|
26a8827ec2 | ||
|
|
bba4c0ef67 | ||
|
|
fa32bd865b |
||
|
|
17fa27a56a | ||
|
|
f095e40c22 |
||
| 7184228536 | |||
| 8b86c6fc95 | |||
|
|
f2fbb92fdd | ||
|
|
f881228878 | ||
|
|
e4f263ecb7 | ||
|
|
1bb9da233e |
||
| f03a0e586e | |||
|
|
ca42fe6ee3 | ||
| f9443532a1 | |||
| e63c3429da | |||
| 787f5237e5 | |||
| 7ae24cf677 | |||
| 34aefbc0f6 | |||
| ee6d63325d | |||
| 8a488591bb | |||
|
|
b58cb810ac | ||
|
|
fe870ba8ba | ||
|
|
fc79fe86a2 | ||
|
|
5090038e4c | ||
|
|
b0c5bc793d | ||
|
|
54ca7b40c7 | ||
|
|
bfe8b8fa57 | ||
|
|
bc94c01c49 | ||
|
|
05084c6fc6 | ||
|
|
aba8dc4965 | ||
| a9a359d542 | |||
|
|
2b85e4f14b | ||
| b8ed816af4 | |||
|
|
d621dc0afb |
||
|
|
378c7f6a89 | ||
|
|
2dfbd89c5e | ||
|
|
23292e5cad | ||
|
|
ea702c0c43 | ||
|
|
8eb0697b42 |
||
|
|
be2beba36c | ||
|
|
7ccc959ebd | ||
|
|
3fb7e33305 | ||
|
|
2b5f1a0148 | ||
|
|
cf36aece7d | ||
|
|
44673131fc |
||
|
|
b870b6e43a | ||
|
|
7cbdc55a8c | ||
|
|
ef7304499a |
||
| a5dc6214e1 | |||
| 3208ab614e | |||
|
|
ec85527c1a | ||
|
|
526e1c9a6d |
||
|
|
1f93e7291e | ||
| a545b10538 | |||
| 94c9d11cb8 | |||
|
|
c0dc26a577 | ||
|
|
48a0fb5bd0 | ||
|
|
50b1867f4d | ||
|
|
b5f38abd39 |
||
|
|
4d39b6af51 | ||
|
|
19206e7693 | ||
|
|
9a832d88b5 |
||
|
|
7d06a3e7d1 | ||
|
|
0074bb0564 | ||
|
|
0ae61c8aad | ||
|
|
eb94d7a8bb |
||
|
|
7fcfe8cff5 | ||
|
|
a993e0f5a9 |
||
|
|
47399bfa9f | ||
|
|
c76637242f | ||
|
|
c8c627a077 |
||
|
|
fe7da4d8b3 | ||
|
|
d6ff077156 | ||
|
|
fe8004eca2 | ||
|
|
87558adbda |
||
|
|
fdc7060f48 | ||
|
|
4d4d76bb38 |
||
|
|
bfde7a6cfa | ||
|
|
2069650e74 | ||
| fa91dbfcdb | |||
| 6a6fdac25d | |||
|
|
ed1a53dda2 |
||
| cb21b3679a | |||
| 1117f49801 | |||
| e31de114e3 | |||
| 179c5a2dfe | |||
| 2dc5550fa4 | |||
|
|
27d38a28ab | ||
|
|
3545d0157f | ||
|
|
950f00d1a4 | ||
|
|
45e351c19c |
||
|
|
dd188ca588 | ||
|
|
fd6337bb09 | ||
|
|
7558af1707 | ||
|
|
9703e0f08e | ||
|
|
13a13eee03 |
||
| 9779c8c0f8 | |||
|
|
ec9ce90b8b | ||
|
|
64f2fed62b |
||
|
00f524773e |
|||
|
|
f278a1e31f | ||
|
|
8e182844e4 |
||
|
|
c895be381f | ||
|
|
b1d7da4258 | ||
| a657af64a1 | |||
|
|
fc8dded8e9 | ||
| 3397bcbf9b | |||
|
|
b4e98d4ab4 | ||
| 457233f968 | |||
|
|
b722843f01 | ||
|
|
71b858e467 | ||
|
|
eb8922ebcd | ||
| be7a99210b | |||
|
|
7c8f1e0f57 | ||
|
|
3b6a471119 | ||
|
|
0bf6af6d22 |
||
|
|
9e7b1c4c06 | ||
|
|
808851d63b | ||
| aec63d42f1 | |||
|
|
4fc72908d8 | ||
|
|
4f5dddd9d6 |
||
|
|
d7120d352c | ||
|
|
3918ad897a | ||
|
|
4cdc4ea42c | ||
| b18327c520 | |||
|
|
a8c41bfe44 | ||
|
|
782e662a13 | ||
|
|
c14f3b68f4 | ||
|
|
e6c5563a16 | ||
|
|
5e087fd280 | ||
| 4799e43516 | |||
|
|
1ed43c345b | ||
| 5eb478da95 | |||
|
|
f6745c0eda | ||
|
|
2cd006de79 | ||
|
|
f767ec04ec | ||
|
|
d68ab24fe3 | ||
| da8f6efafc | |||
|
|
a4be44b313 | ||
| 36302f7541 | |||
| 5c4cda589c | |||
|
|
9fed32e373 | ||
|
|
c5f47a017f | ||
| d1c3e2420f | |||
|
|
07581e7231 | ||
|
|
8b78001c9e | ||
|
|
3198d8e76c | ||
| 7ee56d099f | |||
|
|
e5881301ad | ||
| 6bd73237cf | |||
|
|
a88710a36d | ||
|
|
966bf30bee | ||
|
|
ea58cbd171 | ||
|
|
0c4826ee97 | ||
|
|
21328337ae | ||
|
|
764ea49904 | ||
|
|
8883196efb | ||
|
|
ac04edc233 | ||
|
|
47d72fb83a | ||
|
|
08bc38dd0f | ||
|
|
f2614469c5 | ||
|
|
f0dc21ec0c | ||
|
|
1ae5b1732e | ||
|
|
519eb60664 | ||
|
|
3f6a300567 | ||
| 1f00a35795 | |||
|
|
3454da076f | ||
|
|
f08ac264a0 | ||
|
|
57f15f9cce | ||
|
|
2e4c0d3465 | ||
|
|
97f6517715 | ||
|
|
28d3466e9d | ||
|
|
cb38354df3 | ||
|
|
e0a4fc4ea7 | ||
|
|
dd48c82656 | ||
|
|
481b987c7e | ||
|
|
7141e67d51 | ||
|
|
8360ca2445 | ||
|
|
92488e83d6 | ||
|
|
97332833bc | ||
|
|
b0cbd8f5bd | ||
|
|
c69e8a58b9 | ||
|
|
b2fb38d1f4 |
||
|
|
4f078b52b1 | ||
|
|
0dd5411216 | ||
|
|
fb3cd98b54 | ||
|
|
12a5aa39d4 | ||
| b8a1ad0ebd | |||
| a9f338b6a5 | |||
| 7564038f04 | |||
|
|
0043b3f4b0 | ||
|
|
99133219bc | ||
|
|
4f3e417359 | ||
|
|
ed55d01b35 | ||
|
|
5213f343c0 | ||
|
|
759a917da9 | ||
|
|
136f2ecd87 | ||
|
|
feb221c5df | ||
|
|
4af3c0c6d5 | ||
|
|
704e918421 | ||
|
|
2f10353156 | ||
|
|
bdee7273af | ||
|
|
4b2f23db62 | ||
|
|
eae399b025 | ||
|
|
de9254d4c0 | ||
|
|
3c3b29f710 | ||
|
|
0114001627 | ||
|
|
04c8415060 | ||
|
|
e9f8cb6f49 | ||
|
|
74f0664333 | ||
|
|
4f91b402f4 | ||
|
|
0e3c7545cc |
||
|
|
f4c4ba7267 | ||
|
|
6751349d21 | ||
|
|
4aeba7d7a7 | ||
|
|
d4f34a3f40 |
||
|
|
56adfd4dee |
||
|
|
7584e3c465 | ||
|
|
518903af1b | ||
|
|
6f04c9bfce | ||
|
|
9f2a2169fa | ||
|
|
c6d00019a8 | ||
|
|
11a974aeff | ||
|
|
ebdab4c43a | ||
|
|
d9cf1590b8 | ||
|
|
4851c0517f | ||
|
|
f368539447 | ||
|
|
31e5c97c55 |
||
|
|
997fdd8ac4 |
||
|
|
722389f838 | ||
|
|
d3b4a5b2c1 | ||
|
|
a915baa73b |
||
|
|
ebe0c0d66d |
||
|
|
5646a66f6c |
||
|
|
2b9bf3de24 |
||
|
|
e88e9c357f |
||
|
|
69c6de9f9c |
||
|
|
ceb97fd0ee | ||
|
|
8a23227ec9 | ||
|
|
982bb286f4 | ||
|
|
eb01c5bb85 | ||
|
|
61b52ac806 | ||
|
|
7b0b3d9415 | ||
|
|
7aa7a8db6d | ||
|
|
f96829f657 | ||
|
|
b6467e716e | ||
|
|
75fe3272b3 | ||
|
|
87fe52ea61 | ||
|
|
7361353497 | ||
|
|
314a931b84 | ||
|
|
1fa37566cb | ||
|
|
59782ad64e | ||
|
|
d5d7f0dd37 | ||
|
|
2b0e8160cf | ||
|
|
be86a89f30 | ||
|
|
d17f11f80d | ||
|
|
8bb70055f4 | ||
|
|
ca1cc0f64a | ||
|
|
68cb13881f | ||
|
|
260303dd14 | ||
|
|
1b0f560608 | ||
|
|
0a85d913cc | ||
|
|
0d734c872d | ||
|
|
3db987b913 | ||
|
|
b7b1101f11 | ||
|
|
23fbabe303 | ||
|
|
d1a044cc23 | ||
|
|
7c7a98d083 | ||
|
|
d30b1a2f54 | ||
|
|
32838a096d | ||
|
|
55f4528d1e | ||
|
|
0af64c01bf | ||
|
|
bb2cc68169 | ||
|
|
4a54d1420e | ||
|
|
9b5220a29c | ||
|
|
5ccfec9c18 | ||
|
|
060ddc2a17 | ||
|
|
493150650c | ||
|
|
6b9ec1d3ce | ||
| 6bfe02094d | |||
| 2c56622eeb | |||
| c706b9eefb | |||
|
|
e2a1519332 | ||
|
|
2b6177c9f7 | ||
|
|
b705893f38 | ||
|
|
6a256213f1 | ||
|
|
4a72592ae5 | ||
|
|
a20b7167cd | ||
|
|
01d7f63fcb | ||
|
|
2beb55be54 | ||
|
|
660d01ce0c | ||
|
|
126a1812a5 | ||
|
|
31899b2263 | ||
|
|
4e27c863ef | ||
|
|
b50e605441 | ||
|
|
1fe12f81a9 | ||
|
|
d9a358bdf3 | ||
|
|
1f12faecca | ||
|
|
6b3b5c735e | ||
|
|
f9b632eebb | ||
|
|
80c3dd7572 | ||
|
|
9c914308f6 | ||
|
|
93ab184e3a | ||
|
|
9fe2420547 | ||
|
|
a1d73f7281 | ||
|
|
f6e1174adb | ||
|
|
cef1d215b2 | ||
|
|
015861e63b | ||
|
|
a37d286d67 | ||
|
|
a722f3c634 | ||
|
|
127c05a882 | ||
|
|
248656b81f | ||
|
|
c63ab44c9c | ||
|
|
01ca5910ec | ||
| 6a6716035b | |||
| 0e8302c204 | |||
|
|
1582661da9 | ||
| 49f9760eac | |||
| df437851f0 | |||
| e4d9f78349 | |||
| c052e507eb | |||
|
|
138705e3dc | ||
|
|
35d2628941 | ||
|
|
a6d2407b73 | ||
|
|
a8dcba53a4 | ||
|
|
2a9bd77550 | ||
|
|
b7873abf07 | ||
|
|
7afa1057cd | ||
|
|
b61d82debb | ||
| b42a6d7431 | |||
| adfec76bce | |||
|
|
19b07dbbb2 | ||
|
|
7dbe375530 | ||
|
|
9aa4465718 | ||
|
|
62378dc8b9 | ||
|
|
fc97381c6e | ||
|
|
9312bcb6b0 | ||
|
|
e894d67ddf | ||
|
|
f53615f583 | ||
|
|
f968d90475 | ||
|
|
9cee230ef5 | ||
|
|
0ef62e1901 | ||
|
|
93ccf925cd | ||
|
|
574f36f593 | ||
|
|
b8fcd30a37 | ||
|
|
c740c96890 | ||
|
|
1627b58cfc | ||
|
|
e74d2be2d4 | ||
|
|
efd9351500 | ||
|
|
86a61bbcff | ||
|
|
058e4d757b | ||
|
|
a495a20d95 | ||
|
|
d34843347a | ||
|
|
f9d371c6e3 | ||
|
|
42e197a5ba | ||
|
|
9ee0de7c8b | ||
|
|
2ce00f3357 | ||
|
|
8305477e01 | ||
|
|
ce82e32c59 | ||
|
|
4547d2efa1 | ||
|
|
aea9747918 | ||
|
|
73cad9dee2 | ||
|
|
1d42e4afcb | ||
|
|
c6e4888c84 | ||
|
|
fd6258c90e | ||
|
|
d05f11b0b8 | ||
|
|
9ad203c744 | ||
|
|
bb62787c7c | ||
|
|
f97e6c42c7 | ||
|
|
5417471dff | ||
|
|
2bd48f1c8d | ||
|
|
49dfcf4885 | ||
|
|
c1141453fe | ||
|
|
00a7f4af93 | ||
|
|
689cac5be5 | ||
|
|
6d8763f721 | ||
|
|
ad51d4e0f6 | ||
|
|
e7fa238b2a | ||
| 5d148a58d2 | |||
|
|
e32f2110ab | ||
|
|
e774fc2b2a | ||
|
|
8cd2136d8e | ||
|
|
9aeea937c4 | ||
|
|
e375bd464d | ||
|
|
0ec361165d | ||
|
|
d4ec3a709d | ||
|
|
b821391f7a | ||
|
|
d6ca077959 | ||
| 4c7327e814 | |||
|
|
3a7013d7a1 | ||
|
|
91ff80fa6a | ||
| ba933f1470 | |||
|
|
4c9863cc54 | ||
|
|
685b14ddf3 | ||
| f87cce28d1 | |||
| 2272539c16 | |||
|
|
8d5e207577 | ||
|
|
3a25fc74b9 | ||
| 42bc5e28b9 | |||
| c16277bb8f | |||
| 5ac324cd91 | |||
| d30103e9d2 | |||
|
|
0b37c79bf4 | ||
|
|
9687cb4517 | ||
|
|
1545d9f018 | ||
| 06e1ddcf47 | |||
| 5ec8ac90d9 | |||
|
|
dc66d954d5 | ||
|
|
29bebc4af4 | ||
| cf0ab2a5bd | |||
|
|
1322e85eac | ||
|
|
ecc169111c | ||
|
|
fc9d7af18c | ||
|
|
9e1920214e | ||
| abd5f11b98 | |||
| 3e83ee82c9 | |||
| 0aec309077 | |||
| d1fae4a75e | |||
|
|
f2dedbe0a2 | ||
| 8d4fd9e7d8 | |||
| 21a29ab5aa | |||
|
|
df7ef403bc | ||
|
|
d3aafc4523 | ||
|
|
da58bcd436 | ||
| 46bbafa509 | |||
|
|
517493ea92 | ||
|
|
57032af356 | ||
|
|
303c681bff | ||
|
|
da4118dcf3 | ||
| 6d277ef1f1 | |||
|
|
448126f498 | ||
|
|
d10ba1e587 | ||
|
|
4a7ef82bf8 | ||
|
|
d5b1246791 | ||
|
|
9d9fc98556 | ||
|
|
037468fa9b | ||
|
|
72d73e307d | ||
|
|
0eda926b8c | ||
| c4c2d45e59 | |||
|
|
574688c6e1 | ||
|
|
d3b3fef63b | ||
|
|
444790aed2 | ||
|
|
67cc6a839b | ||
|
|
b03bed2425 | ||
|
|
707f220f77 | ||
|
|
8bd2ea47cc | ||
|
|
2087f7a28a | ||
|
|
61c45e7eab | ||
|
|
8e5e8c040d | ||
|
|
8c817bc1ca | ||
|
|
86678b5beb | ||
|
|
0ad767fa29 | ||
|
|
f9d1d2abb3 | ||
|
|
4742913244 | ||
|
|
07906451b2 | ||
|
|
0dbe9e1428 | ||
|
|
54a58abcaa | ||
|
|
95b92627aa | ||
|
|
b444697f33 | ||
|
|
6fa7bfbfb5 | ||
|
|
7a5244bf7c | ||
|
|
4d10655014 | ||
|
|
7868165e91 | ||
|
|
2b45405898 | ||
|
|
d9422342d3 | ||
|
|
d9c4a062ee | ||
|
|
0462b4afc9 | ||
|
|
d597b64705 | ||
|
|
d07f262eb6 | ||
|
|
d6f972057e | ||
|
|
f180cbcb09 | ||
|
|
db50e2e9e2 | ||
|
|
afd0d8c8c8 | ||
|
|
7abb96b48d | ||
|
|
8d2d538660 | ||
|
|
e5a6599ccb | ||
|
|
6ea1809a30 | ||
|
|
a9cd6dc7c2 | ||
|
|
ede5282d93 | ||
|
|
b0911ab87d | ||
|
|
8776a2ee06 | ||
|
|
e6b9fc90ba | ||
|
|
ca3a8ddf67 | ||
|
|
e79519afce | ||
|
|
6d765c1ff7 | ||
|
|
d17c517a0c | ||
|
|
1952d43073 | ||
|
|
258a6c7f56 | ||
|
|
bc5f6c8923 | ||
|
|
341de216a6 | ||
|
|
3e763e9e6c | ||
|
|
6c1b215db8 | ||
|
|
0f175bc65a | ||
|
|
eb56c6ef59 | ||
|
|
b0c9e097f9 | ||
|
|
c1805394ae | ||
| 1ee6c2e7b1 | |||
|
|
609977b7ff | ||
|
|
2999f12698 | ||
|
|
d0f5d2c459 | ||
| fc18e0f99c | |||
|
|
e6fc74c081 | ||
|
|
b24adcbe20 | ||
|
|
8c53ce78f5 | ||
|
|
d07ad48651 | ||
|
|
0fae040f77 | ||
| 3054bae8c2 | |||
|
|
4370efdbb8 | ||
|
|
57d83be054 | ||
|
|
1e3cae7d85 | ||
|
|
f1cd824a7d | ||
| 6bcfdec154 | |||
| 267d8239c1 | |||
| 60906c0228 | |||
|
|
4514bf1bd4 | ||
| 8e3281aa7c | |||
|
|
ab71ab621d | ||
|
|
b819507415 | ||
|
|
e7c3c15724 | ||
|
|
f473b671b1 | ||
|
|
4f189eb804 | ||
|
|
ca424a34e6 | ||
|
|
36244b8a11 | ||
|
|
e663aaee08 | ||
|
|
ed4e187132 | ||
|
|
5311d32993 | ||
|
|
835e281c9c | ||
|
|
1cc01bf598 | ||
|
|
793b7c2513 | ||
|
|
39f69ddedf | ||
|
|
6bc2503996 | ||
| c4996396c6 | |||
|
|
94ca0e577e | ||
| 35975582f0 | |||
| b3cf70ae42 | |||
| 45e45016a7 | |||
| 6f69cd6a11 | |||
| 6fd9dac145 | |||
|
|
28f2672c2d | ||
|
|
c25eca6f95 | ||
|
|
6ce6c7830b | ||
| 4ef057c65d | |||
| 39c3ac43ec | |||
|
|
5f1d7cf76c | ||
|
|
9268062de5 | ||
|
|
4ddf6557e3 | ||
|
|
ca9dd7338a | ||
|
|
c293a9b2ce | ||
|
|
75e85379f6 | ||
|
|
42adef0a76 | ||
|
|
93c80c9f4d | ||
|
|
a05ae761a4 | ||
|
|
ac94d182b6 | ||
|
|
536a64e56d | ||
|
|
750f90db4c | ||
|
|
acf94abe26 | ||
|
|
cca6693b2e | ||
|
|
54f752a42a | ||
|
|
aceb4ac13d | ||
|
|
67d93f3e0a | ||
|
|
ce4803a201 | ||
|
|
8b7cdd510a | ||
|
|
aa4c3dc7bd | ||
|
|
9cc585c17d | ||
|
|
e349d10ed7 | ||
|
|
d1fdea091c | ||
|
|
ddd8eab06f | ||
|
|
c4e89eb245 | ||
|
|
d49af95d3c | ||
|
|
88b436b4c1 | ||
|
|
4c1c1e990d | ||
|
|
8e967424de | ||
|
|
bee5593570 | ||
|
|
74652cec13 | ||
|
|
f87d31f423 | ||
|
|
985f7e0df3 | ||
|
|
f7381e261a | ||
|
|
493c8d61f4 | ||
|
|
7329b528f6 | ||
|
|
cd7852695e | ||
| 1875bce52e | |||
|
|
db32d0de3a | ||
|
|
1a4bec21bf | ||
|
|
3b91443f81 | ||
|
|
72001b237e | ||
|
|
232a909851 | ||
| 428c06c8d3 | |||
| cd8373fe50 | |||
|
|
bc0efa9c4e | ||
|
|
e7e7cfdce2 | ||
|
|
94d37913d1 | ||
|
|
49506406fd | ||
|
|
2d72c08e9b | ||
|
|
3df61be7b8 | ||
|
|
b5a79fbc8f | ||
|
|
4121d14eab | ||
|
|
b08ea652a3 | ||
|
|
a2a0a2a543 | ||
|
|
b5262c850e | ||
|
|
b83e6993c1 | ||
|
|
d9d739cd44 | ||
|
|
f7ca14119a | ||
|
|
40c2eeeabd | ||
|
|
7f1e41f769 | ||
|
|
147460e3d0 | ||
|
|
72505e0f5f | ||
|
|
7aa4b2d40a | ||
|
|
dd1b95f596 | ||
|
|
9f1e99e613 | ||
|
|
f40e6659f7 | ||
|
|
52a2315cd1 | ||
|
|
680806ce76 | ||
|
|
2fb551131e | ||
|
|
962839eb69 | ||
|
|
cd62853019 | ||
|
|
80304d3340 | ||
|
|
640b7f9613 | ||
|
|
6ec30f509b | ||
|
|
5f825d1da9 | ||
|
|
c5e6ed041c | ||
|
|
d7b09507bb | ||
|
|
adac0113c5 | ||
|
|
7cc7c18e77 | ||
|
|
fdf6a6570c | ||
|
|
1c07b63f1d | ||
|
|
f858191976 | ||
|
|
b1e120f229 | ||
|
|
15d6524efd | ||
|
|
d96be90f26 | ||
|
|
f4c02a9bca | ||
|
|
1274b87df9 | ||
|
|
1905f96ff4 | ||
|
|
38b94d019b | ||
|
|
51ffc0f037 | ||
|
|
0691f1da32 | ||
|
|
a9001fa9ce | ||
|
|
c95e75ac15 | ||
|
|
7707d3dc72 | ||
|
|
33b6545a16 | ||
|
|
90454c4e6b | ||
|
|
55b134597a | ||
|
|
5f436f21b8 | ||
|
|
a4c49201c0 | ||
|
|
cb2a8ee603 | ||
|
|
8d6e0760dc | ||
|
|
45298b810c | ||
|
|
dbcc94ab65 | ||
|
|
d82bd52b04 | ||
|
|
b400ae9c94 | ||
|
|
8918186d53 | ||
|
|
ba0ea2206e | ||
|
|
df566f4ff8 | ||
| b1152464c3 | |||
| ffc3451c67 | |||
|
|
9ce8f6bbb0 | ||
|
|
67429479f0 | ||
|
|
e48486636e | ||
|
|
8747474fd5 | ||
|
|
13b2443d6b | ||
|
|
3f179c00e7 | ||
|
|
6479ffc499 | ||
|
|
ad5ceac563 | ||
|
|
a1ff755576 | ||
|
|
4254046129 | ||
|
|
94119003a9 | ||
|
|
06d0eabb5f | ||
|
|
36c20230b8 | ||
|
|
2ed762cd72 | ||
|
|
13a5d4963b | ||
|
|
cef47133bc | ||
|
|
d2997baf0b | ||
|
|
1a4adc0e21 | ||
|
|
f5dd4e0a76 | ||
|
|
1959e9cdd8 | ||
|
|
36627e2969 | ||
|
|
6de632c0b9 | ||
|
|
fdd1062b85 | ||
|
|
099893d11b | ||
|
|
135b4fbadf | ||
|
|
6f28fc2db2 | ||
|
|
ca3644a08a | ||
|
|
dacb5720c5 | ||
|
|
2011db16a8 | ||
| 88ec06d06f | |||
|
|
4c106752f1 | ||
|
|
f7ab5d4869 | ||
|
|
7e57575f9e | ||
|
|
cab0381c2a | ||
|
|
4e5b9492b8 | ||
|
|
a434ec8dde | ||
|
|
b7d2ec4b6e | ||
|
|
25e69d1302 | ||
|
|
25bfad452c | ||
|
|
1815936b7d | ||
|
|
0d82c37928 | ||
|
|
87d6a9c336 | ||
|
|
a88c8d2afb | ||
|
|
c456284cef | ||
|
|
804570d874 | ||
|
|
8571192aa5 | ||
|
|
ccbb9697eb | ||
|
|
509a728211 | ||
|
|
ec425be624 | ||
|
|
9256aa8d58 | ||
|
|
5127bc2ef7 | ||
|
|
0f2cda06b1 | ||
|
|
12faca578f | ||
|
|
c9f825d7ef | ||
|
|
42b5963c49 | ||
|
|
5b40109646 | ||
|
|
2eab9b9598 | ||
|
|
7c55364cc2 | ||
|
|
1501590f88 | ||
|
|
e2bb629535 | ||
|
|
001232f0d7 | ||
|
|
54e845da6f | ||
|
|
f10ffed4c6 | ||
|
|
97ce257c57 | ||
|
|
0051240c7c | ||
|
|
317622678a | ||
|
|
9286850098 | ||
|
|
160c5b1e28 | ||
|
|
120b11e96b | ||
|
|
f0f0ddbafb | ||
|
|
3b91ace4ea | ||
|
|
92278ef5b0 | ||
|
|
17de2d9b79 | ||
|
|
81fbf48702 | ||
|
|
356e4b89f8 | ||
|
|
9b2800b614 | ||
|
|
a3d15caaa1 | ||
|
|
13d315d718 | ||
|
|
07ef7cf2a0 | ||
|
|
959f160987 | ||
|
|
17c03950d9 | ||
|
|
82d9351a6c | ||
|
|
a6643f0d7f | ||
|
|
16cb3a5ff1 |
||
|
|
e79610f23c |
||
|
|
0e114c37ac |
||
|
|
78d7d91e42 |
||
|
|
acf3b3575a | ||
|
|
348867ff6a |
||
|
|
22abe43e85 | ||
|
|
759c491ef0 | ||
|
|
64efa04599 | ||
|
|
e76d06b382 | ||
|
|
4dac520d98 | ||
|
|
b5a388a69d | ||
|
|
43ef5ec1ae | ||
|
|
92d96c14b9 | ||
|
|
72345f5516 | ||
|
|
76563756ee | ||
|
|
0f8ec6ce3a | ||
|
|
0dfb4aee73 | ||
|
|
0d64d6a5b6 | ||
|
|
b04ab0b630 | ||
|
|
2981fc20da | ||
|
|
7d3c66859c | ||
|
|
f98208f250 | ||
|
|
55cd9963db | ||
|
|
7f5f09830a | ||
|
|
b4c77a6ef6 | ||
|
|
f2ccb00f3b | ||
|
|
b57e3d84e1 | ||
|
|
51c94e9e82 | ||
|
|
a220d4805a | ||
|
|
7a9a04592b | ||
|
|
f6ea90c3a5 | ||
|
|
ca4cb07b16 | ||
|
|
b89077f9a5 | ||
|
|
e819dd0470 | ||
|
|
d48b65ed53 | ||
|
|
ce26deb706 | ||
|
|
6944998a19 | ||
|
|
75b32328b6 | ||
|
|
96b49f4e99 | ||
|
|
1ed0d6bbe3 | ||
|
|
4a7823d9b5 | ||
|
|
0f2b0bfdf1 | ||
|
|
9300eda3c6 | ||
|
|
95461cded7 | ||
|
|
98160624a0 | ||
|
|
9802467bbb | ||
|
|
24932fe891 | ||
|
|
a12b74b2f5 | ||
|
|
0ae6eca754 | ||
|
|
e66bedb43f | ||
|
|
565150b6cc | ||
|
|
3e894d5a54 | ||
|
|
b37b31e234 | ||
|
|
cfe422a5ab | ||
|
|
5ee20f7886 | ||
|
|
9a154725b5 | ||
|
|
2e1cc0a89b | ||
|
|
253b944a59 | ||
|
|
194f5af7b2 | ||
|
|
4d43ab07bc | ||
|
|
e6d439f2e9 | ||
|
|
7fcdfcdb10 | ||
|
|
d7583e7a1a | ||
|
|
0049b62cca | ||
|
|
e3636e6ffc | ||
|
|
bd9008794c | ||
|
|
e4fe8e8f37 | ||
|
|
35bf9aeaa5 | ||
|
|
88b20610cb | ||
|
|
fd8e10e12a | ||
|
|
8246642a45 | ||
|
|
d2e5fa7167 | ||
|
|
bcd5e9827b | ||
|
|
bcd4e5f29b | ||
|
|
2f68e21a96 | ||
|
|
ab74da9c29 | ||
|
|
bc31edb8cf | ||
|
|
8818d2fece | ||
|
|
dbcdc8a8ba | ||
|
|
871d323b3d | ||
|
|
69ffab3174 | ||
|
|
3e94ea3d86 | ||
|
|
03928eb23f | ||
|
|
54834e277d | ||
|
|
890429f210 | ||
|
|
1b37b9fbb1 | ||
|
|
69f3759a89 | ||
|
|
cf32b669ff | ||
|
|
fa5175fee5 | ||
|
|
4fce4a631c | ||
|
|
091ddac384 | ||
|
|
c4f782d194 | ||
|
|
103e520d5a | ||
|
|
0bb251bdda | ||
|
|
d9acd2b292 | ||
|
|
8a079b3440 | ||
|
|
f63e8ed2b9 | ||
|
|
15f7fd039a | ||
|
|
a4a31c5880 | ||
|
|
48087e6b02 | ||
|
|
cf451f0bea | ||
|
|
424b963bea | ||
|
|
e933e8cd75 | ||
|
|
2a27eebbe4 | ||
|
|
360ab47be0 | ||
|
|
9a9836a047 | ||
|
|
b40034a54a | ||
|
|
b7da9d1ef5 | ||
|
|
5e0975a304 | ||
|
|
7aa197b731 | ||
|
|
66c2e16a24 | ||
|
|
96dc99c389 | ||
|
|
2ea85c773c | ||
|
|
e76d2af358 | ||
|
|
f24d264480 | ||
|
|
5c33d22925 | ||
|
|
856678b09c | ||
|
|
641b511f1a | ||
|
|
cd78d4140a | ||
|
|
a1e86a481c | ||
|
|
d9b2f1a540 | ||
|
|
4d5fa3087f | ||
|
|
0ba27d8326 | ||
|
|
3296158a37 | ||
|
|
85af0c1bb0 | ||
|
|
49423e174b | ||
|
|
6331bd461f | ||
|
|
1882040a25 | ||
|
|
2410b30b40 | ||
|
|
d313971e1a | ||
|
|
b12df5f125 | ||
|
|
ac171ba219 | ||
|
|
e4cbb382ab | ||
|
|
3062421cf5 | ||
|
|
fa5950d329 | ||
|
|
c6a93f180b | ||
|
|
8191ea91e1 | ||
|
|
c790a2e906 | ||
|
|
5fbc7f7d88 | ||
|
|
c39f1f4346 | ||
|
|
de74b85747 | ||
|
|
7fe4e20f53 | ||
|
|
ee3e9a56f1 | ||
|
|
f926c73e10 | ||
|
|
1b0892f235 | ||
|
|
f55d00fe96 | ||
|
|
1dfd6671e7 | ||
|
|
4233a0913a | ||
|
|
83d8851ba6 | ||
|
|
0e2e90322b | ||
|
|
f6a5f56098 | ||
|
|
933f4919a8 | ||
|
|
f7de217129 | ||
|
|
9c6d7dbd89 | ||
|
|
2c49e04c98 | ||
|
|
d3a0bd20c0 | ||
|
|
14f3ee403a | ||
|
|
3aad5acb6a | ||
|
|
b749a4b88a | ||
|
|
0179904675 | ||
|
|
4318d72524 | ||
|
|
d329db05e1 | ||
|
|
d0d0c258d6 | ||
|
|
5e5106479f | ||
|
|
4851197de2 | ||
|
|
6ae94df0a1 | ||
|
|
3ae042f2cd | ||
|
|
e937a939ad | ||
|
|
32557cfa2c | ||
|
|
76a78f0d9b | ||
|
|
afbb3df280 | ||
|
|
8ed0c672b1 | ||
|
|
b4ac23b4f8 | ||
|
|
215e58eb38 | ||
|
|
2dfc30e3c4 | ||
|
|
bb43a8f47f | ||
|
|
36d6ffbe74 | ||
|
|
404f2051a8 | ||
|
|
fcb9e3edd9 | ||
|
|
f6678b931f | ||
|
|
bf4ece76fd | ||
|
|
98ba860150 | ||
|
|
b03a4f2829 | ||
|
|
37fec8b3b5 | ||
|
|
f0e07903b6 | ||
|
|
483ee91b12 | ||
|
|
df4d14ff61 | ||
|
|
d1d065a3e1 | ||
|
|
7997551b48 | ||
|
|
b9280f1ea7 | ||
|
|
46ef188079 | ||
|
|
6a15f306e4 | ||
|
|
7731dccbae | ||
|
|
90fe1bf6c9 | ||
|
|
cdd5f380c4 | ||
|
|
cef2b32663 | ||
|
|
185d7f593a | ||
|
|
ed75374b95 | ||
|
|
68370db5c3 | ||
|
|
90f3f81c39 | ||
|
|
7de303147c | ||
|
|
0057ee5558 | ||
|
|
ef98c54989 | ||
|
|
d2dd706a1a | ||
|
|
c3bf4c7b61 | ||
|
|
56e51f834f | ||
| 7d6990d933 | |||
|
|
31dddca0db | ||
|
|
543d79a7b5 | ||
|
|
6fb35c7d90 | ||
|
|
a234912406 | ||
|
|
c4aef429c2 | ||
|
|
b515601c9c | ||
|
|
6662535c28 | ||
|
|
77d6317aa4 | ||
| 97dc358dc6 | |||
| 879ddefbdf | |||
| d91b478ae0 | |||
| 036f90165e | |||
| 4f375a03c1 | |||
|
|
6c47dfbd54 | ||
|
|
085a7c8ce1 | ||
|
|
85c825438e | ||
|
|
414542cd82 | ||
|
|
a1f1b3540d | ||
|
|
8062fd9d6c | ||
|
|
47daae1aa2 | ||
|
|
39326cb03a | ||
|
|
b68091e032 | ||
|
|
2985bd709a | ||
|
|
9dc7160903 | ||
|
|
4a5bd2069f | ||
|
|
0d42829afc | ||
| 10735ffb84 | |||
|
|
4809662026 | ||
|
|
bb9d889d15 | ||
|
|
50bca7891f | ||
|
|
7d7aa60e19 | ||
|
|
7ba6c0a44a | ||
|
|
f51a444012 | ||
|
|
6ff6604941 | ||
|
|
b7ed5b7d12 | ||
| 62e1ecdd08 | |||
|
|
72bf86646d | ||
|
|
416eb300c0 | ||
|
|
fc09cdb720 | ||
|
|
3073aea3f8 | ||
|
|
10662c48df | ||
|
|
8819f54116 | ||
|
|
45df8dca11 | ||
|
|
ac866107fa | ||
|
|
330cb95ae9 | ||
|
|
4ffde06fe8 | ||
| 672aa13316 | |||
| 1ad4125a3b | |||
| f0fd3e4608 | |||
|
|
648809ff44 | ||
|
|
2ea6d41c38 | ||
|
|
f5edb02fbd | ||
|
|
a1f003bd9c | ||
|
|
59d81ddd4b | ||
|
|
1a52df0ddc | ||
|
|
156ff71430 | ||
|
|
75e3f3c90f | ||
|
|
eba3c85b9c | ||
| 1690c9d8ff | |||
|
|
675321b444 | ||
| 94e059a293 | |||
|
|
28c534445b | ||
|
|
7d2fef4b03 | ||
|
|
27fd52f472 | ||
|
|
b2aeceae91 | ||
|
|
e89ca14e66 | ||
|
|
56168cda65 | ||
|
|
62bd5898aa | ||
|
|
8c048a640d | ||
|
|
9f3a8c0956 | ||
| 40d19a6bbb | |||
|
|
8c97ad3d95 | ||
|
|
bcaca9c268 | ||
|
|
56c7431467 | ||
|
|
a0aba11e77 | ||
|
|
909c58de4e | ||
|
|
1b1b345263 | ||
|
|
e177bac054 | ||
|
|
4f2d529085 | ||
|
|
057f4c1be7 | ||
|
|
c2aa601424 | ||
|
|
5566062139 | ||
|
|
7d23266831 | ||
|
|
5239943bed | ||
|
|
e225ec3f77 | ||
|
|
3be1e9a88c | ||
|
|
b0321895a7 | ||
|
|
b51e9daccc | ||
|
|
d08c29b581 | ||
|
|
2fcfa42a26 | ||
|
|
8820c1ca2b | ||
|
|
29cb89340e | ||
|
|
fa6e389fdd | ||
|
|
73c77dd2d3 | ||
|
|
ff00df72ad | ||
|
|
9af4fcabff | ||
|
|
70a5e012d8 | ||
|
|
e7308a1a61 | ||
|
|
64e22bdb11 | ||
|
|
72104184b5 | ||
|
|
4061031035 | ||
|
|
0fe6b60efc | ||
|
|
47c17118f6 | ||
|
|
587a87e976 | ||
|
|
583aa41bf9 | ||
|
|
79b16563ed | ||
|
|
b1ef2cffa4 | ||
|
|
2bcaaa744f | ||
|
|
3c720640dd | ||
|
|
2677130e0c | ||
|
|
44d57497e0 | ||
|
|
f222414c1a | ||
|
|
40a582ca45 | ||
|
|
66ad275212 | ||
|
|
2c7ab566e1 | ||
|
|
4f7ae8425d | ||
|
|
041569b41c | ||
|
|
e3ae9a09bb | ||
|
|
4496c579af | ||
|
|
0ddc848b1e | ||
|
|
34253a5c30 | ||
|
|
9d25295e1a | ||
|
|
055eaed7ad | ||
|
|
3cc2f13b9b | ||
|
|
6e483497de | ||
|
|
745f1e2984 | ||
|
|
3db2dcb2d6 | ||
|
|
82ffde7786 | ||
|
|
86e81b19ac | ||
|
|
26143b8b77 | ||
|
|
7d73cc5ed6 | ||
|
|
d247f083e8 | ||
|
|
c4301696b0 | ||
|
|
0cf170b18e | ||
|
|
e98ff2879a | ||
|
|
bc29bb2b3c | ||
|
|
0297545270 | ||
|
|
f2b1c24ec3 | ||
|
|
57d372bb08 | ||
|
|
42c393ca40 | ||
|
|
2318c792d7 | ||
|
|
9717d5d928 | ||
|
|
a938468bb0 | ||
|
|
33cc3b0fa2 | ||
|
|
ebf0479f60 | ||
|
|
f7bf6a058e | ||
|
|
9fd285da4c | ||
|
|
5aaea37194 | ||
|
|
65f50b64b7 | ||
|
|
de282c50f3 | ||
|
|
601346d482 | ||
|
|
0844f717a8 | ||
|
|
82f48ef271 | ||
|
|
17afb5f5ad | ||
|
|
8b045da7a9 | ||
|
|
6610a9c384 | ||
|
|
b4d23c85f7 | ||
|
|
2e8c60d09b | ||
|
|
494b6cbbf9 | ||
|
|
128e568ae3 | ||
|
|
a68d39a3a2 | ||
|
|
77b96b97c8 | ||
|
|
dd562befc9 | ||
|
|
00d5524af9 | ||
|
|
ab84a3cece | ||
|
|
fea5fb3801 | ||
|
|
161f61327b | ||
|
|
c67a6d1895 | ||
|
|
38d27d8769 | ||
|
|
4a0380ab65 | ||
|
|
28027f4261 | ||
|
|
39eb73a1d5 | ||
|
|
b724881c6a | ||
|
|
d363a0b236 | ||
|
|
9f83622d38 | ||
|
|
3c18697da8 | ||
|
|
d16c96ab9d | ||
|
|
967652b5fe | ||
|
|
5cfe569369 | ||
|
|
fb45416193 | ||
|
|
a6c37d688b | ||
|
|
6d795fc5dd | ||
|
|
c01c389121 | ||
|
|
1d67aef811 | ||
|
|
81bd4c3338 | ||
|
|
3e7c804fe5 | ||
|
|
9184c310f2 | ||
|
|
e1c45e11fc | ||
|
|
ff880b4287 | ||
|
|
fd6b90a736 | ||
|
|
896e887511 | ||
|
|
ba32c2d594 | ||
|
|
58ab351da3 | ||
|
|
2ec357c454 | ||
|
|
7fab50a82b | ||
|
|
c70834eaff | ||
|
|
41782cb107 | ||
|
|
27b9e1ba6c | ||
|
|
a3ac99a6c8 | ||
|
|
8a56883d83 | ||
|
|
cba6ce4882 | ||
|
|
4c52b10f93 | ||
|
|
4125dfaab0 | ||
|
|
b17a1f0edb | ||
|
|
eed058426a | ||
|
|
68586a0c3d | ||
|
|
ffd2935cc4 | ||
|
|
5a895480b7 | ||
|
|
4e9b1780e9 | ||
|
|
60b2bbf4c9 | ||
|
|
6eff4bb898 | ||
|
|
72947b7f6b | ||
|
|
ea633d3f2e | ||
|
|
75961d0f39 | ||
|
|
339167c23c | ||
|
|
3244cfae85 | ||
|
|
3223a38889 | ||
|
|
37a8b4af2b | ||
|
|
9ecbf9f1cc | ||
| 44941137d6 | |||
|
|
e87b26f2de | ||
| 8b53003a16 | |||
|
|
a956583169 | ||
|
|
ec607d65fe | ||
|
|
eb20e10601 | ||
| d8af4d3ad5 | |||
| 82bcc83d41 | |||
|
|
5751a37c3e | ||
|
|
249455f347 | ||
|
|
698be8e5b6 | ||
|
|
3dbe375837 | ||
|
|
fff5e48266 | ||
|
|
1e582dceec | ||
|
|
28ab1c92dd | ||
|
|
c6ad2e60b3 | ||
|
|
104b9ce5d1 | ||
|
|
37451590b1 | ||
|
|
c7240c4861 | ||
|
|
1d8d74e10e | ||
|
|
614c73e10e | ||
|
|
ab6502c9df | ||
|
|
981f8068d2 | ||
|
|
6249921398 | ||
|
|
e727824964 | ||
|
|
a0d5e57ca8 | ||
|
|
c36fba4b99 | ||
|
|
7674cf139b | ||
|
|
d294a2c28e | ||
|
|
379c1da007 | ||
|
|
6a2f2352be | ||
|
|
a1d78384f9 | ||
|
|
3d82a0d25c | ||
|
|
8e060a1d83 | ||
|
|
5f9eef3bbb | ||
|
|
9bf2d58a8f | ||
|
|
3b4258c34e | ||
|
|
76d91e4b59 | ||
|
|
efb2c4a163 | ||
|
|
3592a0c6dd | ||
|
|
13943e710c | ||
|
|
17504975a6 | ||
|
|
8a70343e2c | ||
|
|
90acfc3952 | ||
|
|
9bac6da6c9 | ||
|
|
004e90e9b9 | ||
|
|
bbd451433f | ||
|
|
066d0bf15a | ||
|
|
658e759fa4 | ||
|
|
f255ac9b0f | ||
|
|
c363fc24de | ||
|
|
78c3c09163 | ||
|
|
ffe24c612c | ||
|
|
ae53b8e381 | ||
|
|
d86e50172a | ||
|
|
d28c374de9 | ||
|
|
f2459df682 | ||
|
|
beab2888fa | ||
|
|
47ba46400c | ||
|
|
6482b5df3f | ||
|
|
1bb897f9a2 | ||
|
|
99ce837d42 | ||
|
|
1b0f74ed76 | ||
|
|
1bfa281cec | ||
|
|
2d3e5439a7 | ||
|
|
2c54e91df1 | ||
| 5f147dd845 | |||
| 454f955d25 | |||
| 2ff61d1965 | |||
| e6b26829f4 | |||
| e5a12803ff | |||
| 5b8ab385f2 | |||
| 779374ad94 | |||
| dc7f5ab628 | |||
| cdb5b9c82a | |||
| 9ffdde3646 | |||
| 8ae9bcfec9 | |||
| 28a734fcc0 | |||
| ba0d6e83b2 | |||
| 7b7f17cae5 | |||
|
|
bfbc621010 | ||
|
|
3710557c62 | ||
|
|
5a647ec763 | ||
|
|
9127e06109 | ||
|
|
8a4cc56266 | ||
|
|
f9783f5f77 | ||
|
|
c5152b75f2 | ||
|
|
831acd16c6 | ||
|
|
0d36c9487a | ||
|
|
40e517f50c | ||
|
|
aa8c5555b7 | ||
|
|
3c9f021e2a | ||
|
|
702a07b2d1 | ||
|
|
2eab8d49af | ||
|
|
a568d5da0f | ||
|
|
152f02bb62 | ||
|
|
432e65b218 | ||
|
|
c818442ef2 | ||
|
|
f7a6377b74 | ||
|
|
d12daf10c4 | ||
|
|
203708e5da | ||
|
|
9eec4e22fb | ||
|
|
ad7977e51b | ||
|
|
9ad7e05502 | ||
|
|
84159d18e0 | ||
|
|
47b6149803 | ||
|
|
2955ef4344 | ||
|
|
b7f8b5e339 | ||
|
|
b22b581b67 | ||
|
|
ff8f7ac287 | ||
|
|
50316902e3 | ||
|
|
63347497ad | ||
|
|
c3de952d55 | ||
|
|
f3c3f454d3 | ||
|
|
7b6102750e | ||
|
|
94c7d4cacf | ||
|
|
2c6e3e0e96 | ||
|
|
ae477d69c8 | ||
|
|
653012ee5f | ||
|
|
73b54aab09 | ||
|
|
58d57bc532 | ||
|
|
dfdd77eff4 | ||
|
|
6e81bbc54b | ||
|
|
bae472eb33 | ||
|
|
c31278bcd0 | ||
|
|
b7fb973fa5 | ||
|
|
807e2902ea | ||
|
|
6e4533cb14 | ||
|
|
e1766aa070 | ||
|
|
b5b1a25e4f | ||
|
|
f36dc11601 | ||
|
|
b87b5eab31 | ||
|
|
5ef27191fc | ||
|
|
10a71eb35a | ||
|
|
9a79cec140 | ||
|
|
2b03ccd776 | ||
|
|
bcca8a637b | ||
|
|
619076bd2d | ||
|
|
a94de8fae4 | ||
|
|
5ec617fa3e | ||
|
|
301b4e18ff | ||
|
|
38c3d551ba | ||
|
|
75c203a1f0 | ||
|
|
d288ee1cde | ||
|
|
0a98abbffa | ||
|
|
3d5706d3cc | ||
|
|
074938c697 | ||
|
|
3fffb93150 | ||
|
|
19f6126a0f | ||
|
|
f06ff4bc3a | ||
|
|
ef1f9bf633 | ||
|
|
6a455be63a | ||
|
|
5cbdf981c0 | ||
|
|
1c0d74f7db | ||
|
|
fa55cd7d3b | ||
|
|
727c918f67 | ||
|
|
0198b99eb5 | ||
|
|
8d80e52de9 | ||
|
|
d1c55a9acb | ||
|
|
225752bd42 | ||
|
|
8e68da055c | ||
|
|
820ed5ae0c | ||
|
|
205e256ef6 | ||
|
|
a126bd955f | ||
|
|
ce0f779664 | ||
|
|
4e535b6b8b | ||
|
|
d6b7033f2b | ||
|
|
95f38d9d44 | ||
|
|
16a829d3eb | ||
|
|
2fdff153d6 | ||
|
|
68c1bf6633 | ||
|
|
9c6defe17c | ||
|
|
4ce52c5a9d | ||
|
|
549a1fc754 | ||
|
|
478ebd190c | ||
|
|
0fdacac8ed | ||
|
|
ff897bc904 | ||
|
|
3a2bd673c9 | ||
|
|
ac23fa3e10 | ||
|
|
44f910d199 | ||
|
|
2734e5069e | ||
|
|
13e8e53941 | ||
|
|
1cdcb12ebd | ||
|
|
f461a5073c | ||
|
|
95b1ac0706 | ||
|
|
490bad7b26 | ||
|
|
134a4a7b34 | ||
|
|
d55763ad6d | ||
|
|
a765fe5c07 | ||
|
|
ab8ae75837 | ||
|
|
f82a6224f2 | ||
|
|
46459053f4 | ||
|
|
e8f5d4c340 | ||
|
|
a2c2cc139a | ||
|
|
17472bc17b | ||
|
|
2afa0ad2fc | ||
|
|
2ceced593b | ||
|
|
a4376b4d74 | ||
|
|
01a3f7c0b7 | ||
|
|
32eee3b8e9 | ||
|
|
c615a82212 | ||
|
|
23f85118f5 | ||
|
|
cfbc68aa11 | ||
|
|
e3464bef1b | ||
|
|
9ce3809eb3 | ||
|
|
4031209f7b | ||
|
|
6a5f908269 | ||
|
|
dae43b4489 | ||
|
|
1f39d50285 | ||
|
|
e29255b9f2 | ||
|
|
97b2335323 | ||
|
|
6b53484277 | ||
|
|
4efe8553da | ||
|
|
3cc49460a3 | ||
|
|
219f3a99bf | ||
|
|
42b240f496 | ||
|
|
2b3aba1281 | ||
|
|
b4373b91b3 | ||
|
|
a5426ff4b5 | ||
|
|
2dd2f5593f | ||
|
|
f3172fda95 | ||
|
|
423001b702 | ||
|
|
4cca593071 | ||
|
|
ab94e37570 | ||
|
|
03f99a0e55 | ||
|
|
79973d1582 | ||
|
|
acddd14ce1 | ||
|
|
77df0ae324 | ||
|
|
f87fc63a79 | ||
|
|
689bf9f320 | ||
|
|
60c53e213c | ||
|
|
f163b32720 | ||
|
|
717e21da6c | ||
|
|
2fa174f6ea | ||
|
|
1be3ea4362 | ||
|
|
52e2017d8f | ||
|
|
49764ae5c7 | ||
|
|
724385fcf3 | ||
|
|
41266a1946 | ||
|
|
51afca5336 | ||
|
|
2b5929c881 | ||
|
|
98e7b7644c | ||
|
|
4264237bfe | ||
|
|
c1d2ceefc2 | ||
|
|
294285c164 | ||
|
|
ee5731fc96 | ||
|
|
5389d71905 | ||
|
|
2e6a827513 | ||
|
|
8afb752908 | ||
|
|
c663d87ba6 | ||
|
|
6f0459f3c5 | ||
|
|
7686a5ac5e | ||
|
|
14a112fcce | ||
|
|
34f2f7f038 | ||
|
|
f928072f74 | ||
|
|
65b3f6c75a | ||
|
|
d1cc8a6999 | ||
|
|
2363cdda47 | ||
|
|
4f47585cbc | ||
|
|
03ce5a2828 | ||
|
|
3c52710763 | ||
|
|
ca47ea0038 | ||
|
|
1b455e810b | ||
|
|
3a57367e7e | ||
|
|
ab3b151918 | ||
|
|
dc1a5dfd6d | ||
|
|
99dedc4933 | ||
|
|
a9dd040164 | ||
|
|
5fbac8d0ba | ||
|
|
197fabf40a | ||
|
|
d5f04b26c8 | ||
|
|
228ed4dbd2 | ||
|
|
16d51b3cf1 | ||
|
|
52a3db04d0 | ||
|
|
aa3e92f07b | ||
|
|
e52a059adf | ||
|
|
c3508945ca | ||
|
|
723be34bca | ||
|
|
4ef55ef13f | ||
|
|
565e11b16d | ||
|
|
9049a1421c | ||
|
|
78be159eb7 | ||
|
|
8216ec88e4 | ||
|
|
a62e4aade3 | ||
|
|
d0ef6b6583 | ||
|
|
7a0b3cd7b7 | ||
|
|
87d72dfc1a | ||
|
|
0a3b5d33d9 | ||
|
|
0e49ccbf43 | ||
|
|
b75481a4d4 | ||
|
|
360b42e892 | ||
|
|
08b8270739 | ||
|
|
02c3fe4988 | ||
|
|
92e67182a6 | ||
|
|
cb648fce33 | ||
|
|
26fcbbb4ef | ||
|
|
5f79efb201 | ||
|
|
520bcc29a7 | ||
|
|
51c9662475 | ||
|
|
d89cdbae0a | ||
|
|
ba0c56efbd | ||
|
|
6746ba8279 | ||
|
|
64f4cff3cb | ||
|
|
4bd6158260 | ||
|
|
295c21b4e9 | ||
|
|
7eabdc3cf9 | ||
|
|
8ed5f85f9d | ||
|
|
5a0a3971b0 | ||
|
|
a3c5d32a54 | ||
|
|
7fb322c83c | ||
|
|
f034ed6027 | ||
|
|
131ee68aed | ||
|
|
e40fde92fc | ||
|
|
3ca911dbc6 | ||
|
|
2388188fbb | ||
|
|
7988b3f8b9 | ||
|
|
c16d542da4 | ||
|
|
f7c4437873 | ||
|
|
b6bae508a8 | ||
|
|
8d5357107b | ||
|
|
aee97cffd6 | ||
|
|
cd6abf379a | ||
|
|
9123940255 | ||
|
|
29d4f910bc | ||
|
|
5279b7239c | ||
|
|
13001924c0 | ||
|
|
c790014cd5 | ||
|
|
b4644c9c2e | ||
|
|
e463f84333 | ||
|
|
f3bf1b3ea1 | ||
|
|
4cfedb1787 | ||
|
|
b125c0a4f2 | ||
|
|
55f26cbe25 | ||
|
|
79cfdf578d | ||
|
|
c3f79277b2 | ||
|
|
f89a720cd2 | ||
|
|
ebc84859fc | ||
|
|
c47abb6af7 | ||
|
|
300af0b1cf | ||
|
|
ac0c88fe9f | ||
|
|
5858ebda53 | ||
|
|
ce73cef457 | ||
|
|
bf7427e937 | ||
|
|
f3b7fc1514 | ||
|
|
f3ab45d9ff | ||
|
|
61aec12ba1 | ||
|
|
c4140a7c7b | ||
|
|
b0ebc277d6 | ||
|
|
63af60a0d9 | ||
|
|
824381e6ca | ||
|
|
f23999c8d3 | ||
|
|
4ca13d59a6 | ||
|
|
4e94713f07 | ||
|
|
36a330eb3c | ||
|
|
0b7d9babf6 | ||
|
|
3b072a7abb | ||
|
|
095c5335c6 | ||
|
|
be8df7999b | ||
|
|
f9cac131c9 | ||
|
|
a231898397 | ||
|
|
fc988a5c22 | ||
|
|
2f70a0d70e | ||
|
|
bfae291cf7 | ||
|
|
f67cdc8afa | ||
|
|
a035b52a0d | ||
|
|
a9109c94a4 | ||
|
|
4ace4348a7 | ||
|
|
82612bc312 | ||
|
|
f5aad522cc | ||
|
|
02476073aa | ||
|
|
54815e2b29 | ||
|
|
2c30704ba7 | ||
|
|
ad09a9258e | ||
|
|
f336bcb6fc | ||
|
|
a787d2b27b | ||
|
|
33c8f83fa6 | ||
|
|
746d9ec12b | ||
|
|
3c0790f080 | ||
|
|
5a114cf6ae | ||
|
|
6afc4b82c2 | ||
|
|
f80501d65c | ||
|
|
ca868596e3 | ||
|
|
94aa0df747 | ||
|
|
ef1394f4d1 | ||
|
|
3daa74e81d | ||
|
|
07545f4f7f | ||
|
|
e7ad8f9298 | ||
|
|
11ba4640b4 | ||
|
|
0d78ab313f | ||
|
|
c585e4876e | ||
|
|
995e33afc9 | ||
|
|
5cb5c3bfdf | ||
|
|
d8f39f3903 | ||
|
|
4fb55b8d92 | ||
|
|
ea286c600f | ||
|
|
d9de8b1dda | ||
|
|
c130bdf534 | ||
|
|
b535e848ad | ||
|
|
8af1add2a6 | ||
|
|
e461961efd | ||
|
|
613d66b7a7 | ||
|
|
44dbe6f2fe | ||
|
|
8d167c4ab7 | ||
|
|
547c1f9c86 | ||
|
|
28ba493e71 | ||
|
|
57b700d11b | ||
|
|
fccdcd768d | ||
|
|
afb06b729e | ||
|
|
de19130497 | ||
|
|
3f08565e59 | ||
|
|
3e398b233b | ||
|
|
baad4c3276 | ||
|
|
aea95d256f | ||
|
|
52bcc8bc3b | ||
|
|
14ee9c4cc7 | ||
|
|
f8c36c080e | ||
|
|
71e5314ec1 | ||
|
|
386a84eafc | ||
|
|
f5cee7a57d | ||
|
|
6dcf3e7c26 | ||
|
|
d2c45717f1 | ||
|
|
0dfdf23492 | ||
|
|
dc8e9c6855 | ||
|
|
9e153f5c18 | ||
|
|
b0b0e46f03 | ||
|
|
37e1c95bf0 | ||
|
|
241d8e6c3a | ||
|
|
2b0210b905 | ||
|
|
7ab5cd35ac | ||
|
|
49bdd83ea1 | ||
|
|
08762330e1 | ||
|
|
29ae02565c | ||
|
|
fcbb27a648 | ||
|
|
b34eadece2 | ||
|
|
39f65d2ef7 | ||
|
|
8b0eb5766a | ||
|
|
d84a43960b | ||
|
|
ee25229a48 | ||
|
|
e5ab33651d | ||
|
|
d288acbe30 | ||
|
|
b99af6663c | ||
|
|
4353cff72e | ||
|
|
3c1e001f5e | ||
|
|
7fad1074b6 | ||
|
|
67f61eb7ec | ||
|
|
ad5c105858 | ||
|
|
1d0233fe4e | ||
|
|
c50925cab5 | ||
|
|
17d36fdfab | ||
|
|
d6f84d1ef0 | ||
|
|
80fffbad11 | ||
|
|
9d54eb7257 | ||
|
|
e5253e0330 | ||
|
|
7d46156fd6 | ||
|
|
122fb96654 | ||
|
|
87336f9b4f | ||
|
|
7d4c11a186 | ||
|
|
138d26e398 | ||
|
|
a70d478f9e | ||
|
|
aec1632627 | ||
|
|
14dee79a9b | ||
|
|
f165b5611e | ||
|
|
8854bc55d9 | ||
|
|
bdb4ffb449 | ||
|
|
976ce8c44e | ||
|
|
8e1cf76cd5 | ||
|
|
8749ce6178 | ||
|
|
c48f31389f | ||
|
|
fc8543eab6 | ||
|
|
b12bd82fe2 | ||
|
|
aaa142d76b | ||
|
|
4bb8dc2f53 | ||
|
|
5d5b1fdc05 | ||
|
|
f955191d77 | ||
|
|
785e54b311 | ||
|
|
05262ffe39 | ||
|
|
01dc23b00c | ||
|
|
b2e39e3dc1 | ||
|
|
0acf3c0118 | ||
|
|
e1eae5604e | ||
|
|
a5d2cdecf4 | ||
|
|
ae438b9719 | ||
|
|
a2106f6552 | ||
|
|
6f4881a9a9 | ||
|
|
f7f63aa7a2 | ||
|
|
0f1dabb080 | ||
|
|
d068dfd621 | ||
|
|
6bf235c698 | ||
|
|
e6420a49e8 | ||
|
|
02aad6f4cc | ||
|
|
c0da6fcc89 | ||
|
|
fe20da6594 | ||
|
|
a420ee105d | ||
|
|
a89926c40b | ||
|
|
a271244cfb | ||
|
|
2ea2e640c9 | ||
|
|
367ef21bd8 | ||
|
|
59de2afdaa | ||
|
|
512b410012 | ||
|
|
e1a2ebab5c | ||
|
|
87dcc6ed52 | ||
|
|
a5fc3f5002 | ||
|
|
5f5b9f8cc4 | ||
|
|
4947b154ee | ||
|
|
72bbf93282 | ||
|
|
a37c48ed43 | ||
|
|
33a4f07bb4 | ||
|
|
54bed4d254 | ||
|
|
71f5709fca | ||
|
|
ea33b093f0 | ||
|
|
808ea30634 | ||
|
|
84eb05aed6 | ||
|
|
7adbc6f913 | ||
|
|
e50b54273a | ||
|
|
7783060993 | ||
|
|
ccf0f4311d | ||
|
|
acd42b259b | ||
|
|
ed10f4e5b4 | ||
|
|
b9dcd01ea1 | ||
|
|
6a68c14a76 | ||
|
|
b5a0c52684 | ||
|
|
19219fe1f9 | ||
|
|
b29a52db1a | ||
|
|
68b7392021 | ||
|
|
684ad56a80 | ||
|
|
90896a9e06 | ||
|
|
a95167b374 | ||
|
|
9d86f8c9b7 | ||
|
|
1b36ed88f0 | ||
|
|
d074713b94 | ||
|
|
a6e2cf853e | ||
|
|
e58a467327 | ||
|
|
538a5b4964 | ||
|
|
7cf0d60b08 | ||
|
|
48923d23d8 | ||
|
|
695973bb34 | ||
|
|
8998ea9298 | ||
|
|
adab987994 | ||
|
|
65cab0d0e8 | ||
|
|
321b39ee89 | ||
|
|
bc9d40df37 | ||
|
|
3b47a036e3 | ||
|
|
61dc7291dc | ||
|
|
f47d2c22bc | ||
|
|
dfe4274467 | ||
|
|
08dbf2e96c | ||
|
|
abf291cb20 | ||
|
|
71b41df733 | ||
|
|
6d5686229f | ||
|
|
f5a39e5281 | ||
|
|
7b065e931f | ||
|
|
d7984df503 | ||
|
|
6c3b1e3ca0 | ||
|
|
de4db39f88 | ||
|
|
965526a930 | ||
|
|
dc27a15ec0 | ||
|
|
fcfd2d0a3c | ||
|
|
a3dea70a97 | ||
|
|
f82c4dc669 | ||
|
|
5918de368d | ||
|
|
12ef3ca4d2 | ||
|
|
db29ea8e70 | ||
|
|
2f842d56eb | ||
|
|
edec2abb1d | ||
|
|
ac5fa7cd64 | ||
|
|
22a83d2c93 | ||
|
|
ca1c5ff713 | ||
|
|
d1a569fecd | ||
|
|
d00947711d | ||
|
|
4302b7592d | ||
|
|
2932b8343f | ||
|
|
8a34b7dfea | ||
|
|
3759944a88 | ||
|
|
48f492c55e | ||
|
|
8c04316b65 | ||
|
|
95513ab538 | ||
|
|
9db28fab97 | ||
|
|
990581a459 | ||
|
|
e7e610d829 | ||
|
|
465749f377 | ||
|
|
e0b009308a | ||
|
|
9ded11daf0 | ||
|
|
4cc3241dc2 | ||
|
|
c28aaab8ea | ||
|
|
68ac5af63b | ||
|
|
1c7f8baa02 | ||
|
|
8b7e1f16e9 | ||
|
|
3c49e93bfe | ||
|
|
115f5915fd | ||
|
|
49c686319e | ||
|
|
9b2d630807 | ||
|
|
2583cb213e | ||
|
|
c3a05adaff | ||
|
|
1ec8be79ef | ||
|
|
21982be0cb | ||
|
|
55d83acaae | ||
|
|
5cc894e1e9 | ||
|
|
48a21de3ac | ||
|
|
9bd2e9d2e6 | ||
|
|
a501444310 | ||
|
|
ba3819a83e | ||
|
|
393d335f40 | ||
|
|
d166224e68 | ||
|
|
c769d0b681 | ||
|
|
8a7639c191 | ||
|
|
2b66889105 | ||
|
|
97a8793fdd | ||
|
|
4bee421f97 | ||
|
|
58f19df386 | ||
|
|
ee519b878d | ||
|
|
9925fee528 | ||
|
|
067614db1f | ||
|
|
bba68b6e40 | ||
|
|
472198419a | ||
|
|
589d50bdba | ||
|
|
77d93b63fd | ||
|
|
73f22c7af1 | ||
|
|
a132adbb03 | ||
|
|
127c512f84 | ||
|
|
48e2468c56 | ||
|
|
d0dfe8f834 | ||
|
|
05716b2408 | ||
|
|
295a8a404d | ||
|
|
7acf0412db | ||
|
|
98cdc6c139 | ||
|
|
e1fa588a4d | ||
|
|
33559fad67 | ||
|
|
04ae94a2df | ||
|
|
5f2aff73dc | ||
|
|
c074d377aa | ||
|
|
c68c11dce1 | ||
|
|
74449ba45e | ||
|
|
8af3374965 | ||
|
|
dc2b37cec1 | ||
|
|
9358efd273 | ||
|
|
fc40a40ae0 | ||
|
|
1927d4852a | ||
|
|
7646375218 | ||
|
|
a4151fee44 | ||
|
|
5a2873efc8 | ||
|
|
e3f401900a | ||
|
|
f8d3e36efb | ||
|
|
0f6b6f420c | ||
|
|
81fae9325f | ||
|
|
73338c330b | ||
|
|
6cd419b334 | ||
|
|
6af7eadc89 | ||
|
|
34b5fbd892 | ||
|
|
4d8840dba0 | ||
|
|
93f5ace932 | ||
|
|
760b7e7afb | ||
|
|
25324a5e35 | ||
|
|
7143fd2706 | ||
|
|
3de9b869ac | ||
|
|
5b79a97d34 | ||
|
|
b2d86ef2e6 | ||
|
|
42bad3dd37 | ||
|
|
726aaf2033 | ||
|
|
0c4847747b | ||
|
|
3b9b0dde56 | ||
|
|
2286acc6f2 | ||
|
|
e6feee14fb | ||
|
|
136ddc05b5 | ||
|
|
18c5e60ab1 | ||
|
|
bc4a9fda3a | ||
|
|
f50374af51 | ||
|
|
1b5010b747 | ||
|
|
200c15c536 | ||
|
|
46a0689dfe | ||
|
|
74e003d29b | ||
|
|
408d89433b | ||
|
|
91cf68363b | ||
|
|
8aacbe2885 | ||
|
|
975b93c20a | ||
|
|
b527479620 | ||
|
|
866645679a | ||
|
|
2f5de23ae9 | ||
|
|
ffeaa3d06b | ||
|
|
a76d8bb517 | ||
|
|
8298bb0bf5 | ||
|
|
b3cf339d06 | ||
|
|
10b27e63ca | ||
|
|
9db2949377 | ||
|
|
cd8695d3eb | ||
|
|
d1708c78b6 | ||
|
|
eaf1721212 | ||
|
|
b9a6cf7c6a | ||
|
|
a7fe8b4ed2 | ||
|
|
f79727559a | ||
|
|
58bd230a61 | ||
|
|
83c981f477 | ||
|
|
b80b548f14 | ||
|
|
49d9f1f475 | ||
|
|
90c66966e7 | ||
|
|
70698aa167 | ||
|
|
093cafa992 | ||
|
|
8192c2cbfc | ||
|
|
1eb7eb8fe9 | ||
|
|
37fa9b3743 | ||
|
|
263a8a73a7 | ||
|
|
32f878ad00 | ||
|
|
8fddb1692f | ||
|
|
4e46cf8ce4 | ||
|
|
79fea569b9 | ||
|
|
0eb67a00f5 | ||
|
|
c793825edb | ||
|
|
2403fc59ee | ||
|
|
4d47467944 | ||
|
|
76c46d88fc | ||
|
|
3de17b2aa2 | ||
|
|
71f01ca735 | ||
|
|
8209009ddc | ||
|
|
c0c97a1207 | ||
|
|
b2e46e3429 | ||
|
|
c3e6eaffcd | ||
|
|
24019a7175 | ||
|
|
c7811fb056 | ||
|
|
ff9b2fe6f4 | ||
|
|
c1441fc676 | ||
|
|
8ab760ad90 | ||
|
|
55402fa3cf | ||
|
|
edaae74d47 | ||
|
|
b84d3393a0 | ||
|
|
7205cd5ecf | ||
|
|
f85a110efc | ||
|
|
ff50a61344 | ||
|
|
14a7317bee | ||
|
|
68dc9d5d4b | ||
|
|
ddaece5b57 | ||
|
|
6c2ee6346f | ||
|
|
db717ab660 | ||
|
|
794e9e75e0 | ||
|
|
02c8079fef | ||
|
|
cf592e7260 | ||
|
|
511e7951c8 | ||
|
|
a66bc8c343 | ||
|
|
bf9ad8b25c | ||
|
|
40acd27319 | ||
|
|
d6d56043ce | ||
|
|
ce27012d62 | ||
|
|
fc9dd61fe0 | ||
|
|
24bb4aa481 | ||
|
|
9b9f34eb00 | ||
|
|
5bdc2e1ba9 | ||
|
|
04b81f2a51 | ||
|
|
13e7c98469 | ||
|
|
5712df850b | ||
| 067af56cd8 | |||
| 93cf32d899 | |||
| 78d057bc52 | |||
| 89ecc85fb2 | |||
|
|
140a6bea23 | ||
| 995a02360b | |||
| 0162436ab7 | |||
| 243106f513 | |||
|
|
88d430cd98 | ||
| 47d0b30739 | |||
| fb3cad7bb6 | |||
|
|
dbe65795f5 | ||
|
|
5f318d5de3 | ||
|
|
5bad25cd6d | ||
|
|
3c14f7e2f5 | ||
|
|
fe5c99b143 | ||
|
|
ab50d8561b | ||
|
|
9cde0d9d94 | ||
|
|
9326adf34b | ||
|
|
25bdcb1602 | ||
|
|
ef24ec4db8 | ||
|
|
e1d8645415 | ||
|
|
4ec1afc47f | ||
|
|
14a3bf7262 | ||
|
|
4758daa037 | ||
|
|
347ff8900e | ||
|
|
b1d661f4c0 | ||
|
|
b2686f3b13 | ||
|
|
c5c5e7b89b | ||
|
|
e569e0546a | ||
|
|
5fb66cd314 | ||
|
|
9b92822b4b | ||
|
|
4ae241259f | ||
|
|
d78dc7af8b | ||
|
|
e7527802a5 | ||
|
|
af1f7a9241 | ||
|
|
622cd398c6 | ||
|
|
84f2ca0d1f | ||
|
|
137856002f | ||
|
|
4ecffa7d59 | ||
|
|
fb40ba4d0f | ||
|
|
a1b946abc4 | ||
|
|
135499f120 | ||
|
|
1c94c615b1 | ||
|
|
bc4af64a75 | ||
|
|
1788b343d1 | ||
|
|
8d3639db50 | ||
|
|
90f7ec40fe | ||
|
|
48b6344645 | ||
|
|
dc39099730 | ||
|
|
1846175135 | ||
|
|
211363d5be | ||
|
|
b06a77ff8d | ||
|
|
bac593822d | ||
|
|
483cc06211 | ||
|
|
2acce10497 | ||
|
|
d5817a54c8 | ||
|
|
6985c1faba | ||
|
|
59bc29fbe3 | ||
|
|
0cf0cdd0c3 | ||
|
|
9195c9b8e8 | ||
|
|
96e58af1da | ||
|
|
4dfa653823 | ||
|
|
fd72c607c1 | ||
|
|
6945d8ebc9 | ||
|
|
53fe3844cb | ||
|
|
c789d9a5bf | ||
|
|
11ecd73bf0 | ||
|
|
68d4bcbcb4 | ||
|
|
e3f6769507 | ||
|
|
e55d328c9e | ||
|
|
614a5cfe55 | ||
|
|
260b6f6ae1 | ||
|
|
3c58eee003 | ||
|
|
3d73cd2fd3 | ||
|
|
9647d8f7e5 | ||
|
|
1485381340 | ||
|
|
22874bfa84 | ||
|
|
51c8687455 | ||
|
|
ead8f7ff76 | ||
|
|
e0193fec56 | ||
|
|
ae8040536f | ||
|
|
782d84870d | ||
|
|
03bd44e135 | ||
|
|
a9ffa86b74 | ||
|
|
72fef03184 | ||
|
|
0b4914a7f3 | ||
|
|
e771e91043 | ||
|
|
cb4d0ad1ab | ||
|
|
516244c7cb | ||
|
|
a09ee9a814 | ||
|
|
d4bad031e9 | ||
|
|
d72afd3903 | ||
|
|
119ea2f8fe | ||
|
|
4ff34a7aa8 | ||
|
|
e49ccedeff | ||
|
|
a265d87037 | ||
|
|
f95052e56f | ||
|
|
4882c2cf19 | ||
|
|
956f400da6 | ||
|
|
2dac681f25 | ||
|
|
85d24ce259 | ||
|
|
8a7c64f86a | ||
|
|
a064cc19b3 | ||
|
|
d8630dc6d4 | ||
|
|
d42e25fca3 | ||
|
|
d975c8cc55 | ||
|
|
3e2dda8132 | ||
|
|
002537f5d1 | ||
|
|
6604c4c4ba | ||
|
|
af75aa9024 | ||
|
|
9dcad37acf | ||
|
|
dd3011f447 | ||
|
|
5152bdfce7 | ||
|
|
d570e786ec | ||
|
|
0db80189d7 | ||
|
|
352c7da46c | ||
|
|
dd566527a9 | ||
|
|
d7f11332a9 | ||
|
|
8113e7f4ac | ||
|
|
4a89e64115 | ||
|
|
60f85c5b85 | ||
|
|
d59953642e | ||
|
|
122c5c7a9a | ||
|
|
459ea4cfd9 | ||
|
|
44a0f5d7bb | ||
|
|
6d10f2e4f2 | ||
|
|
a59fa92246 | ||
|
|
a1fb621d19 | ||
|
|
22a8197f6b | ||
|
|
a50830dca8 | ||
|
|
9f330e361d | ||
|
|
52fdf15a4b | ||
|
|
005c94556e | ||
|
|
177c350747 | ||
|
|
d1e06504a2 | ||
|
|
06fb7491fa | ||
|
|
cb829ec8d0 | ||
|
|
6fbc03076b | ||
|
|
f90f999156 | ||
|
|
3b430c0d76 | ||
|
|
b1be1604c6 | ||
|
|
c620c2fa29 | ||
| b772e09d53 | |||
|
|
919707d6f9 | ||
|
|
50208bc537 | ||
|
|
55f2ea6b9f | ||
|
|
1b25ef33b9 | ||
| 3ff7621984 | |||
|
|
fc1a9ed27b | ||
|
|
1d933dd5d3 | ||
|
|
fb630437db | ||
|
|
b06122f3a1 | ||
|
|
7a41d6d8fa | ||
|
|
61747c4cb7 | ||
|
|
f16ac1911d | ||
|
|
77e92ceba9 | ||
|
|
474d4f7cb0 | ||
| f41b029ade | |||
|
|
7df1f26c9a | ||
|
|
6c9606330c | ||
|
|
acb31b2632 | ||
|
|
fbda50dfb0 | ||
|
|
e03f5d08dd | ||
|
|
ef45cd5ce0 | ||
|
|
2732a4ba5c | ||
|
|
527ec0889b | ||
|
|
4fd27e76a7 | ||
|
|
c270538072 | ||
|
|
eb93d1bebd | ||
|
|
369305f376 | ||
|
|
8031c77700 | ||
|
|
4faec43493 | ||
|
|
958d2d336f | ||
|
|
442dc767dd | ||
|
|
cd8b3cf68d | ||
|
|
6a8778e595 | ||
|
|
81c92e5cc4 | ||
|
|
16340b7d34 | ||
|
|
6b6037d9bb | ||
|
|
2e81379c18 | ||
|
|
d289cc2d3e | ||
|
|
2e083db90a | ||
|
|
7d7ad2630c | ||
|
|
18a90eddee | ||
|
|
7abcd09fdd | ||
|
|
d515f3dbe2 | ||
|
|
dd9083327d | ||
|
|
2241576105 | ||
|
|
e4c830ebca | ||
|
|
67c7351bec | ||
|
|
55aad25200 | ||
|
|
dc277b10c7 | ||
|
|
98e86ae345 | ||
|
|
dc41c7a9e6 | ||
|
|
d12645f230 | ||
|
|
f64aaf74b7 | ||
|
|
765c5bb50c | ||
|
|
ed7b6d1a68 | ||
|
|
fe143d57b8 | ||
|
|
839af573b1 | ||
|
|
3167ececc6 | ||
|
|
ad1f0f77b8 | ||
|
|
8b91e3116a | ||
|
|
5a3dc38e60 | ||
|
|
4d2b576553 | ||
|
|
20091cf1e9 | ||
|
|
56b6c95ed4 | ||
|
|
de9b38a201 | ||
|
|
f37f3d201c | ||
|
|
1ef5bcaa74 | ||
|
|
af3dad0196 | ||
|
|
5ce61342e1 | ||
|
|
3a419ed58b | ||
|
|
8e6073bc6f | ||
|
|
868421bf16 | ||
|
|
1bd27fffae | ||
|
|
fd8fdf8b54 | ||
|
|
0c15d0ff02 | ||
|
|
9c99346ddf | ||
|
|
4d63694e20 | ||
|
|
2b32e1e9f4 | ||
|
|
9e9271fd4f | ||
|
|
a1ed12b382 | ||
|
|
8bf196fdc0 | ||
|
|
661e33ac4b | ||
|
|
b996dcbae1 | ||
|
|
8408f433e9 | ||
|
|
a6452cfabd | ||
|
|
3dfad32d4c | ||
|
|
785c9ad4aa | ||
|
|
2fe647a1f7 | ||
|
|
d4fc49fa6b | ||
|
|
7518d527ac | ||
|
|
d419722a24 | ||
|
|
bb19902581 | ||
|
|
4718b81a08 | ||
|
|
52368b0116 | ||
|
|
67545eda79 | ||
|
|
a8d4544c46 | ||
|
|
4ab51df2c8 | ||
|
|
4e3bab81d5 | ||
|
|
7f0ae7928a | ||
|
|
84770b9ef2 | ||
|
|
6d430524f1 | ||
|
|
13968d16f6 | ||
|
|
327a0f2844 | ||
|
|
1774b50e47 | ||
|
|
aedda96f3e | ||
|
|
b0ac5fe78d | ||
|
|
9c5926f697 | ||
|
|
500c194328 | ||
|
|
28e8632097 | ||
|
|
6c685e61d5 | ||
|
|
e4910933b1 | ||
|
|
bec3569724 | ||
|
|
e6bf226036 | ||
|
|
f834352e88 | ||
|
|
18dd0ebd33 | ||
|
|
19426574f7 | ||
|
|
8457e6cfd1 | ||
|
|
018ba02111 | ||
|
|
a3f3d2a3b3 | ||
|
|
c10080ec2f | ||
|
|
447092ced4 | ||
|
|
625f67f45f | ||
|
|
5ffd523340 | ||
|
|
c51edff9f5 | ||
|
|
cad5015962 | ||
|
|
eb6478ce58 | ||
|
|
38e84a8b69 | ||
|
|
373120814c | ||
|
|
b512a76db9 | ||
|
|
7550f4de3e | ||
|
|
caa49167ca | ||
|
|
8ab91009e1 | ||
|
|
7272a7b13c | ||
|
|
b6d3bfe64f | ||
|
|
2d59bb01a5 | ||
|
|
4f2a09ee96 | ||
|
|
91de1b08aa | ||
|
|
80c6592ec8 | ||
|
|
2fca87eda8 | ||
|
|
a498330bd3 | ||
|
|
03ec09c771 | ||
|
|
bbea7123f3 | ||
|
|
fc7564c829 | ||
|
|
482ec3c5d8 | ||
|
|
3d4bb3837f | ||
|
|
91eccc8920 | ||
|
|
0eda57986f | ||
|
|
344e08ddda | ||
|
|
47424bf200 | ||
|
|
13d6644966 | ||
|
|
347c620eed | ||
|
|
aeff2bcb0f | ||
|
|
82830f191d | ||
|
|
7814ece7b7 | ||
|
|
2cfa046cdd | ||
|
|
8ab408f890 | ||
|
|
7a44f30574 | ||
|
|
a0add17cf8 | ||
|
|
265d1af56a | ||
|
|
a4b2e2ce95 | ||
|
|
ace897de25 | ||
|
|
2e9421a6e7 | ||
|
|
489fa2a8be | ||
|
|
6adb20b829 | ||
|
|
324a88c435 | ||
|
|
f769b395c2 | ||
|
|
8f525fbc83 | ||
|
|
7e951fd4d1 | ||
|
|
03cc2a63b1 | ||
|
|
7a1f81dc7b | ||
|
|
e786803dae | ||
|
|
c53d180752 | ||
|
|
37ea64d23b | ||
|
|
1bb3c82d72 | ||
|
|
7d57d1df79 | ||
|
|
e2e1d0bb67 | ||
|
|
4dd0f61934 | ||
|
|
217d2bcb23 | ||
|
|
45d5e4719a | ||
|
|
1e4833781e | ||
|
|
a32d3abd33 | ||
|
|
7b51e22922 | ||
|
|
e785092935 | ||
|
|
9cf80f5fdf | ||
|
|
6482863c5d | ||
|
|
28bf0c3ed8 | ||
|
|
aedb3669c7 | ||
|
|
866f23ea2c | ||
|
|
a22e729a3c | ||
|
|
e402473668 | ||
|
|
c47d0fae1c | ||
|
|
474d901fda | ||
|
|
bb1a8d8e66 | ||
|
|
8dfbb4a9dd | ||
|
|
04bd5d88c3 | ||
|
|
4a67d768d5 | ||
|
|
9bdb715b7d | ||
|
|
43061dc1b3 | ||
|
|
1db1168c9a | ||
|
|
2d69eb07c1 | ||
|
|
b6f61a632f | ||
|
|
03d224c74c | ||
|
|
5308d2cfe7 | ||
|
|
0eac132b83 | ||
|
|
df88d98ea0 | ||
|
|
d5955bbb4d | ||
|
|
c779e16fe2 | ||
|
|
d97f6794d0 | ||
|
|
13fc5aa8f5 | ||
|
|
5eac7512a5 | ||
|
|
384a20ffbc | ||
|
|
6e107fa92c | ||
|
|
9eef95a0b6 | ||
|
|
afa5f884c5 | ||
|
|
ccb3c8780f | ||
|
|
90fad0fe83 | ||
|
|
184e2bd9c5 | ||
|
|
09fd809032 | ||
|
|
5ec586f764 | ||
|
|
f264cf9f6c | ||
|
|
8a40ba789a | ||
|
|
0dd4942d96 | ||
|
|
528901bdee | ||
|
|
af24165367 | ||
|
|
69a3844332 | ||
|
|
1177286d4e | ||
|
|
6ecfb28d93 | ||
|
|
d944f2ac19 | ||
|
|
6eddaaf090 | ||
|
|
32a94a0f89 | ||
|
|
4946fe2654 | ||
|
|
6771a13758 | ||
|
|
081d3aea37 | ||
|
|
3a97ab910a | ||
|
|
c836a60a7e | ||
|
|
8f5d1f910f | ||
|
|
440c209248 | ||
|
|
876eebe1c7 | ||
|
|
59dd52d555 | ||
|
|
f8b20d5854 | ||
|
|
2b22bfc0db | ||
|
|
dafc6c6017 | ||
|
|
6af14263e3 | ||
|
|
9ca0d4efe7 | ||
|
|
1d1149deab | ||
|
|
c25c986992 | ||
|
|
e7be0cceab | ||
|
|
92d21a4625 | ||
|
|
e41aae041a | ||
|
|
dcaa70e6be | ||
|
|
cbe95b18e6 | ||
|
|
1e264afa63 | ||
|
|
b0e8c23078 | ||
|
|
813651c14b | ||
|
|
18c0c937dd | ||
|
|
f09378eed0 | ||
|
|
6ece8a97c7 | ||
|
|
01eef6b242 | ||
|
|
c4274e789f | ||
|
|
10b6c31ac8 | ||
|
|
a81525b101 | ||
|
|
80e42c133d | ||
|
|
e0bdcea78b | ||
|
|
cbb34de1b2 | ||
|
|
6c4480abfa | ||
|
|
8202cd0e7a | ||
|
|
63573a9797 | ||
|
|
e2ba9ab1d2 | ||
|
|
8324c9dee4 | ||
|
|
24481781f9 | ||
|
|
fd9aca7b3c | ||
|
|
0d46dc3367 | ||
|
|
2307cdebfa | ||
|
|
e397f2a74c | ||
|
|
3e573fa21e | ||
|
|
992be4959a | ||
|
|
195036b710 | ||
|
|
4c4b234feb | ||
|
|
cbd44a8837 | ||
|
|
6627325b45 | ||
|
|
7a34c6cd28 | ||
|
|
aef91d972e | ||
|
|
281852ff27 | ||
|
|
1064d8edd5 | ||
|
|
c29b7f6814 | ||
|
|
3b04f5749e | ||
|
|
9eb7503713 | ||
|
|
ca275133d3 | ||
|
|
80db8a01cf | ||
|
|
0db38038a9 | ||
|
|
27a832676b | ||
|
|
eb6687bd32 | ||
|
|
66224f5bdc | ||
|
|
a21f5f787d | ||
|
|
c613f868a2 | ||
|
|
3826b6ce36 | ||
|
|
85fcfb1744 | ||
|
|
af8f944aaf | ||
|
|
3cf59fdf9a | ||
|
|
136bb01a67 | ||
|
|
91c1374657 | ||
|
|
5d319027d0 | ||
|
|
d3c7abbaba | ||
|
|
637e4b28cb | ||
|
|
afbfc031f7 | ||
|
|
d20ae0596d | ||
|
|
37db1e8c2f | ||
|
|
65128e4bcf | ||
|
|
45a4719fb0 | ||
|
|
f25989d779 | ||
|
|
392ec3c5ed | ||
|
|
abb384c270 | ||
|
|
814c5e04d9 | ||
|
|
c9f728e073 | ||
|
|
6d1e4d06cf | ||
|
|
a221e6a233 | ||
|
|
5315c41903 | ||
|
|
8a8192d3d3 | ||
|
|
840dbc5fc2 | ||
|
|
b7a8a84bfc | ||
|
|
9228168bc9 | ||
|
|
661a8bf831 | ||
|
|
410e0ba8fa | ||
|
|
4cc3baf057 | ||
|
|
1c294c72f9 | ||
|
|
6eced94035 | ||
|
|
1fef54ecdf | ||
|
|
61394f3909 | ||
|
|
57adc731c4 | ||
|
|
8c0228bbaa | ||
|
|
748fc8a258 | ||
|
|
62c69c63b5 | ||
|
|
07902f2a0b | ||
|
|
21ca688e63 | ||
|
|
12e1d16efd | ||
|
|
57ed946414 | ||
|
|
3f9213be7e | ||
|
|
550ff8c727 | ||
|
|
5761787b84 | ||
|
|
9a45333e82 | ||
|
|
6afec72232 | ||
|
|
3333df602b | ||
|
|
1b80f2806b | ||
|
|
9fbdfda302 | ||
|
|
bc203df95f | ||
|
|
e82c11cce4 | ||
|
|
3140c009d3 | ||
|
|
135299357b | ||
|
|
30323456bf | ||
|
|
1e765d7e77 | ||
|
|
e4d1ea5bc9 | ||
|
|
d6ce6e623a | ||
|
|
24cae3cb21 | ||
|
|
b1b86b2ebf | ||
|
|
065979b8d8 | ||
|
|
a49665ce3d | ||
|
|
d351029cea | ||
|
|
1e3f0749fc | ||
|
|
9e40d7bc91 | ||
|
|
fd490b39f1 | ||
|
|
5a154fa0a2 | ||
|
|
7b571c53dd | ||
|
|
8ca3846a3a | ||
|
|
058625cc68 | ||
|
|
5f435c1be7 | ||
|
|
c01a7ebc45 | ||
|
|
07c5a9b49e | ||
|
|
d77c67b56f | ||
|
|
7a67f8bc16 | ||
|
|
a1793f66ff | ||
|
|
34ca94ffa2 | ||
|
|
269b9eff84 | ||
|
|
629f751726 | ||
|
|
613305e923 | ||
|
|
995265d4a6 | ||
|
|
205f32c78b | ||
|
|
08aa7d8e83 | ||
|
|
c551bbbb69 | ||
|
|
17858ebd00 | ||
|
|
52583e696f | ||
|
|
f6de6d8957 | ||
|
|
a2e96ac435 | ||
|
|
16ac158c41 | ||
|
|
1ad176aa63 | ||
|
|
c88d648520 | ||
|
|
57bd7b2fd3 | ||
|
|
0775b84c40 | ||
|
|
b6bff3a551 | ||
|
|
1116bcc504 | ||
|
|
2be4b36da0 | ||
|
|
590a9e5026 | ||
|
|
8fb5bc33b9 | ||
|
|
792ba65194 | ||
|
|
676687dee1 | ||
|
|
d13a201cd0 | ||
|
|
04f4a5ae5b | ||
|
|
fbdbbddf3b | ||
|
|
946d2b9d43 | ||
|
|
686554358a | ||
|
|
74f5a4a6c6 | ||
|
|
2aee33fe06 | ||
|
|
6dafb3a01c | ||
|
|
d707f9feeb | ||
|
|
b09d9786d2 | ||
|
|
2856684e51 | ||
|
|
0cae1b44f9 | ||
|
|
ba576b3931 | ||
|
|
6264a9b718 | ||
|
|
f6bd5290b3 | ||
|
|
37eabffd9c | ||
|
|
61030f1c18 | ||
|
|
d591b5f2be | ||
|
|
2a20b01a3f | ||
|
|
f23e869277 | ||
|
|
bd451a2e59 | ||
|
|
a3981f58fd | ||
|
|
99b544c6e4 | ||
|
|
34c528ea5b | ||
|
|
1fd249c031 | ||
|
|
230e9fe2f8 | ||
|
|
d0b96e22d4 | ||
|
|
c8fa79d053 | ||
|
|
a772b33abd | ||
|
|
b42657fa8e | ||
|
|
c1ca8f4932 | ||
|
|
055b3f0f53 | ||
|
|
a68efb59af | ||
|
|
8fd1053bef | ||
|
|
365b320e7c | ||
|
|
06c87f9247 | ||
|
|
3c5aa53190 | ||
|
|
36513997d9 | ||
|
|
27073fc2f0 | ||
|
|
56222d1f85 | ||
|
|
3c1ab59b17 | ||
|
|
7ae1a2bc52 | ||
|
|
06649d3478 | ||
|
|
3e502bbe88 | ||
|
|
f087057c98 | ||
|
|
5ad0805fa9 | ||
|
|
029dc4c387 | ||
|
|
a9c17f38dd | ||
| 8564785f66 | |||
|
|
fc6a54b3bd | ||
|
|
4b1c604e47 | ||
|
|
9291fd7436 | ||
|
|
d7f180c99f | ||
|
|
a685e9556a | ||
|
|
a306ebc0c8 | ||
|
|
dd3b96edff | ||
|
|
4f303ecb27 | ||
|
|
9d74696e62 | ||
|
|
3cb85fc3f3 | ||
|
|
bcacea46d7 | ||
|
|
c4aa68cfc1 | ||
|
|
78181f2a4d | ||
|
|
7833d4d64c | ||
|
|
8e9e0a862a | ||
|
|
cf980f2985 | ||
|
|
9d09407cc4 | ||
|
|
d34ea9a9c9 | ||
|
|
fc8ff29289 | ||
|
|
d052e2d510 | ||
|
|
5edf39f111 | ||
|
|
21b85e410e | ||
|
|
eea9a72676 | ||
|
|
4b33177d54 | ||
|
|
046439a1dd | ||
|
|
b92621cad7 | ||
|
|
3013f6c96a | ||
|
|
67bf4d1583 | ||
|
|
2e930d5f25 | ||
|
|
d286188a94 | ||
|
|
f795b83c8e | ||
|
|
f2c71aab2e | ||
|
|
995e2c44ee | ||
|
|
a1879ebe0c | ||
|
|
7c7a621875 | ||
|
|
d2fbd15655 | ||
|
|
cfc20ce4ee | ||
|
|
4faad3926b | ||
|
|
4017667952 | ||
|
|
612fb4cb7b | ||
|
|
e05c5e699c | ||
|
|
1b8b54f84f | ||
|
|
67a95b50aa | ||
|
|
9b809ce9a2 | ||
|
|
02bd4fdf3f | ||
|
|
26d7eab852 | ||
|
|
9f319ae121 | ||
|
|
108283bbeb | ||
|
|
c7fbdc8195 | ||
|
|
ab53f471f8 | ||
|
|
cd79d2b1eb | ||
|
|
f873f12d77 | ||
|
|
dee266aca0 | ||
|
|
5c70018411 | ||
|
|
196fb7e656 | ||
|
|
dfd60ca837 | ||
|
|
f1e8bfb8a7 | ||
|
|
d02a1374dd | ||
|
|
b2c21e24a9 | ||
|
|
c1e1e7b8cb | ||
|
|
42bcbc532b | ||
|
|
d109db31d0 | ||
|
|
1557630e91 | ||
|
|
69badd6f2d | ||
|
|
91e1efe512 | ||
|
|
7d61b77708 | ||
|
|
3d0493bb65 | ||
|
|
af27e9424e | ||
|
|
4b11a6172d | ||
|
|
1a20f0087e | ||
|
|
14e851341a | ||
|
|
75aea91643 | ||
|
|
c24788a452 | ||
|
|
d3df37920d | ||
|
|
2ff286cf1d | ||
|
|
131889b454 | ||
|
|
d39821782d | ||
|
|
bc1a2d769d | ||
|
|
32d6cbb7a1 | ||
|
|
a4c89c5552 | ||
|
|
847fc9d8c1 | ||
|
|
f5437ccce6 | ||
|
|
deafcc60e8 | ||
|
|
cd5050cc91 | ||
|
|
f9c945cc86 | ||
|
|
cb47a7d56f | ||
|
|
0e11583b1e | ||
|
|
7d2799d958 | ||
|
|
689acb4c21 | ||
|
|
0a03a15537 | ||
|
|
9da25ca4ea | ||
|
|
a586d6b54b | ||
|
|
e3f767f5a1 | ||
|
|
f2a51f1a10 | ||
|
|
ffcf57ee45 | ||
|
|
ace13f3582 | ||
|
|
18a25dc65b | ||
|
|
386c12f251 | ||
|
|
941e89f950 | ||
|
|
e540502830 | ||
|
|
f3efa1e74d | ||
|
|
9832512bfd | ||
|
|
fe4074b270 | ||
|
|
59f05ca4ad | ||
|
|
ada00862d7 | ||
|
|
9682ce7ebb | ||
|
|
e41fb0e73d | ||
|
|
8c0b8905e4 | ||
|
|
3cee298bcb | ||
|
|
33cb887acf | ||
|
|
2de7c92bbd | ||
|
|
a013fa6b10 | ||
|
|
856514d70f | ||
|
|
db14277b41 | ||
|
|
8a6ac230aa | ||
|
|
0e99dbc30a | ||
|
|
04c768d51d | ||
|
|
ff42f7dd4c | ||
|
|
48f169f11f | ||
|
|
73113a2fe9 | ||
|
|
08ce990207 | ||
|
|
bb926f88bd | ||
|
|
b319a6db49 | ||
|
|
6b125d26ec | ||
|
|
1878c35ac4 | ||
|
|
2b22e5de24 | ||
|
|
ffcb42ebc5 | ||
|
|
f3545a51fe | ||
|
|
10d0cf00d6 | ||
|
|
dc355e7aa2 | ||
|
|
1ca42f5dd5 | ||
|
|
a35c81d2e1 | ||
|
|
a46ac04e5f | ||
|
|
9ef7482ec1 | ||
|
|
115f054955 | ||
|
|
9c98f387b2 | ||
|
|
c12501b63d | ||
|
|
cec0418794 | ||
|
|
79e8eff032 | ||
|
|
ef4b217d43 | ||
|
|
5f2f8e2bd2 | ||
|
|
534ccc86ab | ||
|
|
efd6a999b1 | ||
|
|
3e6b866cae | ||
|
|
1ea0ea0b1b | ||
|
|
eef408c1b3 | ||
|
|
5001e9cbe7 | ||
|
|
58a88ca5bd | ||
|
|
531ad2966f | ||
|
|
d3b9aa6769 | ||
|
|
5dc8d305e5 | ||
|
|
53ca7e7aca | ||
|
|
38b2e56786 | ||
|
|
46b916c0e1 | ||
|
|
20a3538e72 | ||
|
|
0515fd8483 | ||
|
|
e4a7085978 | ||
|
|
3ebda62f04 | ||
|
|
446f497c4c | ||
|
|
1016161bfb | ||
|
|
18c0e947aa | ||
|
|
12d2c6c199 | ||
|
|
37d72a08ea | ||
|
|
b9c757b78a | ||
|
|
566bfda6d2 | ||
|
|
bdf0870a57 | ||
|
|
6883498438 | ||
|
|
db86d7316a | ||
|
|
342d7bc80e | ||
|
|
63df800b56 | ||
|
|
d11fb4dd6d | ||
|
|
cd8e286988 | ||
|
|
df512162cb | ||
|
|
afdfb660c7 | ||
|
|
2e4e291449 | ||
|
|
9538ef6462 | ||
|
|
879522db4c | ||
|
|
5989fedb3e | ||
|
|
a2a0fd6b97 | ||
|
|
377afe8b1c | ||
|
|
edcb2363e9 | ||
|
|
cfb8e7d372 | ||
|
|
be6522c729 | ||
|
|
d082815c81 | ||
|
|
c67c0cf12d | ||
|
|
cfaee39e70 | ||
|
|
6a491080f8 | ||
|
|
7715ba395c | ||
|
|
3a810fa5ea | ||
|
|
3ceb643487 | ||
|
|
dc5fb8b769 | ||
|
|
01619614d4 | ||
|
|
b6a0d55c0b | ||
|
|
ff5c97342b | ||
|
|
d5b015b268 | ||
|
|
b7e3378262 | ||
|
|
5443d1a64a | ||
|
|
1d5b7cef9c | ||
|
|
ffec26d462 | ||
|
|
ff5d0fd7fc | ||
|
|
39417fee8f | ||
|
|
1dfb587264 | ||
|
|
5e20ba5a13 | ||
|
|
aa81486fe9 | ||
|
|
61666664c1 | ||
|
|
ae898ac870 | ||
|
|
0f649577ad | ||
|
|
e0f80f0103 | ||
|
|
241f66a537 | ||
|
|
2a8c764f78 | ||
|
|
9eeac41bea | ||
|
|
9e4b3d2325 | ||
|
|
78bdbce700 | ||
|
|
31aa102b20 | ||
|
|
6afcb0e9ee | ||
|
|
48f3252de5 | ||
|
|
2f01fd6ce0 | ||
|
|
e4aafe0af9 | ||
|
|
9fab782a0c | ||
|
|
76a3c20669 | ||
|
|
272c12e3f7 | ||
|
|
aa53a3f221 | ||
|
|
2fd671b380 | ||
|
|
8f46b2ca05 | ||
|
|
605eaeb039 | ||
|
|
baf8614e6c | ||
|
|
27fb4374d3 | ||
|
|
79dedb5bb5 | ||
|
|
6a97cf8f26 | ||
|
|
4a844ef265 | ||
|
|
64bb1741aa | ||
|
|
72fb77f135 | ||
|
|
f031a40746 | ||
|
|
ab48a72ce1 | ||
|
|
a4882e7e30 | ||
|
|
0760ff3c94 | ||
|
|
362bdcdbdd | ||
|
|
ddb5bd16c9 | ||
|
|
6ec57acce6 | ||
|
|
67abdb3399 | ||
|
|
9ee774c31b | ||
|
|
46e6ea4308 | ||
|
|
be67059725 | ||
|
|
824ec459ea | ||
|
|
d427af2ee3 | ||
|
|
5d47eb849f | ||
|
|
2f16b08bb0 | ||
|
|
2b0c273715 | ||
|
|
18eaa476e4 | ||
|
|
365c629db9 | ||
|
|
2b380b7dc1 | ||
|
|
0082b7f07c | ||
|
|
df54ab3284 | ||
|
|
861b13ffe4 | ||
|
|
c9ae06db64 | ||
|
|
8f1735fab2 | ||
|
|
d51a177a95 | ||
|
|
0861276436 | ||
|
|
ba0130594c | ||
|
|
f8868349e6 | ||
|
|
edd93aa1f8 | ||
|
|
9925845828 | ||
|
|
762b8e0a3a | ||
|
|
f8de3afb5f | ||
|
|
06cf5ec3c9 | ||
|
|
632146114c | ||
|
|
84b6df2e81 | ||
|
|
f9ab756ee5 | ||
|
|
c8ec4c200a | ||
|
|
e3ab8ef77b | ||
|
|
f8aa1bf034 | ||
|
|
95cbdeba27 | ||
|
|
5d6e55d074 | ||
|
|
2d61070023 | ||
|
|
2fce038423 | ||
|
|
f12a83f3dd | ||
|
|
0851af7d52 | ||
|
|
8f75a9133f | ||
|
|
a8e9b7feed | ||
|
|
2bc201614a | ||
|
|
1e5226e21c | ||
|
|
921b0c0dff | ||
|
|
eadb62e67a | ||
|
|
dcd3bcee32 | ||
|
|
2492d51f6f | ||
|
|
097b4ea6ad | ||
|
|
754aba1a15 | ||
|
|
f27730e10b | ||
|
|
ab565dc3d9 | ||
|
|
0c990e1756 | ||
|
|
ad4aa19c3e | ||
|
|
91ecfa7d3f | ||
|
|
fb4f8784b6 | ||
|
|
1314567012 | ||
|
|
4be37f6e93 | ||
|
|
15fb097464 | ||
|
|
6dcbfc3b88 | ||
|
|
2fc2df3a35 | ||
|
|
947c9a4ccb | ||
|
|
1025ed5897 | ||
|
|
49917d2933 | ||
|
|
45053c6d84 | ||
|
|
53c61d42ad | ||
|
|
1dcc420a38 | ||
|
|
d55c52601f | ||
|
|
1713a70428 | ||
|
|
3c19e7ab4c | ||
|
|
52849b91c5 | ||
|
|
8e5a0f83c5 | ||
|
|
602e57455d | ||
|
|
2aed047f75 | ||
|
|
242ce6dfd2 | ||
|
|
5a64c89c8e | ||
|
|
e42bf61413 | ||
|
|
28b69b8468 | ||
|
|
817ce9c256 | ||
|
|
1f8693a722 | ||
|
|
908e74689c | ||
|
|
4d845b3fea | ||
|
|
229c4f6c37 | ||
|
|
d38928f686 | ||
|
|
92c35ddd98 | ||
|
|
c55a4652c9 | ||
|
|
acb4644f1e | ||
|
|
bf1f6add55 | ||
|
|
9d25dfdfa9 | ||
|
|
ef81f03e89 | ||
|
|
cad2097d05 | ||
|
|
4628dad045 | ||
|
|
85f7880c7e | ||
|
|
63ba527bd8 | ||
|
|
37c02dad45 | ||
|
|
23eba4c5e1 | ||
|
|
aa79b05fb1 | ||
|
|
77545919fe | ||
|
|
6fa8f1d051 | ||
|
|
355c1553b2 | ||
|
|
78b44d4ddc | ||
|
|
72fefef320 | ||
|
|
bf8c5863d7 | ||
|
|
84ca02d7ca | ||
|
|
e25eff23d0 | ||
|
|
211ee5b043 | ||
|
|
8447702c50 | ||
|
|
88ea9bf245 | ||
|
|
f73709d467 | ||
|
|
c5bd76ffbc | ||
|
|
56d2862e99 | ||
|
|
ad51dcd8b5 | ||
|
|
d53accd57f | ||
|
|
287996c4a6 | ||
|
|
a485ad6c3e | ||
|
|
1b263b57cf | ||
|
|
6d14e32911 | ||
|
|
a357d7d794 | ||
|
|
6d5c69d5c4 | ||
|
|
d9884490a5 | ||
|
|
578fd664e4 | ||
|
|
e72c39b786 | ||
|
|
4ea85fb402 | ||
|
|
bd32bd0953 | ||
|
|
aae67652e9 | ||
|
|
f290b94d7b | ||
|
|
4ed804a094 | ||
|
|
e0b3b7ca5a | ||
|
|
9965dc3da4 | ||
|
|
3bfb1fbe89 | ||
|
|
a112b4f123 | ||
|
|
252ae5ea56 | ||
|
|
aa870e0124 | ||
|
|
559670ab4f | ||
|
|
fe0fae6902 | ||
|
|
0ccf000713 | ||
|
|
5a383fcbad | ||
|
|
1e9940ae53 | ||
|
|
42e3c18d02 | ||
|
|
6b6ae1bde2 | ||
|
|
1412744619 | ||
|
|
5fa2646011 | ||
|
|
65be80f2c6 | ||
|
|
aea1070798 | ||
|
|
c567ade17a | ||
|
|
dc9e1e4a25 | ||
|
|
9551b2422f | ||
|
|
6df60b9908 | ||
|
|
f5d07a941b | ||
|
|
85876592e3 | ||
|
|
72dea3d930 | ||
|
|
ac36b5e18d | ||
|
|
c893e54238 | ||
|
|
37c723f198 | ||
|
|
dc616a6996 | ||
|
|
41d3298a4e | ||
|
|
9317d57ff1 | ||
|
|
e5a8c9a2e5 | ||
|
|
9a89d9b6a7 | ||
|
|
a05740ab25 | ||
|
|
5ca61189d9 | ||
|
|
facf8e961e | ||
|
|
1cf56bccb9 | ||
|
|
3977c34053 | ||
|
|
9536bb7f86 | ||
|
|
2db2c2b321 | ||
|
|
22f242b1d9 | ||
|
|
cae332dcf8 | ||
|
|
3d8f26b42a | ||
|
|
5e00ac702a | ||
|
|
9c2ca52382 | ||
|
|
c8e4d51396 | ||
|
|
e4100e324a | ||
|
|
8cc0d6f0e7 | ||
|
|
eb83190efd | ||
|
|
a9162bd0e8 | ||
|
|
0a3705c4f2 | ||
|
|
74f9a6e98a | ||
|
|
ffa57f3238 | ||
|
|
3e1ae7948d | ||
|
|
84740cf651 | ||
|
|
34fa123ed1 | ||
|
|
8af035cff9 | ||
|
|
92a410913e | ||
|
|
11be251163 | ||
|
|
38e5c3e407 | ||
|
|
202e5b69d8 | ||
|
|
f8e80d6422 | ||
|
|
c26058efcc | ||
|
|
ae8f2b35ca | ||
|
|
c5cd1ce89a | ||
|
|
d109c1bc3d | ||
|
|
3111f1a7bd | ||
|
|
039040e5c6 | ||
|
|
08c5882d40 | ||
|
|
6f82853972 | ||
|
|
3fff9e8796 | ||
|
|
29e1dee264 | ||
|
|
997efc14ed | ||
|
|
05c9d320ec | ||
|
|
60ebefe820 | ||
|
|
60ca70b29a | ||
|
|
1e652569f8 | ||
|
|
62b5af8fdb | ||
|
|
3818548d9a | ||
|
|
5bcb807ebd | ||
|
|
b463fa6bf9 | ||
|
|
0b2a5cd4a1 | ||
|
|
e0708b0e8f | ||
|
|
c2c8e5f839 | ||
|
|
0d04f0ba34 | ||
|
|
a55dd390b1 | ||
|
|
7cc9b217da | ||
|
|
1092103500 | ||
|
|
228eb600bf | ||
|
|
8320327956 | ||
|
|
f1273aa7a1 | ||
|
|
839986604d | ||
|
|
c1dc33a5a1 | ||
|
|
7d0671e529 | ||
|
|
7a6ebd2c6d | ||
|
|
740fca84e5 | ||
|
|
cf58e8263d | ||
|
|
351a6521b0 | ||
|
|
283b5eff6e | ||
|
|
2a3f294ec0 | ||
|
|
2e61f54c11 | ||
|
|
ee18a30aac | ||
|
|
b8178778c8 | ||
|
|
8c1aa87296 | ||
|
|
e5b3081b9f | ||
|
|
50ce206212 | ||
|
|
dbf0767c4e | ||
|
|
9de5f4c357 | ||
|
|
1a2ef4fcb0 | ||
|
|
81660b5d64 | ||
|
|
e1b2b9e65f | ||
|
|
a511461d9b | ||
|
|
865acf3771 | ||
|
|
b67d785a24 | ||
|
|
4e4a1598b2 | ||
|
|
6fe66834fd | ||
|
|
77350b0a1d | ||
|
|
196a94f8cf | ||
|
|
5cd0ca6f8e | ||
|
|
33763b72dd | ||
|
|
f9d6ce349d | ||
|
|
46b23c507b | ||
|
|
2df42ebd91 | ||
|
|
9909916257 | ||
|
|
0f768040c2 | ||
|
|
7cbc494301 | ||
|
|
6d55d7ae82 | ||
|
|
745cf47e43 | ||
|
|
06df35ef0f | ||
|
|
bdafb4ffef | ||
|
|
b0e25e8784 | ||
|
|
dd588016a0 | ||
|
|
55ec36b562 | ||
|
|
3605e478e6 | ||
|
|
e330002899 | ||
|
|
ee7f30c052 | ||
|
|
6495bc872f | ||
|
|
f557229fae | ||
|
|
32fa32bd52 | ||
|
|
6b0935c207 | ||
|
|
092a9aa5b8 | ||
|
|
3c823c9192 | ||
|
|
be29ce0f2e | ||
|
|
30da237405 | ||
|
|
bf13325303 | ||
|
|
98dec302a6 | ||
|
|
654e19f28b | ||
|
|
31403722ce | ||
|
|
18cef34187 | ||
|
|
7c8f9e8b98 | ||
|
|
df258cf330 | ||
|
|
d76d013b3c | ||
|
|
f90178428e | ||
|
|
c59b2839cd | ||
|
|
ad24bbc696 | ||
|
|
cbfcd01d4f | ||
|
|
1b754ca33f | ||
|
|
e380cdf7de | ||
|
|
79c1f4cb4d | ||
|
|
4782c616f6 | ||
|
|
8ac375e8a6 | ||
|
|
68f66af21a | ||
|
|
56d783f612 | ||
|
|
ff5fb5dbdb | ||
|
|
d706e8ef03 | ||
|
|
f36d09289d | ||
|
|
7d10560a61 | ||
|
|
5efb921980 | ||
|
|
98ff723b24 | ||
|
|
d7623fcf21 | ||
|
|
b9301c8194 | ||
|
|
d88a4ea55f | ||
|
|
71260c7782 | ||
|
|
6d45a49219 | ||
|
|
6dd1465aa8 | ||
|
|
1729516414 | ||
|
|
b92ea62f72 | ||
|
|
e1cf8d094b | ||
|
|
ae23f1576f | ||
|
|
f95ee8062f | ||
|
|
c7d0d581b1 | ||
|
|
b3337a18b9 | ||
|
|
45c9f629ae | ||
|
|
e18bd97c86 | ||
|
|
dad14af100 | ||
|
|
f864d307be | ||
|
|
360a03a349 | ||
|
|
d0123acc2a | ||
|
|
efedfbf47c | ||
|
|
ddebf5b153 | ||
|
|
c58ec7e4ef | ||
|
|
7d0238682b | ||
|
|
0d05e61b85 | ||
|
|
6e7ebf6de1 | ||
|
|
bb4178480e | ||
|
|
fa95291cbc | ||
|
|
77b1c676ca | ||
|
|
e2349426ab | ||
|
|
f42dbb9103 | ||
|
|
f517f2667d | ||
|
|
e195eb46c4 | ||
|
|
b8435b2fd2 | ||
|
|
e36e538f81 | ||
|
|
792ddf0a5b | ||
|
|
afba5e9280 | ||
|
|
70ee0f1681 | ||
|
|
bf1b995908 | ||
|
|
7b9ff27356 | ||
|
|
d6d4d374bd | ||
|
|
5ac857a87c | ||
|
|
d4aa04f35d | ||
|
|
b38262f858 | ||
|
|
de84542579 | ||
|
|
7641c04438 | ||
|
|
9fedf314cf | ||
|
|
80cd35fc3d | ||
|
|
4775c93a6e | ||
|
|
18f08d893c | ||
|
|
c29c419f61 | ||
|
|
6ec4cefe09 | ||
|
|
d4e715f052 | ||
|
|
17e7642615 | ||
|
|
16b118b38e | ||
|
|
8e2b9e4337 | ||
|
|
1e354387f9 | ||
|
|
a2cda1ccce | ||
|
|
81e4c0a418 | ||
|
|
9588c5189c | ||
|
|
6223402b9e | ||
|
|
60c4e21981 | ||
|
|
40971208f2 | ||
|
|
6f82aef704 | ||
|
|
97ab6effa4 | ||
|
|
56787617d0 | ||
|
|
c189bd9daf | ||
|
|
ca1ef28fe1 | ||
|
|
e9541b2a2a | ||
|
|
de8a09b45d | ||
|
|
9156d2f5ac | ||
|
|
c45c9cd702 | ||
|
|
24bf7369d9 | ||
|
|
50eead577c | ||
|
|
8cfc16cd76 | ||
|
|
6734ff693f | ||
|
|
e98272e0c5 | ||
|
|
0e7c532870 | ||
|
|
ba6371c584 | ||
|
|
eb78fa18c1 | ||
|
|
28614b3dd4 | ||
|
|
d6cf85e6f6 | ||
|
|
b56925d24a | ||
|
|
9f21273f4e | ||
|
|
8f306a7484 | ||
|
|
dc3ed07153 | ||
|
|
eb5b80d132 | ||
|
|
07ef08938b | ||
|
|
1fb96c0fc2 | ||
|
|
ef5eb34274 | ||
|
|
5a29875fcf | ||
|
|
c621af1e9f | ||
|
|
f732220e77 | ||
|
|
ff2192f6de | ||
|
|
022b17d700 | ||
|
|
4f398a834f | ||
|
|
02de396905 | ||
|
|
3814dcd728 | ||
|
|
b7fdfb12e6 | ||
|
|
7d749540d8 | ||
|
|
68d87c3023 | ||
|
|
8b9e6780b8 | ||
|
|
0344796d31 | ||
|
|
e3f3c48b22 | ||
|
|
27fd9cd61b | ||
|
|
837489ce85 | ||
|
|
4d4287c580 | ||
|
|
04af96b5e3 | ||
|
|
d427e3f585 | ||
|
|
205cd7b28a | ||
|
|
2246b7496b | ||
|
|
2a5465c03c | ||
|
|
030d5919e6 | ||
|
|
af367a76f8 | ||
|
|
e58b52592b | ||
|
|
1805c16fd4 | ||
|
|
a946b5cf59 | ||
|
|
7bb81e2f18 | ||
|
|
7160637014 | ||
|
|
91c1215566 | ||
|
|
e9a0aa1863 | ||
|
|
64edfc4640 | ||
|
|
4975b4643a | ||
|
|
95a858c350 | ||
|
|
a0a4a7382d | ||
|
|
bd81045caf | ||
|
|
16ab494628 | ||
|
|
0d4a0eb46a | ||
|
|
fc3382f976 | ||
|
|
10114dccee | ||
|
|
50cb8807bf | ||
|
|
a1b9bec8ce | ||
|
|
077a04b89e | ||
|
|
4dd7468725 | ||
|
|
22a599185c | ||
|
|
71b6616d1e | ||
|
|
e64f46ba4e | ||
|
|
1e4de3521a | ||
|
|
4849149af5 | ||
|
|
8adb467304 | ||
|
|
a69069f28c | ||
|
|
bd13fbab3a | ||
|
|
74920d53a6 | ||
|
|
0700fc6bc9 | ||
|
|
03ea7787d2 | ||
|
|
65a82b517c | ||
|
|
4e6c3ee686 | ||
|
|
eb7234df51 | ||
|
|
69293efd00 | ||
|
|
420b6aeae7 | ||
|
|
32b2c49d32 | ||
|
|
dbdf036787 | ||
|
|
ede8fd7518 | ||
|
|
1d1bff88b7 | ||
|
|
a587975a99 | ||
|
|
7b770b7b35 | ||
|
|
84e102eb29 | ||
|
|
e8a81551f8 | ||
|
|
46fdc5ca6e | ||
|
|
15ae422cb2 | ||
|
|
72687b5aeb | ||
|
|
3883fe4247 | ||
|
|
3c31b4f9a3 | ||
|
|
950424d478 | ||
|
|
42e1c21f43 | ||
|
|
5a72223ae3 | ||
|
|
92de3d2f10 | ||
|
|
053903bb69 | ||
|
|
b8b9719cc6 | ||
|
|
ee1c568c7b | ||
|
|
0dd38f75c2 | ||
|
|
a7a3ee6f19 | ||
|
|
e002710c4c | ||
|
|
00a1f1eeb9 | ||
|
|
a415cc4b91 | ||
|
|
67b1094712 | ||
|
|
ad1e51cb2e | ||
|
|
889e6c23cb | ||
|
|
60509a49e2 | ||
|
|
d83de25774 | ||
|
|
c64ab97f2a | ||
|
|
cba202186e | ||
|
|
db6fdeebfe | ||
|
|
0d441eb378 | ||
|
|
3f76f03239 | ||
|
|
85c9c3e283 | ||
|
|
ef1ebbd0b7 | ||
|
|
46fde0e9fe | ||
|
|
fb2a3cb06e | ||
|
|
b5b7d8e727 | ||
|
|
72e930ac1c | ||
|
|
9223663136 | ||
|
|
1e31721ad9 | ||
|
|
325a13088c | ||
|
|
814b46f0c7 | ||
|
|
c38959699f | ||
|
|
1e57ae469e | ||
|
|
2a0f7512b7 | ||
|
|
66324db4b3 | ||
|
|
57f4aae2a1 | ||
|
|
ba59339f67 | ||
|
|
df8be73c10 | ||
|
|
e766f5048b | ||
|
|
f80520090b | ||
|
|
02934055e7 | ||
|
|
23bcb018c5 | ||
|
|
db04ec0473 | ||
|
|
bc85237eaa | ||
|
|
dd05a9b0d7 | ||
|
|
422800ab98 | ||
|
|
92ff7e630d | ||
|
|
8dde1e1bd7 | ||
|
|
6b653b29fc | ||
|
|
c24b20de08 | ||
|
|
eac3cc31c4 | ||
|
|
f723bede10 | ||
|
|
d1930e983c | ||
|
|
c30e112e4a | ||
|
|
bbef928a6d | ||
|
|
c9bb105518 | ||
|
|
63ad882512 | ||
|
|
1e622f9128 | ||
|
|
829b0b2d0b | ||
|
|
86cb65cd9c | ||
|
|
ab1d3d16f1 | ||
|
|
e715dbb801 | ||
|
|
525fb7aa31 | ||
|
|
62a6617bcd | ||
|
|
1db1a3f6a7 | ||
|
|
516b172d75 | ||
|
|
6d7620582d | ||
|
|
fb705adc5d | ||
|
|
97da16f4bc | ||
|
|
9aa064a0ae | ||
|
|
93db0b58d6 | ||
|
|
588d789ee2 | ||
|
|
2194368c0c | ||
|
|
f76a5abf6f | ||
|
|
1c84e423d1 | ||
|
|
f285d9e64e | ||
|
|
d346364544 | ||
|
|
3e3919d15f | ||
|
|
9640c3a098 | ||
|
|
8ac1406020 | ||
|
|
6067646ffa | ||
|
|
96d5d9b8e8 | ||
|
|
77813efdf3 | ||
|
|
1375ed55b6 | ||
|
|
69f8b74702 | ||
|
|
9f231a9ce7 | ||
|
|
1c1cff37e3 | ||
|
|
74f4ec2f5d | ||
|
|
b122b53d73 | ||
|
|
8e224b43c3 | ||
|
|
f6adefddec | ||
|
|
f4b1252063 | ||
|
|
a8733c5b9b | ||
|
|
ede35ffd73 | ||
|
|
be02dc5ff1 | ||
|
|
453adefc91 | ||
|
|
5bf0f24e62 | ||
|
|
a3e1ca9a18 | ||
|
|
17ce03f54d | ||
|
|
7fc63a3802 | ||
|
|
0aa53bab4c | ||
|
|
cf6139504b | ||
|
|
a8e8d7b227 | ||
|
|
94724427fa | ||
|
|
1b7ebc5885 | ||
|
|
9c04da1d42 | ||
|
|
e70e0569ec | ||
|
|
589b5a68b9 | ||
|
|
6271e27eb5 | ||
|
|
254051d2ec | ||
|
|
7abb338381 | ||
|
|
a822b64d95 | ||
|
|
32eec35979 | ||
|
|
e2e2ddb33b | ||
|
|
08d98ac389 | ||
|
|
d02b8d9d30 | ||
|
|
99ffda3cdf | ||
|
|
d2bbd1d14c | ||
|
|
1f44617133 | ||
|
|
773d325afa | ||
|
|
d37ca88752 | ||
|
|
6dada17509 | ||
|
|
74300ab38e | ||
|
|
be21cdce17 | ||
|
|
08ffaf61f5 | ||
|
|
f1ff8d2f61 | ||
|
|
fced07634a | ||
|
|
4f7d75e604 | ||
|
|
12784c8bd8 | ||
|
|
fec3cca3b0 | ||
|
|
d197e62f96 | ||
|
|
80087d4f59 | ||
|
|
6c7e280eac | ||
|
|
1c3902f3db | ||
|
|
7bc68476a1 | ||
|
|
e605102281 | ||
|
|
12e5b3e8dc | ||
|
|
31ce938593 | ||
|
|
5055afe0c0 | ||
|
|
01ab81a446 | ||
|
|
5edcc0537b | ||
|
|
1665b4b5e6 | ||
|
|
6d438d4ec5 | ||
|
|
df57b5188b | ||
|
|
939962b583 | ||
|
|
6f7528c411 | ||
|
|
93ede2a3be | ||
|
|
8e55e74bc2 | ||
|
|
8fb51a396a | ||
|
|
fb4d20e7e8 | ||
|
|
86fcce928c | ||
|
|
f02bdf3e61 | ||
|
|
ac79ec101f | ||
|
|
f1fdf0f13c | ||
|
|
f846fdd961 | ||
|
|
2eb37367a1 | ||
|
|
910de0579c | ||
|
|
20fae8b52b | ||
|
|
dc6218c3e1 | ||
|
|
d136a6dee3 | ||
|
|
48ae37e832 | ||
|
|
79ad04ebe5 | ||
|
|
94a5558f3f | ||
|
|
845a863e01 | ||
|
|
143939a6f7 | ||
|
|
c305735ed5 | ||
|
|
841b54c6d0 | ||
|
|
c15673aef7 | ||
|
|
63eee391e0 | ||
|
|
0b1d7d01e0 | ||
|
|
62383eed8d | ||
|
|
722f857b68 | ||
|
|
a8ec91c804 | ||
|
|
48eb996a2e | ||
|
|
5d2827f66e | ||
|
|
67de9d8c73 | ||
|
|
8545221787 | ||
|
|
1d85d10f4f | ||
|
|
6d87f4b917 | ||
|
|
50a07da967 | ||
|
|
d47039e91e | ||
|
|
8d591b45e2 | ||
|
|
d9af865523 | ||
|
|
f2278c42ab | ||
|
|
4ad2e4f742 | ||
|
|
0a1418f4d3 | ||
|
|
7b5864dfce | ||
|
|
d5e24492be | ||
|
|
478ee1a096 | ||
|
|
09209e47d6 | ||
|
|
fb80a95555 | ||
|
|
1c38fb492e | ||
|
|
9a33bd3b90 | ||
|
|
1aa2c48baf | ||
|
|
d93d132c05 | ||
|
|
5df8479c5a | ||
|
|
a254e1f31e | ||
|
|
b8cbf22086 | ||
|
|
e8f7fe3faa | ||
|
|
78fd611bb0 | ||
|
|
d2878e931e | ||
|
|
5f358a5ef1 | ||
|
|
117ccf94d3 | ||
|
|
a1e1e2700a | ||
|
|
424c060934 | ||
|
|
985ed2669a | ||
|
|
84e044407e | ||
|
|
7da3a3c305 | ||
|
|
c8522af0d0 | ||
|
|
d85118c4c1 | ||
|
|
9f49f99294 | ||
|
|
b7824c3ead | ||
|
|
d95d195b40 | ||
|
|
f0852209f0 | ||
|
|
823197cfb5 | ||
|
|
dc9092dbef | ||
|
|
794a11d866 | ||
|
|
588731661e | ||
|
|
ba43212681 | ||
|
|
73f1190d55 | ||
|
|
dbd31252a8 | ||
|
|
2ec3753d94 | ||
|
|
8543f3ed58 | ||
|
|
1c73fb1288 | ||
|
|
29bb5f383c | ||
|
|
b3c0a5912f | ||
|
|
8ef0c18da0 | ||
|
|
a692e551c0 | ||
|
|
d690fb30cb | ||
|
|
dc21405583 | ||
|
|
b8a3cf2f49 | ||
|
|
c28fd5bbfd | ||
|
|
4c29d9839b | ||
|
|
6cbcd1132e | ||
|
|
e437cd90d6 | ||
|
|
d4f6328eef | ||
|
|
0397e77a3e | ||
|
|
5bd23d0605 | ||
|
|
4e00e2573e | ||
|
|
8a327b6bc7 | ||
|
|
d9d9e6bff6 | ||
|
|
d03f23129b | ||
|
|
2c6c9bcab5 | ||
|
|
5393471841 | ||
|
|
fea602a2c7 | ||
|
|
45ff8f727f | ||
|
|
d7adff4e21 | ||
|
|
c674d4a94c | ||
|
|
19ad2fe4a9 | ||
|
|
442ffb75fa | ||
|
|
2c02b17452 | ||
|
|
cfb74897c4 | ||
|
|
9d7468edf6 | ||
|
|
2c5b064b00 | ||
|
|
cfd04dc204 | ||
|
|
5443db97c4 | ||
|
|
405ebbccb7 | ||
|
|
bcde8683af | ||
|
|
e72ad1f7cb | ||
|
|
6199a255a4 | ||
|
|
753936b7c3 | ||
|
|
904396f6a5 | ||
|
|
5a082058e5 | ||
|
|
96c059983a | ||
|
|
af83c7af8e | ||
|
|
005009ab5d | ||
|
|
a1e1c8d665 | ||
|
|
425d973dc2 | ||
|
|
72a2543470 | ||
|
|
94cca2e537 | ||
|
|
9647933a40 | ||
|
|
92d3925b1c | ||
|
|
35bfa2fcdc | ||
|
|
1015810391 | ||
|
|
67543146f0 | ||
|
|
af8f006fc6 | ||
|
|
bbcecc03ef | ||
|
|
915ec6d9ad | ||
|
|
a8fc867834 | ||
|
|
c81a2925b8 | ||
|
|
9ce31fa84a | ||
|
|
d2b042ab7f | ||
|
|
0963237321 | ||
|
|
4a3bc72846 | ||
|
|
f3932bb662 | ||
|
|
44a722042a | ||
|
|
7823d0c997 | ||
|
|
6de7bd3377 | ||
|
|
7855a485b6 | ||
|
|
f2701cb512 | ||
|
|
86f976976e | ||
|
|
b1efc27b39 | ||
|
|
0ba6d55191 | ||
|
|
96ca5b6988 | ||
|
|
abf318ae90 | ||
|
|
88a1e34f30 | ||
|
|
8384176080 | ||
|
|
f3b942e591 | ||
|
|
7c12027311 | ||
|
|
e27cd9e809 | ||
|
|
0f413f8e4d | ||
|
|
48a9309522 | ||
|
|
790deb4645 | ||
|
|
c9159b15f1 | ||
|
|
93a312702c | ||
|
|
56e1fc9eb8 | ||
|
|
ea146c88e7 | ||
|
|
e10ebeadf8 | ||
|
|
d190b192de | ||
|
|
f46344effe | ||
|
|
5d59102018 | ||
|
|
73bdb7f11f | ||
|
|
d3e1276965 | ||
|
|
8d3cad1815 | ||
|
|
0f9d71423a | ||
|
|
b7c88b03d3 | ||
|
|
8e0501aaa9 | ||
|
|
52f9388f07 | ||
|
|
1cb86cb66b | ||
|
|
71ed728b4a | ||
|
|
11a8379c75 | ||
|
|
d21126189c | ||
|
|
f515e20572 | ||
|
|
129e47d0c1 | ||
|
|
ae15779c81 | ||
|
|
71af3b60c0 | ||
|
|
f2869161ed | ||
|
|
d3f0965ace | ||
|
|
e985c0d697 | ||
|
|
cabb5b9ab0 | ||
|
|
be78955cc6 | ||
|
|
9b0c0be556 | ||
|
|
63c9a91bca | ||
|
|
c0561958d0 | ||
|
|
d32aa37fba | ||
|
|
073717e07e | ||
|
|
b5c01f7354 | ||
|
|
c6e8f163f5 | ||
|
|
4a1cf3dbf3 | ||
|
|
35900ae66c | ||
|
|
85873d2fd2 | ||
|
|
b778c9ff15 | ||
|
|
df2b4fbfd7 | ||
|
|
d9bb8e3107 | ||
|
|
5f4a85f6ad | ||
|
|
317390e962 | ||
|
|
53737aad3a | ||
|
|
3115ee46ab | ||
|
|
10c083894c | ||
|
|
e8c9b10227 | ||
|
|
cde4d87ab7 | ||
|
|
22784f447d | ||
|
|
03226dc5aa | ||
|
|
dd8617141e | ||
|
|
fd2fa23564 | ||
|
|
117c950965 | ||
|
|
2c9beb9506 | ||
|
|
95c5ecf789 | ||
|
|
ea402fc0c5 | ||
|
|
a25ef7f0e8 | ||
|
|
03f5e1b456 | ||
|
|
149a605b16 | ||
|
|
2aa0a316e6 | ||
|
|
14c9317f66 | ||
|
|
79d0a18bb2 | ||
|
|
c93e0f90c9 | ||
|
|
9045b30136 | ||
|
|
3fcbabc5e8 | ||
|
|
600e7fb5b5 | ||
|
|
a7a086e29b | ||
|
|
e5e2fb866c | ||
|
|
c1e7731992 | ||
|
|
b505eb1af8 | ||
|
|
be8428e592 | ||
|
|
f8853467f3 | ||
|
|
79234148aa | ||
|
|
32f1e2efb6 | ||
|
|
c268e5f7c2 | ||
|
|
183bbf61d4 | ||
|
|
187510bbd3 | ||
|
|
73ba8e2366 | ||
|
|
c1db2bd51a | ||
|
|
e6e1c07531 | ||
|
|
4f76cfc84e | ||
|
|
dd29e86b81 | ||
|
|
8af7c075ec | ||
|
|
ffb33189c7 | ||
|
|
c56d17d674 | ||
|
|
8aa9172687 | ||
|
|
7169d6ac42 | ||
|
|
e1f0d60e8b | ||
|
|
13ec2a82b6 | ||
|
|
aafdd62698 | ||
|
|
1992c9a175 | ||
|
|
fa1a4263e0 | ||
|
|
1b484e2d87 | ||
|
|
f39418a7b5 | ||
|
|
ed347ffb8a | ||
|
|
fc6ae54889 | ||
|
|
e03ebcd5c1 | ||
|
|
fc7ae28b02 | ||
|
|
2b0a337584 | ||
|
|
1138d8b439 | ||
|
|
386e2ca34c | ||
|
|
ca5361afc1 | ||
|
|
f121934769 | ||
|
|
4db02516e7 | ||
|
|
d9f86e26d9 | ||
|
|
d36ab75b1a | ||
|
|
6e011dc289 | ||
|
|
484b947eca | ||
|
|
af5a99dc9f | ||
|
|
36803d16db | ||
|
|
3ef9798098 | ||
|
|
9482f9ef43 | ||
|
|
e89ca8cfc2 | ||
|
|
4f33e5222d | ||
|
|
d3ae8b7c90 | ||
|
|
cdccd9c0af | ||
|
|
34f2999e14 | ||
|
|
00550edfcb | ||
|
|
4a98b9af55 | ||
|
|
1668620b5b | ||
|
|
9a8e168168 | ||
|
|
9473a3a19e | ||
|
|
860473fcda | ||
|
|
480c1bbb35 | ||
|
|
e301b74610 | ||
|
|
3012afeb31 | ||
|
|
79dd98739d | ||
|
|
fecd5c99b6 | ||
|
|
240383e4b6 | ||
|
|
b936fea3e5 | ||
|
|
8a4b8e9b66 | ||
|
|
f99df72931 | ||
|
|
b568a5886c | ||
|
|
feeb7159e8 | ||
|
|
73fa0e1ab7 | ||
|
|
9540d529d6 | ||
|
|
4b306e45f9 | ||
|
|
359e5156e2 | ||
|
|
886c1d32ac | ||
|
|
08975c4d2f | ||
|
|
0b63919cdd | ||
|
|
06f438f824 | ||
|
|
ee69971465 | ||
|
|
e26f612012 | ||
|
|
cf97fd9837 | ||
|
|
1810462989 | ||
|
|
6be542d9bb | ||
|
|
2b1c4df8d9 | ||
|
|
64cc5e9cc2 | ||
|
|
7bbecb2586 | ||
|
|
3873aefcf5 | ||
|
|
4beeecd48e | ||
|
|
b4fc05ba09 | ||
|
|
6f58b18c8c | ||
|
|
35a7757e1a | ||
|
|
b891818b9c | ||
|
|
c0d6d4d530 | ||
|
|
354e15015a | ||
|
|
6bd6443721 | ||
|
|
9b5b94577f | ||
|
|
be1d4afd58 | ||
|
|
579bd45c87 | ||
|
|
13d47f3cf4 | ||
|
|
84867db20a | ||
|
|
609efcbfd1 | ||
|
|
1db4cd48d2 | ||
|
|
d4bf98cf0c | ||
|
|
14082f5c00 | ||
|
|
14126cb4b8 | ||
|
|
a87e6f22b5 | ||
|
|
d07a191867 | ||
|
|
52268d032a | ||
|
|
ae9eba80a9 | ||
|
|
ccb2ffcae6 | ||
|
|
8305f07aab | ||
|
|
344bfb0603 | ||
|
|
5c9694215c | ||
|
|
2157cef2a6 | ||
|
|
df5de24b72 | ||
|
|
c0854ebb2e | ||
|
|
bfba1938ca | ||
|
|
3a1cea6887 | ||
|
|
12dc0d2bdd | ||
|
|
1da7436fcb | ||
|
|
60b5f8783c | ||
|
|
50edf2863a | ||
|
|
220611604b | ||
|
|
efe8dbfa85 | ||
|
|
11e34810e7 | ||
|
|
8341e0cc0f | ||
|
|
1c8a143397 | ||
|
|
54fb9e6c3f | ||
|
|
7c11fa0937 | ||
|
|
afa3920ca9 | ||
|
|
063fc61291 | ||
|
|
8b561fd63c | ||
|
|
26278b1e32 | ||
|
|
919f67184a | ||
|
|
5a7e4b2f32 | ||
|
|
0d9906b0b8 | ||
|
|
59bee14101 | ||
|
|
df630e1fdf | ||
|
|
eea6a38f33 | ||
|
|
278c379e07 | ||
|
|
ecc4fc10d7 | ||
|
|
eaf2b28fd7 | ||
|
|
a15972f20d | ||
|
|
c0f04cab0f | ||
|
|
41ab7390db | ||
|
|
4de5f6f58e | ||
|
|
aa1c13898a | ||
|
|
080ca10e19 | ||
|
|
cdba503ff2 | ||
|
|
a4abb53ced | ||
|
|
2ec2ab26ce | ||
|
|
5b70ff5694 | ||
|
|
2157f2a2d0 | ||
|
|
820eea56fb | ||
|
|
f262cc4ccf | ||
|
|
50a3ad7993 | ||
|
|
82f548bafd | ||
|
|
f84cabffe3 | ||
|
|
94d926c0d6 | ||
|
|
8e06626c5a | ||
|
|
7f85aab3ef | ||
|
|
2e61e8b202 | ||
|
|
a0c984acdd | ||
|
|
68889c4bf7 | ||
|
|
099adec61f | ||
|
|
2176e4e2d4 | ||
|
|
ad815f7373 | ||
|
|
28428177ae | ||
|
|
9128cc28c4 | ||
|
|
b2d76f83dd | ||
|
|
a875d69d7e | ||
|
|
f00b8fe56a | ||
|
|
8a044919eb | ||
|
|
9dfd6a27ad | ||
|
|
648f57173c | ||
|
|
9d6a00af38 | ||
|
|
f0223647e3 | ||
|
|
de4ddf9d1e | ||
|
|
3d017abd6f | ||
|
|
20241a0c5c | ||
|
|
9fd74acfac | ||
|
|
67cbfee60b | ||
|
|
27a774432e | ||
|
|
acc64caf95 | ||
|
|
b3f914f6f6 | ||
|
|
f88cb78d61 | ||
|
|
8dd248cf76 | ||
|
|
1d2ec72396 | ||
|
|
b91a597e44 | ||
|
|
60fab053f2 | ||
|
|
919f251759 | ||
|
|
6c22867fc2 | ||
|
|
8ac691f4ac | ||
|
|
b142435abd | ||
|
|
40a1619c1a | ||
|
|
3d75ec9bfc | ||
|
|
32832777c6 | ||
|
|
ec82fa8f97 | ||
|
|
410a2fe7ff | ||
|
|
5940c21fba | ||
|
|
13ed37a4e9 | ||
|
|
f5a58f7683 | ||
|
|
db322c0b5e | ||
|
|
ffb533eae8 | ||
|
|
2d567c1759 | ||
|
|
d3923c7b0f | ||
|
|
2fd0223347 | ||
|
|
40d5b9cb05 | ||
|
|
2147480fcd | ||
|
|
342cbca533 | ||
|
|
5f1afb08f6 | ||
|
|
5d256b21b1 | ||
|
|
cadb4fa852 | ||
|
|
df727a6b6b | ||
|
|
6425f1d55c | ||
|
|
390342b324 | ||
|
|
f3bedd8d93 | ||
|
|
7d290a7755 | ||
|
|
06d174f750 | ||
|
|
ab061770f4 | ||
|
|
f357eb3038 | ||
|
|
3265755bb9 | ||
|
|
5d018393a9 | ||
|
|
e162861b17 | ||
|
|
fdb694bc42 | ||
|
|
298688eb35 | ||
|
|
26c0d5d9aa | ||
|
|
d15d659248 | ||
|
|
0e8dcb2f3d | ||
|
|
d8da7635de | ||
|
|
6c9bf9e5d7 | ||
|
|
dfc3d4c7c8 | ||
|
|
6519d7e92c | ||
|
|
4a0e0ceb8a | ||
|
|
67f45944dd | ||
|
|
b52939ccfe | ||
|
|
ae7887f775 | ||
|
|
b63fdf16ed | ||
|
|
a165585699 | ||
|
|
272b8722c1 | ||
|
|
ccbd0f1d84 | ||
|
|
1d981200c8 | ||
|
|
fe444eb04d | ||
|
|
3ebece5784 | ||
|
|
2db2873d3e | ||
|
|
dc416f5f49 | ||
|
|
840254cdd3 | ||
|
|
cc87573d6b | ||
|
|
0913bb21dd | ||
|
|
9d582ae24f | ||
|
|
7ec9fbbf12 | ||
|
|
6f1a13b531 | ||
|
|
b9335bb7ce | ||
|
|
b2f1d8e7c0 | ||
|
|
4879f744c1 | ||
|
|
75023a4ac9 | ||
|
|
ae4d6002f0 | ||
|
|
3e49b12a6d | ||
|
|
cdd4e09683 | ||
|
|
d87deba30e | ||
|
|
1dcc3b771e | ||
|
|
2c0a7adf74 | ||
|
|
326ff67283 | ||
|
|
603f1c3ae0 | ||
|
|
877d8fed30 | ||
|
|
87937ecec9 | ||
|
|
1cfb6bf5a8 | ||
|
|
df84480fcc | ||
|
|
d5df740f17 | ||
|
|
5e862c9ede | ||
|
|
c687dbdc70 | ||
|
|
6e73572a95 | ||
|
|
24b8a57df5 | ||
|
|
7882b4a3ac | ||
|
|
10ee0c2425 | ||
|
|
4906f604f0 | ||
|
|
ef197eebe3 | ||
|
|
996fa75c2e | ||
|
|
597e1e7345 | ||
|
|
0cd24f1544 | ||
|
|
9751f16fb1 | ||
|
|
6458499d2b | ||
|
|
fc1e0d9f1f | ||
|
|
27b4b9cd03 | ||
|
|
35e33570d1 | ||
|
|
0197f8da13 | ||
|
|
74dc5b96cb | ||
|
|
6d75016139 | ||
|
|
4eec4d9627 | ||
|
|
3f6c479d72 | ||
|
|
16d58dcac7 | ||
|
|
cf920ca3e9 | ||
|
|
e6a903fd96 | ||
|
|
8f2e5bb8c8 | ||
|
|
bc9bc37aab | ||
|
|
c8dc4181f6 | ||
|
|
fd9fb13606 | ||
|
|
98f4ec9f3e | ||
|
|
c10fedaf8c | ||
|
|
a5bfd41195 | ||
|
|
7b39169e3e | ||
|
|
8af45f83b2 | ||
|
|
3925ba1c6e | ||
|
|
e14848ec1f | ||
|
|
d4406cece3 | ||
|
|
79173488ff | ||
|
|
26fad6f23c | ||
|
|
6139fab354 | ||
|
|
2aa9f2ab8c | ||
|
|
8e59f97800 | ||
|
|
edfc54505b | ||
|
|
91022c3f7e | ||
|
|
ceaf82f6df | ||
|
|
7bc4f74d50 | ||
|
|
02b9b71ffe | ||
|
|
26772939ca | ||
|
|
747517f067 | ||
|
|
a2f3246758 | ||
|
|
3ace43ff01 | ||
|
|
b72fab3c01 | ||
|
|
2720a36e98 | ||
|
|
ea9dc8d60c | ||
|
|
f4da3b96d8 | ||
|
|
ad5c33b746 | ||
|
|
ef97849676 | ||
|
|
721119a34f | ||
|
|
211212e079 | ||
|
|
b8ff4c9609 | ||
|
|
199245e6ce | ||
|
|
9c7e0e358c | ||
|
|
412778206c | ||
|
|
e95defa6d2 | ||
|
|
ca3644b73a | ||
|
|
7a09266abf | ||
|
|
462ed49a74 | ||
|
|
12e6e9288e | ||
|
|
143a3a62dd | ||
|
|
e3849b917c | ||
|
|
20bb4d044b | ||
|
|
9a3d9334d5 | ||
|
|
cd5b0cc50c | ||
|
|
de7123df79 | ||
|
|
b4b354305c | ||
|
|
1c1ebac90c | ||
|
|
2a5ee06b0e | ||
|
|
1745f0bbc3 | ||
|
|
a56a6604be | ||
|
|
f8c49708cf | ||
|
|
9e99d420b6 | ||
|
|
de2a216ee6 | ||
|
|
ce16725567 | ||
|
|
4e8f99b01d | ||
|
|
b7b48414e1 | ||
|
|
9de1d9ce20 | ||
|
|
3faf56cb04 | ||
|
|
e0030947e4 | ||
|
|
606c479067 | ||
|
|
a9bcec7fbe | ||
|
|
a3086ae795 | ||
|
|
16d86dcf04 | ||
|
|
cbd073dfbd | ||
|
|
9d3fa5d4c7 | ||
|
|
31e9937098 | ||
|
|
8838d5df11 | ||
|
|
5cefeb25fc | ||
|
|
6485299a7c | ||
|
|
b4a431a03b | ||
|
|
75510d88c9 | ||
|
|
f720ce9243 | ||
|
|
1b0d85dcbe | ||
|
|
40d494ace2 | ||
|
|
d979bdc514 | ||
|
|
eb3982b059 | ||
|
|
dadc3ffe94 | ||
|
|
4956c015c1 | ||
|
|
76f3792885 | ||
|
|
d0abfbf01b | ||
|
|
182074bb9d | ||
|
|
b2546fb236 | ||
|
|
7c56630924 | ||
|
|
88c1be4b1b | ||
|
|
a4ec6f93ce | ||
|
|
3f2a27fa82 | ||
|
|
b6738aaf60 | ||
|
|
1f9ae13077 | ||
|
|
b76c4a5105 | ||
|
|
03e312dcb7 | ||
|
|
9b3a95e244 | ||
|
|
41099a3596 | ||
|
|
2e96ba793a | ||
|
|
a0058a1818 | ||
|
|
fece6ddd6a | ||
|
|
159ace1ea2 | ||
|
|
24cbc1b717 | ||
|
|
2f30ebf1f0 | ||
|
|
c8b238df06 | ||
|
|
9b18b3d79e | ||
|
|
90bdf04336 | ||
|
|
9f6a3933c7 | ||
|
|
e1421280d4 | ||
|
|
7e9d234219 | ||
|
|
780fd5625e | ||
|
|
581562aae9 | ||
|
|
4d065443da | ||
|
|
8d1b4236d4 | ||
|
|
df7f27f94b | ||
|
|
5cbe34ee33 | ||
|
|
f4faff6b33 | ||
|
|
59afce35b5 | ||
|
|
a5b56f0c41 | ||
|
|
a43474cd68 | ||
|
|
4e3fec1e9e | ||
|
|
99b3b0789b | ||
|
|
a09a618c78 | ||
|
|
8b37daf5ff | ||
|
|
4e95535b7c | ||
|
|
b470a47b15 | ||
|
|
1742936dc9 | ||
|
|
7de51e8d45 | ||
|
|
25190e86a3 | ||
|
|
5ba6e0bb14 | ||
|
|
e07328f569 | ||
|
|
4aff176106 | ||
|
|
3cf203a668 | ||
|
|
1a790edbf6 | ||
|
|
c5355ca104 | ||
|
|
8f34f8659b | ||
|
|
5260f230e5 | ||
|
|
1cc7600c9c | ||
|
|
1598e18c28 | ||
|
|
2490b983ba | ||
|
|
9a0b57c4b5 | ||
|
|
db658328d2 | ||
|
|
0d1f121e21 | ||
|
|
326f2644c7 | ||
|
|
47c5ebcf3f | ||
|
|
c0ab4cdd8d | ||
|
|
264a76ca2f | ||
|
|
c5d88435f1 | ||
|
|
5429022d61 | ||
|
|
b214fe54dd | ||
|
|
be2efbbb0d | ||
|
|
eb2512d4a2 | ||
|
|
f9f874deed | ||
|
|
b508a2c9ea | ||
|
|
e56bbfea9a | ||
|
|
34ae8c2926 | ||
|
|
4e4d648593 | ||
|
|
30a52cab0f | ||
|
|
6bd823995f | ||
|
|
c78ce344e7 | ||
|
|
5702706adf | ||
|
|
c9c808a732 | ||
|
|
c147c74e1e | ||
|
|
151022ffd1 | ||
|
|
ca58841696 | ||
|
|
5a765bfc76 | ||
|
|
636995f44e | ||
|
|
beafb55e12 | ||
|
|
c516d8359e | ||
|
|
4a5100692a | ||
| 99887fe20f | |||
|
|
74c280911b | ||
|
|
f5c2ae3049 | ||
|
|
bc6201102e | ||
|
|
4e2e731374 | ||
|
|
7eb418c3ab | ||
|
|
13e3e27679 | ||
|
|
8dff399c96 | ||
|
|
232618a675 | ||
|
|
99268591c2 | ||
|
|
14ac0e3ad1 | ||
|
|
db2562303a | ||
|
|
722339f3e1 | ||
|
|
6d5a53b7ad | ||
|
|
2c15069d96 | ||
|
|
f21ce6a0db | ||
|
|
20aafe62f5 | ||
|
|
c1ad93bccc | ||
|
|
b2d1d1bee7 | ||
|
|
894c39cd21 | ||
|
|
8889e4a5b0 | ||
|
|
cbdb5cd05d | ||
|
|
7e8362eeed | ||
|
|
ab0cd9430f | ||
|
|
f31f33418f | ||
|
|
97ac276433 | ||
|
|
4d765a7024 | ||
|
|
03e2db83cd | ||
|
|
0f36ddd649 | ||
|
|
dbbbf822fe | ||
|
|
bf0f2b8f12 | ||
|
|
9ce26e5817 | ||
|
|
d6db6d0c7e | ||
|
|
97f7513f6e | ||
|
|
2c2a234c74 | ||
|
|
4fd8a16e6c | ||
|
|
1a96f88656 | ||
|
|
c8ce7e98ec | ||
|
|
1d367d5f58 | ||
|
|
979174a568 | ||
|
|
c5d960438c | ||
|
|
9533e579b3 | ||
|
|
ddff3e8b57 | ||
|
|
908d9d06f9 | ||
|
|
506e0e6c81 | ||
|
|
8fa576152e | ||
|
|
7d3c67c178 | ||
|
|
4c1939829e | ||
|
|
e8360df96b | ||
|
|
0dc6af2512 | ||
|
|
e8a6d89e3c | ||
|
|
572401e4f8 | ||
|
|
7a7413f1f4 | ||
|
|
ff2d5629d6 | ||
|
|
9036f8c4cc | ||
|
|
85df71c9fa | ||
|
|
ef925714d5 | ||
|
|
d0eeafd228 | ||
|
|
78a5bbf6e8 | ||
|
|
94fc5b3c91 | ||
|
|
6e3c228a6f | ||
|
|
09c58e2327 | ||
|
|
11750515e1 | ||
|
|
c2873a8fa0 | ||
|
|
ffd7f4b251 | ||
|
|
89964b32dd | ||
|
|
a90751dcff | ||
|
|
9711a5612d | ||
|
|
4f7fa6b892 | ||
|
|
34bb391937 | ||
|
|
d359f69f4b | ||
|
|
1b84a28511 | ||
|
|
98fba8f6bd | ||
|
|
96b164979b | ||
|
|
298784b12b | ||
|
|
b82f2b0f23 | ||
|
|
b7deafc26d | ||
|
|
bbe0d4a5db | ||
|
|
22025217d9 | ||
|
|
e978542381 | ||
|
|
dc820cf31e | ||
|
|
df9bdef75e | ||
|
|
f44bc29789 | ||
|
|
84b8c7cdb0 | ||
|
|
b264e4a4d3 | ||
|
|
4b288f754c | ||
|
|
4d48da8e96 | ||
|
|
8da1c44081 | ||
|
|
c85aec7b13 | ||
|
|
2b8d0731a1 | ||
|
|
4836504ad6 | ||
|
|
71c33f4483 | ||
|
|
65de5c1888 | ||
|
|
37612ff102 | ||
|
|
76f07511a9 | ||
|
|
0d6171c69b | ||
|
|
c421fb769c | ||
|
|
c631a609ed | ||
|
|
ef393a5b8e | ||
|
|
9c887319e6 | ||
|
|
8dd994d1a6 | ||
|
|
aa6b655cd3 | ||
|
|
0736f7dfd3 | ||
|
|
dd949d5984 | ||
|
|
41ee512596 | ||
|
|
583d1bcc36 | ||
|
|
27966c058b | ||
|
|
51da953e49 | ||
|
|
bf0acc2e31 | ||
|
|
4a9456787c | ||
|
|
37d4ecd907 | ||
|
|
429a31deca | ||
|
|
593806637b | ||
|
|
e99064c9f3 | ||
|
|
1abcee730b | ||
|
|
509d078113 | ||
|
|
656f1f1237 | ||
|
|
512dd97cdc | ||
|
|
8e37095bf2 | ||
|
|
5e1dccaf8e | ||
|
|
ed07f63045 | ||
|
|
36b0cffeea | ||
|
|
13dfbaf451 | ||
|
|
2fcdf3825b | ||
|
|
2cf67e321e | ||
|
|
94cdf36439 | ||
|
|
8e42336df3 | ||
|
|
e76b1bfe4d | ||
|
|
b7921451c2 | ||
|
|
2ffd5c837b | ||
|
|
d21c52be1c | ||
|
|
f2badcd2b7 | ||
|
|
167098d731 | ||
|
|
80c1d7d0cc | ||
|
|
84d2930691 | ||
|
|
d7ae5c88e6 | ||
|
|
d4eff6f89b | ||
|
|
6f99de75a5 | ||
|
|
56cf428d4c | ||
|
|
ca84f1b2b8 | ||
|
|
ac035ba0fd | ||
|
|
4e7c571b7d | ||
|
|
a55e24f49c | ||
|
|
c1d17f8d14 | ||
|
|
916d355891 | ||
|
|
2312095b28 | ||
|
|
a6e34dcb08 | ||
|
|
130eb811e9 | ||
|
|
7872a11a91 | ||
|
|
14708a9c59 | ||
|
|
ee076ef7e9 | ||
|
|
a202826a62 | ||
|
|
b1f10f2936 | ||
|
|
32e7ac3e78 | ||
|
|
a164d16ea4 | ||
|
|
31c76f8a42 | ||
|
|
e9f7a2c82c | ||
|
|
842bddf4ab | ||
|
|
5dafd39515 | ||
|
|
3ec639f4a1 | ||
|
|
ef5d77844d | ||
|
|
8b4196e023 | ||
|
|
577ad53030 | ||
|
|
a01c01defd | ||
|
|
c66dabfffd | ||
|
|
eab894e608 | ||
|
|
95fefedba4 | ||
|
|
f591ec9891 | ||
|
|
335d5e930f | ||
|
|
ca189aad3f | ||
|
|
e65ef6b8d8 | ||
|
|
d8cd9e0118 | ||
|
|
8f0d43375b | ||
|
|
431db7ee43 | ||
|
|
162aee1c9e | ||
|
|
561d325f87 | ||
|
|
11d143ed90 | ||
|
|
1480cafac5 | ||
|
|
ebe2c359a6 | ||
|
|
580233c770 | ||
|
|
ecc0b2136d | ||
|
|
441ebf94c1 | ||
|
|
0b57d84d66 | ||
|
|
4265b0ebc3 | ||
|
|
ae538362e6 | ||
|
|
deb7b2a7fc | ||
|
|
2d0158ef89 | ||
|
|
ac157aa442 | ||
|
|
49ebb77ab3 | ||
|
|
5e34bebc05 | ||
|
|
bba8c641e5 | ||
|
|
fc01ceb914 | ||
|
|
93ef73a645 | ||
|
|
99bf12a48f | ||
|
|
1ff135a9d5 | ||
|
|
aa72e40d87 | ||
|
|
06f0e60705 | ||
|
|
682919c7db | ||
|
|
d224a8b5fc | ||
|
|
bf27a177da | ||
|
|
0cfe9802d0 | ||
|
|
9e7048b25d | ||
|
|
d32d69c933 | ||
|
|
266b608357 | ||
|
|
a16523a72f | ||
|
|
7d8a58e6d1 | ||
|
|
43526d41a5 | ||
|
|
acb1fd45da | ||
|
|
f38e7c52cc | ||
|
|
5cc626a2a1 | ||
|
|
6d5962826a | ||
|
|
3de78bfaed | ||
|
|
c2454b645b | ||
|
|
efe1d3db79 | ||
|
|
7a8559fe52 | ||
|
|
458126e700 | ||
|
|
08db913134 | ||
|
|
c6d7ad3124 | ||
|
|
4d244e9ea2 | ||
|
|
0e5cb9b11f | ||
|
|
c929ce0977 | ||
|
|
14cb98b4f9 | ||
|
|
20f0a788b1 | ||
|
|
91106ba0af | ||
|
|
01a541d017 | ||
|
|
a512673562 | ||
|
|
471b8a7308 | ||
|
|
9c60a81d8a | ||
|
|
0122ccc3ee | ||
|
|
da1d3fbc04 | ||
|
|
24428b2070 | ||
|
|
231eb1214c | ||
|
|
10ebdd87d4 | ||
|
|
0e42e98bb9 | ||
|
|
64826ca5ce | ||
|
|
08f37578fc | ||
|
|
bdb1c6e7a6 | ||
|
|
10cc25330c | ||
|
|
a4c0b3df1f | ||
|
|
4873b046ba | ||
|
|
59ec60ba0b | ||
|
|
4895a92d95 | ||
|
|
bc77a637a9 | ||
|
|
965e80b0ef | ||
|
|
c3341df08d | ||
|
|
ff184006cb | ||
|
|
47fabf97de | ||
|
|
9c5e7f5161 | ||
|
|
88a667b17f | ||
|
|
9b64f77cb6 | ||
|
|
df6c2909cb | ||
|
|
6784d4ca16 | ||
|
|
b29538a784 | ||
|
|
6648535c6d | ||
|
|
152efae913 | ||
|
|
3c37ac0b0f | ||
|
|
ad9cac5fb6 | ||
|
|
d39457b0a7 | ||
|
|
b0391ac0c9 | ||
|
|
0a3a434269 | ||
|
|
bc1c7f104e | ||
|
|
31164be1d0 | ||
|
|
e7ad5987e4 | ||
|
|
315de6fe15 | ||
|
|
b86d3ba26a | ||
|
|
74c1147ec3 | ||
|
|
c0a83f9d85 | ||
|
|
49e8efdaf5 | ||
|
|
bb96163315 | ||
|
|
05c8634f8b | ||
|
|
fb0dafba5c | ||
|
|
838d43d74c | ||
|
|
35d4760c13 | ||
|
|
4a7c6c2738 | ||
|
|
afdecb8836 | ||
|
|
0580406ff2 | ||
|
|
96c4024a51 | ||
|
|
df58c4e5f5 | ||
|
|
dfd0eefb91 | ||
|
|
a08bd18f4e | ||
|
|
caed694dee | ||
|
|
2162d444b3 | ||
|
|
1f4e8fe564 | ||
|
|
8924a9583d | ||
|
|
ec513eae49 | ||
|
|
cb5fc962b3 | ||
|
|
d0434ea56b | ||
|
|
88a6ee385b | ||
|
|
cc67dfbfa1 | ||
|
|
af0afcb55f | ||
|
|
9610dbf10f | ||
|
|
d75f2d4d29 | ||
|
|
d000de2be9 | ||
|
|
f08a9eaaa9 | ||
|
|
9d5d0b8cdd | ||
|
|
290915ee64 | ||
|
|
e3f27f1794 | ||
|
|
a76a9970a6 | ||
|
|
a493334431 | ||
|
|
27845b2451 | ||
|
|
e5d8843edd | ||
|
|
e4390da300 | ||
|
|
a23c926df7 | ||
|
|
3c7a226e0f | ||
|
|
e289235589 | ||
|
|
d31833a78e | ||
|
|
813b4e1f2b | ||
|
|
08d18ec1ec | ||
|
|
90f5d47164 | ||
|
|
aad8070d26 | ||
|
|
723046fdd2 | ||
|
|
5d6c483e39 | ||
|
|
4165b4fe15 | ||
|
|
4aa0d80310 | ||
|
|
9c1d606161 | ||
|
|
7e1b7614b1 | ||
|
|
1973ac0787 | ||
|
|
75509dc8a5 | ||
|
|
5aa32fa42d | ||
|
|
b9ef12b48d | ||
|
|
86a6b10ae9 | ||
|
|
32c2612934 | ||
|
|
e84ab9e14c | ||
|
|
7496639e1f | ||
|
|
1be5a01a1e | ||
|
|
d3a376545f | ||
|
|
dcd96c04d4 | ||
|
|
836c2ae7b8 | ||
|
|
ff2581a25f | ||
|
|
ab741197ba | ||
|
|
aeb7d34a8e | ||
|
|
40d4b4d1be | ||
|
|
b226b30dba | ||
|
|
71765210bb | ||
|
|
13ce077e8e | ||
|
|
3e46d593ae | ||
|
|
90af07b9f5 | ||
|
|
da532a9068 | ||
|
|
d8eccddad0 | ||
|
|
4701c14045 | ||
|
|
c5675bc352 | ||
|
|
864d25bd8c | ||
|
|
23c35acf16 | ||
|
|
52fb8d5661 | ||
|
|
aebf05001a | ||
|
|
8ec728fd4b | ||
|
|
4fc181273a | ||
|
|
c5925ff331 | ||
|
|
519212e396 | ||
|
|
8bf756f242 | ||
|
|
249977cca6 | ||
|
|
1687d82c9d | ||
|
|
ac976c9f70 | ||
|
|
4ebcdc3ef1 | ||
|
|
231d6a4986 | ||
|
|
1fc90b2d8c | ||
|
|
695e4f4667 | ||
|
|
33e792540e | ||
|
|
5710d9a606 | ||
|
|
1a99019891 | ||
|
|
edfedc5c06 | ||
|
|
b474960774 | ||
|
|
02da74e437 | ||
|
|
654512c209 | ||
|
|
785ec3f36f | ||
|
|
b9b90dad36 | ||
|
|
09bf63ffca | ||
|
|
a28ac9bedc | ||
|
|
74e3447c40 | ||
|
|
fc10009946 | ||
|
|
a60e2838e3 | ||
|
|
324fc13927 | ||
|
|
e464c5aaa2 | ||
|
|
d49e481a87 | ||
|
|
db425d3925 | ||
|
|
4b76d8a7e0 | ||
|
|
674e1f58f8 | ||
|
|
de879bf521 | ||
|
|
1310a1e42b | ||
|
|
252b511da7 | ||
|
|
69a17d0b0e | ||
|
|
18e433dd85 | ||
|
|
21aacd44b4 | ||
|
|
762fa52638 | ||
|
|
5f0ecb0831 | ||
|
|
4ab1fdceff | ||
|
|
0b7024a2cc | ||
|
|
aedbc263d7 | ||
|
|
44b11b9919 | ||
|
|
13f4140b3d | ||
|
|
c532a2ccd3 | ||
|
|
740d279753 | ||
|
|
a778dee9fc | ||
|
|
bcc7d0e795 | ||
|
|
981df12e9a | ||
|
|
d9e2493eb9 | ||
|
|
e19c079f24 | ||
|
|
77766d29a2 | ||
|
|
c617dc0e8f | ||
|
|
afc16667f4 | ||
|
|
bcfba18e6f | ||
|
|
e700437b01 | ||
|
|
cee51f0088 | ||
|
|
1b87fc7c3f | ||
|
|
e21283c579 | ||
|
|
0db21eb308 | ||
|
|
48a96591d1 | ||
|
|
2c3d71a7e7 | ||
|
|
422bfd57d4 | ||
|
|
afb1bf2373 | ||
|
|
2d30dd6aad | ||
|
|
8828a69d60 | ||
|
|
659bb1d1ac | ||
|
|
815d8cc8cd | ||
|
|
1a0ef5ac63 | ||
|
|
451e2b6fb4 | ||
|
|
a648aa5333 | ||
|
|
dbed2f1f83 | ||
|
|
c69feec5a0 | ||
|
|
db1f1d0c2d | ||
|
|
7d0877d8ce | ||
|
|
5359ed863c | ||
|
|
b3d7cf3192 | ||
|
|
9955dc74c6 | ||
|
|
7431802b03 | ||
|
|
dd176d7a64 | ||
|
|
e7ff4c37ff | ||
|
|
61b7b68671 | ||
|
|
d85af22ce3 | ||
|
|
90448a479d | ||
|
|
e7f7a88357 | ||
|
|
1cfdc6886f | ||
|
|
878f7d18ce | ||
|
|
fe159eccb2 | ||
|
|
2345d6509b | ||
|
|
fb426bd412 | ||
|
|
ac274802de | ||
|
|
d27afe3528 | ||
|
|
19ddd092eb | ||
|
|
022e255d7a | ||
|
|
31132b42c6 | ||
|
|
09c842e479 | ||
|
|
bcbabe885b | ||
|
|
9a56c5122c | ||
|
|
dde2f37054 | ||
|
|
1ca8aec206 | ||
|
|
a891a951e7 | ||
|
|
862ddd475a | ||
|
|
f64c7988de | ||
|
|
1d05756076 | ||
|
|
5024c4bf58 | ||
|
|
5f1623dd1c | ||
|
|
ebbacf4873 | ||
|
|
bd4194cff9 | ||
|
|
8bd52b9065 | ||
|
|
a5586aecff | ||
|
|
0422eda599 | ||
|
|
6be9d02e6a | ||
|
|
ad7a9f82f7 | ||
|
|
3fae65539e | ||
|
|
e2e4936103 | ||
|
|
44fd2e3c1c | ||
|
|
7c920231b7 | ||
|
|
7ff2400830 | ||
|
|
59cc3dc1b3 | ||
|
|
49e987236f | ||
|
|
f2967ef9f1 | ||
|
|
f671df1c67 | ||
|
|
ce62775aec | ||
|
|
32392d129a | ||
|
|
801d2be3d2 | ||
|
|
f187ed257a | ||
|
|
5306737d22 | ||
|
|
3618b225a3 | ||
|
|
bb66523ea5 | ||
|
|
c80fa65af1 | ||
|
|
a46c0a4372 | ||
|
|
8315ac2e25 | ||
|
|
8abd5ce33e | ||
|
|
332548ba4f | ||
|
|
78777ba9f3 | ||
|
|
10c96dee87 | ||
|
|
4e68c3027b | ||
|
|
4ab770400a | ||
|
|
98c7b98aac | ||
|
|
29b61f38ea | ||
|
|
ba0bc4d02b | ||
|
|
9381b1c233 | ||
|
|
1e42861ff4 | ||
|
|
8b0b7052c6 | ||
|
|
5ce4586fd3 | ||
|
|
db66d3731d | ||
|
|
f337612d36 | ||
|
|
9bdba19d4a | ||
|
|
62c4f0d086 | ||
|
|
02a2d39ebf | ||
|
|
4ee5d74c9f | ||
|
|
cd1a1347c9 | ||
|
|
0726735f38 | ||
|
|
1c51d32cdc | ||
|
|
0f2193c5e3 | ||
|
|
d56b7d1944 | ||
|
|
23e2fb82c7 | ||
|
|
a5633df809 | ||
|
|
c680f3e81d | ||
|
|
2ee4f7e952 | ||
|
|
70caac86e9 | ||
|
|
269ad8c432 | ||
|
|
d7a607d54a | ||
|
|
c5d8eaa63d | ||
|
|
b5ab490a23 | ||
|
|
4687d32771 | ||
|
|
3d87f3f19a | ||
|
|
dbe74dcc33 | ||
|
|
417ce61821 | ||
|
|
741e505b1e | ||
|
|
271aa95a4d | ||
|
|
b8002efa6d | ||
|
|
40b7b158c0 | ||
|
|
0e8d36f592 | ||
|
|
4cd70b7abb | ||
|
|
ec29717870 | ||
|
|
d21cfa66a0 | ||
|
|
97dd649f44 | ||
|
|
e7c1d3f16b | ||
|
|
e4467de8fd | ||
|
|
06fe371b1d | ||
|
|
6c6ece859b | ||
|
|
4ba452874a | ||
|
|
0a14aa080c | ||
|
|
4bf1216f12 | ||
|
|
bdf3e4b86e | ||
|
|
74266df8aa | ||
|
|
216ea21933 | ||
|
|
4e2d063911 | ||
|
|
2c71018699 | ||
|
|
0dab5b5f7e | ||
|
|
4c6f115a43 | ||
|
|
31842564d3 | ||
|
|
e8d656556c | ||
|
|
14ece853df | ||
|
|
31a0b6c3d0 | ||
|
|
b740a4b934 | ||
|
|
f7d20c002c | ||
|
|
92005e2567 | ||
|
|
086e47a636 | ||
|
|
2a0cba4e4b | ||
|
|
38a9c5d60f | ||
|
|
652c0c1615 | ||
|
|
76725c1b0d | ||
|
|
a11e979165 | ||
|
|
a9ce26f968 | ||
|
|
8f88ed2691 | ||
|
|
c7ebbb4125 | ||
|
|
b30c6ee9b0 | ||
|
|
5ec1a6cc2d | ||
|
|
a55eb6ebc9 | ||
|
|
7f2ca78b82 | ||
|
|
7a56c5466e | ||
|
|
3356564c77 | ||
|
|
683e813ce2 | ||
|
|
88ca7a44ec | ||
|
|
8b9b95f984 | ||
|
|
4d33e524a1 | ||
|
|
8a01df66dd | ||
|
|
8c3782f091 | ||
|
|
1398cde9f0 | ||
|
|
1a2f7bb8bb | ||
|
|
bd25d6810b | ||
|
|
58391818cc | ||
|
|
3e72555e59 | ||
|
|
6e85d65b72 | ||
|
|
bbe4f940e3 | ||
|
|
042638943a | ||
|
|
4088da5d8c | ||
|
|
ca139aa444 | ||
|
|
fa309545a8 | ||
|
|
79f6f90a05 | ||
|
|
057671c61c | ||
|
|
46ceb3e3a9 | ||
|
|
b959a14dc2 | ||
|
|
abaa79e19a | ||
|
|
e27501218f | ||
|
|
0370412757 | ||
|
|
3dc37c17a3 | ||
|
|
f02254915a | ||
|
|
cd8ab7664a | ||
|
|
de81a2e80e | ||
|
|
c72833ce74 | ||
|
|
e685df7aa1 | ||
|
|
b14f7a431c | ||
|
|
fa2f49e847 | ||
|
|
6d4f702eac | ||
|
|
b34a40b9e8 | ||
|
|
0961e003be | ||
|
|
c968028596 | ||
|
|
33552e5930 | ||
|
|
17c6a650ff | ||
|
|
4b01791e69 | ||
|
|
c7ef2210fc | ||
|
|
b02141eeda | ||
|
|
84bc0511fb | ||
|
|
0b1957f5df | ||
|
|
b20a50899a | ||
|
|
4d2e03b966 | ||
|
|
914ec3104e | ||
|
|
762c0b4935 | ||
|
|
79eec9bd23 | ||
|
|
7a294bf41d | ||
|
|
15b1bdab77 | ||
|
|
9094f50b03 | ||
|
|
b44734e70a | ||
|
|
1e66bc4380 | ||
|
|
e829fe65cd | ||
|
|
e40c497722 | ||
|
|
0356d2eeff | ||
|
|
f46b2a9a5a | ||
|
|
2bab4ed93b | ||
|
|
44ecd1f056 | ||
|
|
a48e5ca8a1 | ||
|
|
f375b5cb91 | ||
|
|
5e5334dee1 | ||
|
|
ec7e836b1d | ||
|
|
714ff8e1a5 | ||
|
|
0d465400ea | ||
|
|
c527e1a9c4 | ||
|
|
a40974e286 | ||
|
|
65763a1b4d | ||
|
|
1dacf779e6 | ||
|
|
d7819b1922 | ||
|
|
2d00e9d869 | ||
|
|
9ba61ac044 | ||
|
|
d7b765e498 | ||
|
|
1756608720 | ||
|
|
8d32e00114 | ||
|
|
08a53cb130 | ||
|
|
92860706b2 | ||
|
|
2ef17f9bf2 | ||
|
|
34b5e44091 | ||
|
|
6e5ed1c8e8 | ||
|
|
d8f7ebc73f | ||
|
|
fa0a3af2a0 | ||
|
|
b46850cd12 | ||
|
|
a6702cc804 | ||
|
|
69453feaa5 | ||
|
|
ab02adf01a | ||
|
|
6f67911a0b | ||
|
|
359e252ef7 | ||
|
|
25bf9e4185 | ||
|
|
c743bd6461 | ||
|
|
117232ce9d | ||
|
|
19e6ea9c80 | ||
|
|
0a028785c3 | ||
|
|
1924e0cc63 | ||
|
|
ab76355128 | ||
|
|
0c8432fd48 | ||
|
|
0c593f5c5b | ||
|
|
221e0341ae | ||
|
|
6a0a5fb09c | ||
|
|
e4190c3d0a | ||
|
|
e921986e32 | ||
|
|
8a76143e33 | ||
|
|
29edf58809 | ||
|
|
1762dd0a29 | ||
|
|
2007fc17cc | ||
|
|
7f3e22239f | ||
|
|
9ae1026dc4 | ||
|
|
70f2d1040f | ||
|
|
3599eeb42b | ||
|
|
e163a2baec | ||
|
|
b41c1f7649 | ||
|
|
cccd9b3283 | ||
|
|
bbf762a4d9 | ||
|
|
556cb574ca | ||
|
|
f4dc8b28af | ||
|
|
b36f2fb282 | ||
|
|
4553333ddb | ||
|
|
87cc5c2bbf | ||
|
|
30c2b017d4 | ||
|
|
3f39c809b0 | ||
|
|
4ff794b11a | ||
|
|
3927da66b6 | ||
|
|
1a4fd4854c | ||
|
|
240b4aebbc | ||
|
|
c0e2113643 | ||
|
|
c0705c1efd | ||
|
|
6f02112aeb | ||
|
|
0f2eeda838 | ||
|
|
0d39da6a2b | ||
|
|
5c9f85fd26 | ||
|
|
be3080b247 | ||
|
|
8722c03c12 | ||
|
|
bd939567ad | ||
|
|
14d6fccd05 | ||
|
|
4c5b6077a7 | ||
|
|
72da7351c8 | ||
|
|
69fc63df1e | ||
|
|
2830e2e894 | ||
|
|
a6b4c468e3 | ||
|
|
04a07cfaf6 | ||
|
|
6800bbff10 | ||
|
|
c7ccedd463 | ||
|
|
a90cca8658 | ||
|
|
45e7293840 | ||
|
|
0f60a2387a | ||
|
|
bda2adb22c | ||
|
|
0d4f2a6c4b | ||
|
|
9aa60b3b1d | ||
|
|
faa6267bc9 | ||
|
|
c8de837c98 | ||
|
|
6f480810f3 | ||
|
|
c87ecbe23f | ||
|
|
27fca7613d | ||
|
|
c601298760 | ||
|
|
5472e06cbe | ||
|
|
e57ec32623 | ||
|
|
a761a035fe | ||
|
|
20e4e73bcd | ||
|
|
418c3db23e | ||
|
|
1099c55c9a | ||
|
|
8b43913366 | ||
|
|
1785f5acd0 | ||
|
|
6f79f01206 | ||
|
|
3eed0f97ce | ||
|
|
4368e00c57 | ||
|
|
c086e7fcc1 | ||
|
|
c5590cb648 | ||
|
|
1af34c74b8 | ||
|
|
c77a6c5901 | ||
|
|
88e20abddb | ||
|
|
ea2cbb176a | ||
|
|
da5e7e52bb | ||
|
|
cba3297587 | ||
|
|
8d4d5a5c15 | ||
|
|
d4f07749d6 | ||
|
|
7525e82ce4 | ||
|
|
3d0cdfb7c3 | ||
|
|
25664d26e9 | ||
|
|
30a3514dfe | ||
|
|
5985fafe86 | ||
|
|
0d0e5b65d6 | ||
|
|
cef58ae85f | ||
|
|
e0304fad37 | ||
|
|
f48b67ecd6 | ||
|
|
793d8b379d | ||
|
|
68adb9453a | ||
|
|
35a6eefc00 | ||
|
|
e39a810685 | ||
|
|
fdea6edcd2 | ||
|
|
3f19f92435 | ||
|
|
99054b7d82 | ||
|
|
581b29ca97 | ||
|
|
0312bf1b4b | ||
|
|
1c3a3ac757 | ||
|
|
34389e68fc | ||
|
|
6fa055fcc2 | ||
|
|
43afb07598 | ||
|
|
cbc8a254f4 | ||
|
|
d2b7fd0520 | ||
|
|
4c54a6c159 | ||
|
|
d4d2f47b60 | ||
|
|
756226f153 | ||
|
|
c287d33ee3 | ||
|
|
96cbb37a29 | ||
|
|
63416e4af8 | ||
|
|
50f9d65d0d | ||
|
|
4cc237fa03 | ||
|
|
84b4bf628e | ||
|
|
7336499995 | ||
|
|
42af407d3e | ||
|
|
209e34512d | ||
|
|
20715e4afa | ||
|
|
313e92779c | ||
|
|
94fce76b02 | ||
|
|
0195b14f09 | ||
|
|
2a3a783cac | ||
|
|
be9eec702c | ||
|
|
d204ac523c | ||
|
|
0f83417652 | ||
|
|
2f207c29e5 | ||
|
|
7e713f1b22 | ||
|
|
82cac6f3d8 | ||
|
|
df2e77f9ed | ||
|
|
618287efaa | ||
|
|
8dddec57db | ||
|
|
fa97d7080c | ||
|
|
833c09adce | ||
|
|
b521fa07a1 | ||
|
|
adcb88d53d | ||
|
|
d1191fb4a9 | ||
|
|
4c36c7dddb | ||
|
|
26eb50c89c | ||
|
|
02abb22a0d | ||
|
|
b7a91a97ac | ||
|
|
0243e71fe7 | ||
|
|
6b098bff3b | ||
|
|
0f8a0097e0 | ||
|
|
f358a34e1d | ||
|
|
e0791f24e2 | ||
|
|
96c9ecf6fe | ||
|
|
5b82a0fcda | ||
|
|
6c3631418e | ||
|
|
6e5710d4fd | ||
|
|
74d3a23930 | ||
|
|
5c39063a89 | ||
|
|
c830597402 | ||
|
|
91c70b2cc5 | ||
|
|
a501863f41 | ||
|
|
93eef6900a | ||
|
|
59e774b08d | ||
|
|
1ea57bd9c6 | ||
|
|
86b8428edd | ||
|
|
057ee7911e | ||
|
|
39739835fa | ||
|
|
44a41b3893 | ||
|
|
b8a0fce4fa | ||
|
|
e0520edb10 | ||
|
|
1bc37f5ba2 | ||
|
|
f94b39c22b | ||
|
|
b11941bdaf | ||
|
|
c733c9f9a4 | ||
|
|
0f3297bfa2 | ||
|
|
37255960d6 | ||
|
|
2e97515f0b | ||
|
|
18d0f85fbf | ||
|
|
5e58bfbd28 | ||
|
|
4fdef270ba | ||
|
|
84b15fac45 | ||
|
|
aee6953ecd | ||
|
|
44c8adccbe | ||
|
|
953837c733 | ||
|
|
f82527283e | ||
|
|
e7eecb06d9 | ||
|
|
2389dde9f5 | ||
|
|
24eb626ca8 | ||
|
|
3cf2346072 | ||
|
|
a8ae699c8f | ||
|
|
b6f231063e | ||
|
|
6a29a7c1d8 | ||
|
|
d084cf1422 | ||
|
|
a5aec13927 | ||
|
|
0d07b2056f | ||
|
|
1cbdcc1f53 | ||
|
|
01ffe2f3ad | ||
|
|
693e1be85e | ||
|
|
d2c4ffb5f0 | ||
|
|
2b2545ed8c | ||
|
|
e7f64758ce | ||
|
|
0847b5b364 | ||
|
|
bf60df1a9b | ||
|
|
501fcf36d1 | ||
|
|
f69802b3d8 | ||
|
|
af0b62ecef | ||
|
|
ec99a22db6 | ||
|
|
58718f735a | ||
|
|
4432b476d0 | ||
|
|
1518bf1935 | ||
|
|
e69db644b4 | ||
|
|
8fa48be2ae | ||
|
|
b19a29be6e | ||
|
|
6f7312e877 | ||
|
|
cb1cdb33c5 | ||
|
|
4a44b3bdf5 | ||
|
|
2ed638a0a2 | ||
|
|
e06e8026dd | ||
|
|
1619964cbb | ||
|
|
1202131195 | ||
|
|
86d98ddec4 | ||
|
|
c010c9b288 | ||
|
|
42c87edad1 | ||
|
|
4c59a0fde1 | ||
|
|
2072fc196f | ||
|
|
b8c68fcb9e | ||
|
|
3d24edae51 | ||
|
|
f306004c9c | ||
|
|
7c4cff6286 | ||
|
|
4f8932c142 | ||
|
|
f4d3c1d23e | ||
|
|
88e48c391e | ||
|
|
f5ed590e16 | ||
|
|
bead47f6bf | ||
|
|
f2f67ad0ad | ||
|
|
26b10dec69 | ||
|
|
a9d0bfee16 | ||
|
|
8d8491232c | ||
|
|
05742ae432 | ||
|
|
63452e0fee | ||
|
|
77381b9981 | ||
|
|
dfdd7644b2 | ||
|
|
0aad572461 | ||
|
|
aa4a23e7dd | ||
|
|
fe2d4877ce | ||
|
|
2d4cbdddab | ||
|
|
5821ceebbc | ||
|
|
8ff02673f0 | ||
|
|
1187a8594a | ||
|
|
49d3548f46 | ||
|
|
710ce98386 | ||
|
|
27286c787d | ||
|
|
adbf670309 | ||
|
|
ce05cb2e92 | ||
|
|
8b614b274c | ||
|
|
a50e380174 | ||
|
|
6ab7df596e | ||
|
|
d8ab38d846 | ||
|
|
bfb43079e3 | ||
|
|
c64f3b90fe | ||
|
|
32042aba8f | ||
|
|
5bd26959e6 | ||
|
|
ff1eb0895b | ||
|
|
f8b8ba32fa | ||
|
|
068a7d272b | ||
|
|
6a591d3e06 | ||
|
|
0dc9c7f8ff | ||
|
|
19c7317cbb | ||
|
|
783c4b12ca | ||
|
|
a145ca32f4 | ||
|
|
65f09477d0 | ||
|
|
53e3e71864 | ||
|
|
e5d2874c24 | ||
|
|
b8772f073d | ||
|
|
d4fac09518 | ||
|
|
9fffbd3012 | ||
|
|
f90d37d4bc | ||
|
|
a190ee13b8 | ||
|
|
36cfc8907d | ||
|
|
9e7a430372 | ||
|
|
24200865c9 | ||
|
|
e1a5a26cbf | ||
|
|
dc2a49afe8 | ||
|
|
c67807af76 | ||
|
|
99e6b9e6b1 | ||
|
|
96af393942 | ||
|
|
5ababb1249 | ||
|
|
ddc1724ae0 | ||
|
|
03502567e3 | ||
|
|
e48458f27f | ||
|
|
62c6446412 | ||
|
|
637163d4af | ||
|
|
70704b16a9 | ||
|
|
9ccaa85102 | ||
|
|
a67073a45b | ||
|
|
70485e3516 | ||
|
|
41d82ea89a | ||
|
|
4fdfac292b | ||
|
|
a3f2bc5fbb | ||
|
|
b7dd337ea5 | ||
|
|
8ac043e95f | ||
|
|
719419d364 | ||
|
|
1c45e4fe17 | ||
|
|
f8d5da90fb | ||
|
|
d88f4afc87 | ||
|
|
579d58625b | ||
|
|
adb9ed9ca5 | ||
|
|
19d3b52d73 | ||
|
|
a8c5f225b2 | ||
|
|
69fde0a9e3 | ||
|
|
2277880e4b | ||
|
|
ef761b73df | ||
|
|
1048c42c6d | ||
|
|
75d8abc339 | ||
|
|
464f0a61f7 | ||
|
|
7a4ab2efd8 | ||
|
|
c7262f65ed | ||
|
|
0e52bfcc40 | ||
|
|
4c5069e0cd | ||
|
|
43a4dd49ca | ||
|
|
a095b1a3c3 | ||
|
|
2f88521d41 | ||
|
|
4bb7fb5c59 | ||
|
|
8549e74f45 | ||
|
|
2dbb289fc3 | ||
|
|
ed92a7d6fd | ||
|
|
a138f2ec96 | ||
|
|
45737ce452 | ||
|
|
7b2e815830 | ||
|
|
35df795342 | ||
|
|
5d62370ff1 | ||
|
|
8448628461 | ||
|
|
5333b98299 | ||
|
|
ac815524f4 | ||
|
|
f77f551846 | ||
|
|
885f362066 | ||
|
|
bc436c6c5c | ||
|
|
cc28d4ddbb | ||
|
|
1b3aef7ea3 | ||
|
|
20b50ea19f | ||
|
|
3f3b0f9aa1 | ||
|
|
36f0e502d2 | ||
|
|
7c84f729a3 | ||
|
|
749bf6adb7 | ||
|
|
7a72948351 | ||
|
|
ef7c63bc98 | ||
|
|
ac9d574049 | ||
|
|
0458d7cbbe | ||
|
|
1d234550df | ||
|
|
5d6d316947 | ||
|
|
a4ed514a82 | ||
|
|
a6b88d323e | ||
|
|
54b6578d28 | ||
|
|
2e8043b31a | ||
|
|
f2cfebd188 | ||
|
|
9e42ce5b4e | ||
|
|
70494afbca | ||
|
|
dd840ce278 | ||
|
|
25fc1cfdfe | ||
|
|
ca8173b573 | ||
|
|
65442ab682 | ||
|
|
3cd90300f1 | ||
|
|
d3fe22b281 | ||
|
|
5b2c52b977 | ||
|
|
4e4e53aebd | ||
|
|
04a876536d | ||
|
|
acf65488d6 | ||
|
|
81acb39ad6 | ||
|
|
e896fc6d4e | ||
|
|
14e7427508 | ||
|
|
b08d50db79 | ||
|
|
b36f644b90 | ||
|
|
62b392e65d | ||
|
|
bfaa027452 | ||
|
|
390543ee67 | ||
|
|
0f6bfb304e | ||
|
|
33005eb794 | ||
|
|
969eba2195 | ||
|
|
1b9cc2bb70 | ||
|
|
f227f1bba2 | ||
|
|
054cb7e611 | ||
|
|
1ee4647b28 | ||
|
|
f3eb9368cd | ||
|
|
7b3cee877d | ||
|
|
908faea756 | ||
|
|
9fc184721d | ||
|
|
a7ab994bc8 | ||
|
|
30730a3ccc | ||
|
|
c15896f053 | ||
|
|
b739f452b0 | ||
|
|
56c3ec29e1 | ||
|
|
1d133ecb0a | ||
|
|
3ff0b4a393 | ||
|
|
88a9700902 | ||
|
|
8d3d11ea1b | ||
|
|
7ac672c7ff | ||
|
|
c466435cb7 | ||
|
|
d84ba7682a | ||
|
|
614ff21f4a | ||
|
|
cc05c6324c | ||
|
|
b9ff43c657 | ||
|
|
2fc28b6deb | ||
|
|
2c42f92796 | ||
|
|
8bb3a5b416 | ||
|
|
f75f2a0de5 | ||
|
|
442a175755 | ||
|
|
45d267158f | ||
|
|
baea18be5f | ||
|
|
dde0878ffc | ||
|
|
c441f68c9c | ||
|
|
cda7664e13 | ||
|
|
0d88bccead | ||
|
|
fe5e0c7541 | ||
|
|
4c447b59ac | ||
|
|
ae4ff8b497 | ||
|
|
643c618a9f | ||
|
|
581727e1bf | ||
|
|
508ecacb85 | ||
|
|
34fa8260f5 | ||
|
|
ddbcaf5152 | ||
|
|
3a10475151 | ||
|
|
c90ae945a8 | ||
|
|
b5e7ee0772 | ||
|
|
7c34ccde99 | ||
|
|
173c6b0d4e | ||
|
|
5594669b86 | ||
|
|
b66479d23b | ||
|
|
5b1dc4416a | ||
|
|
097e2cb303 | ||
|
|
998be2025b | ||
|
|
31eb98f3cf | ||
|
|
dcaf0f619b | ||
|
|
a07aafdc88 | ||
|
|
c5eadb8e5b | ||
|
|
48058925d6 | ||
|
|
d963f931e7 | ||
|
|
73ebe77022 | ||
|
|
f8c5c03e77 | ||
|
|
96fbffeaa1 | ||
|
|
39a2ab4a72 | ||
|
|
45cc072d21 | ||
|
|
250dedc1c8 | ||
|
|
0792e5aae3 | ||
|
|
0945b0fdb9 | ||
|
|
bc86f8c23a | ||
|
|
2b20d9914f | ||
|
|
13dc45e1de | ||
|
|
be7b68815a | ||
|
|
b2def229fd | ||
|
|
ea46e6aeec | ||
|
|
c27d052890 | ||
|
|
1ed0b6d474 | ||
|
|
3ab8f8d964 | ||
|
|
30b1f2632a | ||
|
|
1dc963ea4b | ||
|
|
06a56ab6d2 | ||
|
|
3b7bbb0756 | ||
|
|
8760579c7b | ||
|
|
fe90f33ff7 | ||
|
|
918bb8bb5a | ||
|
|
45429c2ca0 | ||
|
|
91127357e7 | ||
|
|
771d1f9e6f | ||
|
|
d44fd92dbd | ||
|
|
66bfe35a46 | ||
|
|
cd70c2ecee | ||
|
|
12ff8d66ec | ||
|
|
65e84f4b4b | ||
|
|
6460f1914d | ||
|
|
1a718e7c23 | ||
|
|
9ce7d55a29 | ||
|
|
8aa560d111 | ||
|
|
5433befd4a | ||
|
|
12ba5dd9eb | ||
|
|
ea39e137f3 | ||
|
|
e4377f7532 | ||
|
|
66610155ae | ||
|
|
8d774ff152 | ||
|
|
dcb9900afc | ||
|
|
302b6ef58c | ||
|
|
d8e2294865 | ||
|
|
72f62a8734 | ||
|
|
e4a6efa84b | ||
|
|
df2bbebed7 | ||
|
|
b683b8ca70 | ||
|
|
be7c647165 | ||
|
|
238b5119eb | ||
|
|
39b2976f9a | ||
|
|
16ac8117b2 | ||
|
|
e599e1684c | ||
|
|
241548c6ec | ||
|
|
97ab2066d4 | ||
|
|
24ce08820e | ||
|
|
ce15edf4d6 | ||
|
|
bfb1cee403 | ||
|
|
3fdb5a2e24 | ||
|
|
93253f7fda | ||
|
|
212260b46d | ||
|
|
368eed50c1 | ||
|
|
7d766d5376 | ||
|
|
7db5a80831 | ||
|
|
40752d4ac4 | ||
|
|
8838fe76ab | ||
|
|
f5eccb2cb1 | ||
|
|
e2ecdd92ab | ||
|
|
b4348e06dd | ||
|
|
2831b35aab | ||
|
|
84d141a945 | ||
|
|
06ce87a289 | ||
|
|
6e6643d9d1 | ||
|
|
f7662c164d | ||
|
|
3af305b1fc | ||
|
|
2b9acf9f26 | ||
|
|
57c60a40a8 | ||
|
|
5a7ffff077 | ||
|
|
c98b84ba4b | ||
|
|
957ab446fa | ||
|
|
e6c4533464 | ||
|
|
c9a146a2a2 | ||
|
|
0b94a11d27 | ||
|
|
0bf48923a9 | ||
|
|
fde8b2b1b9 | ||
|
|
978ed2c75f | ||
|
|
f58f1c91e4 | ||
|
|
609b92b661 | ||
|
|
45237ec5ae | ||
|
|
2e0d1b78fb | ||
|
|
50c533bac3 | ||
|
|
926a307234 | ||
|
|
b81101ac47 | ||
|
|
9c9d3b33cf | ||
|
|
995bf8d963 | ||
|
|
edc4bf6a47 | ||
|
|
6ffd99fe67 | ||
|
|
a48efaf355 | ||
|
|
84ede1ae29 | ||
|
|
ce9fc9fd55 | ||
|
|
9800b0a142 | ||
|
|
d7299b8ab1 | ||
|
|
17838de1ef | ||
|
|
5957de201b | ||
|
|
5d881f226a | ||
|
|
d8cb6d58f7 | ||
|
|
c0edcbee84 | ||
|
|
243556a69f | ||
|
|
6f2b304400 | ||
|
|
8265d23dca | ||
|
|
ba7944a9e7 | ||
|
|
f4c5e7ee9e | ||
|
|
042655f6b8 | ||
|
|
ba80f3aea4 | ||
|
|
964654860c | ||
|
|
b7e778512d | ||
|
|
23782ea337 | ||
|
|
8513cca4d1 | ||
|
|
b8156ebede | ||
|
|
9f64444d17 | ||
|
|
deb2df20c0 | ||
|
|
de71c881a2 | ||
|
|
91b4b163cd | ||
|
|
ce69491c34 | ||
|
|
b222b79407 | ||
|
|
d58d13910b | ||
|
|
0835e68766 | ||
|
|
a12df5ce7c | ||
|
|
51669874a7 | ||
|
|
2e266cfe3a | ||
|
|
0c0209e83b | ||
|
|
5cc342fd68 | ||
|
|
53b51b0ead | ||
|
|
cea051a105 | ||
|
|
a2992f0c6e | ||
|
|
bf94bd1aab | ||
|
|
9a3d3bf489 | ||
|
|
756a12c4f0 | ||
|
|
9bdfeb6198 | ||
|
|
adbd147857 | ||
|
|
9761239f6c | ||
|
|
b782f56594 | ||
|
|
76057615b3 | ||
|
|
db40e6c1a1 | ||
|
|
391b5d7dc0 | ||
|
|
2c5356ba9c | ||
|
|
2fc8c2c4ce | ||
|
|
616fd954e8 | ||
|
|
d80d9738ef | ||
|
|
6ff47f59a8 | ||
|
|
5cfaad9d7a | ||
|
|
d3e2c4a3e8 | ||
|
|
f87472e65d | ||
|
|
ff1fae2670 | ||
|
|
0c47a70d6e | ||
|
|
10bdef0edd | ||
|
|
e168454d1b | ||
|
|
10b7a7ab8a | ||
|
|
a0fd43d0a8 | ||
|
|
d72c5e1f69 | ||
|
|
fe2d4cf7e4 | ||
|
|
dca64bd4ac | ||
|
|
2aa4487038 | ||
|
|
c14df05fbe | ||
|
|
6ba577b3fd | ||
|
|
c429177db4 | ||
|
|
0658ad06c3 | ||
|
|
30919f126b | ||
|
|
8414f94703 | ||
|
|
5a0f7d6a0e | ||
|
|
b556ab557d | ||
|
|
2a8b20b11a | ||
|
|
3a015dc39a | ||
|
|
dfca442267 | ||
|
|
b6a143143d | ||
|
|
2d7f155d1d | ||
|
|
4098c33f93 | ||
|
|
5017119132 | ||
|
|
00220332a5 | ||
|
|
a00490e86c | ||
|
|
81823131b0 | ||
|
|
e5366650ce | ||
|
|
a69cb997ee | ||
|
|
74ddaecf7b | ||
|
|
824cad532c | ||
|
|
40068d68de | ||
|
|
8ca2a52ba0 | ||
|
|
62c9d0bad9 | ||
|
|
1f5fee5bad | ||
|
|
68b6f46a91 | ||
|
|
63f702ceae | ||
|
|
a62a341b9f | ||
|
|
78f2431b03 | ||
|
|
3f94a5c8b5 | ||
|
|
7caec5a05b | ||
|
|
f8c8bc94e2 | ||
|
|
568ff05ce5 | ||
|
|
f7e18d94ec | ||
|
|
cb302053cb | ||
|
|
2e0cdf73d9 | ||
|
|
8c5a64cd92 | ||
|
|
741275e967 | ||
|
|
5dcb719844 | ||
|
|
da8abcb770 | ||
|
|
35387cbc61 | ||
|
|
fab863086b | ||
|
|
3619013f25 | ||
|
|
ae91df7d0b | ||
|
|
4664643f13 | ||
|
|
ea12886274 | ||
|
|
e084272f76 | ||
|
|
15fa6f76e6 | ||
|
|
4dfc7a28cc | ||
|
|
40e670615c | ||
|
|
711fea9e7e | ||
|
|
fa1764598e | ||
|
|
0e71028b4b | ||
|
|
f3600bc5dd | ||
|
|
6fb75395bc | ||
|
|
c3245348b4 | ||
|
|
21ddd6a2a4 | ||
|
|
ad127791cd | ||
|
|
42bcf1c3f8 | ||
|
|
3ebd52fbc7 | ||
|
|
0da3483223 | ||
|
|
391c0ab455 | ||
|
|
d549b93a48 | ||
|
|
4330f34626 | ||
|
|
7a28777555 | ||
|
|
aec77a05ae | ||
|
|
145daf87e6 | ||
|
|
8d8d7da036 | ||
|
|
6d38ae5f11 | ||
|
|
bd026bad18 | ||
|
|
de43f4d5d8 | ||
|
|
ff41ce0318 | ||
|
|
f392543d43 | ||
|
|
1b2ed7ab8a | ||
|
|
cae8f31923 | ||
|
|
b1c5012f3c | ||
|
|
bb00bc93ef | ||
|
|
7ad15d6733 | ||
|
|
92dd32559a | ||
|
|
8ef43abf25 | ||
|
|
2220054b4d | ||
|
|
aee427ee54 | ||
|
|
255124b8c9 | ||
|
|
da4cd7235c | ||
|
|
8d0d714f3c | ||
|
|
df68e515b7 | ||
|
|
db1b7eac6c | ||
|
|
1d796e6ed1 | ||
|
|
cd6f969789 | ||
|
|
466e654bc4 | ||
|
|
7bd2ba1358 | ||
|
|
711f9d7647 | ||
|
|
662eee7ea3 | ||
|
|
7f96e30971 | ||
|
|
153be6af6c | ||
|
|
8d83511038 | ||
|
|
d8ab79e1ab | ||
|
|
19bccc8fad | ||
|
|
5ac606c563 | ||
|
|
a7505f10a4 | ||
|
|
8f4def18b5 | ||
|
|
a134d6c9e1 | ||
|
|
15f784d848 | ||
|
|
aae3c6827c | ||
|
|
4354c68405 | ||
|
|
c8242ef7da | ||
|
|
b639ed3b0c | ||
|
|
8995c77301 | ||
|
|
80c745383a | ||
|
|
6914071fe0 | ||
|
|
3c3dad1842 | ||
|
|
64d71229f8 | ||
|
|
1609e52873 | ||
|
|
04dd1672b1 | ||
|
|
84497e176e | ||
|
|
8c27d00c23 | ||
|
|
31883b1e3c | ||
|
|
ce3b83bfc1 | ||
|
|
e4fbb1a5d8 | ||
|
|
709271fd2e | ||
|
|
252a64ffa9 | ||
|
|
f537494e64 | ||
|
|
18d7945b2f | ||
|
|
f7bfafb620 | ||
|
|
b8f8b4e2c1 | ||
|
|
9a9ae7c114 | ||
|
|
42de01e782 | ||
|
|
f4a5f8a49a | ||
|
|
2e717cc50c | ||
|
|
f609b92ec2 | ||
|
|
fafb427928 | ||
|
|
a7fc721488 | ||
|
|
17e24b6a75 | ||
|
|
11f80a6387 | ||
|
|
d8a69a75a8 | ||
|
|
f1f9bc47f4 | ||
|
|
4f1cc56bcd | ||
|
|
f3584aa727 | ||
|
|
e1f90293b9 | ||
|
|
3e89e05b30 | ||
|
|
6c72cd0d5f | ||
|
|
1bae761fa0 | ||
|
|
2a65be81cf | ||
|
|
15bc9c9af1 | ||
|
|
0c6fc7aa86 | ||
|
|
2f926582e0 | ||
|
|
425f2bb71a | ||
|
|
4ee71d5571 | ||
|
|
a3436bf775 | ||
|
|
0ccb5ebcdb | ||
|
|
e43e910012 | ||
|
|
edc82f5423 | ||
|
|
3112534213 | ||
|
|
1d65a77ebf | ||
|
|
bba7f704dd | ||
|
|
f988739d63 | ||
|
|
3f0e3bdc12 | ||
|
|
34f845ec86 | ||
|
|
d9a07bfa3e | ||
|
|
344d59005b | ||
|
|
9e2abff8be | ||
|
|
c8fedb9914 | ||
|
|
028a4dc6ba | ||
|
|
4c84c819f5 | ||
|
|
3892f9e713 | ||
|
|
43e6db264b | ||
|
|
494ee906f2 | ||
|
|
3dacee432e | ||
|
|
f4c53e800c | ||
|
|
5237bcd5cd | ||
|
|
054f23a550 | ||
|
|
d555ba5710 | ||
|
|
9b44fc6c9c | ||
|
|
92a3661ece | ||
|
|
8446328bc6 | ||
|
|
b944d82e92 | ||
|
|
77038026a9 | ||
|
|
8591dde49a | ||
|
|
9af46445ad | ||
|
|
0ca61d6ed8 | ||
|
|
7cb60aa5f5 | ||
|
|
b873835b87 | ||
|
|
5d3a3197f0 | ||
|
|
8189a6e745 | ||
|
|
ced0b27058 | ||
|
|
9d6f8012f2 | ||
|
|
8fc01c61cb | ||
|
|
d55eaba23a | ||
|
|
97a70cfc8b | ||
|
|
6bd456f1e8 | ||
|
|
67b3746160 | ||
|
|
1996d07370 | ||
|
|
58e0831545 | ||
|
|
b31ed214c3 | ||
|
|
afedb3b90c | ||
|
|
1850042126 | ||
|
|
f22dcb5d8f | ||
|
|
16f51ca14d | ||
|
|
4450b2f573 | ||
|
|
768c97ee48 | ||
|
|
0bd96e015c | ||
|
|
045c94952e | ||
|
|
7c6a61f751 | ||
|
|
8a802f6db3 | ||
|
|
8cfcaf30a4 | ||
|
|
3d940cda07 | ||
|
|
4b5d7dda25 | ||
|
|
d171ad5e64 | ||
|
|
3d556d0448 | ||
|
|
3c32bd67e5 | ||
|
|
5e8a544441 | ||
|
|
de28cf82e6 | ||
|
|
39595f321f | ||
|
|
a57402299c | ||
|
|
90f51cb867 | ||
|
|
978d2af068 | ||
|
|
c26ecb46b6 | ||
|
|
a9dead58f7 | ||
|
|
853d9bcf5f | ||
|
|
bf0c2bb6b5 | ||
|
|
9c402d4a3e | ||
|
|
77c0153c3f | ||
|
|
bf7ec38120 | ||
|
|
b9fa9d8b11 | ||
|
|
6704ae7cc1 | ||
|
|
e5297ddf31 | ||
|
|
929d33c310 | ||
|
|
3156ef171e | ||
|
|
8660e59296 | ||
|
|
1d093f1c37 | ||
|
|
81c7ba085f | ||
|
|
7c8dba566f | ||
|
|
489639f8e0 | ||
|
|
2d54c04f8a | ||
|
|
f5124bb821 | ||
|
|
b95eb84a98 | ||
|
|
de41cceff5 | ||
|
|
6c69e0246f | ||
|
|
3ead0e5912 | ||
|
|
f7f687995b | ||
|
|
97a14fe933 | ||
|
|
732ac76383 | ||
|
|
14ea35e40f | ||
|
|
24d28b4a06 | ||
|
|
85154b87a4 | ||
|
|
b10b740916 | ||
|
|
09370c3e07 | ||
|
|
691766b27e | ||
|
|
f8a150779e | ||
|
|
63a0e8184d | ||
|
|
7ce64ab407 | ||
|
|
eca09181a8 | ||
|
|
33d05d3519 | ||
|
|
9130ee71f4 | ||
|
|
4d4a13b0ab | ||
|
|
f20bbc444c | ||
|
|
b81b19d126 | ||
|
|
f122acd742 | ||
|
|
385cf7ab2b | ||
|
|
78b10e0ea6 | ||
|
|
6f576889e3 | ||
|
|
8da3ff2e8a | ||
|
|
8c175e4191 | ||
|
|
9e1b701701 | ||
|
|
edd005a2c5 | ||
|
|
5da17d9805 | ||
|
|
c1b548da49 | ||
|
|
fb3965044a | ||
|
|
a836b92082 | ||
|
|
89a2856141 | ||
|
|
c103e5ab18 | ||
|
|
7d00bd8b12 | ||
|
|
d9a06c881a | ||
|
|
3403c1dd72 | ||
|
|
87324ae7f4 | ||
|
|
02a272ecc2 | ||
|
|
a5f1348ca3 | ||
|
|
5c74b470f3 | ||
|
|
37f71db1a7 | ||
|
|
986243dc26 | ||
|
|
ef47a7666b | ||
|
|
f31d393a2f | ||
|
|
5248d7e3af | ||
|
|
01fb29a02e | ||
|
|
7792e45f49 | ||
|
|
0d53a0dca9 | ||
|
|
a88dc3d8cf | ||
|
|
c6a27aa82a | ||
|
|
58c349cd1f | ||
|
|
4cd599e5a1 | ||
|
|
91f0f41845 | ||
|
|
1e59e13519 | ||
|
|
860271f625 | ||
|
|
e06c0824dc | ||
|
|
a78eb81951 | ||
|
|
1944110b42 | ||
|
|
ca82a0d4a0 | ||
|
|
e6819f6331 | ||
|
|
3709be353b | ||
|
|
2f415ad240 | ||
|
|
60a6051cf8 | ||
|
|
603b0bb6ab | ||
|
|
30e0d2e920 | ||
|
|
49427ea1d8 | ||
|
|
dbffd1404c | ||
|
|
fb3edeaa3d | ||
|
|
20a7967332 | ||
|
|
4542ee5735 | ||
|
|
d39f3e7d3f | ||
|
|
88d9cf13de | ||
|
|
686f50d106 | ||
|
|
0d27f1a82d | ||
|
|
5d65ca460b | ||
|
|
950fdc9e1a | ||
|
|
1a149434f5 | ||
|
|
716a94cc2b | ||
|
|
3dfa3be94b | ||
|
|
e2538bb432 | ||
|
|
c223a4ac5c | ||
|
|
3bbf032b41 | ||
|
|
070a1d6e0c | ||
|
|
4d99b755ab | ||
|
|
226e9015df | ||
|
|
f982372c43 | ||
|
|
dede458978 | ||
|
|
5f1b3a93c0 | ||
|
|
d8ed7c7541 | ||
|
|
007435a6da | ||
|
|
bf0e326bcb | ||
|
|
37edb78ac5 | ||
|
|
217c6861e4 | ||
|
|
36522e2e39 | ||
|
|
fb76e81f17 | ||
|
|
c24cf52ce4 | ||
|
|
9813c38657 | ||
|
|
7d214d1822 | ||
|
|
0157f5a8bc | ||
|
|
9116df2edd | ||
|
|
c0c01187be | ||
|
|
569d85e8f5 | ||
|
|
8293dc4eed | ||
|
|
2e23339e07 | ||
|
|
796f1288db | ||
|
|
4d1dcf8177 | ||
|
|
3f1078e97c | ||
|
|
1b55794a88 | ||
|
|
2e0fa1cb95 | ||
|
|
582ee97103 | ||
|
|
a578fa37e3 | ||
|
|
6ed445b034 | ||
|
|
bf540836f8 | ||
|
|
53b21178f7 | ||
|
|
ef35d00931 | ||
|
|
44bc8da5b3 | ||
|
|
488eadb8f8 | ||
|
|
bcf711d77c | ||
|
|
dab5854428 |
1958 changed files with 97606 additions and 322 deletions
8
.gitattributes
vendored
Normal file
8
.gitattributes
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
.gitignore export-ignore
|
||||
.gitattributes export-ignore
|
||||
.gitkeep export-ignore
|
||||
docs/speeches export-ignore
|
||||
docs/video export-ignore
|
||||
docs/src/man7 export-ignore
|
||||
bin/cdist-build-helper export-ignore
|
||||
README-maintainers export-ignore
|
||||
63
.gitignore
vendored
Normal file
63
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
# -vim
|
||||
# Swap
|
||||
[._]*.s[a-v][a-z]
|
||||
[._]*.sw[a-p]
|
||||
[._]s[a-rt-v][a-z]
|
||||
[._]ss[a-gi-z]
|
||||
[._]sw[a-p]
|
||||
|
||||
# Session
|
||||
Session.vim
|
||||
|
||||
# Temporary
|
||||
.netrwhist
|
||||
*~
|
||||
*.tmp
|
||||
# Auto-generated tag files
|
||||
tags
|
||||
# Persistent undo
|
||||
[._]*.un~
|
||||
|
||||
# Ignore generated manpages
|
||||
docs/src/.marker
|
||||
docs/src/man1/*.1
|
||||
docs/src/man7/*.7
|
||||
docs/src/man7/cdist-type__*.rst
|
||||
docs/src/cdist-reference.rst
|
||||
docs/src/cdist-types.rst
|
||||
docs/src/cdist.cfg.skeleton
|
||||
|
||||
# Ignore cdist cache for version control
|
||||
/cache/
|
||||
|
||||
# Ignore inventory basedir
|
||||
cdist/inventory/
|
||||
|
||||
# Python: cache, distutils, distribution in general
|
||||
__pycache__/
|
||||
*.pyc
|
||||
/MANIFEST
|
||||
dist/
|
||||
cdist/version.py
|
||||
cdist.egg-info/
|
||||
|
||||
# sphinx build dirs, cache
|
||||
_build/
|
||||
docs/dist
|
||||
|
||||
# Ignore temp files used for signing
|
||||
cdist-*.tar
|
||||
cdist-*.tar.gz
|
||||
cdist-*.tar.gz.asc
|
||||
|
||||
# Packaging: Archlinux
|
||||
/PKGBUILD
|
||||
/cdist-*.pkg.tar.xz
|
||||
/cdist-*.tar.gz
|
||||
/pkg
|
||||
/src
|
||||
build
|
||||
.lock-*
|
||||
.git-current-branch
|
||||
.lock*
|
||||
.pypi-release
|
||||
23
.gitlab-ci.yml
Normal file
23
.gitlab-ci.yml
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
image: code.ungleich.ch:5050/ungleich-public/cdist/cdist-ci:latest
|
||||
|
||||
stages:
|
||||
- test
|
||||
|
||||
before_script:
|
||||
- ./bin/cdist-build-helper version
|
||||
|
||||
shellcheck:
|
||||
stage: test
|
||||
script:
|
||||
- ./bin/cdist-build-helper shellcheck
|
||||
|
||||
pycodestyle:
|
||||
stage: test
|
||||
script:
|
||||
- ./bin/cdist-build-helper pycodestyle
|
||||
|
||||
unit_tests:
|
||||
stage: test
|
||||
script:
|
||||
- ./bin/cdist-build-helper test
|
||||
674
LICENSE
Normal file
674
LICENSE
Normal file
|
|
@ -0,0 +1,674 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
cdist
|
||||
Copyright (C) 2019 ungleich-public
|
||||
|
||||
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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
cdist Copyright (C) 2019 ungleich-public
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
3
MANIFEST.in
Normal file
3
MANIFEST.in
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
include docs/changelog
|
||||
recursive-include docs/gfx *.png *.text
|
||||
recursive-include docs *.text *.html *.1 *.7
|
||||
148
Makefile
Normal file
148
Makefile
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
#
|
||||
# 2013 Nico Schottelius (nico-cdist at schottelius.org)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo "man build only man user documentation"
|
||||
@echo "html build only html user documentation"
|
||||
@echo "docs build both man and html user documentation"
|
||||
@echo "dotman build man pages for types in your ~/.cdist directory"
|
||||
@echo "speeches build speeches pdf files"
|
||||
@echo "install install in the system site-packages directory"
|
||||
@echo "install-user install in the user site-packages directory"
|
||||
@echo "docs-clean clean documentation"
|
||||
@echo "clean clean"
|
||||
|
||||
DOCS_SRC_DIR=./docs/src
|
||||
SPEECHDIR=./docs/speeches
|
||||
TYPEDIR=./cdist/conf/type
|
||||
|
||||
SPHINXM=$(MAKE) -C $(DOCS_SRC_DIR) man
|
||||
SPHINXH=$(MAKE) -C $(DOCS_SRC_DIR) html
|
||||
SPHINXC=$(MAKE) -C $(DOCS_SRC_DIR) clean
|
||||
|
||||
################################################################################
|
||||
# Manpages
|
||||
#
|
||||
MAN7DSTDIR=$(DOCS_SRC_DIR)/man7
|
||||
|
||||
# Manpages #1: Types
|
||||
# Use shell / ls to get complete list - $(TYPEDIR)/*/man.rst does not work
|
||||
# Using ls does not work if no file with given pattern exist, so use wildcard
|
||||
MANTYPESRC=$(wildcard $(TYPEDIR)/*/man.rst)
|
||||
MANTYPEPREFIX=$(subst $(TYPEDIR)/,$(MAN7DSTDIR)/cdist-type,$(MANTYPESRC))
|
||||
MANTYPES=$(subst /man.rst,.rst,$(MANTYPEPREFIX))
|
||||
|
||||
# Link manpage: do not create man.html but correct named file
|
||||
$(MAN7DSTDIR)/cdist-type%.rst: $(TYPEDIR)/%/man.rst
|
||||
mkdir -p $(MAN7DSTDIR)
|
||||
ln -sf "../../../$^" $@
|
||||
|
||||
# Manpages #2: reference
|
||||
DOCSREF=$(MAN7DSTDIR)/cdist-reference.rst
|
||||
DOCSREFSH=$(DOCS_SRC_DIR)/cdist-reference.rst.sh
|
||||
|
||||
$(DOCSREF): $(DOCSREFSH)
|
||||
$(DOCSREFSH)
|
||||
|
||||
# Html types list with references
|
||||
DOCSTYPESREF=$(MAN7DSTDIR)/cdist-types.rst
|
||||
DOCSTYPESREFSH=$(DOCS_SRC_DIR)/cdist-types.rst.sh
|
||||
|
||||
$(DOCSTYPESREF): $(DOCSTYPESREFSH)
|
||||
$(DOCSTYPESREFSH)
|
||||
|
||||
DOCSCFGSKEL=./configuration/cdist.cfg.skeleton
|
||||
|
||||
configskel: $(DOCSCFGSKEL)
|
||||
cp -f "$(DOCSCFGSKEL)" "$(DOCS_SRC_DIR)/"
|
||||
|
||||
version:
|
||||
@[ -f "cdist/version.py" ] || { \
|
||||
printf "Missing 'cdist/version.py', please generate it first.\n" && exit 1; \
|
||||
}
|
||||
|
||||
# Manpages #3: generic part
|
||||
man: version configskel $(MANTYPES) $(DOCSREF) $(DOCSTYPESREF)
|
||||
$(SPHINXM)
|
||||
|
||||
html: version configskel $(MANTYPES) $(DOCSREF) $(DOCSTYPESREF)
|
||||
$(SPHINXH)
|
||||
|
||||
docs: man html
|
||||
|
||||
docs-clean:
|
||||
$(SPHINXC)
|
||||
|
||||
# Manpages: .cdist Types
|
||||
DOT_CDIST_PATH=${HOME}/.cdist
|
||||
DOTMAN7DSTDIR=$(MAN7DSTDIR)
|
||||
DOTTYPEDIR=$(DOT_CDIST_PATH)/type
|
||||
DOTMANTYPESRC=$(wildcard $(DOTTYPEDIR)/*/man.rst)
|
||||
DOTMANTYPEPREFIX=$(subst $(DOTTYPEDIR)/,$(DOTMAN7DSTDIR)/cdist-type,$(DOTMANTYPESRC))
|
||||
DOTMANTYPES=$(subst /man.rst,.rst,$(DOTMANTYPEPREFIX))
|
||||
|
||||
# Link manpage: do not create man.html but correct named file
|
||||
$(DOTMAN7DSTDIR)/cdist-type%.rst: $(DOTTYPEDIR)/%/man.rst
|
||||
ln -sf "$^" $@
|
||||
|
||||
dotman: version configskel $(DOTMANTYPES) $(DOCSREF) $(DOCSTYPESREF)
|
||||
$(SPHINXM)
|
||||
|
||||
################################################################################
|
||||
# Speeches
|
||||
#
|
||||
SPEECHESOURCES=$(SPEECHDIR)/*.tex
|
||||
SPEECHES=$(SPEECHESOURCES:.tex=.pdf)
|
||||
|
||||
# Create speeches and ensure Toc is up-to-date
|
||||
$(SPEECHDIR)/%.pdf: $(SPEECHDIR)/%.tex
|
||||
pdflatex -output-directory $(SPEECHDIR) $^
|
||||
pdflatex -output-directory $(SPEECHDIR) $^
|
||||
pdflatex -output-directory $(SPEECHDIR) $^
|
||||
|
||||
speeches: $(SPEECHES)
|
||||
|
||||
################################################################################
|
||||
# Misc
|
||||
#
|
||||
clean: docs-clean
|
||||
rm -f $(DOCS_SRC_DIR)/cdist-reference.rst
|
||||
rm -f $(DOCS_SRC_DIR)/cdist-types.rst
|
||||
rm -f $(DOCS_SRC_DIR)/cdist.cfg.skeleton
|
||||
|
||||
find "$(DOCS_SRC_DIR)" -mindepth 2 -type l \
|
||||
| xargs rm -f
|
||||
|
||||
find * -name __pycache__ | xargs rm -rf
|
||||
|
||||
# distutils
|
||||
rm -rf ./build
|
||||
|
||||
################################################################################
|
||||
# install
|
||||
#
|
||||
|
||||
install:
|
||||
python3 setup.py install
|
||||
|
||||
install-user:
|
||||
python3 setup.py install --user
|
||||
29
PKGBUILD.in
Executable file
29
PKGBUILD.in
Executable file
|
|
@ -0,0 +1,29 @@
|
|||
#!/bin/sh
|
||||
|
||||
version="$1"
|
||||
outfile=${0%.in}
|
||||
|
||||
cat << eof > "${outfile}"
|
||||
pkgname=cdist
|
||||
pkgver=$version
|
||||
pkgrel=1
|
||||
pkgdesc='A Usable Configuration Management System"'
|
||||
arch=('any')
|
||||
url='https://www.cdi.st/'
|
||||
license=('GPL3')
|
||||
depends=('python>=3.2.0')
|
||||
source=("http://pypi.python.org/packages/source/c/cdist/cdist-\${pkgver}.tar.gz")
|
||||
|
||||
package() {
|
||||
cd cdist-\${pkgver}
|
||||
python3 setup.py build install --root="\${pkgdir}"
|
||||
find "\$pkgdir" -type d -exec chmod 0755 {} \;
|
||||
find "\$pkgdir" -type f -exec chmod a+r {} \;
|
||||
}
|
||||
eof
|
||||
|
||||
makepkg -g >> "${outfile}"
|
||||
|
||||
# Fix this issue:
|
||||
# error: failed to upload cdist-3.1.6-1.src.tar.gz: Error - all files must have permissions of 644 or 755.
|
||||
chmod a+r "${outfile}"
|
||||
1
README
1
README
|
|
@ -1 +0,0 @@
|
|||
cdist.mdwn
|
||||
4
README-maintainers
Normal file
4
README-maintainers
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
Maintainers should use ./bin/cdist-build-helper script.
|
||||
|
||||
Makefile is intended for end users. It can be used for non-maintaining
|
||||
targets that can be run from pure source (without git repository).
|
||||
31
README.md
Normal file
31
README.md
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# cdist
|
||||
|
||||
**cdist** is a usable configuration management system.
|
||||
|
||||
It adheres to the [**KISS principle**](https://en.wikipedia.org/wiki/KISS_principle)
|
||||
and is being used in small up to enterprise grade environments.
|
||||
|
||||
For more information have a look at [**homepage**](https://cdi.st)
|
||||
or at **``docs/src``** for manual in **reStructuredText** format.
|
||||
|
||||
## Contributing
|
||||
|
||||
Merge/Pull requests can be made in both
|
||||
[upstream **GitLab**](https://code.ungleich.ch/ungleich-public/cdist/merge_requests)
|
||||
(managed by [**ungleich**](https://ungleich.ch))
|
||||
and [**GitHub** project](https://github.com/ungleich/cdist/pulls).
|
||||
|
||||
Issues can be made and other project management activites happen
|
||||
[**only in GitLab**](https://code.ungleich.ch/ungleich-public/cdist)
|
||||
(needs [**ungleich** account](https://account.ungleich.ch)).
|
||||
|
||||
For community-maintained types there is
|
||||
[**cdist-contrib** project](https://code.ungleich.ch/ungleich-public/cdist-contrib).
|
||||
|
||||
## Participating
|
||||
|
||||
IRC: ``#cdist`` @ [libera](https://libera.chat)
|
||||
|
||||
Matrix: ``#cdist:ungleich.ch``
|
||||
|
||||
Matrix and IRC are bridged.
|
||||
103
bin/cdist
Executable file
103
bin/cdist
Executable file
|
|
@ -0,0 +1,103 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# 2010-2016 Nico Schottelius (nico-cdist at schottelius.org)
|
||||
# 2016 Darko Poljak (darko.poljak at gmail.com)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
|
||||
# See if this file's parent is cdist module
|
||||
# and if so add it to module search path.
|
||||
cdist_dir = os.path.realpath(
|
||||
os.path.join(
|
||||
os.path.dirname(os.path.realpath(__file__)),
|
||||
os.pardir))
|
||||
cdist_init_dir = os.path.join(cdist_dir, 'cdist', '__init__.py')
|
||||
if os.path.exists(cdist_init_dir):
|
||||
sys.path.insert(0, cdist_dir)
|
||||
|
||||
import cdist # noqa 402
|
||||
import cdist.argparse # noqa 402
|
||||
import cdist.banner # noqa 402
|
||||
import cdist.config # noqa 402
|
||||
import cdist.install # noqa 402
|
||||
import cdist.shell # noqa 402
|
||||
import cdist.inventory # noqa 402
|
||||
|
||||
|
||||
def commandline():
|
||||
"""Parse command line"""
|
||||
|
||||
# preos subcommand hack
|
||||
if len(sys.argv) > 1 and sys.argv[1] == 'preos':
|
||||
return cdist.preos.PreOS.commandline(sys.argv[1:])
|
||||
parser, cfg = cdist.argparse.parse_and_configure(sys.argv[1:])
|
||||
args = cfg.get_args()
|
||||
|
||||
# Work around python 3.3 bug:
|
||||
# http://bugs.python.org/issue16308
|
||||
# http://bugs.python.org/issue9253
|
||||
|
||||
# FIXME: catching AttributeError also hides
|
||||
# real problems.. try a different way
|
||||
|
||||
# FIXME: we always print main help, not
|
||||
# the help of the actual parser being used!
|
||||
try:
|
||||
getattr(args, "func")
|
||||
except AttributeError:
|
||||
parser['main'].print_help()
|
||||
sys.exit(0)
|
||||
|
||||
args.func(args)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if sys.version_info[:3] < cdist.MIN_SUPPORTED_PYTHON_VERSION:
|
||||
print(
|
||||
'Python >= {} is required on the source host.'.format(
|
||||
".".join(map(str, cdist.MIN_SUPPORTED_PYTHON_VERSION))),
|
||||
file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
exit_code = 0
|
||||
|
||||
try:
|
||||
import re
|
||||
import os
|
||||
|
||||
if re.match("__", os.path.basename(sys.argv[0])):
|
||||
import cdist.emulator
|
||||
emulator = cdist.emulator.Emulator(sys.argv)
|
||||
emulator.run()
|
||||
else:
|
||||
commandline()
|
||||
|
||||
except KeyboardInterrupt:
|
||||
exit_code = 2
|
||||
|
||||
except cdist.Error as e:
|
||||
log = logging.getLogger("cdist")
|
||||
log.error(e)
|
||||
exit_code = 1
|
||||
|
||||
sys.exit(exit_code)
|
||||
574
bin/cdist-build-helper
Executable file
574
bin/cdist-build-helper
Executable file
|
|
@ -0,0 +1,574 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2011-2022 Nico Schottelius (nico-cdist at schottelius.org)
|
||||
# 2016-2019 Darko Poljak (darko.poljak at gmail.com)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# This file contains the heavy lifting found usually in the Makefile.
|
||||
#
|
||||
|
||||
usage() {
|
||||
printf "usage: %s TARGET [TARGET-ARGS...]
|
||||
Available targets:
|
||||
changelog-changes
|
||||
changelog-version
|
||||
check-date
|
||||
check-unittest
|
||||
ml-release
|
||||
archlinux-release
|
||||
pypi-release
|
||||
release-git-tag
|
||||
sign-git-release
|
||||
release
|
||||
test
|
||||
test-remote
|
||||
pycodestyle
|
||||
pep8
|
||||
check-pycodestyle
|
||||
shellcheck-global-explorers
|
||||
shellcheck-type-explorers
|
||||
shellcheck-manifests
|
||||
shellcheck-local-gencodes
|
||||
shellcheck-remote-gencodes
|
||||
shellcheck-bin
|
||||
shellcheck-gencodes
|
||||
shellcheck-types
|
||||
shellcheck
|
||||
shellcheck-type-files
|
||||
shellcheck-with-files
|
||||
shellcheck-build-helper
|
||||
check-shellcheck
|
||||
version-branch
|
||||
version
|
||||
target-version
|
||||
clean
|
||||
distclean\n" "$1"
|
||||
}
|
||||
|
||||
basename="${0##*/}"
|
||||
|
||||
if [ $# -lt 1 ]
|
||||
then
|
||||
usage "${basename}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
option=$1; shift
|
||||
|
||||
SHELLCHECKCMD="shellcheck -s sh -f gcc -x"
|
||||
# Skip SC2154 for variables starting with __ since such variables are cdist
|
||||
# environment variables.
|
||||
SHELLCHECK_SKIP=': __.*is referenced but not assigned.*\[SC2154\]'
|
||||
SHELLCHECKTMP=".shellcheck.tmp"
|
||||
|
||||
# Change to checkout directory
|
||||
basedir="${0%/*}/../"
|
||||
cd "$basedir"
|
||||
|
||||
case "$option" in
|
||||
changelog-changes)
|
||||
if [ "$#" -eq 1 ]; then
|
||||
start=$1
|
||||
else
|
||||
start="[[:digit:]]"
|
||||
fi
|
||||
|
||||
end="[[:digit:]]"
|
||||
|
||||
awk -F: "BEGIN { start=0 }
|
||||
{
|
||||
if(start == 0) {
|
||||
if (\$0 ~ /^$start/) {
|
||||
start = 1
|
||||
}
|
||||
} else {
|
||||
if (\$0 ~ /^$end/) {
|
||||
exit
|
||||
} else {
|
||||
print \$0
|
||||
}
|
||||
}
|
||||
}" "$basedir/docs/changelog"
|
||||
;;
|
||||
|
||||
changelog-version)
|
||||
# get version from changelog
|
||||
grep '^[[:digit:]]' "$basedir/docs/changelog" | head -n1 | sed 's/:.*//'
|
||||
;;
|
||||
|
||||
check-date)
|
||||
# verify date in changelog is today
|
||||
date_today="$(date +%Y-%m-%d)"
|
||||
date_changelog=$(grep '^[[:digit:]]' "$basedir/docs/changelog" | head -n1 | sed 's/.*: //')
|
||||
|
||||
if [ "$date_today" != "$date_changelog" ]; then
|
||||
printf "Date in changelog is not today\n"
|
||||
printf "Changelog date: %s\n" "${date_changelog}"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
check-unittest)
|
||||
"$0" test
|
||||
;;
|
||||
|
||||
ml-release)
|
||||
if [ $# -ne 1 ]; then
|
||||
printf "%s ml-release version\n" "$0" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
version=$1; shift
|
||||
|
||||
(
|
||||
cat << eof
|
||||
Subject: cdist $version has been released
|
||||
|
||||
Hello .*,
|
||||
|
||||
cdist $version has been released with the following changes:
|
||||
|
||||
eof
|
||||
|
||||
"$0" changelog-changes "$version"
|
||||
cat << eof
|
||||
|
||||
eof
|
||||
) > mailinglist.tmp
|
||||
;;
|
||||
|
||||
archlinux-release)
|
||||
if [ $# -ne 1 ]; then
|
||||
printf "%s archlinux-release version\n" "$0" >&2
|
||||
exit 1
|
||||
fi
|
||||
version=$1; shift
|
||||
|
||||
ARCHLINUXTAR="cdist-${version}-1.src.tar.gz"
|
||||
./PKGBUILD.in "${version}"
|
||||
umask 022
|
||||
mkaurball
|
||||
burp -c system "${ARCHLINUXTAR}"
|
||||
;;
|
||||
|
||||
pypi-release)
|
||||
# Ensure that pypi release has the right version
|
||||
"$0" version
|
||||
|
||||
make docs-clean
|
||||
make docs
|
||||
python3 setup.py sdist upload
|
||||
;;
|
||||
|
||||
release-git-tag)
|
||||
target_version=$($0 changelog-version)
|
||||
if git rev-parse --verify "refs/tags/${target_version}" 2>/dev/null; then
|
||||
printf "Tag for %s exists, aborting\n" "${target_version}"
|
||||
exit 1
|
||||
fi
|
||||
printf "Enter tag description for %s: " "${target_version}"
|
||||
read -r tagmessage
|
||||
|
||||
# setup for signed tags:
|
||||
# gpg --fulL-gen-key
|
||||
# gpg --list-secret-keys --keyid-format LONG
|
||||
# git config --local user.signingkey <id>
|
||||
# for exporting pub key:
|
||||
# gpg --armor --export <id> > pubkey.asc
|
||||
# gpg --output pubkey.gpg --export <id>
|
||||
# show tag with signature
|
||||
# git show <tag>
|
||||
# verify tag signature
|
||||
# git tag -v <tag>
|
||||
#
|
||||
# gpg verify signature
|
||||
# gpg --verify <asc-file> <file>
|
||||
# gpg --no-default-keyring --keyring <pubkey.gpg> --verify <asc-file> <file>
|
||||
# Ensure gpg-agent is running.
|
||||
GPG_TTY=$(tty)
|
||||
export GPG_TTY
|
||||
gpg-agent
|
||||
|
||||
git tag -s "$target_version" -m "$tagmessage"
|
||||
git push --tags
|
||||
;;
|
||||
|
||||
sign-git-release)
|
||||
if [ $# -lt 2 ]
|
||||
then
|
||||
printf "usage: %s sign-git-release TAG TOKEN [ARCHIVE]\n" "$0"
|
||||
printf " if ARCHIVE is not specified then it is created\n"
|
||||
exit 1
|
||||
fi
|
||||
tag="$1"
|
||||
if ! git rev-parse -q --verify "${tag}" >/dev/null 2>&1
|
||||
then
|
||||
printf "Tag \"%s\" not found.\n" "${tag}"
|
||||
exit 1
|
||||
fi
|
||||
token="$2"
|
||||
if [ $# -gt 2 ]
|
||||
then
|
||||
archivename="$3"
|
||||
else
|
||||
archivename="cdist-${tag}.tar"
|
||||
git archive --prefix="cdist-${tag}/" -o "${archivename}" "${tag}" \
|
||||
|| exit 1
|
||||
# make sure target version is generated
|
||||
"$0" target-version
|
||||
tar -x -f "${archivename}" || exit 1
|
||||
cp cdist/version.py "cdist-${tag}/cdist/version.py" || exit 1
|
||||
tar -c -f "${archivename}" "cdist-${tag}/" || exit 1
|
||||
rm -r -f "cdist-${tag}/"
|
||||
gzip "${archivename}" || exit 1
|
||||
archivename="${archivename}.gz"
|
||||
fi
|
||||
gpg --armor --detach-sign "${archivename}" || exit 1
|
||||
|
||||
project="ungleich-public%2Fcdist"
|
||||
sed_cmd='s/^.*"markdown":"\([^"]*\)".*$/\1/'
|
||||
|
||||
# upload archive
|
||||
response_archive=$(curl -f -X POST \
|
||||
--http1.1 \
|
||||
-H "PRIVATE-TOKEN: ${token}" \
|
||||
-F "file=@${archivename}" \
|
||||
"https://code.ungleich.ch/api/v4/projects/${project}/uploads" \
|
||||
| sed "${sed_cmd}") || exit 1
|
||||
|
||||
# upload archive signature
|
||||
response_archive_sig=$(curl -f -X POST \
|
||||
--http1.1 \
|
||||
-H "PRIVATE-TOKEN: ${token}" \
|
||||
-F "file=@${archivename}.asc" \
|
||||
"https://code.ungleich.ch/api/v4/projects/${project}/uploads" \
|
||||
| sed "${sed_cmd}") || exit 1
|
||||
|
||||
# make release
|
||||
changelog=$("$0" changelog-changes "$1" | sed 's/^[[:space:]]*//')
|
||||
release_notes=$(
|
||||
printf "%s\n\n%s\n\n**Changelog**\n\n%s\n" \
|
||||
"${response_archive}" "${response_archive_sig}" "${changelog}"
|
||||
)
|
||||
curl -f -X POST \
|
||||
-H "PRIVATE-TOKEN: ${token}" \
|
||||
-F "description=${release_notes}" \
|
||||
"https://code.ungleich.ch/api/v4/projects/${project}/repository/tags/${tag}/release" \
|
||||
|| exit 1
|
||||
|
||||
# remove generated files (archive and asc)
|
||||
if [ $# -eq 2 ]
|
||||
then
|
||||
rm -f "${archivename}"
|
||||
fi
|
||||
rm -f "${archivename}.asc"
|
||||
;;
|
||||
|
||||
release)
|
||||
set -e
|
||||
target_version=$($0 changelog-version)
|
||||
target_branch=$($0 version-branch)
|
||||
|
||||
printf "Beginning release process for %s\n" "${target_version}"
|
||||
|
||||
# First check everything is sane
|
||||
"$0" check-date
|
||||
"$0" check-unittest
|
||||
"$0" check-pycodestyle
|
||||
"$0" check-shellcheck
|
||||
|
||||
# Generate version file to be included in packaging
|
||||
"$0" target-version
|
||||
|
||||
# Ensure the git status is clean, else abort
|
||||
if ! git diff-index --name-only --exit-code HEAD ; then
|
||||
printf "Unclean tree, see files above, aborting.\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Ensure we are on the master branch
|
||||
masterbranch=yes
|
||||
if [ "$(git rev-parse --abbrev-ref HEAD)" != "master" ]; then
|
||||
printf "Releases are happening from the master branch, aborting.\n"
|
||||
|
||||
printf "Enter the magic word to release anyway:"
|
||||
read -r magicword
|
||||
|
||||
if [ "$magicword" = "iknowwhatido" ]; then
|
||||
masterbranch=no
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$masterbranch" = yes ]; then
|
||||
# Ensure version branch exists
|
||||
if ! git rev-parse --verify "refs/heads/${target_branch}" 2>/dev/null; then
|
||||
git branch "$target_branch"
|
||||
fi
|
||||
|
||||
# Merge master branch into version branch
|
||||
git checkout "$target_branch"
|
||||
git merge master
|
||||
fi
|
||||
|
||||
# Verify that after the merge everything works
|
||||
"$0" check-date
|
||||
"$0" check-unittest
|
||||
|
||||
# Generate documentation (man and html)
|
||||
# First, clean old generated docs
|
||||
make docs-clean
|
||||
make docs
|
||||
|
||||
#############################################################
|
||||
# Everything green, let's do the release
|
||||
|
||||
# Tag the current commit
|
||||
"$0" release-git-tag
|
||||
|
||||
# Also merge back the version branch
|
||||
if [ "$masterbranch" = yes ]; then
|
||||
git checkout master
|
||||
git merge "$target_branch"
|
||||
fi
|
||||
|
||||
# Publish git changes
|
||||
# if you want to have mirror locally then uncomment this and comment below
|
||||
# git push --mirror
|
||||
git push
|
||||
# push also new branch and set up tracking
|
||||
git push -u origin "${target_branch}"
|
||||
# fi
|
||||
|
||||
# Create and publish package for pypi
|
||||
"$0" pypi-release
|
||||
|
||||
# sign git tag
|
||||
printf "Enter upstream repository authentication token: "
|
||||
read -r token
|
||||
"$0" sign-git-release "${target_version}" "${token}"
|
||||
|
||||
# Announce change on ML
|
||||
"$0" ml-release "${target_version}"
|
||||
|
||||
cat << eof
|
||||
Manual steps post release:
|
||||
- cdist-web
|
||||
- send generated mailinglist.tmp mail
|
||||
eof
|
||||
;;
|
||||
|
||||
test)
|
||||
if [ ! -f "cdist/version.py" ]
|
||||
then
|
||||
printf "cdist/version.py is missing, generate it first.\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PYTHONPATH="$(pwd -P)"
|
||||
export PYTHONPATH
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
python3 -m cdist.test
|
||||
else
|
||||
python3 -m unittest "$@"
|
||||
fi
|
||||
;;
|
||||
|
||||
test-remote)
|
||||
if [ ! -f "cdist/version.py" ]
|
||||
then
|
||||
printf "cdist/version.py is missing, generate it first.\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PYTHONPATH="$(pwd -P)"
|
||||
export PYTHONPATH
|
||||
|
||||
python3 -m cdist.test.exec.remote
|
||||
;;
|
||||
|
||||
pycodestyle|pep8)
|
||||
pycodestyle "${basedir}" "${basedir}/bin/cdist"
|
||||
;;
|
||||
|
||||
check-pycodestyle)
|
||||
"$0" pycodestyle
|
||||
printf "\\nPlease review pycodestyle report.\\n"
|
||||
while true
|
||||
do
|
||||
printf "Continue (yes/no)?\n"
|
||||
any=
|
||||
read -r any
|
||||
case "$any" in
|
||||
yes)
|
||||
break
|
||||
;;
|
||||
no)
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
printf "Please answer with 'yes' or 'no' explicitly.\n"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
;;
|
||||
|
||||
shellcheck-global-explorers)
|
||||
# shellcheck disable=SC2086
|
||||
find cdist/conf/explorer -type f -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}"
|
||||
test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
|
||||
;;
|
||||
|
||||
shellcheck-type-explorers)
|
||||
# shellcheck disable=SC2086
|
||||
find cdist/conf/type -type f -path "*/explorer/*" -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}"
|
||||
test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
|
||||
;;
|
||||
|
||||
shellcheck-manifests)
|
||||
# shellcheck disable=SC2086
|
||||
find cdist/conf/type -type f -name manifest -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}"
|
||||
test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
|
||||
;;
|
||||
|
||||
shellcheck-local-gencodes)
|
||||
# shellcheck disable=SC2086
|
||||
find cdist/conf/type -type f -name gencode-local -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}"
|
||||
test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
|
||||
;;
|
||||
|
||||
shellcheck-remote-gencodes)
|
||||
# shellcheck disable=SC2086
|
||||
find cdist/conf/type -type f -name gencode-remote -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}"
|
||||
test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
|
||||
;;
|
||||
|
||||
# NOTE: shellcheck-scripts is kept for compatibility
|
||||
shellcheck-bin|shellcheck-scripts)
|
||||
# shellcheck disable=SC2086
|
||||
${SHELLCHECKCMD} bin/cdist-dump bin/cdist-new-type > "${SHELLCHECKTMP}"
|
||||
test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
|
||||
;;
|
||||
|
||||
shellcheck-gencodes)
|
||||
errors=false
|
||||
"$0" shellcheck-local-gencodes || errors=true
|
||||
"$0" shellcheck-remote-gencodes || errors=true
|
||||
! $errors || exit 1
|
||||
;;
|
||||
|
||||
shellcheck-types)
|
||||
errors=false
|
||||
"$0" shellcheck-type-explorers || errors=true
|
||||
"$0" shellcheck-manifests || errors=true
|
||||
"$0" shellcheck-gencodes || errors=true
|
||||
! $errors || exit 1
|
||||
;;
|
||||
|
||||
shellcheck)
|
||||
errors=false
|
||||
"$0" shellcheck-global-explorers || errors=true
|
||||
"$0" shellcheck-types || errors=true
|
||||
"$0" shellcheck-bin || errors=true
|
||||
! $errors || exit 1
|
||||
;;
|
||||
|
||||
shellcheck-type-files)
|
||||
# shellcheck disable=SC2086
|
||||
find cdist/conf/type -type f -path "*/files/*" -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}"
|
||||
test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
|
||||
;;
|
||||
|
||||
shellcheck-with-files)
|
||||
errors=false
|
||||
"$0" shellcheck || errors=true
|
||||
"$0" shellcheck-type-files || errors=true
|
||||
! $errors || exit 1
|
||||
;;
|
||||
|
||||
shellcheck-build-helper)
|
||||
${SHELLCHECKCMD} ./bin/cdist-build-helper
|
||||
;;
|
||||
|
||||
check-shellcheck)
|
||||
"$0" shellcheck
|
||||
printf "\\nPlease review shellcheck report.\\n"
|
||||
while true
|
||||
do
|
||||
printf "Continue (yes/no)?\n"
|
||||
any=
|
||||
read -r any
|
||||
case "$any" in
|
||||
yes)
|
||||
break
|
||||
;;
|
||||
no)
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
printf "Please answer with 'yes' or 'no' explicitly.\n"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
;;
|
||||
|
||||
version-branch)
|
||||
"$0" changelog-version | cut -d. -f '1,2'
|
||||
;;
|
||||
|
||||
version)
|
||||
printf "VERSION = \"%s\"\n" "$(git describe)" > cdist/version.py
|
||||
;;
|
||||
|
||||
target-version)
|
||||
target_version=$($0 changelog-version)
|
||||
printf "VERSION = \"%s\"\n" "${target_version}" > cdist/version.py
|
||||
;;
|
||||
|
||||
clean)
|
||||
make clean
|
||||
|
||||
# Archlinux
|
||||
rm -f cdist-*.pkg.tar.xz cdist-*.tar.gz
|
||||
rm -rf pkg/ src/
|
||||
|
||||
rm -f MANIFEST PKGBUILD
|
||||
rm -rf dist/
|
||||
|
||||
# Signed release
|
||||
rm -f cdist-*.tar.gz
|
||||
rm -f cdist-*.tar.gz.asc
|
||||
|
||||
# Temp files
|
||||
rm -f ./*.tmp
|
||||
rm -f ./.*.tmp
|
||||
;;
|
||||
|
||||
distclean)
|
||||
"$0" clean
|
||||
rm -f cdist/version.py
|
||||
;;
|
||||
*)
|
||||
printf "Unknown target: '%s'.\n" "${option}" >&2
|
||||
usage "${basename}"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
326
bin/cdist-dump
Executable file
326
bin/cdist-dump
Executable file
|
|
@ -0,0 +1,326 @@
|
|||
#!/bin/sh
|
||||
|
||||
VERSION="0.0.1"
|
||||
RELEASE=""
|
||||
|
||||
set -u
|
||||
# set -x
|
||||
|
||||
hosts=
|
||||
cache_dir=~/.cdist/cache
|
||||
|
||||
do_all=1
|
||||
do_global_explorer=
|
||||
do_type_explorer=
|
||||
do_script_stdout=
|
||||
do_script_stderr=
|
||||
do_gencode=
|
||||
do_code=
|
||||
do_messages=
|
||||
do_parameter=
|
||||
delimiter=':'
|
||||
ln=
|
||||
filename_prefix=1
|
||||
verbose=0
|
||||
|
||||
myname=${0##*/}
|
||||
|
||||
print_version()
|
||||
{
|
||||
printf "%s %s %s\n" "${myname}" "${VERSION}" "${RELEASE}"
|
||||
}
|
||||
|
||||
usage()
|
||||
{
|
||||
cat << eof
|
||||
${myname}: [options] [host...]
|
||||
eof
|
||||
|
||||
print_version
|
||||
|
||||
cat << eof
|
||||
|
||||
Dump data from cache directories.
|
||||
|
||||
host
|
||||
Dump data for specified hosts. If not specified then all data
|
||||
from cache directory is dumped.
|
||||
|
||||
Options
|
||||
-a dump all
|
||||
-C CACHE-DIR use specified CACHE-DIR (default: ~/.cdist/cache)
|
||||
-c dump code-*
|
||||
-d DELIMITER delimiter used for filename and line number prefix (default: ':')
|
||||
-E dump global explorers
|
||||
-e dump type explorers
|
||||
-F disable filename prefix (enabled by default)
|
||||
-f enable filename prefix (default)
|
||||
-g dump gencode-*
|
||||
-h show this help screen and exit
|
||||
-L disable line number prefix (default)
|
||||
-l enable line number prefix (disabled by default)
|
||||
-m dump messages
|
||||
-o dump executions' stdout
|
||||
-p dump parameters
|
||||
-r dump executions' stderr
|
||||
-V show version and exit
|
||||
-v increase verbosity
|
||||
eof
|
||||
}
|
||||
|
||||
exit_err()
|
||||
{
|
||||
printf "%s\n" "$1"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# parse options
|
||||
while [ "$#" -ge 1 ]
|
||||
do
|
||||
case "$1" in
|
||||
-a)
|
||||
do_all=1
|
||||
;;
|
||||
-C)
|
||||
if [ "$#" -ge 2 ]
|
||||
then
|
||||
case "$2" in
|
||||
-*)
|
||||
exit_err "Missing cache directory"
|
||||
;;
|
||||
*)
|
||||
cache_dir="$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
else
|
||||
exit_err "Missing cache directory"
|
||||
fi
|
||||
;;
|
||||
-c)
|
||||
do_code=1
|
||||
do_all=
|
||||
;;
|
||||
-d)
|
||||
if [ "$#" -ge 2 ]
|
||||
then
|
||||
case "$2" in
|
||||
-*)
|
||||
exit_err "Missing delimiter"
|
||||
;;
|
||||
*)
|
||||
delimiter="$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
else
|
||||
exit_err "Missing delimiter"
|
||||
fi
|
||||
;;
|
||||
-E)
|
||||
do_global_explorer=1
|
||||
do_all=
|
||||
;;
|
||||
-e)
|
||||
do_type_explorer=1
|
||||
do_all=
|
||||
;;
|
||||
-F)
|
||||
filename_prefix=
|
||||
;;
|
||||
-f)
|
||||
filename_prefix=1
|
||||
;;
|
||||
-g)
|
||||
do_gencode=1
|
||||
do_all=
|
||||
;;
|
||||
-h)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
-L)
|
||||
ln=
|
||||
;;
|
||||
-l)
|
||||
ln=1
|
||||
;;
|
||||
-m)
|
||||
do_messages=1
|
||||
do_all=
|
||||
;;
|
||||
-o)
|
||||
do_script_stdout=1
|
||||
do_all=
|
||||
;;
|
||||
-p)
|
||||
do_parameter=1
|
||||
do_all=
|
||||
;;
|
||||
-r)
|
||||
do_script_stderr=1
|
||||
do_all=
|
||||
;;
|
||||
-V)
|
||||
print_version
|
||||
exit 0
|
||||
;;
|
||||
-v)
|
||||
verbose=$((verbose + 1))
|
||||
;;
|
||||
*)
|
||||
hosts="${hosts} $1"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [ "${ln}" = "1" ]
|
||||
then
|
||||
ln="NR \"${delimiter}\""
|
||||
fi
|
||||
|
||||
if [ "${filename_prefix}" = "1" ]
|
||||
then
|
||||
filename_prefix="{}${delimiter}"
|
||||
fi
|
||||
|
||||
if [ "${do_all}" = "1" ]
|
||||
then
|
||||
do_global_explorer=1
|
||||
do_type_explorer=1
|
||||
do_script_stdout=1
|
||||
do_script_stderr=1
|
||||
do_gencode=1
|
||||
do_code=1
|
||||
do_messages=1
|
||||
do_parameter=1
|
||||
fi
|
||||
|
||||
set -- -size +0
|
||||
set -- "$@" \(
|
||||
or=
|
||||
|
||||
print_verbose()
|
||||
{
|
||||
if [ "${verbose}" -ge "$1" ]
|
||||
then
|
||||
printf "%s\n" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
hor_line()
|
||||
{
|
||||
if [ $# -gt 0 ]
|
||||
then
|
||||
c="$1"
|
||||
else
|
||||
c='='
|
||||
fi
|
||||
printf "%78s\n" "" | tr ' ' "${c}"
|
||||
}
|
||||
|
||||
if [ "${do_global_explorer}" ]
|
||||
then
|
||||
print_verbose 2 "Dumping global explorers"
|
||||
# shellcheck disable=SC2086
|
||||
set -- "$@" ${or} \( \
|
||||
-path "*/explorer/*" -a \
|
||||
! -path "*/conf/*" -a \
|
||||
! -path "*/object/*/explorer/*" \
|
||||
\)
|
||||
or="-o"
|
||||
fi
|
||||
|
||||
if [ "${do_type_explorer}" ]
|
||||
then
|
||||
print_verbose 2 "Dumping type explorers"
|
||||
set -- "$@" ${or} -path "*/object/*/explorer/*"
|
||||
or="-o"
|
||||
fi
|
||||
|
||||
if [ "${do_script_stdout}" ]
|
||||
then
|
||||
print_verbose 2 "Dumping execution's stdout"
|
||||
set -- "$@" ${or} -path "*/stdout/*"
|
||||
or="-o"
|
||||
fi
|
||||
|
||||
if [ "${do_script_stderr}" ]
|
||||
then
|
||||
print_verbose 2 "Dumping execution's stderr"
|
||||
set -- "$@" ${or} -path "*/stderr/*"
|
||||
or="-o"
|
||||
fi
|
||||
|
||||
if [ "${do_gencode}" ]
|
||||
then
|
||||
print_verbose 2 "Dumping gencode-*"
|
||||
set -- "$@" ${or} \( -name "gencode-*" -a ! -path "*/stdout/*" -a ! -path "*/stderr/*" \)
|
||||
or="-o"
|
||||
fi
|
||||
|
||||
if [ "${do_code}" ]
|
||||
then
|
||||
print_verbose 2 "Dumping code-*"
|
||||
set -- "$@" ${or} \( -name "code-*" -a ! -path "*/stdout/*" -a ! -path "*/stderr/*" \)
|
||||
or="-o"
|
||||
fi
|
||||
|
||||
if [ "${do_messages}" ]
|
||||
then
|
||||
print_verbose 2 "Dumping messages"
|
||||
set -- "$@" ${or} -name "messages"
|
||||
or="-o"
|
||||
fi
|
||||
|
||||
if [ "${do_parameter}" ]
|
||||
then
|
||||
print_verbose 2 "Dumping parameters"
|
||||
set -- "$@" ${or} -path "*/parameter/*"
|
||||
or="-o"
|
||||
fi
|
||||
|
||||
set -- "$@" \)
|
||||
set -- '.' "$@" -exec awk -v prefix="${filename_prefix}" "{print prefix ${ln} \$0}" {} \;
|
||||
|
||||
# printf "+ %s\n" "$*"
|
||||
|
||||
print_verbose 2 "Using cache dir: ${cache_dir}"
|
||||
|
||||
OLD_PWD=$(pwd)
|
||||
cd "${cache_dir}" || exit
|
||||
|
||||
# If no host is specified then search all.
|
||||
[ -z "${hosts}" ] && hosts="-"
|
||||
|
||||
for host in ${hosts}
|
||||
do
|
||||
[ "${host}" = "-" ] && host=
|
||||
# find host cache directory
|
||||
host_dir=$(find . -name target_host -exec grep -l "${host}" {} +)
|
||||
print_verbose 3 "found host directory files:"
|
||||
print_verbose 3 "${host_dir}"
|
||||
|
||||
OLD_IFS="${IFS}"
|
||||
IFS="
|
||||
"
|
||||
|
||||
for d in ${host_dir}
|
||||
do
|
||||
dir=$(dirname "${d}")
|
||||
|
||||
print_verbose 0 "target host: $(cat "${dir}/target_host"), host directory: ${dir}"
|
||||
hor_line '='
|
||||
|
||||
PREV_PWD=$(pwd)
|
||||
cd "${dir}" || exit
|
||||
# set -x
|
||||
find "$@"
|
||||
# set +x
|
||||
cd "${PREV_PWD}" || exit
|
||||
done
|
||||
IFS="${OLD_IFS}"
|
||||
done
|
||||
cd "${OLD_PWD}" || exit
|
||||
159
bin/cdist-new-type
Executable file
159
bin/cdist-new-type
Executable file
|
|
@ -0,0 +1,159 @@
|
|||
#!/bin/sh
|
||||
|
||||
basename="${0##*/}"
|
||||
|
||||
if [ $# -lt 3 ]
|
||||
then
|
||||
printf "usage: %s TYPE-NAME AUTHOR-NAME AUTHOR-EMAIL [TYPE-BASE-PATH]
|
||||
TYPE-NAME Name of the type.
|
||||
AUTHOR-NAME Type author's full name.
|
||||
AUTHOR-EMAIL Type author's email.
|
||||
TYPE-BASE-PATH Path to the base directory of the type. If not set it defaults
|
||||
to '\$PWD/type'.\n" "${basename}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
type_name="$1"
|
||||
shift
|
||||
author_name="$1"
|
||||
shift
|
||||
author_email="$1"
|
||||
shift
|
||||
|
||||
if [ $# -ge 1 ]
|
||||
then
|
||||
type_base_path="$1"
|
||||
shift
|
||||
else
|
||||
#type_base_path=~/.cdist/type
|
||||
type_base_path="$PWD/type"
|
||||
fi
|
||||
|
||||
error() {
|
||||
printf "%s\n" "$*" >&2
|
||||
}
|
||||
|
||||
die() {
|
||||
error "$@"
|
||||
exit 1
|
||||
}
|
||||
|
||||
cd "$type_base_path" || die "Could not change to type directory: $type_base_path.
|
||||
You have to specify type base path or run me from within a cdist conf directory,
|
||||
e.g. ~/.cdist."
|
||||
|
||||
year=$(date +%Y)
|
||||
copyright="# $year $author_name ($author_email)"
|
||||
|
||||
license="# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
"
|
||||
|
||||
set -e
|
||||
|
||||
mkdir "$type_name"
|
||||
cd "$type_name"
|
||||
|
||||
### man page
|
||||
header="cdist-type${type_name}(7)"
|
||||
header_length="${#header}"
|
||||
cat >> man.rst << DONE
|
||||
$header
|
||||
$(while [ "${header_length}" -gt 0 ]; do printf "="; header_length=$((header_length - 1)); done; printf "\n";)
|
||||
|
||||
NAME
|
||||
----
|
||||
cdist-type${type_name} - TODO
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
This space intentionally left blank.
|
||||
|
||||
|
||||
REQUIRED PARAMETERS
|
||||
-------------------
|
||||
None.
|
||||
|
||||
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
None.
|
||||
|
||||
|
||||
BOOLEAN PARAMETERS
|
||||
------------------
|
||||
None.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
# TODO
|
||||
${type_name}
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
:strong:\`TODO\`\\ (7)
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
$author_name <$author_email>
|
||||
|
||||
|
||||
COPYING
|
||||
-------
|
||||
Copyright \(C) $year $author_name. You can redistribute it
|
||||
and/or modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
DONE
|
||||
|
||||
### manifest
|
||||
cat >> manifest << DONE
|
||||
#!/bin/sh -e
|
||||
#
|
||||
${copyright}
|
||||
#
|
||||
${license}
|
||||
|
||||
os=\$(cat "\$__global/explorer/os")
|
||||
|
||||
case "\$os" in
|
||||
*)
|
||||
printf "Your operating system (%s) is currently not supported by this type (%s)\n" "\$os" "\${__type##*/}" >&2
|
||||
printf "Please contribute an implementation for it if you can.\n" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
DONE
|
||||
chmod +x manifest
|
||||
|
||||
# gencode-remote
|
||||
cat >> gencode-remote << DONE
|
||||
#!/bin/sh -e
|
||||
#
|
||||
${copyright}
|
||||
#
|
||||
${license}
|
||||
DONE
|
||||
chmod +x gencode-remote
|
||||
|
||||
printf "%s/%s\n" "$type_base_path" "$type_name"
|
||||
142
cdist.mdwn
142
cdist.mdwn
|
|
@ -1,142 +0,0 @@
|
|||
## Introduction
|
||||
|
||||
cdist configures your system. It is similar to
|
||||
[cfengine](http://www.cfengine.org/) and
|
||||
[puppet](http://www.puppetlabs.com/).
|
||||
It is inspired by both of those tools:
|
||||
|
||||
* Try to redo the great power you get
|
||||
* But leave out the bugs you also got
|
||||
|
||||
### Principles
|
||||
|
||||
cdist is unix: It's designed to reuse existing tools
|
||||
and does not need high level scripting language interpreters.
|
||||
|
||||
### Requirements
|
||||
|
||||
* A posix like shell
|
||||
|
||||
## How cdist works
|
||||
|
||||
### Exploring your system
|
||||
|
||||
cdist analyses the system to apply the configuration on and
|
||||
selects the right backends. You can use ***cdist-explore*** to
|
||||
the results of the explore functions.
|
||||
|
||||
### Applying the configuration
|
||||
|
||||
cdist looks for the configuration to apply on the local host
|
||||
and applies it using ***cdist-apply***.
|
||||
|
||||
### Managing many hosts
|
||||
|
||||
Whereas ***cdist-apply*** manages one host, ***cdist-deploy***
|
||||
applies the configuration on enabled hosts.
|
||||
|
||||
## How to use cdist?
|
||||
|
||||
|
||||
## What do I need [from puppet?]
|
||||
|
||||
### Abstraction of package managers
|
||||
|
||||
I don't want to care about apt, rpm, yum, pacman, etc. I just
|
||||
want to ensure, some package exists or does not exist.
|
||||
|
||||
|
||||
### Common tasks already done
|
||||
|
||||
- [LIBRARY] All the helper types like
|
||||
- file
|
||||
- ssh_keys
|
||||
- package
|
||||
- service
|
||||
- user
|
||||
|
||||
### PORTABILITY
|
||||
- [PORTABILITY] clients for every unix
|
||||
- mostly ruby + facter in puppet
|
||||
|
||||
- Modules: Nice to put stuff together
|
||||
- and reuse
|
||||
- [CONDITIONS] facter is cool
|
||||
- the DSL
|
||||
- with many bugs
|
||||
- templates
|
||||
- Client/Server approach is nice to have
|
||||
- Clients only get the part of the documentation, that's
|
||||
relevant to them
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
what is puppet? [FOR ME]
|
||||
|
||||
A configuration deployment assistant,
|
||||
a DSL that allows you define the objectives.
|
||||
A webserver with fileserver capabilities.
|
||||
A client based scheduled polling infrastructure.
|
||||
--------------------------------------------------------------------------------
|
||||
What do I miss from puppet?
|
||||
|
||||
- speed
|
||||
- elegance
|
||||
- clean design
|
||||
- documentation
|
||||
- the "no surprise" factor
|
||||
- easy to use "data memory" (i.e. external ressources)
|
||||
- easy integration into installation process
|
||||
- copy identity to master
|
||||
- multi master setups
|
||||
- development configurations / tests
|
||||
- editing of configuration files
|
||||
- similar to cfengine
|
||||
- replace bug squasher with bug avoidance
|
||||
- qmail did not need one either
|
||||
- push infrastructure
|
||||
--------------------------------------------------------------------------------
|
||||
Simple stuff done by Unix[notm]
|
||||
|
||||
- DSL: Shell!
|
||||
- gives if, else and EVEN elsif for free!
|
||||
- and case
|
||||
- and and and
|
||||
- and there's no os (solaris doesn't count) without a usable /bin/sh
|
||||
- cdist defines what you can use
|
||||
- you _can_ use os specific stuff
|
||||
- but it's ugly and you shoot into your own foot
|
||||
- "manifests" (use the same name here?) will be run/sourced
|
||||
- inheritance possible via sourcing
|
||||
- cdist-lib always preloaded
|
||||
- library == functions?
|
||||
- version control via git
|
||||
- file distribution via ssh
|
||||
- authentication via ssh
|
||||
- dumb clients, similar to manifest compile in puppet
|
||||
- clients just execute commands
|
||||
- dependencies via make?
|
||||
- how to ensure sigletons / conflicting definitions?
|
||||
file { "/a":
|
||||
ensure => present,
|
||||
file { "/a":
|
||||
ensure => absent,
|
||||
- matching on explored items, not only on host name?
|
||||
- match function in host? [optional]
|
||||
- file source:
|
||||
- relative to specification
|
||||
- or absolute
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Architecture
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Implementation
|
||||
|
||||
"cdist-server"
|
||||
-> called by cron?
|
||||
-> no need to reimplement scheduling
|
||||
"cdist-explore" (facter replacement)
|
||||
-> running on the client
|
||||
290
cdist/__init__.py
Normal file
290
cdist/__init__.py
Normal file
|
|
@ -0,0 +1,290 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# 2010-2015 Nico Schottelius (nico-cdist at schottelius.org)
|
||||
# 2012-2017 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
import os
|
||||
import hashlib
|
||||
import subprocess
|
||||
|
||||
import cdist.log
|
||||
|
||||
|
||||
VERSION = 'unknown version'
|
||||
|
||||
try:
|
||||
import cdist.version
|
||||
VERSION = cdist.version.VERSION
|
||||
except ModuleNotFoundError:
|
||||
cdist_dir = os.path.abspath(
|
||||
os.path.join(os.path.dirname(__file__), os.pardir))
|
||||
if os.path.isdir(os.path.join(cdist_dir, '.git')):
|
||||
try:
|
||||
VERSION = subprocess.check_output(
|
||||
['git', 'describe', '--always'],
|
||||
cwd=cdist_dir,
|
||||
universal_newlines=True)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
BANNER = """
|
||||
.. . .x+=:. s
|
||||
dF @88> z` ^% :8
|
||||
'88bu. %8P . <k .88
|
||||
. '*88888bu . .@8Ned8" :888ooo
|
||||
.udR88N ^"*8888N .@88u .@^%8888" -*8888888
|
||||
<888'888k beWE "888L ''888E` x88: `)8b. 8888
|
||||
9888 'Y" 888E 888E 888E 8888N=*8888 8888
|
||||
9888 888E 888E 888E %8" R88 8888
|
||||
9888 888E 888F 888E @8Wou 9% .8888Lu=
|
||||
?8888u../ .888N..888 888& .888888P` ^%888*
|
||||
"8888P' `"888*"" R888" ` ^"F 'Y"
|
||||
"P' "" ""
|
||||
"""
|
||||
|
||||
REMOTE_COPY = "scp -o User=root -q"
|
||||
REMOTE_EXEC = "ssh -o User=root"
|
||||
REMOTE_CMDS_CLEANUP_PATTERN = "ssh -o User=root -O exit -S {}"
|
||||
|
||||
|
||||
MIN_SUPPORTED_PYTHON_VERSION = (3, 5)
|
||||
|
||||
|
||||
class Error(Exception):
|
||||
"""Base exception class for this project"""
|
||||
pass
|
||||
|
||||
|
||||
class UnresolvableRequirementsError(cdist.Error):
|
||||
"""Resolving requirements failed"""
|
||||
pass
|
||||
|
||||
|
||||
class CdistBetaRequired(cdist.Error):
|
||||
"""Beta functionality is used but beta is not enabled"""
|
||||
|
||||
def __init__(self, command, arg=None):
|
||||
self.command = command
|
||||
self.arg = arg
|
||||
|
||||
def __str__(self):
|
||||
if self.arg is None:
|
||||
err_msg = ("\'{}\' command is beta, but beta is "
|
||||
"not enabled. If you want to use it please enable beta "
|
||||
"functionalities by using the -b/--beta command "
|
||||
"line flag or setting CDIST_BETA env var.")
|
||||
fmt_args = [self.command, ]
|
||||
else:
|
||||
err_msg = ("\'{}\' argument of \'{}\' command is beta, but beta "
|
||||
"is not enabled. If you want to use it please enable "
|
||||
"beta functionalities by using the -b/--beta "
|
||||
"command line flag or setting CDIST_BETA env var.")
|
||||
fmt_args = [self.arg, self.command, ]
|
||||
return err_msg.format(*fmt_args)
|
||||
|
||||
|
||||
class CdistEntityError(Error):
|
||||
"""Something went wrong while executing cdist entity"""
|
||||
def __init__(self, entity_name, entity_params, stdout_paths,
|
||||
stderr_paths, subject=''):
|
||||
self.entity_name = entity_name
|
||||
self.entity_params = entity_params
|
||||
self.stderr_paths = stderr_paths
|
||||
self.stdout_paths = stdout_paths
|
||||
if isinstance(subject, Error):
|
||||
self.original_error = subject
|
||||
else:
|
||||
self.original_error = None
|
||||
self.message = str(subject)
|
||||
|
||||
def _stdpath(self, stdpaths, header_name):
|
||||
result = {}
|
||||
for name, path in stdpaths:
|
||||
if name not in result:
|
||||
result[name] = []
|
||||
try:
|
||||
if os.path.exists(path) and os.path.getsize(path) > 0:
|
||||
output = []
|
||||
label_begin = name + ":" + header_name
|
||||
output.append(label_begin)
|
||||
output.append('\n')
|
||||
output.append('-' * len(label_begin))
|
||||
output.append('\n')
|
||||
with open(path, 'r') as fd:
|
||||
output.append(fd.read())
|
||||
output.append('\n')
|
||||
result[name].append(''.join(output))
|
||||
except UnicodeError as ue:
|
||||
result[name].append(('Cannot output {}:{} due to: {}.\n'
|
||||
'You can try to read the error file "{}"'
|
||||
' yourself.').format(
|
||||
name, header_name, ue, path))
|
||||
return result
|
||||
|
||||
def _stderr(self):
|
||||
return self._stdpath(self.stderr_paths, 'stderr')
|
||||
|
||||
def _stdout(self):
|
||||
return self._stdpath(self.stdout_paths, 'stdout')
|
||||
|
||||
def _update_dict_list(self, target, source):
|
||||
for x in source:
|
||||
if x not in target:
|
||||
target[x] = []
|
||||
target[x].extend(source[x])
|
||||
|
||||
@property
|
||||
def std_streams(self):
|
||||
std_dict = {}
|
||||
self._update_dict_list(std_dict, self._stdout())
|
||||
self._update_dict_list(std_dict, self._stderr())
|
||||
return std_dict
|
||||
|
||||
def __str__(self):
|
||||
output = []
|
||||
output.append(self.message)
|
||||
output.append('\n\n')
|
||||
header = "Error processing " + self.entity_name
|
||||
under_header = '=' * len(header)
|
||||
output.append(header)
|
||||
output.append('\n')
|
||||
output.append(under_header)
|
||||
output.append('\n')
|
||||
for param_name, param_value in self.entity_params:
|
||||
output.append(param_name + ': ' + str(param_value))
|
||||
output.append('\n')
|
||||
output.append('\n')
|
||||
for x in self.std_streams:
|
||||
output.append(''.join(self.std_streams[x]))
|
||||
return ''.join(output)
|
||||
|
||||
|
||||
class CdistObjectError(CdistEntityError):
|
||||
"""Something went wrong while working on a specific cdist object"""
|
||||
def __init__(self, cdist_object, subject=''):
|
||||
params = [
|
||||
('name', cdist_object.name, ),
|
||||
('path', cdist_object.absolute_path, ),
|
||||
('source', " ".join(cdist_object.source), ),
|
||||
('type', os.path.realpath(
|
||||
cdist_object.cdist_type.absolute_path), ),
|
||||
]
|
||||
stderr_paths = []
|
||||
for stderr_name in os.listdir(cdist_object.stderr_path):
|
||||
stderr_path = os.path.join(cdist_object.stderr_path,
|
||||
stderr_name)
|
||||
stderr_paths.append((stderr_name, stderr_path, ))
|
||||
stdout_paths = []
|
||||
for stdout_name in os.listdir(cdist_object.stdout_path):
|
||||
stdout_path = os.path.join(cdist_object.stdout_path,
|
||||
stdout_name)
|
||||
stdout_paths.append((stdout_name, stdout_path, ))
|
||||
super().__init__("object '{}'".format(cdist_object.name),
|
||||
params, stdout_paths, stderr_paths, subject)
|
||||
|
||||
|
||||
class CdistObjectExplorerError(CdistEntityError):
|
||||
"""
|
||||
Something went wrong while working on a specific
|
||||
cdist object explorer
|
||||
"""
|
||||
def __init__(self, cdist_object, explorer_name, explorer_path,
|
||||
stderr_path, subject=''):
|
||||
params = [
|
||||
('object name', cdist_object.name, ),
|
||||
('object path', cdist_object.absolute_path, ),
|
||||
('object source', " ".join(cdist_object.source), ),
|
||||
('object type', os.path.realpath(
|
||||
cdist_object.cdist_type.absolute_path), ),
|
||||
('explorer name', explorer_name, ),
|
||||
('explorer path', explorer_path, ),
|
||||
]
|
||||
stdout_paths = []
|
||||
stderr_paths = [
|
||||
('remote', stderr_path, ),
|
||||
]
|
||||
super().__init__("explorer '{}' of object '{}'".format(
|
||||
explorer_name, cdist_object.name), params, stdout_paths,
|
||||
stderr_paths, subject)
|
||||
|
||||
|
||||
class InitialManifestError(CdistEntityError):
|
||||
"""Something went wrong while executing initial manifest"""
|
||||
def __init__(self, initial_manifest, stdout_path, stderr_path, subject=''):
|
||||
params = [
|
||||
('path', initial_manifest, ),
|
||||
]
|
||||
stdout_paths = [
|
||||
('init', stdout_path, ),
|
||||
]
|
||||
stderr_paths = [
|
||||
('init', stderr_path, ),
|
||||
]
|
||||
super().__init__('initial manifest', params, stdout_paths,
|
||||
stderr_paths, subject)
|
||||
|
||||
|
||||
class GlobalExplorerError(CdistEntityError):
|
||||
"""Something went wrong while executing global explorer"""
|
||||
def __init__(self, name, path, stderr_path, subject=''):
|
||||
params = [
|
||||
('name', name, ),
|
||||
('path', path, ),
|
||||
]
|
||||
stderr_paths = [
|
||||
('remote', stderr_path, ),
|
||||
]
|
||||
super().__init__("global explorer '{}'".format(name),
|
||||
params, [], stderr_paths, subject)
|
||||
|
||||
|
||||
def file_to_list(filename):
|
||||
"""Return list from \n seperated file"""
|
||||
if os.path.isfile(filename):
|
||||
file_fd = open(filename, "r")
|
||||
lines = file_fd.readlines()
|
||||
file_fd.close()
|
||||
|
||||
# Remove \n from all lines
|
||||
lines = map(lambda s: s.strip(), lines)
|
||||
else:
|
||||
lines = []
|
||||
|
||||
return lines
|
||||
|
||||
|
||||
def str_hash(s):
|
||||
"""Return hash of string s"""
|
||||
if isinstance(s, str):
|
||||
return hashlib.md5(s.encode('utf-8')).hexdigest()
|
||||
else:
|
||||
raise Error("Param should be string")
|
||||
|
||||
|
||||
def home_dir():
|
||||
if 'HOME' in os.environ:
|
||||
home = os.environ['HOME']
|
||||
if home:
|
||||
rv = os.path.join(home, ".cdist")
|
||||
else:
|
||||
rv = None
|
||||
else:
|
||||
rv = None
|
||||
return rv
|
||||
555
cdist/argparse.py
Normal file
555
cdist/argparse.py
Normal file
|
|
@ -0,0 +1,555 @@
|
|||
import argparse
|
||||
import cdist
|
||||
import multiprocessing
|
||||
import logging
|
||||
import collections
|
||||
import functools
|
||||
import cdist.configuration
|
||||
import cdist.log
|
||||
import cdist.preos
|
||||
import cdist.info
|
||||
import cdist.scan.commandline
|
||||
|
||||
|
||||
# set of beta sub-commands
|
||||
BETA_COMMANDS = set(('install', 'inventory', 'scan', ))
|
||||
# set of beta arguments for sub-commands
|
||||
BETA_ARGS = {
|
||||
'config': set(('tag', 'all_tagged_hosts', 'use_archiving', )),
|
||||
}
|
||||
EPILOG = "Get cdist at https://code.ungleich.ch/ungleich-public/cdist"
|
||||
# Parser others can reuse
|
||||
parser = None
|
||||
|
||||
|
||||
_verbosity_level_off = -2
|
||||
_verbosity_level = {
|
||||
None: logging.WARNING,
|
||||
_verbosity_level_off: logging.OFF,
|
||||
-1: logging.ERROR,
|
||||
0: logging.WARNING,
|
||||
1: logging.INFO,
|
||||
2: logging.VERBOSE,
|
||||
3: logging.DEBUG,
|
||||
4: logging.TRACE,
|
||||
}
|
||||
|
||||
|
||||
# Generate verbosity level constants:
|
||||
# VERBOSE_OFF, VERBOSE_ERROR, VERBOSE_WARNING, VERBOSE_INFO, VERBOSE_VERBOSE,
|
||||
# VERBOSE_DEBUG, VERBOSE_TRACE.
|
||||
this_globals = globals()
|
||||
for level in _verbosity_level:
|
||||
const = 'VERBOSE_' + logging.getLevelName(_verbosity_level[level])
|
||||
this_globals[const] = level
|
||||
|
||||
|
||||
# All verbosity levels above 4 are TRACE.
|
||||
_verbosity_level = collections.defaultdict(
|
||||
lambda: logging.TRACE, _verbosity_level)
|
||||
|
||||
|
||||
def add_beta_command(cmd):
|
||||
BETA_COMMANDS.add(cmd)
|
||||
|
||||
|
||||
def add_beta_arg(cmd, arg):
|
||||
if cmd in BETA_ARGS:
|
||||
if arg not in BETA_ARGS[cmd]:
|
||||
BETA_ARGS[cmd].append(arg)
|
||||
else:
|
||||
BETA_ARGS[cmd] = set((arg, ))
|
||||
|
||||
|
||||
def check_beta(args_dict):
|
||||
if 'beta' not in args_dict:
|
||||
args_dict['beta'] = False
|
||||
# Check only if beta is not enabled: if beta option is specified then
|
||||
# raise error.
|
||||
if not args_dict['beta']:
|
||||
cmd = args_dict['command']
|
||||
# first check if command is beta
|
||||
if cmd in BETA_COMMANDS:
|
||||
raise cdist.CdistBetaRequired(cmd)
|
||||
# then check if some command's argument is beta
|
||||
if cmd in BETA_ARGS:
|
||||
for arg in BETA_ARGS[cmd]:
|
||||
if arg in args_dict and args_dict[arg]:
|
||||
raise cdist.CdistBetaRequired(cmd, arg)
|
||||
|
||||
|
||||
def check_lower_bounded_int(value, lower_bound, name):
|
||||
try:
|
||||
val = int(value)
|
||||
except ValueError:
|
||||
raise argparse.ArgumentTypeError(
|
||||
"{} is invalid int value".format(value))
|
||||
if val < lower_bound:
|
||||
raise argparse.ArgumentTypeError(
|
||||
"{} is invalid {} value".format(val, name))
|
||||
return val
|
||||
|
||||
|
||||
def get_parsers():
|
||||
global parser
|
||||
|
||||
# Construct parser others can reuse
|
||||
if parser:
|
||||
return parser
|
||||
else:
|
||||
parser = {}
|
||||
# Options _all_ parsers have in common
|
||||
parser['loglevel'] = argparse.ArgumentParser(add_help=False)
|
||||
parser['loglevel'].add_argument(
|
||||
'-l', '--log-level', metavar='LOGLEVEL',
|
||||
type=functools.partial(check_lower_bounded_int, lower_bound=-1,
|
||||
name="log level"),
|
||||
help=('Set the specified verbosity level. '
|
||||
'The levels, in order from the lowest to the highest, are: '
|
||||
'ERROR (-1), WARNING (0), INFO (1), VERBOSE (2), DEBUG (3), '
|
||||
'TRACE (4 or higher). If used along with -v then -v '
|
||||
'increases last set value and -l overwrites last set '
|
||||
'value.'),
|
||||
action='store', dest='verbose', required=False)
|
||||
parser['loglevel'].add_argument(
|
||||
'-q', '--quiet',
|
||||
help='Quiet mode: disables logging, including WARNING and ERROR.',
|
||||
action='store_true', default=False)
|
||||
parser['loglevel'].add_argument(
|
||||
'-v', '--verbose',
|
||||
help=('Increase the verbosity level. Every instance of -v '
|
||||
'increments the verbosity level by one. Its default value '
|
||||
'is 0 which includes ERROR and WARNING levels. '
|
||||
'The levels, in order from the lowest to the highest, are: '
|
||||
'ERROR (-1), WARNING (0), INFO (1), VERBOSE (2), DEBUG (3) '
|
||||
'TRACE (4 or higher). If used along with -l then -l '
|
||||
'overwrites last set value and -v increases last set '
|
||||
'value.'),
|
||||
action='count', default=None)
|
||||
|
||||
parser['colored_output'] = argparse.ArgumentParser(add_help=False)
|
||||
parser['colored_output'].add_argument(
|
||||
'--colors', metavar='WHEN',
|
||||
help="Colorize cdist's output based on log level; "
|
||||
"WHEN is 'always', 'never', or 'auto'.",
|
||||
action='store', dest='colored_output', required=False,
|
||||
choices=cdist.configuration.ColoredOutputOption.CHOICES)
|
||||
|
||||
parser['beta'] = argparse.ArgumentParser(add_help=False)
|
||||
parser['beta'].add_argument(
|
||||
'-b', '--beta',
|
||||
help=('Enable beta functionality. '),
|
||||
action='store_true', dest='beta', default=None)
|
||||
|
||||
# Main subcommand parser
|
||||
parser['main'] = argparse.ArgumentParser(
|
||||
description='cdist ' + cdist.VERSION)
|
||||
parser['main'].add_argument(
|
||||
'-V', '--version', help='Show version.', action='version',
|
||||
version='%(prog)s ' + cdist.VERSION)
|
||||
parser['sub'] = parser['main'].add_subparsers(
|
||||
title="Commands", dest="command")
|
||||
|
||||
# Banner
|
||||
parser['banner'] = parser['sub'].add_parser(
|
||||
'banner', parents=[parser['loglevel']])
|
||||
parser['banner'].set_defaults(func=cdist.banner.banner)
|
||||
|
||||
parser['inventory_common'] = argparse.ArgumentParser(add_help=False)
|
||||
parser['inventory_common'].add_argument(
|
||||
'-I', '--inventory',
|
||||
help=('Use specified custom inventory directory. '
|
||||
'Inventory directory is set up by the following rules: '
|
||||
'if cdist configuration resolves this value then specified '
|
||||
'directory is used, '
|
||||
'if HOME env var is set then ~/.cdist/inventory is '
|
||||
'used, otherwise distribution inventory directory is used.'),
|
||||
dest="inventory_dir", required=False)
|
||||
|
||||
parser['common'] = argparse.ArgumentParser(add_help=False)
|
||||
parser['common'].add_argument(
|
||||
'-g', '--config-file',
|
||||
help=('Use specified custom configuration file.'),
|
||||
dest="config_file", required=False)
|
||||
|
||||
# Config
|
||||
parser['config_main'] = argparse.ArgumentParser(add_help=False)
|
||||
parser['config_main'].add_argument(
|
||||
'-4', '--force-ipv4',
|
||||
help=('Force to use IPv4 addresses only. No influence for custom'
|
||||
' remote commands.'),
|
||||
action='store_const', dest='force_ipv', const=4)
|
||||
parser['config_main'].add_argument(
|
||||
'-6', '--force-ipv6',
|
||||
help=('Force to use IPv6 addresses only. No influence for custom'
|
||||
' remote commands.'),
|
||||
action='store_const', dest='force_ipv', const=6)
|
||||
parser['config_main'].add_argument(
|
||||
'-C', '--cache-path-pattern',
|
||||
help=('Specify custom cache path pattern. If '
|
||||
'it is not set then default hostdir is used.'),
|
||||
dest='cache_path_pattern',
|
||||
default=None)
|
||||
parser['config_main'].add_argument(
|
||||
'-c', '--conf-dir',
|
||||
help=('Add configuration directory (can be repeated, '
|
||||
'last one wins).'), action='append')
|
||||
parser['config_main'].add_argument(
|
||||
'-i', '--initial-manifest',
|
||||
help='Path to a cdist manifest or \'-\' to read from stdin.',
|
||||
dest='manifest', required=False)
|
||||
parser['config_main'].add_argument(
|
||||
'-j', '--jobs', nargs='?',
|
||||
type=functools.partial(check_lower_bounded_int, lower_bound=1,
|
||||
name="positive int"),
|
||||
help=('Operate in parallel in specified maximum number of jobs. '
|
||||
'Global explorers, object prepare and object run are '
|
||||
'supported. Without argument CPU count is used by default. '),
|
||||
action='store', dest='jobs',
|
||||
const=multiprocessing.cpu_count())
|
||||
parser['config_main'].add_argument(
|
||||
'--log-server',
|
||||
action='store_true',
|
||||
help=('Start a log server for sub processes to use. '
|
||||
'This is mainly useful when running cdist nested '
|
||||
'from a code-local script. Log server is alwasy '
|
||||
'implicitly started for \'install\' command.'))
|
||||
parser['config_main'].add_argument(
|
||||
'-n', '--dry-run',
|
||||
help='Do not execute code.', action='store_true')
|
||||
parser['config_main'].add_argument(
|
||||
'-o', '--out-dir',
|
||||
help='Directory to save cdist output in.', dest="out_path")
|
||||
parser['config_main'].add_argument(
|
||||
'-P', '--timestamp',
|
||||
help=('Timestamp log messages with the current local date and time '
|
||||
'in the format: YYYYMMDDHHMMSS.us.'),
|
||||
action='store_true', dest='timestamp')
|
||||
parser['config_main'].add_argument(
|
||||
'-R', '--use-archiving', nargs='?',
|
||||
choices=('tar', 'tgz', 'tbz2', 'txz',),
|
||||
help=('Operate by using archiving with compression where '
|
||||
'appropriate. Supported values are: tar - tar archive, '
|
||||
'tgz - gzip tar archive (the default), '
|
||||
'tbz2 - bzip2 tar archive and txz - lzma tar archive. '
|
||||
'Currently in beta.'),
|
||||
action='store', dest='use_archiving',
|
||||
const='tgz')
|
||||
|
||||
# remote-copy and remote-exec defaults are environment variables
|
||||
# if set; if not then None - these will be futher handled after
|
||||
# parsing to determine implementation default
|
||||
parser['config_main'].add_argument(
|
||||
'-r', '--remote-out-dir',
|
||||
help='Directory to save cdist output in on the target host.',
|
||||
dest="remote_out_path")
|
||||
parser['config_main'].add_argument(
|
||||
'--remote-copy',
|
||||
help='Command to use for remote copy (should behave like scp).',
|
||||
action='store', dest='remote_copy',
|
||||
default=None)
|
||||
parser['config_main'].add_argument(
|
||||
'--remote-exec',
|
||||
help=('Command to use for remote execution '
|
||||
'(should behave like ssh).'),
|
||||
action='store', dest='remote_exec',
|
||||
default=None)
|
||||
parser['config_main'].add_argument(
|
||||
'-S', '--disable-saving-output-streams',
|
||||
help='Disable saving output streams.',
|
||||
action='store_false', dest='save_output_streams', default=True)
|
||||
|
||||
# Config
|
||||
parser['config_args'] = argparse.ArgumentParser(add_help=False)
|
||||
parser['config_args'].add_argument(
|
||||
'-A', '--all-tagged',
|
||||
help=('Use all hosts present in tags db. Currently in beta.'),
|
||||
action="store_true", dest="all_tagged_hosts", default=False)
|
||||
parser['config_args'].add_argument(
|
||||
'-a', '--all',
|
||||
help=('List hosts that have all specified tags, '
|
||||
'if -t/--tag is specified.'),
|
||||
action="store_true", dest="has_all_tags", default=False)
|
||||
parser['config_args'].add_argument(
|
||||
'-f', '--file',
|
||||
help=('Read specified file for a list of additional hosts to '
|
||||
'operate on or if \'-\' is given, read stdin (one host per '
|
||||
'line).'),
|
||||
dest='hostfile', required=False)
|
||||
parser['config_args'].add_argument(
|
||||
'-p', '--parallel', nargs='?', metavar='HOST_MAX',
|
||||
type=functools.partial(check_lower_bounded_int, lower_bound=1,
|
||||
name="positive int"),
|
||||
help=('Operate on multiple hosts in parallel for specified maximum '
|
||||
'hosts at a time. Without argument CPU count is used by '
|
||||
'default.'),
|
||||
action='store', dest='parallel',
|
||||
const=multiprocessing.cpu_count())
|
||||
parser['config_args'].add_argument(
|
||||
'-s', '--sequential',
|
||||
help='Operate on multiple hosts sequentially (default).',
|
||||
action='store_const', dest='parallel', const=0)
|
||||
parser['config_args'].add_argument(
|
||||
'-t', '--tag',
|
||||
help=('Host is specified by tag, not hostname/address; '
|
||||
'list all hosts that contain any of specified tags. '
|
||||
'Currently in beta.'),
|
||||
dest='tag', required=False, action="store_true", default=False)
|
||||
parser['config_args'].add_argument(
|
||||
'host', nargs='*', help='Host(s) to operate on.')
|
||||
parser['config'] = parser['sub'].add_parser(
|
||||
'config', parents=[parser['loglevel'], parser['beta'],
|
||||
parser['colored_output'],
|
||||
parser['common'],
|
||||
parser['config_main'],
|
||||
parser['inventory_common'],
|
||||
parser['config_args']])
|
||||
parser['config'].set_defaults(func=cdist.config.Config.commandline)
|
||||
|
||||
# Install
|
||||
parser['install'] = parser['sub'].add_parser('install', add_help=False,
|
||||
parents=[parser['config']])
|
||||
parser['install'].set_defaults(func=cdist.install.Install.commandline)
|
||||
|
||||
# Inventory
|
||||
parser['inventory'] = parser['sub'].add_parser('inventory')
|
||||
parser['invsub'] = parser['inventory'].add_subparsers(
|
||||
title="Inventory commands", dest="subcommand")
|
||||
|
||||
parser['add-host'] = parser['invsub'].add_parser(
|
||||
'add-host', parents=[parser['loglevel'], parser['beta'],
|
||||
parser['colored_output'],
|
||||
parser['common'],
|
||||
parser['inventory_common']])
|
||||
parser['add-host'].add_argument(
|
||||
'host', nargs='*', help='Host(s) to add.')
|
||||
parser['add-host'].add_argument(
|
||||
'-f', '--file',
|
||||
help=('Read additional hosts to add from specified file '
|
||||
'or from stdin if \'-\' (each host on separate line). '),
|
||||
dest='hostfile', required=False)
|
||||
|
||||
parser['add-tag'] = parser['invsub'].add_parser(
|
||||
'add-tag', parents=[parser['loglevel'], parser['beta'],
|
||||
parser['colored_output'],
|
||||
parser['common'],
|
||||
parser['inventory_common']])
|
||||
parser['add-tag'].add_argument(
|
||||
'host', nargs='*',
|
||||
help='List of host(s) for which tags are added.')
|
||||
parser['add-tag'].add_argument(
|
||||
'-f', '--file',
|
||||
help=('Read additional hosts to add tags from specified file '
|
||||
'or from stdin if \'-\' (each host on separate line). '),
|
||||
dest='hostfile', required=False)
|
||||
parser['add-tag'].add_argument(
|
||||
'-T', '--tag-file',
|
||||
help=('Read additional tags to add from specified file '
|
||||
'or from stdin if \'-\' (each tag on separate line). '),
|
||||
dest='tagfile', required=False)
|
||||
parser['add-tag'].add_argument(
|
||||
'-t', '--taglist',
|
||||
help=("Tag list to be added for specified host(s), comma separated"
|
||||
" values."),
|
||||
dest="taglist", required=False)
|
||||
|
||||
parser['del-host'] = parser['invsub'].add_parser(
|
||||
'del-host', parents=[parser['loglevel'], parser['beta'],
|
||||
parser['colored_output'],
|
||||
parser['common'],
|
||||
parser['inventory_common']])
|
||||
parser['del-host'].add_argument(
|
||||
'host', nargs='*', help='Host(s) to delete.')
|
||||
parser['del-host'].add_argument(
|
||||
'-a', '--all', help=('Delete all hosts.'),
|
||||
dest='all', required=False, action="store_true", default=False)
|
||||
parser['del-host'].add_argument(
|
||||
'-f', '--file',
|
||||
help=('Read additional hosts to delete from specified file '
|
||||
'or from stdin if \'-\' (each host on separate line). '),
|
||||
dest='hostfile', required=False)
|
||||
|
||||
parser['del-tag'] = parser['invsub'].add_parser(
|
||||
'del-tag', parents=[parser['loglevel'], parser['beta'],
|
||||
parser['colored_output'],
|
||||
parser['common'],
|
||||
parser['inventory_common']])
|
||||
parser['del-tag'].add_argument(
|
||||
'host', nargs='*',
|
||||
help='List of host(s) for which tags are deleted.')
|
||||
parser['del-tag'].add_argument(
|
||||
'-a', '--all',
|
||||
help=('Delete all tags for specified host(s).'),
|
||||
dest='all', required=False, action="store_true", default=False)
|
||||
parser['del-tag'].add_argument(
|
||||
'-f', '--file',
|
||||
help=('Read additional hosts to delete tags for from specified '
|
||||
'file or from stdin if \'-\' (each host on separate '
|
||||
'line). '),
|
||||
dest='hostfile', required=False)
|
||||
parser['del-tag'].add_argument(
|
||||
'-T', '--tag-file',
|
||||
help=('Read additional tags from specified file '
|
||||
'or from stdin if \'-\' (each tag on separate line). '),
|
||||
dest='tagfile', required=False)
|
||||
parser['del-tag'].add_argument(
|
||||
'-t', '--taglist',
|
||||
help=("Tag list to be deleted for specified host(s), "
|
||||
"comma separated values."),
|
||||
dest="taglist", required=False)
|
||||
|
||||
parser['list'] = parser['invsub'].add_parser(
|
||||
'list', parents=[parser['loglevel'], parser['beta'],
|
||||
parser['colored_output'],
|
||||
parser['common'],
|
||||
parser['inventory_common']])
|
||||
parser['list'].add_argument(
|
||||
'host', nargs='*', help='Host(s) to list.')
|
||||
parser['list'].add_argument(
|
||||
'-a', '--all',
|
||||
help=('List hosts that have all specified tags, '
|
||||
'if -t/--tag is specified.'),
|
||||
action="store_true", dest="has_all_tags", default=False)
|
||||
parser['list'].add_argument(
|
||||
'-f', '--file',
|
||||
help=('Read additional hosts to list from specified file '
|
||||
'or from stdin if \'-\' (each host on separate line). '
|
||||
'If no host or host file is specified then, by default, '
|
||||
'list all.'), dest='hostfile', required=False)
|
||||
parser['list'].add_argument(
|
||||
'-H', '--host-only', help=('Suppress tags listing.'),
|
||||
action="store_true", dest="list_only_host", default=False)
|
||||
parser['list'].add_argument(
|
||||
'-t', '--tag',
|
||||
help=('Host is specified by tag, not hostname/address; '
|
||||
'list all hosts that contain any of specified tags.'),
|
||||
action="store_true", default=False)
|
||||
|
||||
parser['inventory'].set_defaults(
|
||||
func=cdist.inventory.Inventory.commandline)
|
||||
|
||||
# PreOS
|
||||
parser['preos'] = parser['sub'].add_parser('preos', add_help=False)
|
||||
|
||||
# Shell
|
||||
parser['shell'] = parser['sub'].add_parser(
|
||||
'shell', parents=[parser['loglevel'], parser['colored_output']])
|
||||
parser['shell'].add_argument(
|
||||
'-s', '--shell',
|
||||
help=('Select shell to use, defaults to current shell. Used shell'
|
||||
' should be POSIX compatible shell.'))
|
||||
parser['shell'].set_defaults(func=cdist.shell.Shell.commandline)
|
||||
|
||||
# Info
|
||||
parser['info'] = parser['sub'].add_parser('info')
|
||||
parser['info'].add_argument(
|
||||
'-a', '--all', help='Display all info. This is the default.',
|
||||
action='store_true', default=False)
|
||||
parser['info'].add_argument(
|
||||
'-c', '--conf-dir',
|
||||
help='Add configuration directory (can be repeated).',
|
||||
action='append')
|
||||
parser['info'].add_argument(
|
||||
'-e', '--global-explorers',
|
||||
help='Display info for global explorers.', action='store_true',
|
||||
default=False)
|
||||
parser['info'].add_argument(
|
||||
'-F', '--fixed-string',
|
||||
help='Interpret pattern as a fixed string.', action='store_true',
|
||||
default=False)
|
||||
parser['info'].add_argument(
|
||||
'-f', '--full', help='Display full details.',
|
||||
action='store_true', default=False)
|
||||
parser['info'].add_argument(
|
||||
'-g', '--config-file',
|
||||
help='Use specified custom configuration file.',
|
||||
dest="config_file", required=False)
|
||||
parser['info'].add_argument(
|
||||
'-t', '--types', help='Display info for types.',
|
||||
action='store_true', default=False)
|
||||
parser['info'].add_argument(
|
||||
'pattern', nargs='?', help='Glob pattern.')
|
||||
parser['info'].set_defaults(func=cdist.info.Info.commandline)
|
||||
|
||||
# Scan = config + further
|
||||
parser['scan'] = parser['sub'].add_parser('scan', add_help=False,
|
||||
parents=[parser['config']])
|
||||
|
||||
parser['scan'] = parser['sub'].add_parser(
|
||||
'scan', parents=[parser['loglevel'],
|
||||
parser['beta'],
|
||||
parser['colored_output'],
|
||||
parser['common'],
|
||||
parser['config_main']])
|
||||
|
||||
parser['scan'].add_argument(
|
||||
'-m', '--mode', help='Which modes should run',
|
||||
action='append', default=[],
|
||||
choices=['scan', 'trigger', 'config'])
|
||||
parser['scan'].add_argument(
|
||||
'--list',
|
||||
action='store_true',
|
||||
help='List the known hosts and exit')
|
||||
parser['scan'].add_argument(
|
||||
'--config',
|
||||
action='store_true',
|
||||
help='Try to configure detected hosts')
|
||||
parser['scan'].add_argument(
|
||||
'-I', '--interface',
|
||||
action='append', default=[], required=True,
|
||||
help='On which interfaces to scan/trigger')
|
||||
parser['scan'].add_argument(
|
||||
'--name-mapper',
|
||||
action='store', default=None,
|
||||
help='Map addresses to names, required for config mode')
|
||||
parser['scan'].add_argument(
|
||||
'-d', '--config-delay',
|
||||
action='store', default=3600, type=int,
|
||||
help='How long (seconds) to wait before reconfiguring after last try')
|
||||
parser['scan'].add_argument(
|
||||
'-t', '--trigger-delay',
|
||||
action='store', default=5, type=int,
|
||||
help='How long (seconds) to wait between ICMPv6 echo requests')
|
||||
parser['scan'].set_defaults(func=cdist.scan.commandline.commandline)
|
||||
|
||||
for p in parser:
|
||||
parser[p].epilog = EPILOG
|
||||
|
||||
return parser
|
||||
|
||||
|
||||
def handle_loglevel(args):
|
||||
if hasattr(args, 'quiet') and args.quiet:
|
||||
args.verbose = _verbosity_level_off
|
||||
|
||||
logging.getLogger().setLevel(_verbosity_level[args.verbose])
|
||||
|
||||
|
||||
def handle_log_colors(args):
|
||||
if cdist.configuration.ColoredOutputOption.translate(args.colored_output):
|
||||
cdist.log.CdistFormatter.USE_COLORS = True
|
||||
|
||||
|
||||
def parse_and_configure(argv, singleton=True):
|
||||
parser = get_parsers()
|
||||
parser_args = parser['main'].parse_args(argv)
|
||||
try:
|
||||
cfg = cdist.configuration.Configuration(parser_args,
|
||||
singleton=singleton)
|
||||
args = cfg.get_args()
|
||||
except ValueError as e:
|
||||
raise cdist.Error(str(e))
|
||||
# Loglevels are handled globally in here
|
||||
handle_loglevel(args)
|
||||
handle_log_colors(args)
|
||||
|
||||
log = logging.getLogger("cdist")
|
||||
|
||||
log.verbose("version %s", cdist.VERSION)
|
||||
log.trace('command line args: %s', cfg.command_line_args)
|
||||
log.trace('configuration: %s', cfg.get_config())
|
||||
log.trace('configured args: %s', args)
|
||||
|
||||
check_beta(vars(args))
|
||||
|
||||
return parser, cfg
|
||||
71
cdist/autil.py
Normal file
71
cdist/autil.py
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# 2017 Darko Poljak (darko.poljak at gmail.com)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
import cdist
|
||||
import tarfile
|
||||
import os
|
||||
import glob
|
||||
import tempfile
|
||||
|
||||
|
||||
_ARCHIVING_MODES = {
|
||||
'tar': '',
|
||||
'tgz': 'gz',
|
||||
'tbz2': 'bz2',
|
||||
'txz': 'xz',
|
||||
}
|
||||
|
||||
|
||||
_UNARCHIVE_OPT = {
|
||||
'tar': None,
|
||||
'tgz': '-z',
|
||||
'tbz2': '-j',
|
||||
'txz': '-J',
|
||||
}
|
||||
|
||||
|
||||
# Archiving will be enabled if directory contains more than FILES_LIMIT files.
|
||||
FILES_LIMIT = 1
|
||||
|
||||
|
||||
def get_extract_option(mode):
|
||||
return _UNARCHIVE_OPT[mode]
|
||||
|
||||
|
||||
def tar(source, mode="tgz"):
|
||||
if mode not in _ARCHIVING_MODES:
|
||||
raise cdist.Error("Unsupported archiving mode {}.".format(mode))
|
||||
|
||||
files = glob.glob1(source, '*')
|
||||
fcnt = len(files)
|
||||
if fcnt <= FILES_LIMIT:
|
||||
return None, fcnt
|
||||
|
||||
tarmode = 'w:{}'.format(_ARCHIVING_MODES[mode])
|
||||
_, tarpath = tempfile.mkstemp(suffix='.' + mode)
|
||||
with tarfile.open(tarpath, tarmode, dereference=True) as tar:
|
||||
if os.path.isdir(source):
|
||||
for f in files:
|
||||
tar.add(os.path.join(source, f), arcname=f)
|
||||
else:
|
||||
tar.add(source)
|
||||
return tarpath, fcnt
|
||||
30
cdist/banner.py
Normal file
30
cdist/banner.py
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# 2011-2012 Nico Schottelius (nico-cdist at schottelius.org)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
import logging
|
||||
import cdist
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def banner(args):
|
||||
"""Guess what :-)"""
|
||||
print(cdist.BANNER)
|
||||
1
cdist/conf/.gitignore
vendored
Normal file
1
cdist/conf/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
cache
|
||||
7
cdist/conf/README
Normal file
7
cdist/conf/README
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
This is a sample configuration that can be used as an example
|
||||
for /etc/cdist.
|
||||
|
||||
For instance:
|
||||
|
||||
[root@kr etc]# ln -s ~nico/p/cdist/conf/ /etc/cdist
|
||||
|
||||
49
cdist/conf/explorer/cpu_cores
Executable file
49
cdist/conf/explorer/cpu_cores
Executable file
|
|
@ -0,0 +1,49 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2014 Daniel Heule (hda at sfs.biz)
|
||||
# 2014 Thomas Oettli (otho at sfs.biz)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
# FIXME: other system types (not linux ...)
|
||||
|
||||
os=$("$__explorer/os")
|
||||
case "$os" in
|
||||
"macosx")
|
||||
sysctl -n hw.physicalcpu
|
||||
;;
|
||||
|
||||
"openbsd")
|
||||
sysctl -n hw.ncpuonline
|
||||
;;
|
||||
|
||||
"freebsd"|"netbsd")
|
||||
PATH=$(getconf PATH)
|
||||
sysctl -n hw.ncpu
|
||||
;;
|
||||
|
||||
*)
|
||||
if [ -r /proc/cpuinfo ]; then
|
||||
cores="$(grep "core id" /proc/cpuinfo | sort | uniq | wc -l)"
|
||||
if [ "${cores}" -eq 0 ]; then
|
||||
cores="1"
|
||||
fi
|
||||
echo "$cores"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
40
cdist/conf/explorer/cpu_sockets
Executable file
40
cdist/conf/explorer/cpu_sockets
Executable file
|
|
@ -0,0 +1,40 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2014 Daniel Heule (hda at sfs.biz)
|
||||
# 2014 Thomas Oettli (otho at sfs.biz)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
# FIXME: other system types (not linux ...)
|
||||
|
||||
os=$("$__explorer/os")
|
||||
case "$os" in
|
||||
"macosx")
|
||||
system_profiler SPHardwareDataType | grep "Number of Processors" | awk -F': ' '{print $2}'
|
||||
;;
|
||||
|
||||
*)
|
||||
if [ -r /proc/cpuinfo ]; then
|
||||
sockets="$(grep "physical id" /proc/cpuinfo | sort -u | wc -l)"
|
||||
if [ "${sockets}" -eq 0 ]; then
|
||||
sockets="$(grep -c "processor" /proc/cpuinfo)"
|
||||
fi
|
||||
echo "${sockets}"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
66
cdist/conf/explorer/disks
Executable file
66
cdist/conf/explorer/disks
Executable file
|
|
@ -0,0 +1,66 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# based on previous work by other people, modified by:
|
||||
# 2020 Dennis Camera <dennis.camera at ssrq-sds-fds.ch>
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Finds disks of the system (excl. ram disks, floppy, cdrom)
|
||||
|
||||
uname_s="$(uname -s)"
|
||||
|
||||
case $uname_s in
|
||||
FreeBSD)
|
||||
sysctl -n kern.disks
|
||||
;;
|
||||
OpenBSD)
|
||||
sysctl -n hw.disknames | grep -Eo '[lsw]d[0-9]+'
|
||||
;;
|
||||
NetBSD)
|
||||
PATH=$(getconf PATH)
|
||||
sysctl -n hw.disknames | awk -v RS=' ' '/^[lsw]d[0-9]+/'
|
||||
;;
|
||||
Linux)
|
||||
# list of major device numbers toexclude:
|
||||
# ram disks, floppies, cdroms
|
||||
# https://www.kernel.org/doc/Documentation/admin-guide/devices.txt
|
||||
ign_majors='1 2 11'
|
||||
|
||||
if command -v lsblk >/dev/null 2>&1
|
||||
then
|
||||
lsblk -e "$(echo "$ign_majors" | tr ' ' ',')" -dno name
|
||||
elif test -d /sys/block/
|
||||
then
|
||||
# shellcheck disable=SC2012
|
||||
ls -1 /sys/block/ \
|
||||
| awk -v ign_majors="$(echo "$ign_majors" | tr ' ' '|')" '
|
||||
{
|
||||
devfile = "/sys/block/" $0 "/dev"
|
||||
getline devno < devfile
|
||||
close(devfile)
|
||||
if (devno !~ "^(" ign_majors "):") print
|
||||
}'
|
||||
else
|
||||
echo "Don't know how to list disks on Linux without lsblk and sysfs." >&2
|
||||
echo 'If you can, please submit a patch.'>&2
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
printf "Don't know how to list disks for %s operating system.\n" "${uname_s}" >&2
|
||||
printf 'If you can please submit a patch\n' >&2
|
||||
;;
|
||||
esac \
|
||||
| xargs
|
||||
16
conf/lib/cdist_explore_pkg_system → cdist/conf/explorer/hostname
Normal file → Executable file
16
conf/lib/cdist_explore_pkg_system → cdist/conf/explorer/hostname
Normal file → Executable file
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2010 Nico Schottelius (nico-cdist at schottelius.org)
|
||||
# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
|
|
@ -18,10 +18,12 @@
|
|||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# Retrieve the running hostname
|
||||
#
|
||||
|
||||
cdist_explore_pkg_system()
|
||||
{
|
||||
case "$(cdist_explore_os)" in
|
||||
archlinux) echo pacman ;;
|
||||
esac
|
||||
}
|
||||
if command -v hostname >/dev/null
|
||||
then
|
||||
hostname
|
||||
else
|
||||
uname -n
|
||||
fi
|
||||
442
cdist/conf/explorer/init
Executable file
442
cdist/conf/explorer/init
Executable file
|
|
@ -0,0 +1,442 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2016 Daniel Heule (hda at sfs.biz)
|
||||
# Copyright 2017, Philippe Gregoire <pg@pgregoire.xyz>
|
||||
# 2020 Dennis Camera (dennis.camera at ssrq-sds-fds.ch)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# Returns the name of the init system (PID 1)
|
||||
|
||||
# Expected values:
|
||||
# Linux:
|
||||
# Adélie Linux:
|
||||
# sysvinit+openrc
|
||||
# Alpine Linux:
|
||||
# busybox-init+openrc
|
||||
# ArchLinux:
|
||||
# systemd, sysvinit
|
||||
# CRUX:
|
||||
# sysvinit
|
||||
# Debian:
|
||||
# systemd, upstart, sysvinit, openrc, ???
|
||||
# Devuan:
|
||||
# sysvinit, sysvinit+openrc
|
||||
# Gentoo:
|
||||
# sysvinit+openrc, openrc-init, systemd
|
||||
# OpenBMC:
|
||||
# systemd
|
||||
# OpenWrt:
|
||||
# procd, init???
|
||||
# RedHat (RHEL, CentOS, Fedora, RedHat Linux, ...):
|
||||
# systemd, upstart, upstart-legacy, sysvinit
|
||||
# Slackware:
|
||||
# sysvinit
|
||||
# SuSE:
|
||||
# systemd, sysvinit
|
||||
# Ubuntu:
|
||||
# systemd, upstart, upstart-legacy, sysvinit
|
||||
# VoidLinux:
|
||||
# runit
|
||||
#
|
||||
# GNU:
|
||||
# Debian:
|
||||
# sysvinit, hurd-init
|
||||
#
|
||||
# BSD:
|
||||
# {Free,Open,Net}BSD:
|
||||
# init
|
||||
#
|
||||
# Mac OS X:
|
||||
# launchd, init+SystemStarter
|
||||
#
|
||||
# Solaris/Illumos:
|
||||
# smf, init???
|
||||
|
||||
# NOTE: init systems can be stacked. This is popular to run OpenRC on top of
|
||||
# sysvinit (Gentoo) or busybox-init (Alpine), but can also be used to run runit
|
||||
# as a systemd service. This makes init system detection very complicated
|
||||
# (which result is expected?) This script tries to untangle some combinations,
|
||||
# OpenRC on top of sysv or busybox (X+openrc), but will ignore others (runit as
|
||||
# a systemd service)
|
||||
|
||||
# NOTE: When we have no idea, nothing will be printed!
|
||||
|
||||
# NOTE:
|
||||
# When trying to gather information about the init system make sure to do so
|
||||
# without calling the binary! On some systems this triggers a reinitialisation
|
||||
# of the system which we don't want (e.g. embedded systems).
|
||||
|
||||
|
||||
set -e
|
||||
|
||||
KERNEL_NAME=$(uname -s)
|
||||
|
||||
KNOWN_INIT_SYSTEMS=$(cat <<EOF
|
||||
systemd
|
||||
sysvinit
|
||||
upstart
|
||||
runit
|
||||
procd
|
||||
smf
|
||||
launchd
|
||||
init
|
||||
hurd_init
|
||||
systemstarter
|
||||
EOF
|
||||
)
|
||||
|
||||
|
||||
common_candidates_by_kernel() {
|
||||
case $KERNEL_NAME
|
||||
in
|
||||
FreeBSD|NetBSD|OpenBSD)
|
||||
echo init
|
||||
;;
|
||||
Linux)
|
||||
echo systemd
|
||||
echo sysvinit
|
||||
echo upstart
|
||||
;;
|
||||
GNU)
|
||||
echo sysvinit
|
||||
echo hurd-init
|
||||
;;
|
||||
Darwin)
|
||||
echo launchd
|
||||
echo systemstarter
|
||||
;;
|
||||
SunOS)
|
||||
echo smf
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
## Helpers
|
||||
|
||||
trim() {
|
||||
sed -e 's/^[[:blank:]]*//' -e 's/[[:blank:]]*$//' -e '/^[[:blank:]]*$/d'
|
||||
}
|
||||
|
||||
unique() {
|
||||
# Delete duplicate lines (keeping input order)
|
||||
# NOTE: Solaris AWK breaks without if/print construct.
|
||||
awk '{ if (!x[$0]++) print }'
|
||||
}
|
||||
|
||||
|
||||
## Check functions
|
||||
# These functions are used to verify if a guess is correct by checking some
|
||||
# common property of a running system (presence of a directory in /run etc.)
|
||||
|
||||
check_busybox_init() (
|
||||
busybox_path=${1:-/bin/busybox}
|
||||
test -x "${busybox_path}" || return 1
|
||||
grep -q 'BusyBox v[0-9]' "${busybox_path}" || return 1
|
||||
|
||||
# It is quite common to use Busybox init to stack other init systemd
|
||||
# (like OpenRC) on top of it. So we check for that, too.
|
||||
if stacked=$(check_openrc)
|
||||
then
|
||||
echo "busybox-init+${stacked}"
|
||||
else
|
||||
echo busybox-init
|
||||
fi
|
||||
)
|
||||
|
||||
check_hurd_init() (
|
||||
init_exe=${1:-/hurd/init}
|
||||
test -x "${init_exe}" || return 1
|
||||
grep -q 'GNU Hurd' "${init_exe}" || return 1
|
||||
echo hurd-init
|
||||
)
|
||||
|
||||
check_init() {
|
||||
# Checks for various BSD inits...
|
||||
test -x /sbin/init || return 1
|
||||
|
||||
if grep -q -E '(Free|Net|Open)BSD' /sbin/init
|
||||
then
|
||||
echo init
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
check_launchd() {
|
||||
command -v launchctl >/dev/null 2>&1 || return 1
|
||||
launchctl getenv PATH >/dev/null || return 1
|
||||
echo launchd
|
||||
}
|
||||
|
||||
check_openrc() {
|
||||
test -f /run/openrc/softlevel || return 1
|
||||
echo openrc
|
||||
}
|
||||
|
||||
check_procd() (
|
||||
procd_path=${1:-/sbin/procd}
|
||||
test -x "${procd_path}" || return 1
|
||||
grep -q 'procd' "${procd_path}" || return 1
|
||||
echo procd
|
||||
)
|
||||
|
||||
check_runit() {
|
||||
test -d /run/runit || return 1
|
||||
echo runit
|
||||
}
|
||||
|
||||
check_smf() {
|
||||
# XXX: Is this the correct way??
|
||||
test -f /etc/svc/volatile/svc_nonpersist.db || return 1
|
||||
echo smf
|
||||
}
|
||||
|
||||
check_systemd() {
|
||||
# NOTE: sd_booted(3)
|
||||
test -d /run/systemd/system/ || return 1
|
||||
# systemctl --version | sed -e '/^systemd/!d;s/^systemd //'
|
||||
echo systemd
|
||||
}
|
||||
|
||||
check_systemstarter() {
|
||||
test -d /System/Library/StartupItems/ || return 1
|
||||
test -f /System/Library/StartupItems/LoginWindow/StartupParameters.plist || return 1
|
||||
echo init+SystemStarter
|
||||
}
|
||||
|
||||
check_sysvinit() (
|
||||
init_path=${1:-/sbin/init}
|
||||
test -x "${init_path}" || return 1
|
||||
grep -q 'INIT_VERSION=sysvinit-[0-9.]*' "${init_path}" || return 1
|
||||
|
||||
# It is quite common to use SysVinit to stack other init systemd
|
||||
# (like OpenRC) on top of it. So we check for that, too.
|
||||
if stacked=$(check_openrc)
|
||||
then
|
||||
echo "sysvinit+${stacked}"
|
||||
else
|
||||
echo sysvinit
|
||||
fi
|
||||
unset stacked
|
||||
)
|
||||
|
||||
check_upstart() {
|
||||
test -x "$(command -v initctl)" || return 1
|
||||
case $(initctl version)
|
||||
in
|
||||
*'(upstart '*')')
|
||||
if test -d /etc/init
|
||||
then
|
||||
# modern (DBus-based?) upstart >= 0.5
|
||||
echo upstart
|
||||
elif test -d /etc/event.d
|
||||
then
|
||||
# ancient upstart
|
||||
echo upstart-legacy
|
||||
else
|
||||
# whatever...
|
||||
echo upstart
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
find_init_procfs() (
|
||||
# First, check if the required file in procfs exists...
|
||||
test -h /proc/1/exe || return 1
|
||||
|
||||
# Find init executable
|
||||
init_exe=$(ls -l /proc/1/exe 2>/dev/null) || return 1
|
||||
init_exe=${init_exe#* -> }
|
||||
|
||||
if ! test -x "$init_exe"
|
||||
then
|
||||
# On some rare occasions it can happen that the
|
||||
# running init's binary has been replaced. In this
|
||||
# case Linux adjusts the symlink to "X (deleted)"
|
||||
|
||||
# [root@fedora-12 ~]# readlink /proc/1/exe
|
||||
# /sbin/init (deleted)
|
||||
# [root@fedora-12 ~]# ls -l /proc/1/exe
|
||||
# lrwxrwxrwx. 1 root root 0 2020-01-30 23:00 /proc/1/exe -> /sbin/init (deleted)
|
||||
|
||||
init_exe=${init_exe% (deleted)}
|
||||
test -x "$init_exe" || return 1
|
||||
fi
|
||||
|
||||
echo "${init_exe}"
|
||||
)
|
||||
|
||||
guess_by_path() {
|
||||
case $1
|
||||
in
|
||||
/bin/busybox)
|
||||
check_busybox_init "$1" && return
|
||||
;;
|
||||
/lib/systemd/systemd)
|
||||
check_systemd "$1" && return
|
||||
;;
|
||||
/hurd/init)
|
||||
check_hurd_init "$1" && return
|
||||
;;
|
||||
/sbin/launchd)
|
||||
check_launchd "$1" && return
|
||||
;;
|
||||
/usr/bin/runit|/sbin/runit)
|
||||
check_runit "$1" && return
|
||||
;;
|
||||
/sbin/openrc-init)
|
||||
if check_openrc "$1" >/dev/null
|
||||
then
|
||||
echo openrc-init
|
||||
return
|
||||
fi
|
||||
;;
|
||||
/sbin/procd)
|
||||
check_procd "$1" && return
|
||||
;;
|
||||
/sbin/init|*/init)
|
||||
# init: it could be anything -> (explicit) no match
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# No match
|
||||
return 1
|
||||
}
|
||||
|
||||
guess_by_comm_name() {
|
||||
case $1
|
||||
in
|
||||
busybox)
|
||||
check_busybox_init && return
|
||||
;;
|
||||
openrc-init)
|
||||
if check_openrc >/dev/null
|
||||
then
|
||||
echo openrc-init
|
||||
return 0
|
||||
fi
|
||||
;;
|
||||
init)
|
||||
# init could be anything -> no match
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
# Run check function by comm name if available.
|
||||
# Fall back to comm name if either it does not exist or
|
||||
# returns non-zero.
|
||||
if type "check_$1" >/dev/null
|
||||
then
|
||||
"check_$1" && return
|
||||
else
|
||||
echo "$1" ; return 0
|
||||
fi
|
||||
esac
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
check_list() (
|
||||
# List must be a multi-line input on stdin (one name per line)
|
||||
while read -r init
|
||||
do
|
||||
"check_${init}" || continue
|
||||
return 0
|
||||
done
|
||||
return 1
|
||||
)
|
||||
|
||||
|
||||
# BusyBox's versions of ps and pgrep do not support some options
|
||||
# depending on which compile-time options have been used.
|
||||
|
||||
find_init_pgrep() {
|
||||
pgrep -P0 -fl 2>/dev/null | awk -F '[[:blank:]]' '$1 == 1 { print $2 }'
|
||||
}
|
||||
|
||||
find_init_ps() {
|
||||
case $KERNEL_NAME
|
||||
in
|
||||
Darwin)
|
||||
ps -o command -p 1 2>/dev/null | tail -n +2
|
||||
;;
|
||||
FreeBSD)
|
||||
ps -o args= -p 1 2>/dev/null | cut -d ' ' -f 1
|
||||
;;
|
||||
Linux)
|
||||
ps -o comm= -p 1 2>/dev/null
|
||||
;;
|
||||
NetBSD)
|
||||
ps -o comm= -p 1 2>/dev/null
|
||||
;;
|
||||
OpenBSD)
|
||||
ps -o args -p 1 2>/dev/null | tail -n +2 | cut -d ' ' -f 1
|
||||
;;
|
||||
*)
|
||||
ps -o args= -p 1 2>/dev/null
|
||||
;;
|
||||
esac | trim # trim trailing whitespace (some ps like Darwin add it)
|
||||
}
|
||||
|
||||
find_init() {
|
||||
case $KERNEL_NAME
|
||||
in
|
||||
Linux|GNU|NetBSD)
|
||||
find_init_procfs || find_init_pgrep || find_init_ps
|
||||
;;
|
||||
FreeBSD)
|
||||
find_init_procfs || find_init_ps
|
||||
;;
|
||||
OpenBSD)
|
||||
find_init_pgrep || find_init_ps
|
||||
;;
|
||||
Darwin|SunOS)
|
||||
find_init_ps
|
||||
;;
|
||||
*)
|
||||
echo "Don't know how to determine init." >&2
|
||||
echo 'Please send a patch.' >&2
|
||||
exit 1
|
||||
esac
|
||||
}
|
||||
|
||||
# -----
|
||||
|
||||
init=$(find_init)
|
||||
|
||||
# If we got a path, guess by the path first (fall back to file name if no match)
|
||||
# else guess by file name directly.
|
||||
# shellcheck disable=SC2015
|
||||
{
|
||||
test -x "${init}" \
|
||||
&& guess_by_path "${init}" \
|
||||
|| guess_by_comm_name "$(basename "${init}")"
|
||||
} && exit 0 || true
|
||||
|
||||
|
||||
# Guessing based on the file path and name didn’t lead to a definitive result.
|
||||
#
|
||||
# We go through all of the checks until we find a match. To speed up the
|
||||
# process, common cases will be checked first based on the underlying kernel.
|
||||
|
||||
{ common_candidates_by_kernel; echo "${KNOWN_INIT_SYSTEMS}"; } \
|
||||
| unique | check_list
|
||||
28
cdist/conf/explorer/interfaces
Executable file
28
cdist/conf/explorer/interfaces
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2019 Ander Punnar (ander-at-kvlt-dot-ee)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
if command -v ip >/dev/null
|
||||
then
|
||||
ip -o link show | sed -n 's/^[0-9]\+: \(.\+\): <.*/\1/p'
|
||||
elif command -v ifconfig >/dev/null
|
||||
then
|
||||
ifconfig -a | sed -n -E 's/^(.*)(:[[:space:]]*flags=|Link encap).*/\1/p'
|
||||
fi \
|
||||
| sort -u
|
||||
2
cdist/conf/explorer/is-freebsd-jail
Executable file
2
cdist/conf/explorer/is-freebsd-jail
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
sysctl -n security.jail.jailed 2>/dev/null | grep "1" || true
|
||||
2
cdist/conf/explorer/kernel_name
Executable file
2
cdist/conf/explorer/kernel_name
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
uname -s
|
||||
37
cdist/conf/explorer/lsb_codename
Executable file
37
cdist/conf/explorer/lsb_codename
Executable file
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
set +e
|
||||
case "$("$__explorer/os")" in
|
||||
checkpoint)
|
||||
awk '{printf("%s\n", $(NF-1))}' /etc/cp-release
|
||||
;;
|
||||
openwrt)
|
||||
# shellcheck disable=SC1091
|
||||
(. /etc/openwrt_release && echo "$DISTRIB_CODENAME")
|
||||
;;
|
||||
*)
|
||||
lsb_release=$(command -v lsb_release)
|
||||
if [ -x "$lsb_release" ]; then
|
||||
$lsb_release --short --codename
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
37
cdist/conf/explorer/lsb_description
Executable file
37
cdist/conf/explorer/lsb_description
Executable file
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
set +e
|
||||
case "$("$__explorer/os")" in
|
||||
checkpoint)
|
||||
cat /etc/cp-release
|
||||
;;
|
||||
openwrt)
|
||||
# shellcheck disable=SC1091
|
||||
(. /etc/openwrt_release && echo "$DISTRIB_DESCRIPTION")
|
||||
;;
|
||||
*)
|
||||
lsb_release=$(command -v lsb_release)
|
||||
if [ -x "$lsb_release" ]; then
|
||||
$lsb_release --short --description
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
37
cdist/conf/explorer/lsb_id
Executable file
37
cdist/conf/explorer/lsb_id
Executable file
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
set +e
|
||||
case "$("$__explorer/os")" in
|
||||
checkpoint)
|
||||
echo "CheckPoint"
|
||||
;;
|
||||
openwrt)
|
||||
# shellcheck disable=SC1091
|
||||
(. /etc/openwrt_release && echo "$DISTRIB_ID")
|
||||
;;
|
||||
*)
|
||||
lsb_release=$(command -v lsb_release)
|
||||
if [ -x "$lsb_release" ]; then
|
||||
$lsb_release --short --id
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
37
cdist/conf/explorer/lsb_release
Executable file
37
cdist/conf/explorer/lsb_release
Executable file
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
set +e
|
||||
case "$("$__explorer/os")" in
|
||||
checkpoint)
|
||||
sed /etc/cp-release -e 's/.* R\([1-9][0-9]*\)\.[0-9]*$/\1/'
|
||||
;;
|
||||
openwrt)
|
||||
# shellcheck disable=SC1091
|
||||
(. /etc/openwrt_release && echo "$DISTRIB_RELEASE")
|
||||
;;
|
||||
*)
|
||||
lsb_release=$(command -v lsb_release)
|
||||
if [ -x "$lsb_release" ]; then
|
||||
$lsb_release --short --release
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
27
cdist/conf/explorer/machine
Executable file
27
cdist/conf/explorer/machine
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2010-2011 Andi Brönnimann (andi-cdist at v-net.ch)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# All os variables are lower case
|
||||
#
|
||||
#
|
||||
|
||||
if command -v uname >/dev/null 2>&1 ; then
|
||||
uname -m
|
||||
fi
|
||||
1035
cdist/conf/explorer/machine_type
Executable file
1035
cdist/conf/explorer/machine_type
Executable file
File diff suppressed because it is too large
Load diff
92
cdist/conf/explorer/memory
Executable file
92
cdist/conf/explorer/memory
Executable file
|
|
@ -0,0 +1,92 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2014 Daniel Heule (hda at sfs.biz)
|
||||
# 2014 Thomas Oettli (otho at sfs.biz)
|
||||
# Copyright 2017, Philippe Gregoire <pg@pgregoire.xyz>
|
||||
# 2020 Dennis Camera <dennis.camera at ssrq-sds-fds.ch>
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Returns the amount of memory physically installed in the system, or if that
|
||||
# cannot be determined the amount available to the operating system kernel,
|
||||
# in kibibytes (kiB).
|
||||
|
||||
str2bytes() {
|
||||
awk -F' ' '
|
||||
$2 == "B" || !$2 { print $1 }
|
||||
$2 == "kB" { printf "%.f\n", ($1 * 1000) }
|
||||
$2 == "MB" { printf "%.f\n", ($1 * 1000 * 1000) }
|
||||
$2 == "GB" { printf "%.f\n", ($1 * 1000 * 1000 * 1000) }
|
||||
$2 == "TB" { printf "%.f\n", ($1 * 1000 * 1000 * 1000 * 1000) }
|
||||
$2 == "kiB" { printf "%.f\n", ($1 * 1024) }
|
||||
$2 == "MiB" { printf "%.f\n", ($1 * 1024 * 1024) }
|
||||
$2 == "GiB" { printf "%.f\n", ($1 * 1024 * 1024 * 1024) }
|
||||
$2 == "TiB" { printf "%.f\n", ($1 * 1024 * 1024 * 1024 * 1024) }'
|
||||
}
|
||||
|
||||
bytes2kib() {
|
||||
awk '$0 > 0 { printf "%.f\n", ($0 / 1024) }'
|
||||
}
|
||||
|
||||
|
||||
case $(uname -s)
|
||||
in
|
||||
(Darwin)
|
||||
sysctl -n hw.memsize | bytes2kib
|
||||
;;
|
||||
(FreeBSD)
|
||||
sysctl -n hw.realmem | bytes2kib
|
||||
;;
|
||||
(NetBSD|OpenBSD)
|
||||
# NOTE: This reports "usable" memory, not physically installed memory.
|
||||
command -p sysctl -n hw.physmem | bytes2kib
|
||||
;;
|
||||
(SunOS)
|
||||
# Make sure that awk from xpg4 is used for the scripts to work
|
||||
export PATH="/usr/xpg4/bin:${PATH}"
|
||||
prtconf \
|
||||
| awk -F ': ' '
|
||||
$1 == "Memory size" { sub(/Megabytes/, "MiB", $2); print $2 }
|
||||
/^$/ { exit }' \
|
||||
| str2bytes \
|
||||
| bytes2kib
|
||||
;;
|
||||
(Linux)
|
||||
if test -d /sys/devices/system/memory
|
||||
then
|
||||
# Use memory blocks if the architecture (e.g. x86, PPC64, s390)
|
||||
# supports them (they denote physical memory)
|
||||
num_mem_blocks=$(cat /sys/devices/system/memory/memory[0-9]*/state | grep -cxF online)
|
||||
mem_block_size=$(cat /sys/devices/system/memory/block_size_bytes)
|
||||
|
||||
echo $((num_mem_blocks * 0x$mem_block_size)) | bytes2kib && exit
|
||||
fi
|
||||
if test -r /proc/meminfo
|
||||
then
|
||||
# Fall back to meminfo file on other architectures (e.g. ARM, MIPS,
|
||||
# PowerPC)
|
||||
# NOTE: This is "usable" memory, not physically installed memory.
|
||||
awk -F ': +' '$1 == "MemTotal" { sub(/B$/, "iB", $2); print $2 }' /proc/meminfo \
|
||||
| str2bytes \
|
||||
| bytes2kib
|
||||
fi
|
||||
;;
|
||||
(*)
|
||||
printf "Your kernel (%s) is currently not supported by the memory explorer\n" "$(uname -s)" >&2
|
||||
printf "Please contribute an implementation for it if you can.\n" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
167
cdist/conf/explorer/os
Executable file
167
cdist/conf/explorer/os
Executable file
|
|
@ -0,0 +1,167 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org)
|
||||
# Copyright 2017, Philippe Gregoire <pg@pgregoire.xyz>
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# All os variables are lower case. Keep this file in alphabetical
|
||||
# order by os variable except in cases where order otherwise matters,
|
||||
# in which case keep the primary os and its derivatives together in
|
||||
# a block (see Debian and Redhat examples below).
|
||||
#
|
||||
|
||||
if grep -q ^Amazon /etc/system-release 2>/dev/null; then
|
||||
echo amazon
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -f /etc/arch-release ]; then
|
||||
echo archlinux
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -f /etc/cdist-preos ]; then
|
||||
echo cdist-preos
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -d /gnu/store ]; then
|
||||
echo guixsd
|
||||
exit 0
|
||||
fi
|
||||
|
||||
### Debian and derivatives
|
||||
if grep -q ^DISTRIB_ID=Ubuntu /etc/lsb-release 2>/dev/null; then
|
||||
echo ubuntu
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# devuan ascii has both devuan_version and debian_version, so we need to check devuan_version first!
|
||||
if [ -f /etc/devuan_version ]; then
|
||||
echo devuan
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -f /etc/debian_version ]; then
|
||||
echo debian
|
||||
exit 0
|
||||
fi
|
||||
|
||||
###
|
||||
|
||||
if [ -f /etc/gentoo-release ]; then
|
||||
echo gentoo
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -f /etc/openwrt_version ]; then
|
||||
echo openwrt
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -f /etc/owl-release ]; then
|
||||
echo owl
|
||||
exit 0
|
||||
fi
|
||||
|
||||
### Redhat and derivatives
|
||||
if grep -q ^Scientific /etc/redhat-release 2>/dev/null; then
|
||||
echo scientific
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if grep -q ^CentOS /etc/redhat-release 2>/dev/null; then
|
||||
echo centos
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if grep -q ^Fedora /etc/redhat-release 2>/dev/null; then
|
||||
echo fedora
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if grep -q ^Mitel /etc/redhat-release 2>/dev/null; then
|
||||
echo mitel
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -f /etc/redhat-release ]; then
|
||||
echo redhat
|
||||
exit 0
|
||||
fi
|
||||
###
|
||||
|
||||
if [ -f /etc/SuSE-release ]; then
|
||||
echo suse
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -f /etc/slackware-version ]; then
|
||||
echo slackware
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Appliances
|
||||
|
||||
if grep -q '^Check Point Gaia' /etc/cp-release 2>/dev/null; then
|
||||
echo checkpoint
|
||||
exit 0
|
||||
fi
|
||||
|
||||
uname_s="$(uname -s)"
|
||||
|
||||
# Assume there is no tr on the client -> do lower case ourselves
|
||||
case "$uname_s" in
|
||||
Darwin)
|
||||
echo macosx
|
||||
exit 0
|
||||
;;
|
||||
NetBSD)
|
||||
echo netbsd
|
||||
exit 0
|
||||
;;
|
||||
FreeBSD)
|
||||
echo freebsd
|
||||
exit 0
|
||||
;;
|
||||
OpenBSD)
|
||||
echo openbsd
|
||||
exit 0
|
||||
;;
|
||||
SunOS)
|
||||
echo solaris
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -f /etc/os-release ]; then
|
||||
# after sles15, suse don't provide an /etc/SuSE-release anymore, but there is almost no difference between sles and opensuse leap, so call it suse
|
||||
# shellcheck disable=SC1091
|
||||
if (. /etc/os-release && echo "${ID_LIKE}" | grep -q '\(^\|\ \)suse\($\|\ \)')
|
||||
then
|
||||
echo suse
|
||||
exit 0
|
||||
fi
|
||||
# already lowercase, according to:
|
||||
# https://www.freedesktop.org/software/systemd/man/os-release.html
|
||||
awk -F= '/^ID=/ { if ($2 ~ /^'"'"'(.*)'"'"'$/ || $2 ~ /^"(.*)"$/) { print substr($2, 2, length($2) - 2) } else { print $2 } }' /etc/os-release
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Unknown OS" >&2
|
||||
exit 1
|
||||
42
cdist/conf/explorer/os_release
Normal file
42
cdist/conf/explorer/os_release
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2018 Adam Dej (dejko.a at gmail.com)
|
||||
# 2020 Dennis Camera (dennis.camera at ssrq-sds-fds.ch)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
# See os-release(5) and http://0pointer.de/blog/projects/os-release
|
||||
|
||||
if test -f /etc/os-release
|
||||
then
|
||||
# Linux and FreeBSD (usually a symlink)
|
||||
cat /etc/os-release
|
||||
elif test -f /usr/lib/os-release
|
||||
then
|
||||
# systemd
|
||||
cat /usr/lib/os-release
|
||||
elif test -f /var/run/os-release
|
||||
then
|
||||
# FreeBSD (created by os-release service)
|
||||
cat /var/run/os-release
|
||||
elif test -f /etc/cp-release
|
||||
then
|
||||
# Checkpoint firewall or management (actually linux based)
|
||||
cat /etc/cp-release
|
||||
fi
|
||||
|
||||
159
cdist/conf/explorer/os_version
Executable file
159
cdist/conf/explorer/os_version
Executable file
|
|
@ -0,0 +1,159 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org)
|
||||
# 2020-2021 Dennis Camera (dennis.camera at ssrq-sds-fds.ch)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# All os variables are lower case
|
||||
#
|
||||
|
||||
rc_getvar() {
|
||||
awk -F= -v varname="$2" '
|
||||
function unquote(s) {
|
||||
if (s ~ /^".*"$/ || s ~ /^'\''.*'\''$/)
|
||||
return substr(s, 2, length(s) - 2)
|
||||
else
|
||||
return s
|
||||
}
|
||||
$1 == varname { print unquote(substr($0, index($0, "=") + 1)) }' "$1"
|
||||
}
|
||||
|
||||
case $("${__explorer:?}/os")
|
||||
in
|
||||
amazon)
|
||||
cat /etc/system-release
|
||||
;;
|
||||
archlinux)
|
||||
# empty, but well...
|
||||
cat /etc/arch-release
|
||||
;;
|
||||
checkpoint)
|
||||
awk '{version=$NF; printf("%s\n", substr(version, 2))}' /etc/cp-release
|
||||
;;
|
||||
debian)
|
||||
debian_version=$(cat /etc/debian_version)
|
||||
case $debian_version
|
||||
in
|
||||
testing/unstable)
|
||||
# previous to Debian 4.0 testing/unstable was used
|
||||
# cf. https://metadata.ftp-master.debian.org/changelogs/main/b/base-files/base-files_11_changelog
|
||||
echo 3.99
|
||||
;;
|
||||
*/sid)
|
||||
# sid versions don't have a number, so we decode by codename:
|
||||
case $(expr "$debian_version" : '\([a-z]\{1,\}\)/')
|
||||
in
|
||||
trixie) echo 12.99 ;;
|
||||
bookworm) echo 11.99 ;;
|
||||
bullseye) echo 10.99 ;;
|
||||
buster) echo 9.99 ;;
|
||||
stretch) echo 8.99 ;;
|
||||
jessie) echo 7.99 ;;
|
||||
wheezy) echo 6.99 ;;
|
||||
squeeze) echo 5.99 ;;
|
||||
lenny) echo 4.99 ;;
|
||||
*) echo 99.99 ;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo "$debian_version"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
devuan)
|
||||
devuan_version=$(cat /etc/devuan_version)
|
||||
case ${devuan_version}
|
||||
in
|
||||
(*/ceres)
|
||||
# ceres versions don't have a number, so we decode by codename:
|
||||
case ${devuan_version}
|
||||
in
|
||||
(chimaera/ceres) echo 3.99 ;;
|
||||
(beowulf/ceres) echo 2.99 ;;
|
||||
(ascii/ceres) echo 1.99 ;;
|
||||
(*) exit 1
|
||||
esac
|
||||
;;
|
||||
(*)
|
||||
echo "${devuan_version}"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
fedora)
|
||||
cat /etc/fedora-release
|
||||
;;
|
||||
gentoo)
|
||||
cat /etc/gentoo-release
|
||||
;;
|
||||
macosx)
|
||||
# NOTE: Legacy versions (< 10.3) do not support options
|
||||
sw_vers | awk -F ':[ \t]+' '$1 == "ProductVersion" { print $2 }'
|
||||
;;
|
||||
freebsd)
|
||||
# Apparently uname -r is not a reliable way to get the patch level.
|
||||
# See: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=251743
|
||||
if command -v freebsd-version >/dev/null 2>&1
|
||||
then
|
||||
# get userland version
|
||||
freebsd-version -u
|
||||
else
|
||||
# fallback to kernel release for FreeBSD < 10.0
|
||||
uname -r
|
||||
fi
|
||||
;;
|
||||
*bsd|solaris)
|
||||
uname -r
|
||||
;;
|
||||
openwrt)
|
||||
cat /etc/openwrt_version
|
||||
;;
|
||||
owl)
|
||||
cat /etc/owl-release
|
||||
;;
|
||||
redhat|centos|mitel|scientific)
|
||||
cat /etc/redhat-release
|
||||
;;
|
||||
slackware)
|
||||
cat /etc/slackware-version
|
||||
;;
|
||||
suse)
|
||||
if [ -f /etc/os-release ]; then
|
||||
cat /etc/os-release
|
||||
else
|
||||
cat /etc/SuSE-release
|
||||
fi
|
||||
;;
|
||||
ubuntu)
|
||||
if command -v lsb_release >/dev/null 2>&1
|
||||
then
|
||||
lsb_release -sr
|
||||
elif test -r /usr/lib/os-release
|
||||
then
|
||||
# fallback to /usr/lib/os-release if lsb_release is not present (like
|
||||
# on minimized Ubuntu installations)
|
||||
rc_getvar /usr/lib/os-release VERSION_ID
|
||||
elif test -r /etc/lsb-release
|
||||
then
|
||||
# extract DISTRIB_RELEASE= variable from /etc/lsb-release on old
|
||||
# versions without /usr/lib/os-release.
|
||||
rc_getvar /etc/lsb-release DISTRIB_RELEASE
|
||||
fi
|
||||
;;
|
||||
alpine)
|
||||
cat /etc/alpine-release
|
||||
;;
|
||||
esac
|
||||
26
cdist/conf/explorer/runlevel
Executable file
26
cdist/conf/explorer/runlevel
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2012 Nico Schottelius (nico-cdist at schottelius.org)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
set +e
|
||||
executable=$(command -v runlevel)
|
||||
if [ -x "$executable" ]; then
|
||||
"$executable" | awk '{ print $2 }'
|
||||
fi
|
||||
62
cdist/conf/manifest/sample-from-distribution
Executable file
62
cdist/conf/manifest/sample-from-distribution
Executable file
|
|
@ -0,0 +1,62 @@
|
|||
## #
|
||||
## # Sample manifest from cdist distribution
|
||||
## #
|
||||
##
|
||||
## # Every machine becomes a marker, so sysadmins know that automatic
|
||||
## # configurations are happening
|
||||
## __file /etc/cdist-configured
|
||||
## __cdistmarker
|
||||
##
|
||||
## case "$__target_host" in
|
||||
## # Everybody has this
|
||||
## localhost)
|
||||
## require="__file/etc/cdist-configured" __link /tmp/cdist-testfile \
|
||||
## --source /etc/cdist-configured --type symbolic
|
||||
## require="__directory/tmp/cdist-test-dir" __file /tmp/cdist-test-dir/test-file \
|
||||
## --mode 0750 --owner nobody --group root
|
||||
## __directory /tmp/cdist-test-dir --mode 4777
|
||||
##
|
||||
## require="__file/etc/cdist-configured __link/tmp/cdist-testfile" \
|
||||
## __file /tmp/cdist-another-testfile
|
||||
##
|
||||
## ;;
|
||||
##
|
||||
## #
|
||||
## # Use an alias in /etc/hosts for localhost to use these hosts:
|
||||
## #
|
||||
## # 127.0.0.1 localhost.localdomain localhost cdist-archlinux
|
||||
## #
|
||||
## cdist-archlinux)
|
||||
## # This is the specific package type for pacman
|
||||
## __package_pacman zsh --state installed
|
||||
##
|
||||
## # The __package type autoselect the right type based on the os
|
||||
## __package vim --state installed
|
||||
##
|
||||
## # If the type is a singleton, it does not take an object id
|
||||
## __issue
|
||||
## ;;
|
||||
## # This is how it would look like on gentoo
|
||||
## cdist-gentoo)
|
||||
## # Same stuff for gentoo
|
||||
## __package tree --state installed
|
||||
## ;;
|
||||
##
|
||||
## cdist-debian)
|
||||
## __package_apt atop --state installed
|
||||
## __package apache2 --state removed
|
||||
## ;;
|
||||
##
|
||||
## cdist-redhat)
|
||||
## __issue
|
||||
## __motd
|
||||
## ;;
|
||||
##
|
||||
## # Real machines may be used with their hostname or fqdn,
|
||||
## # depending on how you call cdist
|
||||
## # ...
|
||||
## # ;;
|
||||
## # machine.example.org)
|
||||
## # ...
|
||||
## # ;;
|
||||
## esac
|
||||
31
cdist/conf/type/__acl/explorer/acl_is
Executable file
31
cdist/conf/type/__acl/explorer/acl_is
Executable file
|
|
@ -0,0 +1,31 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2018 Ander Punnar (ander-at-kvlt-dot-ee)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
[ ! -e "/$__object_id" ] && exit 0
|
||||
|
||||
if ! command -v getfacl > /dev/null
|
||||
then
|
||||
echo 'getfacl not available' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
getfacl "/$__object_id" 2>/dev/null \
|
||||
| grep -Eo '^(default:)?(user|group|(mask|other):):[^:][[:graph:]]+' \
|
||||
|| true
|
||||
31
cdist/conf/type/__acl/explorer/file_is
Executable file
31
cdist/conf/type/__acl/explorer/file_is
Executable file
|
|
@ -0,0 +1,31 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2018 Ander Punnar (ander-at-kvlt-dot-ee)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
if [ -e "/$__object_id" ]
|
||||
then
|
||||
if [ -d "/$__object_id" ]
|
||||
then echo directory
|
||||
elif [ -f "/$__object_id" ]
|
||||
then echo regular
|
||||
else echo other
|
||||
fi
|
||||
else
|
||||
echo missing
|
||||
fi
|
||||
4
cdist/conf/type/__acl/explorer/getent
Executable file
4
cdist/conf/type/__acl/explorer/getent
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
getent passwd | awk -F: '{print "user:"$1}'
|
||||
getent group | awk -F: '{print "group:"$1}'
|
||||
143
cdist/conf/type/__acl/gencode-remote
Executable file
143
cdist/conf/type/__acl/gencode-remote
Executable file
|
|
@ -0,0 +1,143 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2018 Ander Punnar (ander-at-kvlt-dot-ee)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
file_is="$( cat "$__object/explorer/file_is" )"
|
||||
|
||||
if [ "$file_is" = 'missing' ] \
|
||||
&& [ -z "$__cdist_dry_run" ] \
|
||||
&& [ ! -f "$__object/parameter/file" ] \
|
||||
&& [ ! -f "$__object/parameter/directory" ]
|
||||
then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
os="$( cat "$__global/explorer/os" )"
|
||||
|
||||
acl_path="/$__object_id"
|
||||
|
||||
acl_is="$( cat "$__object/explorer/acl_is" )"
|
||||
|
||||
if [ -f "$__object/parameter/source" ]
|
||||
then
|
||||
acl_source="$( cat "$__object/parameter/source" )"
|
||||
|
||||
if [ "$acl_source" = '-' ]
|
||||
then
|
||||
acl_should="$( cat "$__object/stdin" )"
|
||||
else
|
||||
acl_should="$( grep -Ev '^#|^$' "$acl_source" )"
|
||||
fi
|
||||
elif [ -f "$__object/parameter/entry" ]
|
||||
then
|
||||
acl_should="$( cat "$__object/parameter/entry" )"
|
||||
else
|
||||
echo 'no parameters set' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# instead of setfacl's non-helpful message "Option -m: Invalid argument near character X"
|
||||
# let's check if target has necessary users and groups, since mistyped or missing
|
||||
# users/groups in target is most common reason.
|
||||
echo "$acl_should" \
|
||||
| grep -Po '(user|group):[^:]+' \
|
||||
| sort -u \
|
||||
| while read -r l
|
||||
do
|
||||
if ! grep "$l" -Fxq "$__object/explorer/getent"
|
||||
then
|
||||
echo "no $l' in target" | sed "s/:/ '/" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -f "$__object/parameter/default" ]
|
||||
then
|
||||
acl_should="$( echo "$acl_should" \
|
||||
| sed 's/^default://' \
|
||||
| sort -u \
|
||||
| sed 's/\(.*\)/default:\1\n\1/' )"
|
||||
fi
|
||||
|
||||
if [ "$file_is" = 'regular' ] \
|
||||
&& echo "$acl_should" | grep -Eq '^default:'
|
||||
then
|
||||
# only directories can have default ACLs,
|
||||
# but instead of error,
|
||||
# let's just remove default entries
|
||||
acl_should="$( echo "$acl_should" | grep -Ev '^default:' )"
|
||||
fi
|
||||
|
||||
if echo "$acl_should" | awk -F: '{ print $NF }' | grep -Fq 'X'
|
||||
then
|
||||
[ "$file_is" = 'directory' ] && rep=x || rep=-
|
||||
|
||||
acl_should="$( echo "$acl_should" | sed "s/\\(.*\\)X/\\1$rep/" )"
|
||||
fi
|
||||
|
||||
setfacl_exec='setfacl'
|
||||
|
||||
if [ -f "$__object/parameter/recursive" ]
|
||||
then
|
||||
if echo "$os" | grep -Fq 'freebsd'
|
||||
then
|
||||
echo "$os setfacl do not support recursive operations" >&2
|
||||
else
|
||||
setfacl_exec="$setfacl_exec -R"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f "$__object/parameter/remove" ]
|
||||
then
|
||||
echo "$acl_is" | while read -r acl
|
||||
do
|
||||
# skip wanted ACL entries which already exist
|
||||
# and skip mask and other entries, because we
|
||||
# can't actually remove them, but only change.
|
||||
if echo "$acl_should" | grep -Eq "^$acl" \
|
||||
|| echo "$acl" | grep -Eq '^(default:)?(mask|other)'
|
||||
then continue
|
||||
fi
|
||||
|
||||
if echo "$os" | grep -Fq 'freebsd'
|
||||
then
|
||||
remove="$acl"
|
||||
else
|
||||
remove="$( echo "$acl" | sed 's/:...$//' )"
|
||||
fi
|
||||
|
||||
echo "$setfacl_exec -x \"$remove\" \"$acl_path\""
|
||||
echo "removed '$remove'" >> "$__messages_out"
|
||||
done
|
||||
fi
|
||||
|
||||
for acl in $acl_should
|
||||
do
|
||||
if ! echo "$acl_is" | grep -Eq "^$acl"
|
||||
then
|
||||
if echo "$os" | grep -Fq 'freebsd' \
|
||||
&& echo "$acl" | grep -Eq '^default:'
|
||||
then
|
||||
echo "setting default ACL in $os is currently not supported" >&2
|
||||
else
|
||||
echo "$setfacl_exec -m \"$acl\" \"$acl_path\""
|
||||
echo "added '$acl'" >> "$__messages_out"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
108
cdist/conf/type/__acl/man.rst
Normal file
108
cdist/conf/type/__acl/man.rst
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
cdist-type__acl(7)
|
||||
==================
|
||||
|
||||
NAME
|
||||
----
|
||||
cdist-type__acl - Set ACL entries
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Fully supported and tested on Linux (ext4 filesystem), partial support for FreeBSD.
|
||||
|
||||
See ``setfacl`` and ``acl`` manpages for more details.
|
||||
|
||||
One of ``--entry`` or ``--source`` must be used.
|
||||
|
||||
|
||||
OPTIONAL MULTIPLE PARAMETERS
|
||||
----------------------------
|
||||
entry
|
||||
Set ACL entry following ``getfacl`` output syntax.
|
||||
Must be used if ``--source`` is not used.
|
||||
|
||||
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
source
|
||||
Read ACL entries from stdin or file.
|
||||
Ordering of entries is not important.
|
||||
When reading from file, comments and empty lines are ignored.
|
||||
Must be used if ``--entry`` is not used.
|
||||
|
||||
file
|
||||
Create/change file with ``__file`` using ``user:group:mode`` pattern.
|
||||
|
||||
directory
|
||||
Create/change directory with ``__directory`` using ``user:group:mode`` pattern.
|
||||
|
||||
|
||||
BOOLEAN PARAMETERS
|
||||
------------------
|
||||
default
|
||||
Set all ACL entries as default too.
|
||||
Only directories can have default ACLs.
|
||||
Setting default ACL in FreeBSD is currently not supported.
|
||||
|
||||
recursive
|
||||
Make ``setfacl`` recursive (Linux only), but not ``getfacl`` in explorer.
|
||||
|
||||
remove
|
||||
Remove undefined ACL entries.
|
||||
``mask`` and ``other`` entries can't be removed, but only changed.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
__acl /srv/project \
|
||||
--default \
|
||||
--recursive \
|
||||
--remove \
|
||||
--entry user:alice:rwx \
|
||||
--entry user:bob:r-x \
|
||||
--entry group:project-group:rwx \
|
||||
--entry group:some-other-group:r-x \
|
||||
--entry mask::r-x \
|
||||
--entry other::r-x
|
||||
|
||||
# give Alice read-only access to subdir,
|
||||
# but don't allow her to see parent content.
|
||||
|
||||
__acl /srv/project2 \
|
||||
--remove \
|
||||
--entry default:group:secret-project:rwx \
|
||||
--entry group:secret-project:rwx \
|
||||
--entry user:alice:--x
|
||||
|
||||
__acl /srv/project2/subdir \
|
||||
--default \
|
||||
--remove \
|
||||
--entry group:secret-project:rwx \
|
||||
--entry user:alice:r-x
|
||||
|
||||
# read acl from stdin
|
||||
echo 'user:alice:rwx' \
|
||||
| __acl /path/to/directory --source -
|
||||
|
||||
# create/change directory too
|
||||
__acl /path/to/directory \
|
||||
--default \
|
||||
--remove \
|
||||
--directory root:root:770 \
|
||||
--entry user:nobody:rwx
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
Ander Punnar <ander-at-kvlt-dot-ee>
|
||||
|
||||
|
||||
COPYING
|
||||
-------
|
||||
Copyright \(C) 2018 Ander Punnar. You can redistribute it
|
||||
and/or modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
11
cdist/conf/type/__acl/manifest
Executable file
11
cdist/conf/type/__acl/manifest
Executable file
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
for p in file directory
|
||||
do
|
||||
[ ! -f "$__object/parameter/$p" ] && continue
|
||||
|
||||
"__$p" "/$__object_id" \
|
||||
--owner "$( awk -F: '{print $1}' "$__object/parameter/$p" )" \
|
||||
--group "$( awk -F: '{print $2}' "$__object/parameter/$p" )" \
|
||||
--mode "$( awk -F: '{print $3}' "$__object/parameter/$p" )"
|
||||
done
|
||||
3
cdist/conf/type/__acl/parameter/boolean
Normal file
3
cdist/conf/type/__acl/parameter/boolean
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
recursive
|
||||
default
|
||||
remove
|
||||
3
cdist/conf/type/__acl/parameter/optional
Normal file
3
cdist/conf/type/__acl/parameter/optional
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
source
|
||||
file
|
||||
directory
|
||||
1
cdist/conf/type/__acl/parameter/optional_multiple
Normal file
1
cdist/conf/type/__acl/parameter/optional_multiple
Normal file
|
|
@ -0,0 +1 @@
|
|||
entry
|
||||
104
cdist/conf/type/__apt_backports/man.rst
Normal file
104
cdist/conf/type/__apt_backports/man.rst
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
cdist-type__debian_backports(7)
|
||||
===============================
|
||||
|
||||
NAME
|
||||
----
|
||||
cdist-type__apt_backports - Install backports
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
This singleton type installs backports for the current OS release.
|
||||
It aborts if backports are not supported for the specified OS or
|
||||
no version codename could be fetched (like Debian unstable).
|
||||
|
||||
The package index will be automatically updated if required.
|
||||
|
||||
It supports backports from following OSes:
|
||||
|
||||
- Debian
|
||||
- Devuan
|
||||
- Ubuntu
|
||||
|
||||
|
||||
REQUIRED PARAMETERS
|
||||
-------------------
|
||||
None.
|
||||
|
||||
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
state
|
||||
Represents the state of the backports repository. ``present`` or
|
||||
``absent``, defaults to ``present``.
|
||||
|
||||
Will be directly passed to :strong:`cdist-type__apt_source`\ (7).
|
||||
|
||||
mirror
|
||||
The mirror to fetch the backports from. Will defaults to the generic
|
||||
mirror of the current OS.
|
||||
|
||||
Will be directly passed to :strong:`cdist-type__apt_source`\ (7).
|
||||
|
||||
|
||||
BOOLEAN PARAMETERS
|
||||
------------------
|
||||
None.
|
||||
|
||||
|
||||
MESSAGES
|
||||
--------
|
||||
None.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
# setup the backports
|
||||
__apt_backports
|
||||
__apt_backports --state absent
|
||||
__apt_backports --state present --mirror "http://ftp.de.debian.org/debian/"
|
||||
|
||||
# install a backports package
|
||||
# currently for the buster release backports
|
||||
require="__apt_backports" __package_apt wireguard \
|
||||
--target-release buster-backports
|
||||
|
||||
|
||||
ABORTS
|
||||
------
|
||||
Aborts if the detected os is not Debian.
|
||||
|
||||
Aborts if no distribuition codename could be detected. This is common for the
|
||||
unstable distribution, but there is no backports repository for it already.
|
||||
|
||||
|
||||
CAVEATS
|
||||
-------
|
||||
For Ubuntu, it setup all componenents for the backports repository: ``main``,
|
||||
``restricted``, ``universe`` and ``multiverse``. The user may not want to
|
||||
install proprietary packages, which will only be installed if the user
|
||||
explicitly uses the backports target-release. The user may change this behavior
|
||||
to install backports packages without the need of explicitly select it.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
`Official Debian Backports site <https://backports.debian.org/>`_
|
||||
|
||||
:strong:`cdist-type__apt_source`\ (7)
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
Matthias Stecher <matthiasstecher at gmx.de>
|
||||
|
||||
|
||||
COPYING
|
||||
-------
|
||||
Copyright \(C) 2020 Matthias Stecher. You can redistribute it
|
||||
and/or modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
82
cdist/conf/type/__apt_backports/manifest
Executable file
82
cdist/conf/type/__apt_backports/manifest
Executable file
|
|
@ -0,0 +1,82 @@
|
|||
#!/bin/sh -e
|
||||
# __apt_backports/manifest
|
||||
#
|
||||
# 2020 Matthias Stecher (matthiasstecher at gmx.de)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# Enables/disables backports repository. Utilises __apt_source for it.
|
||||
#
|
||||
|
||||
|
||||
# Get the distribution codename by /etc/os-release.
|
||||
# is already executed in a subshell by string substitution
|
||||
# lsb_release may not be given in all installations
|
||||
codename_os_release() {
|
||||
# shellcheck disable=SC1090
|
||||
# shellcheck disable=SC1091
|
||||
. "$__global/explorer/os_release"
|
||||
printf "%s" "$VERSION_CODENAME"
|
||||
}
|
||||
|
||||
# detect backport distribution
|
||||
os="$(cat "$__global/explorer/os")"
|
||||
case "$os" in
|
||||
debian)
|
||||
dist="$( codename_os_release )"
|
||||
components="main"
|
||||
mirror="http://deb.debian.org/debian/"
|
||||
;;
|
||||
devuan)
|
||||
dist="$( codename_os_release )"
|
||||
components="main"
|
||||
mirror="http://deb.devuan.org/merged"
|
||||
;;
|
||||
ubuntu)
|
||||
dist="$( codename_os_release )"
|
||||
components="main restricted universe multiverse"
|
||||
mirror="http://archive.ubuntu.com/ubuntu"
|
||||
;;
|
||||
|
||||
*)
|
||||
printf "Backports for %s are not supported!\n" "$os" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# error if no codename given (e.g. on Debian unstable)
|
||||
if [ -z "$dist" ]; then
|
||||
printf "No backports for unkown version of distribution %s!\n" "$os" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# parameters
|
||||
state="$(cat "$__object/parameter/state")"
|
||||
|
||||
# mirror already set for the os, only override user-values
|
||||
if [ -f "$__object/parameter/mirror" ]; then
|
||||
mirror="$(cat "$__object/parameter/mirror")"
|
||||
fi
|
||||
|
||||
|
||||
# install the given backports repository
|
||||
__apt_source "${dist}-backports" \
|
||||
--state "$state" \
|
||||
--distribution "${dist}-backports" \
|
||||
--component "$components" \
|
||||
--uri "$mirror"
|
||||
1
cdist/conf/type/__apt_backports/parameter/default/state
Normal file
1
cdist/conf/type/__apt_backports/parameter/default/state
Normal file
|
|
@ -0,0 +1 @@
|
|||
present
|
||||
2
cdist/conf/type/__apt_backports/parameter/optional
Normal file
2
cdist/conf/type/__apt_backports/parameter/optional
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
state
|
||||
mirror
|
||||
0
cdist/conf/type/__apt_backports/singleton
Normal file
0
cdist/conf/type/__apt_backports/singleton
Normal file
46
cdist/conf/type/__apt_default_release/man.rst
Normal file
46
cdist/conf/type/__apt_default_release/man.rst
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
cdist-type__apt_default_release(7)
|
||||
==================================
|
||||
|
||||
NAME
|
||||
----
|
||||
cdist-type__apt_default_release - Configure the default release for apt
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Configure the default release for apt, using the APT::Default-Release
|
||||
configuration value.
|
||||
|
||||
REQUIRED PARAMETERS
|
||||
-------------------
|
||||
release
|
||||
The value to set APT::Default-Release to.
|
||||
|
||||
This can contain release name, codename or release version. Examples:
|
||||
'stable', 'testing', 'unstable', 'stretch', 'buster', '4.0', '5.0*'.
|
||||
|
||||
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
None.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
__apt_default_release --release stretch
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
Matthijs Kooijman <matthijs--@--stdin.nl>
|
||||
|
||||
|
||||
COPYING
|
||||
-------
|
||||
Copyright \(C) 2017 Matthijs Kooijman. You can redistribute it
|
||||
and/or modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
41
cdist/conf/type/__apt_default_release/manifest
Executable file
41
cdist/conf/type/__apt_default_release/manifest
Executable file
|
|
@ -0,0 +1,41 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2014 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
# 2017 Matthijs Kooijman (matthijs at stdin.nl)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
|
||||
os=$(cat "$__global/explorer/os")
|
||||
release="$(cat "$__object/parameter/release")"
|
||||
|
||||
case "$os" in
|
||||
ubuntu|debian|devuan)
|
||||
__file /etc/apt/apt.conf.d/99-default-release \
|
||||
--owner root --group root --mode 644 \
|
||||
--source - << DONE
|
||||
APT::Default-Release "$release";
|
||||
DONE
|
||||
;;
|
||||
*)
|
||||
cat >&2 << DONE
|
||||
The developer of this type (${__type##*/}) did not think your operating system
|
||||
($os) would have any use for it. If you think otherwise please submit a patch.
|
||||
DONE
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
1
cdist/conf/type/__apt_default_release/parameter/required
Normal file
1
cdist/conf/type/__apt_default_release/parameter/required
Normal file
|
|
@ -0,0 +1 @@
|
|||
release
|
||||
0
cdist/conf/type/__apt_default_release/singleton
Normal file
0
cdist/conf/type/__apt_default_release/singleton
Normal file
51
cdist/conf/type/__apt_key/explorer/state
Executable file
51
cdist/conf/type/__apt_key/explorer/state
Executable file
|
|
@ -0,0 +1,51 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2011-2014 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# Get the current state of the apt key.
|
||||
#
|
||||
|
||||
if [ -f "$__object/parameter/keyid" ]; then
|
||||
keyid="$(cat "$__object/parameter/keyid")"
|
||||
else
|
||||
keyid="$__object_id"
|
||||
fi
|
||||
|
||||
# From apt-key(8):
|
||||
# Use of apt-key is deprecated, except for the use of apt-key del in
|
||||
# maintainer scripts to remove existing keys from the main keyring.
|
||||
# If such usage of apt-key is desired the additional installation of
|
||||
# the GNU Privacy Guard suite (packaged in gnupg) is required.
|
||||
if [ -f "${__object}/parameter/use-deprecated-apt-key" ]; then
|
||||
if apt-key export "$keyid" | head -n 1 | grep -Fqe "BEGIN PGP PUBLIC KEY BLOCK"
|
||||
then echo present
|
||||
else echo absent
|
||||
fi
|
||||
exit
|
||||
fi
|
||||
|
||||
keydir="$(cat "$__object/parameter/keydir")"
|
||||
keyfile="$keydir/$__object_id.gpg"
|
||||
|
||||
if [ -f "$keyfile" ]
|
||||
then
|
||||
echo present
|
||||
exit
|
||||
fi
|
||||
echo absent
|
||||
99
cdist/conf/type/__apt_key/gencode-remote
Executable file
99
cdist/conf/type/__apt_key/gencode-remote
Executable file
|
|
@ -0,0 +1,99 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2011-2014 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
if [ -f "$__object/parameter/keyid" ]; then
|
||||
keyid="$(cat "$__object/parameter/keyid")"
|
||||
else
|
||||
keyid="$__object_id"
|
||||
fi
|
||||
state_should="$(cat "$__object/parameter/state")"
|
||||
state_is="$(cat "$__object/explorer/state")"
|
||||
method="$(cat "$__object/key_method")"
|
||||
|
||||
keydir="$(cat "$__object/parameter/keydir")"
|
||||
keyfile="$keydir/$__object_id.gpg"
|
||||
|
||||
case "$state_should" in
|
||||
present)
|
||||
keyserver="$(cat "$__object/parameter/keyserver")"
|
||||
# Using __download or __file as key source
|
||||
# Propagate messages if needed
|
||||
if [ "${method}" = "uri" ] || [ "${method}" = "source" ]; then
|
||||
if grep -Eq "^__(file|download)$keyfile" "$__messages_in"; then
|
||||
echo "added '$keyid'" >> "$__messages_out"
|
||||
fi
|
||||
exit 0
|
||||
elif [ "${state_is}" = "present" ]; then
|
||||
exit 0
|
||||
fi
|
||||
# Using key servers to fetch the key
|
||||
if [ ! -f "$__object/parameter/use-deprecated-apt-key" ]; then
|
||||
# we need to kill gpg after 30 seconds, because gpg
|
||||
# can get stuck if keyserver is not responding.
|
||||
# exporting env var and not exit 1,
|
||||
# because we need to clean up and kill dirmngr.
|
||||
cat << EOF
|
||||
|
||||
gpgtmphome="\$( mktemp -d )"
|
||||
|
||||
if timeout 30s \\
|
||||
gpg --homedir "\$gpgtmphome" \\
|
||||
--keyserver "$keyserver" \\
|
||||
--recv-keys "$keyid"
|
||||
then
|
||||
gpg --homedir "\$gpgtmphome" \\
|
||||
--export "$keyid" \\
|
||||
> "$keyfile"
|
||||
else
|
||||
export GPG_GOT_STUCK=1
|
||||
fi
|
||||
|
||||
GNUPGHOME="\$gpgtmphome" gpgconf --kill dirmngr
|
||||
|
||||
rm -rf "\$gpgtmphome"
|
||||
|
||||
if [ -n "\$GPG_GOT_STUCK" ]
|
||||
then
|
||||
echo "GPG GOT STUCK - no response from keyserver after 30 seconds" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
EOF
|
||||
else
|
||||
# fallback to deprecated apt-key
|
||||
echo "apt-key adv --keyserver \"$keyserver\" --recv-keys \"$keyid\""
|
||||
fi
|
||||
|
||||
echo "added '$keyid'" >> "$__messages_out"
|
||||
;;
|
||||
absent)
|
||||
# Removal for keys added from a keyserver without this flag
|
||||
# is done in the manifest
|
||||
if [ "$state_is" != "absent" ] && \
|
||||
[ -f "$__object/parameter/use-deprecated-apt-key" ]; then
|
||||
# fallback to deprecated apt-key
|
||||
echo "apt-key del \"$keyid\""
|
||||
echo "removed '$keyid'" >> "$__messages_out"
|
||||
# Propagate messages if needed
|
||||
elif grep -Eq "^__file$keyfile" "$__messages_in"; then
|
||||
echo "removed '$keyid'" >> "$__messages_out"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
114
cdist/conf/type/__apt_key/man.rst
Normal file
114
cdist/conf/type/__apt_key/man.rst
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
cdist-type__apt_key(7)
|
||||
======================
|
||||
|
||||
NAME
|
||||
----
|
||||
cdist-type__apt_key - Manage the list of keys used by apt
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Manages the list of keys used by apt to authenticate packages.
|
||||
|
||||
This is done by placing the requested key in a file named
|
||||
``$__object_id.gpg`` in the ``keydir`` directory.
|
||||
|
||||
This is supported by modern releases of Debian-based distributions.
|
||||
|
||||
In order of preference, exactly one of: ``source``, ``uri`` or ``keyid``
|
||||
must be specified.
|
||||
|
||||
|
||||
REQUIRED PARAMETERS
|
||||
-------------------
|
||||
None.
|
||||
|
||||
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
keydir
|
||||
keyring directory, defaults to ``/etc/apt/trusted.pgp.d``, which is
|
||||
enabled system-wide by default.
|
||||
|
||||
source
|
||||
path to a file containing the GPG key of the repository.
|
||||
Using this is recommended as it ensures that the manifest/type manintainer
|
||||
has validated the key.
|
||||
If ``-``, the GPG key is read from the type's stdin.
|
||||
|
||||
state
|
||||
'present' or 'absent'. Defaults to 'present'
|
||||
|
||||
uri
|
||||
the URI from which to download the key.
|
||||
It is highly recommended that you only use protocols with TLS like HTTPS.
|
||||
This uses ``__download`` but does not use checksums, if you want to ensure
|
||||
that the key doesn't change, you are better off downloading it and using
|
||||
``--source``.
|
||||
|
||||
|
||||
DEPRECATED OPTIONAL PARAMETERS
|
||||
------------------------------
|
||||
keyid
|
||||
the id of the key to download from the ``keyserver``.
|
||||
This is to be used in absence of ``--source`` and ``--uri`` or together
|
||||
with ``--use-deprecated-apt-key`` for key removal.
|
||||
Defaults to ``$__object_id``.
|
||||
|
||||
keyserver
|
||||
the keyserver from which to fetch the key.
|
||||
Defaults to ``pool.sks-keyservers.net``.
|
||||
|
||||
|
||||
DEPRECATED BOOLEAN PARAMETERS
|
||||
-----------------------------
|
||||
use-deprecated-apt-key
|
||||
``apt-key(8)`` will last be available in Debian 11 and Ubuntu 22.04.
|
||||
You can use this parameter to force usage of ``apt-key(8)``.
|
||||
Please only use this parameter to *remove* keys from the keyring,
|
||||
in order to prepare for removal of ``apt-key``.
|
||||
Adding keys should be done without this parameter.
|
||||
This parameter will be removed when Debian 11 stops being supported.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
# add a key that has been verified by a type maintainer
|
||||
__apt_key jitsi_meet_2021 \
|
||||
--source cdist-contrib/type/__jitsi_meet/files/apt_2021.gpg
|
||||
|
||||
# remove an old, deprecated or expired key
|
||||
__apt_key jitsi_meet_2016 --state absent
|
||||
|
||||
# Get rid of a key that might have been added to
|
||||
# /etc/apt/trusted.gpg with apt-key
|
||||
__apt_key 0x40976EAF437D05B5 --use-deprecated-apt-key --state absent
|
||||
|
||||
# add a key that we define in-line
|
||||
__apt_key jitsi_meet_2021 --source '-' <<EOF
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
[...]
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
EOF
|
||||
|
||||
# download or update key from the internet
|
||||
__apt_key rabbitmq_2007 \
|
||||
--uri https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||
Ander Punnar <ander-at-kvlt-dot-ee>
|
||||
Evilham <contact~~@~~evilham.com>
|
||||
|
||||
|
||||
COPYING
|
||||
-------
|
||||
Copyright \(C) 2011-2021 Steven Armstrong, Ander Punnar and Evilham. You can
|
||||
redistribute it and/or modify it under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
106
cdist/conf/type/__apt_key/manifest
Executable file
106
cdist/conf/type/__apt_key/manifest
Executable file
|
|
@ -0,0 +1,106 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
__package gnupg
|
||||
|
||||
state_should="$(cat "${__object}/parameter/state")"
|
||||
|
||||
incompatible_args()
|
||||
{
|
||||
cat >> /dev/stderr <<-EOF
|
||||
This type does not support --${1} and --${method} simultaneously.
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ -f "${__object}/parameter/source" ]; then
|
||||
method="source"
|
||||
src="$(cat "${__object}/parameter/source")"
|
||||
if [ "${src}" = "-" ]; then
|
||||
src="${__object}/stdin"
|
||||
fi
|
||||
fi
|
||||
if [ -f "${__object}/parameter/uri" ]; then
|
||||
if [ -n "${method}" ]; then
|
||||
incompatible_args uri
|
||||
fi
|
||||
method="uri"
|
||||
src="$(cat "${__object}/parameter/uri")"
|
||||
fi
|
||||
if [ -f "${__object}/parameter/keyid" ]; then
|
||||
if [ -n "${method}" ]; then
|
||||
incompatible_args keyid
|
||||
fi
|
||||
method="keyid"
|
||||
fi
|
||||
# Keep old default
|
||||
if [ -z "${method}" ]; then
|
||||
method="keyid"
|
||||
fi
|
||||
# Save this for later in gencode-remote
|
||||
echo "${method}" > "${__object}/key_method"
|
||||
|
||||
# Required remotely (most likely already installed)
|
||||
__package dirmngr
|
||||
# We need this in case a key has to be dearmor'd
|
||||
__package gnupg
|
||||
export require="__package/gnupg"
|
||||
|
||||
if [ -f "${__object}/parameter/use-deprecated-apt-key" ]; then
|
||||
# This is required if apt-key(8) is to be used
|
||||
if [ "${method}" = "source" ] || [ "${method}" = "uri" ]; then
|
||||
incompatible_args use-deprecated-apt-key
|
||||
fi
|
||||
else
|
||||
if [ "${state_should}" = "absent" ] && \
|
||||
[ -f "${__object}/parameter/keyid" ]; then
|
||||
cat >> /dev/stderr <<EOF
|
||||
You can't reliably remove by keyid without --use-deprecated-apt-key.
|
||||
This would very likely do something you do not intend.
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
keydir="$(cat "${__object}/parameter/keydir")"
|
||||
keyfile="${keydir}/${__object_id}.gpg"
|
||||
keyfilecdist="${keyfile}.cdist"
|
||||
if [ "${state_should}" != "absent" ]; then
|
||||
# Ensure keydir exists
|
||||
__directory "${keydir}" --state exists --mode 0755
|
||||
fi
|
||||
|
||||
if [ "${state_should}" = "absent" ]; then
|
||||
__file "${keyfile}" --state "absent"
|
||||
__file "${keyfilecdist}" --state "absent"
|
||||
elif [ "${method}" = "source" ] || [ "${method}" = "uri" ]; then
|
||||
dearmor="$(cat <<-EOF
|
||||
if [ '${state_should}' = 'present' ]; then
|
||||
# Dearmor if necessary
|
||||
if grep -Fq 'BEGIN PGP PUBLIC KEY BLOCK' '${keyfilecdist}'; then
|
||||
gpg --dearmor < '${keyfilecdist}' > '${keyfile}'
|
||||
else
|
||||
cp '${keyfilecdist}' '${keyfile}'
|
||||
fi
|
||||
# Ensure permissions
|
||||
chown root '${keyfile}'
|
||||
chmod 0444 '${keyfile}'
|
||||
fi
|
||||
EOF
|
||||
)"
|
||||
|
||||
if [ "${method}" = "uri" ]; then
|
||||
__download "${keyfilecdist}" \
|
||||
--url "${src}" \
|
||||
--onchange "${dearmor}"
|
||||
require="__download${keyfilecdist}" \
|
||||
__file "${keyfile}" \
|
||||
--owner root \
|
||||
--mode 0444 \
|
||||
--state pre-exists
|
||||
else
|
||||
__file "${keyfilecdist}" --state "${state_should}" \
|
||||
--mode 0444 \
|
||||
--source "${src}" \
|
||||
--onchange "${dearmor}"
|
||||
fi
|
||||
fi
|
||||
1
cdist/conf/type/__apt_key/parameter/boolean
Normal file
1
cdist/conf/type/__apt_key/parameter/boolean
Normal file
|
|
@ -0,0 +1 @@
|
|||
use-deprecated-apt-key
|
||||
1
cdist/conf/type/__apt_key/parameter/default/keydir
Normal file
1
cdist/conf/type/__apt_key/parameter/default/keydir
Normal file
|
|
@ -0,0 +1 @@
|
|||
/etc/apt/trusted.gpg.d
|
||||
1
cdist/conf/type/__apt_key/parameter/default/keyserver
Normal file
1
cdist/conf/type/__apt_key/parameter/default/keyserver
Normal file
|
|
@ -0,0 +1 @@
|
|||
pool.sks-keyservers.net
|
||||
1
cdist/conf/type/__apt_key/parameter/default/state
Normal file
1
cdist/conf/type/__apt_key/parameter/default/state
Normal file
|
|
@ -0,0 +1 @@
|
|||
present
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
apt-key(8) will last be available in Debian 11 and Ubuntu 22.04.
|
||||
Use this flag *only* to migrate to placing a keyring directly in the
|
||||
/etc/apt/trusted.gpg.d/ directory with a descriptive name.
|
||||
6
cdist/conf/type/__apt_key/parameter/optional
Normal file
6
cdist/conf/type/__apt_key/parameter/optional
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
keydir
|
||||
keyid
|
||||
keyserver
|
||||
source
|
||||
state
|
||||
uri
|
||||
1
cdist/conf/type/__apt_key_uri/deprecated
Normal file
1
cdist/conf/type/__apt_key_uri/deprecated
Normal file
|
|
@ -0,0 +1 @@
|
|||
Please migrate to using __apt_key key_id --uri URI.
|
||||
32
cdist/conf/type/__apt_key_uri/explorer/state
Executable file
32
cdist/conf/type/__apt_key_uri/explorer/state
Executable file
|
|
@ -0,0 +1,32 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2011-2014 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# Get the current state of the apt key.
|
||||
#
|
||||
|
||||
if [ -f "$__object/parameter/name" ]; then
|
||||
name="$(cat "$__object/parameter/name")"
|
||||
else
|
||||
name="$__object_id"
|
||||
fi
|
||||
|
||||
apt-key list 2> /dev/null | grep -Fqe "$name" \
|
||||
&& echo present \
|
||||
|| echo absent
|
||||
45
cdist/conf/type/__apt_key_uri/gencode-remote
Executable file
45
cdist/conf/type/__apt_key_uri/gencode-remote
Executable file
|
|
@ -0,0 +1,45 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2011-2014 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
if [ -f "$__object/parameter/name" ]; then
|
||||
name="$(cat "$__object/parameter/name")"
|
||||
else
|
||||
name="$__object_id"
|
||||
fi
|
||||
state_should="$(cat "$__object/parameter/state")"
|
||||
state_is="$(cat "$__object/explorer/state")"
|
||||
|
||||
if [ "$state_should" = "$state_is" ]; then
|
||||
# nothing to do
|
||||
exit 0
|
||||
fi
|
||||
|
||||
case "$state_should" in
|
||||
present)
|
||||
uri="$(cat "$__object/parameter/uri")"
|
||||
printf 'curl -s -L "%s" | apt-key add -\n' "$uri"
|
||||
;;
|
||||
absent)
|
||||
cat << DONE
|
||||
keyid=\$(apt-key list | grep -B1 "$name" | awk '/pub/ { print \$2 }' | cut -d'/' -f 2)
|
||||
apt-key del \$keyid
|
||||
DONE
|
||||
;;
|
||||
esac
|
||||
51
cdist/conf/type/__apt_key_uri/man.rst
Normal file
51
cdist/conf/type/__apt_key_uri/man.rst
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
cdist-type__apt_key_uri(7)
|
||||
==========================
|
||||
|
||||
NAME
|
||||
----
|
||||
cdist-type__apt_key_uri - Add apt key from uri
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Download a key from an uri and add it to the apt keyring.
|
||||
|
||||
|
||||
REQUIRED PARAMETERS
|
||||
-------------------
|
||||
uri
|
||||
the uri from which to download the key
|
||||
|
||||
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
state
|
||||
'present' or 'absent', defaults to 'present'
|
||||
|
||||
name
|
||||
a name for this key, used when testing if it is already installed.
|
||||
Defaults to __object_id
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
__apt_key_uri rabbitmq \
|
||||
--name 'RabbitMQ Release Signing Key <info@rabbitmq.com>' \
|
||||
--uri http://www.rabbitmq.com/rabbitmq-signing-key-public.asc \
|
||||
--state present
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||
|
||||
|
||||
COPYING
|
||||
-------
|
||||
Copyright \(C) 2011-2014 Steven Armstrong. You can redistribute it
|
||||
and/or modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
#!/bin/sh -e
|
||||
#
|
||||
# 2010 Nico Schottelius (nico-cdist at schottelius.org)
|
||||
# 2013-2014 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
|
|
@ -17,8 +17,5 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
|
||||
. cdist-config
|
||||
|
||||
collectd
|
||||
__package curl
|
||||
1
cdist/conf/type/__apt_key_uri/parameter/default/state
Normal file
1
cdist/conf/type/__apt_key_uri/parameter/default/state
Normal file
|
|
@ -0,0 +1 @@
|
|||
present
|
||||
2
cdist/conf/type/__apt_key_uri/parameter/optional
Normal file
2
cdist/conf/type/__apt_key_uri/parameter/optional
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
state
|
||||
name
|
||||
1
cdist/conf/type/__apt_key_uri/parameter/required
Normal file
1
cdist/conf/type/__apt_key_uri/parameter/required
Normal file
|
|
@ -0,0 +1 @@
|
|||
uri
|
||||
31
cdist/conf/type/__apt_mark/explorer/apt_version
Executable file
31
cdist/conf/type/__apt_mark/explorer/apt_version
Executable file
|
|
@ -0,0 +1,31 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2016 Ander Punnar (cdist at kvlt.ee)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
apt_version_is=$(dpkg-query --show --showformat '${Version}' apt)
|
||||
|
||||
# from APT changelog:
|
||||
# apt (0.8.14.2) UNRELEASED; urgency=low
|
||||
# provide a 'dpkg --set-selections' wrapper to set/release holds
|
||||
|
||||
apt_version_should=0.8.14.2
|
||||
|
||||
dpkg --compare-versions "$apt_version_should" le "$apt_version_is" \
|
||||
&& echo 0 \
|
||||
|| echo 1
|
||||
30
cdist/conf/type/__apt_mark/explorer/package_installed
Executable file
30
cdist/conf/type/__apt_mark/explorer/package_installed
Executable file
|
|
@ -0,0 +1,30 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2016 Ander Punnar (cdist at kvlt.ee)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
if [ -f "$__object/parameter/name" ]; then
|
||||
name="$(cat "$__object/parameter/name")"
|
||||
else
|
||||
name="$__object_id"
|
||||
fi
|
||||
|
||||
dpkg-query --show --showformat '${Status}' "$name" 2>/dev/null \
|
||||
| grep -Fq 'ok installed' \
|
||||
&& echo 0 \
|
||||
|| echo 1
|
||||
27
cdist/conf/type/__apt_mark/explorer/state
Executable file
27
cdist/conf/type/__apt_mark/explorer/state
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2016 Ander Punnar (cdist at kvlt.ee)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
if [ -f "$__object/parameter/name" ]; then
|
||||
name="$(cat "$__object/parameter/name")"
|
||||
else
|
||||
name="$__object_id"
|
||||
fi
|
||||
|
||||
apt-mark showhold | grep -Fq "$name" && echo hold || echo unhold
|
||||
56
cdist/conf/type/__apt_mark/gencode-remote
Executable file
56
cdist/conf/type/__apt_mark/gencode-remote
Executable file
|
|
@ -0,0 +1,56 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2016 Ander Punnar (cdist at kvlt.ee)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
if [ -f "$__object/parameter/name" ]; then
|
||||
name="$(cat "$__object/parameter/name")"
|
||||
else
|
||||
name="$__object_id"
|
||||
fi
|
||||
|
||||
apt_version="$(cat "$__object/explorer/apt_version")"
|
||||
|
||||
if [ "$apt_version" != '0' ]; then
|
||||
echo 'APT version not supported' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
package_installed="$(cat "$__object/explorer/package_installed")"
|
||||
|
||||
if [ "$package_installed" != '0' ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
state_should="$(cat "$__object/parameter/state")"
|
||||
|
||||
state_is="$(cat "$__object/explorer/state")"
|
||||
|
||||
if [ "$state_should" = "$state_is" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
case "$state_should" in
|
||||
hold|unhold)
|
||||
echo "apt-mark $state_should $name > /dev/null"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown state: $state_should" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
47
cdist/conf/type/__apt_mark/man.rst
Normal file
47
cdist/conf/type/__apt_mark/man.rst
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
cdist-type__apt_mark(7)
|
||||
=======================
|
||||
|
||||
NAME
|
||||
----
|
||||
cdist-type__apt_mark - set package state as 'hold' or 'unhold'
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
See apt-mark(8) for details.
|
||||
|
||||
|
||||
REQUIRED PARAMETERS
|
||||
-------------------
|
||||
state
|
||||
Either "hold" or "unhold".
|
||||
|
||||
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
name
|
||||
If supplied, use the name and not the object id as the package name.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
# hold package
|
||||
__apt_mark quagga --state hold
|
||||
# unhold package
|
||||
__apt_mark quagga --state unhold
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
Ander Punnar <cdist--@--kvlt.ee>
|
||||
|
||||
|
||||
COPYING
|
||||
-------
|
||||
Copyright \(C) 2016 Ander Punnar. You can redistribute it
|
||||
and/or modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
1
cdist/conf/type/__apt_mark/parameter/optional
Normal file
1
cdist/conf/type/__apt_mark/parameter/optional
Normal file
|
|
@ -0,0 +1 @@
|
|||
name
|
||||
1
cdist/conf/type/__apt_mark/parameter/required
Normal file
1
cdist/conf/type/__apt_mark/parameter/required
Normal file
|
|
@ -0,0 +1 @@
|
|||
state
|
||||
43
cdist/conf/type/__apt_norecommends/man.rst
Normal file
43
cdist/conf/type/__apt_norecommends/man.rst
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
cdist-type__apt_norecommends(7)
|
||||
===============================
|
||||
|
||||
NAME
|
||||
----
|
||||
cdist-type__apt_norecommends - Configure apt to not install recommended packages
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Configure apt to not install any recommended or suggested packages.
|
||||
|
||||
|
||||
REQUIRED PARAMETERS
|
||||
-------------------
|
||||
None.
|
||||
|
||||
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
None.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
__apt_norecommends
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||
Dennis Camera <dennis.camera--@--ssrq-sds-fds.ch>
|
||||
|
||||
|
||||
COPYING
|
||||
-------
|
||||
Copyright \(C) 2014 Steven Armstrong, 2020 Dennis Camera.
|
||||
You can redistribute it and/or modify it under the terms of the GNU General
|
||||
Public License as published by the Free Software Foundation, either version 3 of
|
||||
the License, or (at your option) any later version.
|
||||
47
cdist/conf/type/__apt_norecommends/manifest
Executable file
47
cdist/conf/type/__apt_norecommends/manifest
Executable file
|
|
@ -0,0 +1,47 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2014 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
# 2020 Dennis Camera (dennis.camera at ssrq-sds-fds.ch)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
|
||||
os=$(cat "${__global:?}/explorer/os")
|
||||
|
||||
case ${os}
|
||||
in
|
||||
(ubuntu|debian|devuan)
|
||||
__file /etc/apt/apt.conf.d/00InstallRecommends --state present \
|
||||
--owner root --group root --mode 0644 --source - <<-'EOF'
|
||||
APT::Install-Recommends "false";
|
||||
APT::Install-Suggests "false";
|
||||
APT::AutoRemove::RecommendsImportant "false";
|
||||
APT::AutoRemove::SuggestsImportant "false";
|
||||
EOF
|
||||
|
||||
# TODO: Remove the following object after some time
|
||||
require=__file/etc/apt/apt.conf.d/00InstallRecommends \
|
||||
__file /etc/apt/apt.conf.d/99-no-recommends --state absent
|
||||
;;
|
||||
(*)
|
||||
cat >&2 <<EOF
|
||||
The developer of this type (${__type##*/}) did not think your operating system
|
||||
($os) would have any use for it. If you think otherwise please submit a patch.
|
||||
EOF
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
0
cdist/conf/type/__apt_norecommends/singleton
Normal file
0
cdist/conf/type/__apt_norecommends/singleton
Normal file
79
cdist/conf/type/__apt_pin/man.rst
Normal file
79
cdist/conf/type/__apt_pin/man.rst
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
cdist-type__apt_pin(7)
|
||||
======================
|
||||
|
||||
NAME
|
||||
----
|
||||
cdist-type__apt_pin - Manage apt pinning rules
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Adds/removes/edits rules to pin some packages to a specific distribution. Useful if using multiple debian repositories at the same time. (Useful, if one wants to use a few specific packages from backports or perhaps Debain testing... or even sid.)
|
||||
|
||||
|
||||
REQUIRED PARAMETERS
|
||||
-------------------
|
||||
distribution
|
||||
Specifies what distribution the package should be pinned to. Accepts both codenames (buster/bullseye/sid) and suite names (stable/testing/...).
|
||||
|
||||
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
package
|
||||
Package name, glob or regular expression to match (multiple) packages. If not specified `__object_id` is used.
|
||||
|
||||
priority
|
||||
The priority value to assign to matching packages. Deafults to 500. (To match the default target distro's priority)
|
||||
|
||||
state
|
||||
Will be passed to underlying `__file` type; see there for valid values and defaults.
|
||||
|
||||
|
||||
|
||||
BOOLEAN PARAMETERS
|
||||
------------------
|
||||
None.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
# Add the bullseye repo to buster, but do not install any packages by default,
|
||||
# only if explicitely asked for (-1 means "never" for apt)
|
||||
__apt_pin bullseye-default \
|
||||
--package "*" \
|
||||
--distribution bullseye \
|
||||
--priority -1
|
||||
|
||||
require="__apt_pin/bullseye-default" __apt_source bullseye \
|
||||
--uri http://deb.debian.org/debian/ \
|
||||
--distribution bullseye \
|
||||
--component main
|
||||
|
||||
__apt_pin foo --package "foo foo-*" --distribution bullseye
|
||||
|
||||
__foo # Assuming, this installs the `foo` package internally
|
||||
|
||||
__package foo-plugin-extras # Assuming we also need some extra stuff
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
:strong:`apt_preferences`\ (5)
|
||||
:strong:`cdist-type__apt_source`\ (7)
|
||||
:strong:`cdist-type__apt_backports`\ (7)
|
||||
:strong:`cdist-type__file`\ (7)
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
Daniel Fancsali <fancsali@gmail.com>
|
||||
|
||||
|
||||
COPYING
|
||||
-------
|
||||
Copyright \(C) 2021 Daniel Fancsali. You can redistribute it
|
||||
and/or modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
68
cdist/conf/type/__apt_pin/manifest
Executable file
68
cdist/conf/type/__apt_pin/manifest
Executable file
|
|
@ -0,0 +1,68 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2021 Daniel Fancsali (fancsali@gmail.com)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
|
||||
name="$__object_id"
|
||||
|
||||
os=$(cat "$__global/explorer/os")
|
||||
state="$(cat "$__object/parameter/state")"
|
||||
|
||||
if [ -f "$__object/parameter/package" ]; then
|
||||
package="$(cat "$__object/parameter/package")"
|
||||
else
|
||||
package=$name
|
||||
fi
|
||||
|
||||
distribution="$(cat "$__object/parameter/distribution")"
|
||||
priority="$(cat "$__object/parameter/priority")"
|
||||
|
||||
|
||||
case "$os" in
|
||||
debian|ubuntu|devuan)
|
||||
;;
|
||||
*)
|
||||
printf "This type is specific to Debian and it's derivatives" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
case $distribution in
|
||||
stable|testing|unstable|experimental)
|
||||
pin="release a=$distribution"
|
||||
;;
|
||||
*)
|
||||
pin="release n=$distribution"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
__file "/etc/apt/preferences.d/$name" \
|
||||
--owner root --group root --mode 0644 \
|
||||
--state "$state" \
|
||||
--source - << EOF
|
||||
# Created by cdist ${__type##*/}
|
||||
# Do not change. Changes will be overwritten.
|
||||
#
|
||||
|
||||
# $name
|
||||
Package: $package
|
||||
Pin: $pin
|
||||
Pin-Priority: $priority
|
||||
EOF
|
||||
0
cdist/conf/type/__apt_pin/nonparallel
Normal file
0
cdist/conf/type/__apt_pin/nonparallel
Normal file
1
cdist/conf/type/__apt_pin/parameter/default/priority
Normal file
1
cdist/conf/type/__apt_pin/parameter/default/priority
Normal file
|
|
@ -0,0 +1 @@
|
|||
500
|
||||
1
cdist/conf/type/__apt_pin/parameter/default/state
Normal file
1
cdist/conf/type/__apt_pin/parameter/default/state
Normal file
|
|
@ -0,0 +1 @@
|
|||
present
|
||||
3
cdist/conf/type/__apt_pin/parameter/optional
Normal file
3
cdist/conf/type/__apt_pin/parameter/optional
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
state
|
||||
package
|
||||
priority
|
||||
1
cdist/conf/type/__apt_pin/parameter/required
Normal file
1
cdist/conf/type/__apt_pin/parameter/required
Normal file
|
|
@ -0,0 +1 @@
|
|||
distribution
|
||||
34
cdist/conf/type/__apt_ppa/explorer/state
Executable file
34
cdist/conf/type/__apt_ppa/explorer/state
Executable file
|
|
@ -0,0 +1,34 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# Get the current state of the ppa.
|
||||
#
|
||||
|
||||
name="$__object_id"
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
. /etc/lsb-release
|
||||
|
||||
repo_name="${name#ppa:}"
|
||||
repo_file_name="$(echo "$repo_name" | sed -e 's|[/:]|-|' -e 's|\.|_|')-${DISTRIB_CODENAME}.list"
|
||||
|
||||
[ -s "/etc/apt/sources.list.d/${repo_file_name}" ] \
|
||||
&& echo present || echo absent
|
||||
|
||||
37
cdist/conf/type/__apt_ppa/gencode-remote
Executable file
37
cdist/conf/type/__apt_ppa/gencode-remote
Executable file
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
name="$__object_id"
|
||||
state_should="$(cat "$__object/parameter/state")"
|
||||
state_is="$(cat "$__object/explorer/state")"
|
||||
|
||||
if [ "$state_should" = "$state_is" ]; then
|
||||
# Nothing to do, move along
|
||||
exit 0
|
||||
fi
|
||||
|
||||
case "$state_should" in
|
||||
present)
|
||||
echo "add-apt-repository -y '$name'"
|
||||
;;
|
||||
absent)
|
||||
echo "add-apt-repository -r -y '$name'"
|
||||
;;
|
||||
esac
|
||||
50
cdist/conf/type/__apt_ppa/man.rst
Normal file
50
cdist/conf/type/__apt_ppa/man.rst
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
cdist-type__apt_ppa(7)
|
||||
======================
|
||||
|
||||
NAME
|
||||
----
|
||||
cdist-type__apt_ppa - Manage ppa repositories
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
This cdist type allows manage ubuntu ppa repositories.
|
||||
|
||||
|
||||
REQUIRED PARAMETERS
|
||||
-------------------
|
||||
state
|
||||
The state the ppa should be in, either 'present' or 'absent'.
|
||||
Defaults to 'present'
|
||||
|
||||
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
None.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
# Enable a ppa repository
|
||||
__apt_ppa ppa:sans-intern/missing-bits
|
||||
# same as
|
||||
__apt_ppa ppa:sans-intern/missing-bits --state present
|
||||
|
||||
# Disable a ppa repository
|
||||
__apt_ppa ppa:sans-intern/missing-bits --state absent
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||
|
||||
|
||||
COPYING
|
||||
-------
|
||||
Copyright \(C) 2011-2014 Steven Armstrong. You can redistribute it
|
||||
and/or modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
23
cdist/conf/type/__apt_ppa/manifest
Executable file
23
cdist/conf/type/__apt_ppa/manifest
Executable file
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# 2011-2016 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
__package software-properties-common
|
||||
|
||||
require="$__object_name" __apt_update_index
|
||||
1
cdist/conf/type/__apt_ppa/parameter/default/state
Normal file
1
cdist/conf/type/__apt_ppa/parameter/default/state
Normal file
|
|
@ -0,0 +1 @@
|
|||
present
|
||||
1
cdist/conf/type/__apt_ppa/parameter/optional
Normal file
1
cdist/conf/type/__apt_ppa/parameter/optional
Normal file
|
|
@ -0,0 +1 @@
|
|||
state
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue