Compare commits
5427 Commits
move-out-s
...
multiplaye
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
595933d046 | ||
|
|
789426f80e | ||
|
|
d218af8619 | ||
|
|
29ed5b2792 | ||
|
|
e39216e65a | ||
|
|
7ac7f9b4c8 | ||
|
|
4709eb9d49 | ||
|
|
c13b8266dd | ||
|
|
bd58431603 | ||
|
|
3075b82792 | ||
|
|
240082481f | ||
|
|
ea95552285 | ||
|
|
5358b06123 | ||
|
|
99391431da | ||
|
|
d396f50a9a | ||
|
|
affa8ea42b | ||
|
|
d711b01fe5 | ||
|
|
6e7fa6f921 | ||
|
|
343cde75a2 | ||
|
|
2dc446e45b | ||
|
|
884b7fa16a | ||
|
|
173e065b68 | ||
|
|
9a3cb0b2b5 | ||
|
|
6beae5a806 | ||
|
|
66f4008bb8 | ||
|
|
a0636632a1 | ||
|
|
5dfa47ab6c | ||
|
|
e9efe493f9 | ||
|
|
3bd782e62a | ||
|
|
963fe87f14 | ||
|
|
ade4679e8c | ||
|
|
40060a470b | ||
|
|
a6e8fbb54a | ||
|
|
410b938442 | ||
|
|
ab7e9f94fa | ||
|
|
28e9ccd372 | ||
|
|
9a66d9addd | ||
|
|
8843bda477 | ||
|
|
3278303eec | ||
|
|
f5fd6e3a36 | ||
|
|
a173e8e70f | ||
|
|
19dcc3a683 | ||
|
|
20d067c1ea | ||
|
|
9526566799 | ||
|
|
0b9dd82c91 | ||
|
|
19213434f9 | ||
|
|
014691346a | ||
|
|
6738b95c29 | ||
|
|
6a8230ec1e | ||
|
|
5679d264b6 | ||
|
|
b20c5f3a8d | ||
|
|
014f206e9c | ||
|
|
068b93befa | ||
|
|
65d8872cea | ||
|
|
bffd1d61b2 | ||
|
|
4788b81220 | ||
|
|
9a07fc03c6 | ||
|
|
954f518030 | ||
|
|
9f8ff71757 | ||
|
|
06dd59dc81 | ||
|
|
37265cf4ef | ||
|
|
2531a5283a | ||
|
|
4cc1a5d846 | ||
|
|
8a63275989 | ||
|
|
2d3e5f4ce0 | ||
|
|
5135545c6c | ||
|
|
fef93818c9 | ||
|
|
7fc64a84e8 | ||
|
|
02f7cdd5aa | ||
|
|
d7dcceef60 | ||
|
|
ae5e1570ae | ||
|
|
50baad9624 | ||
|
|
fc0041bd91 | ||
|
|
4498e4100e | ||
|
|
4f1e4faede | ||
|
|
3ca045394a | ||
|
|
9a19a1113e | ||
|
|
1cd550022b | ||
|
|
bad08bafd7 | ||
|
|
f041a21f22 | ||
|
|
712d78ca39 | ||
|
|
93f2910bd2 | ||
|
|
d0ef12c486 | ||
|
|
241fd09053 | ||
|
|
208dd2a457 | ||
|
|
e34ee44b21 | ||
|
|
d5f59307b7 | ||
|
|
64136cc565 | ||
|
|
3e2508c740 | ||
|
|
0853cd65b2 | ||
|
|
01802c817b | ||
|
|
7e10093bb8 | ||
|
|
179032cd4d | ||
|
|
6a6f0d04d6 | ||
|
|
add4d9758c | ||
|
|
a0d3ea62b2 | ||
|
|
54c17c3175 | ||
|
|
80e60538e2 | ||
|
|
84a76909e2 | ||
|
|
033405fdbc | ||
|
|
9444009a9b | ||
|
|
29e9def314 | ||
|
|
8832a1aa20 | ||
|
|
5beb6dbeee | ||
|
|
1261d26b23 | ||
|
|
0b9dd11fff | ||
|
|
08a607aa6a | ||
|
|
e12efc320b | ||
|
|
3ded9de803 | ||
|
|
d5b424910f | ||
|
|
d94d13737f | ||
|
|
b1fa4918e3 | ||
|
|
742aa2fa0d | ||
|
|
ce133c1c04 | ||
|
|
e4dc1779c3 | ||
|
|
22b4ab6bb2 | ||
|
|
7447e88a50 | ||
|
|
a193b79d3d | ||
|
|
da380f7464 | ||
|
|
2dcff51125 | ||
|
|
b50e0533eb | ||
|
|
711545539f | ||
|
|
a6cbceed28 | ||
|
|
269cf02c0b | ||
|
|
837d17ab65 | ||
|
|
eff31c4bdc | ||
|
|
6a8f653b73 | ||
|
|
0cdb36f73d | ||
|
|
db249356e6 | ||
|
|
d509c1a57c | ||
|
|
fb50e2772a | ||
|
|
058c97138a | ||
|
|
828ae29aed | ||
|
|
6a0f45140c | ||
|
|
50a267528d | ||
|
|
220786be60 | ||
|
|
fa78bb3d78 | ||
|
|
9a32ebd0c0 | ||
|
|
4643f5e8cc | ||
|
|
7de0984d6d | ||
|
|
635334f096 | ||
|
|
f0d0990b5a | ||
|
|
43b3589451 | ||
|
|
016a19ba7c | ||
|
|
6802539ccc | ||
|
|
74efaa3c2d | ||
|
|
a5223709ba | ||
|
|
2291dc6132 | ||
|
|
aeb79bce2a | ||
|
|
0ab9b9a5fd | ||
|
|
56e58521bd | ||
|
|
b2548c158d | ||
|
|
5a48d6d4cd | ||
|
|
b10ef4c98c | ||
|
|
3ff038fb98 | ||
|
|
adb498af24 | ||
|
|
fc67a2efc2 | ||
|
|
55771c7241 | ||
|
|
109fa5f04e | ||
|
|
1f412f3d78 | ||
|
|
2b69f52c92 | ||
|
|
6e90798f16 | ||
|
|
3994b404a1 | ||
|
|
0b7e8ec323 | ||
|
|
bb0b547d5a | ||
|
|
1e1acc7ad7 | ||
|
|
1419432b04 | ||
|
|
1a521d7e09 | ||
|
|
5858d2789a | ||
|
|
6a1e4fac5a | ||
|
|
bab6e57a59 | ||
|
|
4ed53fb622 | ||
|
|
e17775c435 | ||
|
|
7ee2b93b10 | ||
|
|
565c212779 | ||
|
|
b54e9d8d55 | ||
|
|
cc611a7a02 | ||
|
|
861c89a0cc | ||
|
|
4268a04a04 | ||
|
|
9bd7131914 | ||
|
|
8485ca254f | ||
|
|
507f9b68eb | ||
|
|
f7b726372f | ||
|
|
14811b5aec | ||
|
|
1a9c34fe40 | ||
|
|
ff8eb0ec2b | ||
|
|
c24f05c2cd | ||
|
|
d2dc1fcc80 | ||
|
|
97e05c8784 | ||
|
|
26cb03da42 | ||
|
|
d5a8b1592c | ||
|
|
5b096bfd5e | ||
|
|
a1e242ec1e | ||
|
|
5b9d002f56 | ||
|
|
dd57323889 | ||
|
|
6620679008 | ||
|
|
f93654f680 | ||
|
|
1bef0c32a2 | ||
|
|
f66b48e586 | ||
|
|
a5725c59fd | ||
|
|
4168bbb751 | ||
|
|
b0086edcf9 | ||
|
|
89c2efe17d | ||
|
|
9030b7d27c | ||
|
|
de5111b13f | ||
|
|
8600f4131e | ||
|
|
8a8245b560 | ||
|
|
58e2fcbeee | ||
|
|
282bb6c414 | ||
|
|
931a2344b4 | ||
|
|
dd3c75d298 | ||
|
|
962fc5990e | ||
|
|
eb2f57fc0d | ||
|
|
4a4a15de93 | ||
|
|
ce5b6a8024 | ||
|
|
0773edcaff | ||
|
|
68dcf7bceb | ||
|
|
a007ab7f2e | ||
|
|
d876146ea5 | ||
|
|
50627cd697 | ||
|
|
3a6b1e86dc | ||
|
|
6a4d293352 | ||
|
|
1ad4fe44e2 | ||
|
|
59ea7a4f70 | ||
|
|
6c64ba45c2 | ||
|
|
c68cc4ac19 | ||
|
|
84ed88c8dd | ||
|
|
d7345d5bc6 | ||
|
|
7b01457038 | ||
|
|
54e6d60fe5 | ||
|
|
f0a9b0cf69 | ||
|
|
26ddb5c1b7 | ||
|
|
82f8b64599 | ||
|
|
7f24de442f | ||
|
|
c3536fd7c7 | ||
|
|
8365310ca7 | ||
|
|
aaed9882b8 | ||
|
|
8f5ebfcede | ||
|
|
83279df0fa | ||
|
|
2550da9c6e | ||
|
|
041f00b811 | ||
|
|
21cd4aaeb6 | ||
|
|
70ce1e648d | ||
|
|
eab5a9772b | ||
|
|
74ff0599d1 | ||
|
|
c2710f4f6f | ||
|
|
20187b51b1 | ||
|
|
4be6d57d98 | ||
|
|
c31e622160 | ||
|
|
1828d8a279 | ||
|
|
70ea5c839a | ||
|
|
a77f8cc3e9 | ||
|
|
0b0f1f8701 | ||
|
|
e1f2e0656b | ||
|
|
ea4c0cdbee | ||
|
|
b5e955bd5e | ||
|
|
7197153fd5 | ||
|
|
b9c1dedab3 | ||
|
|
918943816f | ||
|
|
b4b5d296d9 | ||
|
|
d287b8867b | ||
|
|
0e8d312794 | ||
|
|
c584d51432 | ||
|
|
2366b4508f | ||
|
|
2f1565fbc9 | ||
|
|
7fd0ecf721 | ||
|
|
37d1539fda | ||
|
|
1e518396d6 | ||
|
|
617b98ed49 | ||
|
|
6d2a870812 | ||
|
|
2963f3f1b8 | ||
|
|
17e4bdbff1 | ||
|
|
f3dd5770d9 | ||
|
|
eebab4a921 | ||
|
|
b06494c5be | ||
|
|
a0562bef81 | ||
|
|
33cf34f7c7 | ||
|
|
eff063a748 | ||
|
|
94abaaff1e | ||
|
|
03732869e4 | ||
|
|
41868e2652 | ||
|
|
81bfba3cea | ||
|
|
8a04eb2e29 | ||
|
|
1777fc749d | ||
|
|
fd32ee09ff | ||
|
|
4bb2157cab | ||
|
|
47f20cc86a | ||
|
|
5fc4526c70 | ||
|
|
9fe653f821 | ||
|
|
55da21ed15 | ||
|
|
7ebf84f38c | ||
|
|
d42e75ebd0 | ||
|
|
28825049fe | ||
|
|
1c3644e338 | ||
|
|
2dfabb523b | ||
|
|
3e2d20e536 | ||
|
|
ee7ee083b0 | ||
|
|
fb54c05d9f | ||
|
|
21f807aa66 | ||
|
|
6b088bda12 | ||
|
|
a32ee869ae | ||
|
|
a2d7772958 | ||
|
|
6ec052be18 | ||
|
|
9c71d52d69 | ||
|
|
171c146ec5 | ||
|
|
bc6afa2164 | ||
|
|
3c036257ef | ||
|
|
6633730bf1 | ||
|
|
2964a4da5e | ||
|
|
febc769df5 | ||
|
|
a55554193b | ||
|
|
d2a8338d4a | ||
|
|
e945deeab6 | ||
|
|
722fe02933 | ||
|
|
3dec609459 | ||
|
|
ea483218ea | ||
|
|
c8f3ad8ac7 | ||
|
|
e73b9f646d | ||
|
|
3cea6400d1 | ||
|
|
7916dc9c05 | ||
|
|
3123a5ee51 | ||
|
|
c6a8eee73d | ||
|
|
5b5b06cc06 | ||
|
|
74d431ea36 | ||
|
|
409a559a13 | ||
|
|
6829535350 | ||
|
|
6488111f79 | ||
|
|
923339c1d8 | ||
|
|
3f4d96f4cd | ||
|
|
c52985d245 | ||
|
|
88e6c71aa0 | ||
|
|
4d08e297c4 | ||
|
|
f49f692ffa | ||
|
|
ad2b30691f | ||
|
|
369bad01b8 | ||
|
|
b6ecc6d9ea | ||
|
|
0117df0960 | ||
|
|
6ac905f264 | ||
|
|
10ce681d46 | ||
|
|
e5307f6604 | ||
|
|
8d9b6dd859 | ||
|
|
01821ead0f | ||
|
|
08c6ea94cb | ||
|
|
1451fb9e2f | ||
|
|
245751bb23 | ||
|
|
f07519c705 | ||
|
|
fea1da5542 | ||
|
|
33a978a246 | ||
|
|
32e8f4eac6 | ||
|
|
bfe5a8a986 | ||
|
|
f2cb5ea44e | ||
|
|
861dc0c383 | ||
|
|
60593fed4a | ||
|
|
c7335ed25b | ||
|
|
fae3a5c26a | ||
|
|
1a52c0adfc | ||
|
|
5fda57c730 | ||
|
|
3df3096bb4 | ||
|
|
bb10d5bb94 | ||
|
|
1704ab7454 | ||
|
|
3275a76fb0 | ||
|
|
81937ddc45 | ||
|
|
9fd929ac1e | ||
|
|
44c0bbc61e | ||
|
|
5ac50fae3a | ||
|
|
c48a15c915 | ||
|
|
ee48a2f2bf | ||
|
|
eb940d6d57 | ||
|
|
680d5b8216 | ||
|
|
c9320c190d | ||
|
|
566c667c5d | ||
|
|
ec6e42e655 | ||
|
|
bba6b6f71d | ||
|
|
c261f6625a | ||
|
|
9091935d77 | ||
|
|
a489b270d1 | ||
|
|
51cb61940d | ||
|
|
34e8d2b051 | ||
|
|
0c2ab13c48 | ||
|
|
9489953a8f | ||
|
|
ce2f896b45 | ||
|
|
6635ff9a69 | ||
|
|
41797f8cef | ||
|
|
797cea5394 | ||
|
|
2880d4120e | ||
|
|
b0136d03ea | ||
|
|
9fe73645ad | ||
|
|
58dec7b9b0 | ||
|
|
b0f900e25d | ||
|
|
fc54848318 | ||
|
|
2f9f8cda81 | ||
|
|
667e7ab8dc | ||
|
|
4e55408fed | ||
|
|
88aa61ea77 | ||
|
|
2ccdeb968c | ||
|
|
90045683c9 | ||
|
|
eb49b01cbc | ||
|
|
3a6062775e | ||
|
|
718a7bfc26 | ||
|
|
27ca30aa82 | ||
|
|
54d4079457 | ||
|
|
01b0bf1a36 | ||
|
|
e1cecc9601 | ||
|
|
8e1a21e682 | ||
|
|
d84cdca43e | ||
|
|
1c6dcd373d | ||
|
|
4410ce1486 | ||
|
|
4c13f5a0af | ||
|
|
f5a9942d5e | ||
|
|
ee2d91fb4a | ||
|
|
6ca41ba69d | ||
|
|
7f9d142038 | ||
|
|
44a1f83b26 | ||
|
|
cef3a01042 | ||
|
|
0c042abcab | ||
|
|
d9bbac20f3 | ||
|
|
a48c57dd17 | ||
|
|
77b235655c | ||
|
|
8dc0261993 | ||
|
|
65d2ad68d3 | ||
|
|
52fde088e9 | ||
|
|
ab6d537c3e | ||
|
|
3a6078a56a | ||
|
|
b0c3fefcab | ||
|
|
2bc739194e | ||
|
|
afb06e8c9a | ||
|
|
2c1274ff76 | ||
|
|
e18721a03e | ||
|
|
25120e44ce | ||
|
|
aea32cc279 | ||
|
|
ce0feb2f42 | ||
|
|
12a1c5c2f4 | ||
|
|
d307968880 | ||
|
|
1f98d19f77 | ||
|
|
9a934c941f | ||
|
|
dbc7284b97 | ||
|
|
de63e17a4d | ||
|
|
1bad643b30 | ||
|
|
57c44d4b18 | ||
|
|
7d06133787 | ||
|
|
261998201b | ||
|
|
9a899b929e | ||
|
|
46b15a51d4 | ||
|
|
5fcace8776 | ||
|
|
a12826e719 | ||
|
|
0dc024c722 | ||
|
|
f6f36c5599 | ||
|
|
18bd318da2 | ||
|
|
e1712073c9 | ||
|
|
2478a7194e | ||
|
|
89b8e88df3 | ||
|
|
a7e80f351a | ||
|
|
c39d3db121 | ||
|
|
e7f9e61f2a | ||
|
|
3047ed1253 | ||
|
|
cf0c7ce583 | ||
|
|
206211f9ef | ||
|
|
8220ff8a35 | ||
|
|
927fc5424b | ||
|
|
64b94c68d3 | ||
|
|
3391d18942 | ||
|
|
1414fed776 | ||
|
|
f884cb015a | ||
|
|
7e6a96db87 | ||
|
|
966bbe2856 | ||
|
|
2137211d42 | ||
|
|
cc5533c183 | ||
|
|
19787e5d28 | ||
|
|
6e46666895 | ||
|
|
a87d7276c5 | ||
|
|
c630b4f770 | ||
|
|
f719e5ad49 | ||
|
|
20557f20db | ||
|
|
66144c1eb5 | ||
|
|
054d6870d5 | ||
|
|
04aa4897fe | ||
|
|
72b22a4845 | ||
|
|
3fd2b5f4e1 | ||
|
|
8a4128defb | ||
|
|
9542c22191 | ||
|
|
15b8d79489 | ||
|
|
97470e94f1 | ||
|
|
37a518b655 | ||
|
|
312b2f8ddb | ||
|
|
9caa6a3553 | ||
|
|
6c597bba5b | ||
|
|
0dd771351d | ||
|
|
f7b64b101e | ||
|
|
ec86ec188b | ||
|
|
2b01a3fcd3 | ||
|
|
9540502d06 | ||
|
|
792dedb1f1 | ||
|
|
0bf1343442 | ||
|
|
4d3e3a73fd | ||
|
|
1ffef393c2 | ||
|
|
8b7b3e22d7 | ||
|
|
877aa75e4e | ||
|
|
d21c0758b1 | ||
|
|
21be329008 | ||
|
|
e7b27ce7fb | ||
|
|
fb2c0e5441 | ||
|
|
29898ea68f | ||
|
|
9dcb8a729c | ||
|
|
b66237efa8 | ||
|
|
6d2f855227 | ||
|
|
638aa0372b | ||
|
|
d5baa402c8 | ||
|
|
ec7e594ec1 | ||
|
|
3fad690d1e | ||
|
|
15973768e2 | ||
|
|
0d73a4b013 | ||
|
|
50f11faf1f | ||
|
|
cfb7406fb8 | ||
|
|
9008f063c3 | ||
|
|
368ac4ed5c | ||
|
|
6ac2e703a6 | ||
|
|
cd9a5f112a | ||
|
|
f3847a17f3 | ||
|
|
1fa4aaf706 | ||
|
|
db108a37cf | ||
|
|
a3e41d4f35 | ||
|
|
80e33489d9 | ||
|
|
271b1327c7 | ||
|
|
5d990ff4c5 | ||
|
|
69aacc6256 | ||
|
|
a5066d529f | ||
|
|
5bf034f3c1 | ||
|
|
0743ff371c | ||
|
|
7481b78b16 | ||
|
|
bd589aa140 | ||
|
|
8fa1d4def5 | ||
|
|
fe3626035c | ||
|
|
c4019bd91d | ||
|
|
18e1b670ca | ||
|
|
cd76c934b6 | ||
|
|
db98641a32 | ||
|
|
59745fec0b | ||
|
|
8bcaea7830 | ||
|
|
56ed32e4a1 | ||
|
|
3209777aba | ||
|
|
11f9ad8ca3 | ||
|
|
26fc942c79 | ||
|
|
f196493402 | ||
|
|
1c5fdb6ab6 | ||
|
|
3ed530ed9e | ||
|
|
8db2972288 | ||
|
|
51a0b68d8e | ||
|
|
2fdbe12a7f | ||
|
|
2448e137c8 | ||
|
|
33899763ef | ||
|
|
d8f4f92e1d | ||
|
|
ce679f90ee | ||
|
|
8fb379079b | ||
|
|
b382d048de | ||
|
|
610cb170e7 | ||
|
|
4d9fcaeebf | ||
|
|
aa0225f59f | ||
|
|
2571949e90 | ||
|
|
20d2c11154 | ||
|
|
3f604e9d93 | ||
|
|
234e92db12 | ||
|
|
01c56f6515 | ||
|
|
026be5a990 | ||
|
|
aafb86ef09 | ||
|
|
1a24efe85d | ||
|
|
1ad67d5c73 | ||
|
|
0b3f7dbb1f | ||
|
|
e90007860c | ||
|
|
3b38669c04 | ||
|
|
74ab03288b | ||
|
|
502dacd865 | ||
|
|
31bc99cd61 | ||
|
|
5435c9ebd2 | ||
|
|
ceb9a320ba | ||
|
|
ee8b2a0b58 | ||
|
|
8202f1b7c6 | ||
|
|
4808cac89d | ||
|
|
c1ea3380eb | ||
|
|
694fdebc71 | ||
|
|
1cbd910e5d | ||
|
|
b102ef512e | ||
|
|
220a621dc6 | ||
|
|
0db288e6dc | ||
|
|
f8175fc325 | ||
|
|
5eee38e7de | ||
|
|
fb5b470966 | ||
|
|
876053f858 | ||
|
|
9714ef19de | ||
|
|
613a345771 | ||
|
|
4fe29dd33f | ||
|
|
4b24223290 | ||
|
|
a78da0db1e | ||
|
|
5e4fce1e12 | ||
|
|
4cb2624a5d | ||
|
|
58e045f25d | ||
|
|
26a770e490 | ||
|
|
dfe145a0ed | ||
|
|
6cb4c9224d | ||
|
|
4047612b96 | ||
|
|
1978a360af | ||
|
|
1f46b3fda9 | ||
|
|
47a945d92e | ||
|
|
59ec87a393 | ||
|
|
9423104dad | ||
|
|
614834090e | ||
|
|
2f9523a586 | ||
|
|
3a9f38a873 | ||
|
|
0697c26dd1 | ||
|
|
cfa25dc655 | ||
|
|
b3498a888d | ||
|
|
0528c12782 | ||
|
|
e19b60b202 | ||
|
|
0ed274f994 | ||
|
|
e8378b382b | ||
|
|
e6c12a0c54 | ||
|
|
70620ad12d | ||
|
|
991f13e704 | ||
|
|
14bbe79651 | ||
|
|
2388232179 | ||
|
|
11ded1e497 | ||
|
|
9479b56549 | ||
|
|
90e32f52c9 | ||
|
|
ce6a4845f2 | ||
|
|
0f5cf1d51c | ||
|
|
c2812b05a4 | ||
|
|
5d698d66d0 | ||
|
|
1a149592d6 | ||
|
|
5e2e0b2e39 | ||
|
|
7a4f48e4fb | ||
|
|
2ae2ec2578 | ||
|
|
a790136164 | ||
|
|
e6c454bba5 | ||
|
|
b904c23e4d | ||
|
|
ece3eb2e7b | ||
|
|
18610bb540 | ||
|
|
69d643942c | ||
|
|
6e1b298282 | ||
|
|
c2387777c9 | ||
|
|
32a49a1ef1 | ||
|
|
4b88775183 | ||
|
|
29db82625f | ||
|
|
2b6c9e3439 | ||
|
|
a7e0444e92 | ||
|
|
e9e32550df | ||
|
|
59b059f06f | ||
|
|
42166f5fc4 | ||
|
|
eefe69d136 | ||
|
|
aabaf7c5e2 | ||
|
|
9ea4853c89 | ||
|
|
3b5e21761b | ||
|
|
2d76bf29cf | ||
|
|
a684ec235f | ||
|
|
c21f7abe4e | ||
|
|
8c191263c0 | ||
|
|
47005043a5 | ||
|
|
1e36ba8429 | ||
|
|
2679ff277c | ||
|
|
0e52271ba9 | ||
|
|
57359d1659 | ||
|
|
2253417459 | ||
|
|
9e3f148273 | ||
|
|
7e9042e9f7 | ||
|
|
dee68b903c | ||
|
|
67c5a248ad | ||
|
|
940512fb2c | ||
|
|
e8ddee24a9 | ||
|
|
be4eab65f6 | ||
|
|
fb5ffa1c31 | ||
|
|
aff0bd3f6a | ||
|
|
c0650cc0f5 | ||
|
|
02c7d014cb | ||
|
|
e29479fd25 | ||
|
|
46ae66c8b2 | ||
|
|
20abe4a40c | ||
|
|
55a9a29f76 | ||
|
|
67dd7e30fa | ||
|
|
e9a08af73b | ||
|
|
08b1ef2766 | ||
|
|
667d8673d4 | ||
|
|
d44ea9d558 | ||
|
|
86dfe86813 | ||
|
|
b129e11c8f | ||
|
|
246409970d | ||
|
|
bd7b3bb4d7 | ||
|
|
841f1849c8 | ||
|
|
00e7e4d43c | ||
|
|
ee43a845aa | ||
|
|
a7cc66af93 | ||
|
|
f8701cfed0 | ||
|
|
6b205bf303 | ||
|
|
07729247ac | ||
|
|
792b310fad | ||
|
|
ed2c9d24e8 | ||
|
|
f917212d67 | ||
|
|
6fbcec8b98 | ||
|
|
c30e57c31d | ||
|
|
674c9f0405 | ||
|
|
e16d5cf83d | ||
|
|
df3dc36874 | ||
|
|
7b71d8d212 | ||
|
|
2eaae4b83f | ||
|
|
3c66af9506 | ||
|
|
e5d579c1bb | ||
|
|
ee811ca89b | ||
|
|
8e4933041d | ||
|
|
1f3559e14f | ||
|
|
12ac260dce | ||
|
|
53f99ecc23 | ||
|
|
347410f744 | ||
|
|
7ae3e32abd | ||
|
|
54b2215164 | ||
|
|
889489e33e | ||
|
|
4667e76c6b | ||
|
|
a10d07d1dc | ||
|
|
9f1ac733b7 | ||
|
|
33ea25922d | ||
|
|
b56bd7bb5e | ||
|
|
e7617de1ee | ||
|
|
97fbad4dc5 | ||
|
|
ddf6023983 | ||
|
|
daa84c9415 | ||
|
|
586006de4d | ||
|
|
af8ec9f02b | ||
|
|
dc6abb691e | ||
|
|
d273c38194 | ||
|
|
940a246160 | ||
|
|
6179d1eef2 | ||
|
|
9f121f4c72 | ||
|
|
4deca552fa | ||
|
|
2d066307f4 | ||
|
|
0fdf426a93 | ||
|
|
e47698bfd4 | ||
|
|
e91981207f | ||
|
|
683ae4f067 | ||
|
|
94bc887369 | ||
|
|
d1094da6c7 | ||
|
|
ee1e12eca3 | ||
|
|
307fbef5b2 | ||
|
|
f54f500e2b | ||
|
|
fd66335bd4 | ||
|
|
301343deb0 | ||
|
|
c046c8c4d3 | ||
|
|
0ceca8fc17 | ||
|
|
2ac3b50040 | ||
|
|
70771bf3d6 | ||
|
|
2ed17f0fff | ||
|
|
ca53712ee9 | ||
|
|
69e139b75b | ||
|
|
d268661f29 | ||
|
|
ed379387df | ||
|
|
1eddad82c8 | ||
|
|
d7defc011b | ||
|
|
0e4a7829fe | ||
|
|
e7c6178391 | ||
|
|
40b506b7b4 | ||
|
|
b19a679d00 | ||
|
|
81d4c60cbd | ||
|
|
a95be2aa43 | ||
|
|
5e9a815b06 | ||
|
|
010c8eccc8 | ||
|
|
4b89619ef1 | ||
|
|
e5054d306e | ||
|
|
08eaa9274f | ||
|
|
3306cdede5 | ||
|
|
e7f650a9eb | ||
|
|
2804794f7a | ||
|
|
781eaf058b | ||
|
|
b4c155bdb8 | ||
|
|
7c3e045a57 | ||
|
|
f1fa1bbe4e | ||
|
|
d4f4c7b8c6 | ||
|
|
5eb46c570d | ||
|
|
9e6d501009 | ||
|
|
27e258b19b | ||
|
|
d3615c9661 | ||
|
|
a57c449c25 | ||
|
|
07f2f0cef3 | ||
|
|
c94f0896e1 | ||
|
|
182361c176 | ||
|
|
8dcc530f44 | ||
|
|
b5dfd62c99 | ||
|
|
662b1a8100 | ||
|
|
24178beafc | ||
|
|
e30df544db | ||
|
|
25b6e214dd | ||
|
|
910f6134f6 | ||
|
|
52b4b0419f | ||
|
|
bbc1a82c2a | ||
|
|
6abe66934e | ||
|
|
2ddbb44992 | ||
|
|
363a8b8588 | ||
|
|
5ae56aaec7 | ||
|
|
37057d1da2 | ||
|
|
6044871438 | ||
|
|
e612bb6a38 | ||
|
|
196a9ae43a | ||
|
|
81ea67d6da | ||
|
|
96cd823fea | ||
|
|
196773d6ba | ||
|
|
d8dbe68425 | ||
|
|
286c0b000f | ||
|
|
dec3164fdd | ||
|
|
c2772e5038 | ||
|
|
43e4d09f72 | ||
|
|
06e35baeaa | ||
|
|
c9d72d7a1d | ||
|
|
7e0a783220 | ||
|
|
f853c9f1c3 | ||
|
|
62e9572070 | ||
|
|
fea68c8acc | ||
|
|
ce9462e6aa | ||
|
|
929f0e90ac | ||
|
|
2e57d80959 | ||
|
|
81331e68d2 | ||
|
|
4fda59a585 | ||
|
|
4477b9ac18 | ||
|
|
78f93dc11a | ||
|
|
4c7c855f2c | ||
|
|
8740ec5570 | ||
|
|
ede3ac4282 | ||
|
|
3e4cad3a79 | ||
|
|
bd0b0077a3 | ||
|
|
16f8b78b39 | ||
|
|
892d21fb77 | ||
|
|
90d1bb0ae4 | ||
|
|
adfc5b3e98 | ||
|
|
f3d7016ab2 | ||
|
|
ae776547ce | ||
|
|
da6885be62 | ||
|
|
c0fa4a077f | ||
|
|
df19e54555 | ||
|
|
19139a4dce | ||
|
|
7d1c3133b3 | ||
|
|
da9c0af854 | ||
|
|
6d717a21cf | ||
|
|
fc251d005e | ||
|
|
4624e28675 | ||
|
|
3a1cc38aaf | ||
|
|
68bb38b8d7 | ||
|
|
2ca3b3e99d | ||
|
|
67c8354f76 | ||
|
|
384377782a | ||
|
|
8382665bbb | ||
|
|
e799cfc16a | ||
|
|
055d0081e1 | ||
|
|
9035de32c8 | ||
|
|
af62a520d3 | ||
|
|
1824108d09 | ||
|
|
149e8ce9b0 | ||
|
|
f4661eec75 | ||
|
|
0f7a1a42e4 | ||
|
|
5bda221f9d | ||
|
|
fd42becbdc | ||
|
|
2759c1616c | ||
|
|
55ac98c989 | ||
|
|
c42c6a7b08 | ||
|
|
b99bd38649 | ||
|
|
013ee2f1f4 | ||
|
|
7b79d79f84 | ||
|
|
66f9686e48 | ||
|
|
9b1b7437b3 | ||
|
|
720d44d53e | ||
|
|
7dca148349 | ||
|
|
47bacaf58a | ||
|
|
ffff8aeb91 | ||
|
|
9a856f50d7 | ||
|
|
e7540de85d | ||
|
|
ba9ddefbee | ||
|
|
f1801f9662 | ||
|
|
ae92ea9476 | ||
|
|
c7017ee84b | ||
|
|
0346294c59 | ||
|
|
8d240ca797 | ||
|
|
a607ee90e0 | ||
|
|
7dbbafec1b | ||
|
|
428132ea3b | ||
|
|
c49330f9d1 | ||
|
|
937c5fe893 | ||
|
|
d2c9f12c3a | ||
|
|
10324d8260 | ||
|
|
8f27dae7ea | ||
|
|
94ae511a6d | ||
|
|
038f75e48f | ||
|
|
b9fe4c5cd3 | ||
|
|
7e8b7602b4 | ||
|
|
7c306a8430 | ||
|
|
dd2bc44c2d | ||
|
|
74794fea09 | ||
|
|
1efd1a52a7 | ||
|
|
928131cf08 | ||
|
|
4d202a7a37 | ||
|
|
e0d71abdc6 | ||
|
|
550eb6ee2f | ||
|
|
a661bc1d23 | ||
|
|
f737162697 | ||
|
|
ce57ba80eb | ||
|
|
99bd957ea0 | ||
|
|
270eb56718 | ||
|
|
b3ce0c0079 | ||
|
|
e6cee58e0d | ||
|
|
4adc6b269c | ||
|
|
920b0178ec | ||
|
|
3583b40e02 | ||
|
|
7870830367 | ||
|
|
4c1d7ad2d2 | ||
|
|
661b07c856 | ||
|
|
5670bd8265 | ||
|
|
93a1911232 | ||
|
|
2429191838 | ||
|
|
f6901cd19f | ||
|
|
156c3984a7 | ||
|
|
f91af2153a | ||
|
|
c3f13eb428 | ||
|
|
91ae0206ac | ||
|
|
19b5eda98c | ||
|
|
805f8a5ee7 | ||
|
|
6cbfe3d736 | ||
|
|
2274319274 | ||
|
|
2ab8121a4a | ||
|
|
601a4ec70d | ||
|
|
707b831c30 | ||
|
|
72ae375e44 | ||
|
|
3c1ddb5c9d | ||
|
|
817db23146 | ||
|
|
a8c820f558 | ||
|
|
6d09c81f11 | ||
|
|
192e537e5d | ||
|
|
7b52ef34be | ||
|
|
7117472e73 | ||
|
|
c24b123917 | ||
|
|
9eb8cf121c | ||
|
|
41ef9ae010 | ||
|
|
1674bbbde9 | ||
|
|
0fb739f7cd | ||
|
|
169fa940e4 | ||
|
|
c9664cc425 | ||
|
|
e61cdff655 | ||
|
|
a479b8a5d7 | ||
|
|
26462e684b | ||
|
|
113d42ef35 | ||
|
|
c18018f017 | ||
|
|
e804addf0a | ||
|
|
04cea003b9 | ||
|
|
65fcc56a56 | ||
|
|
c065d253e9 | ||
|
|
4bb2b91ee6 | ||
|
|
b3f761776d | ||
|
|
dce1cccbde | ||
|
|
3630056ed8 | ||
|
|
2d6e1d7089 | ||
|
|
71db79ba53 | ||
|
|
a6934b3cba | ||
|
|
5be378e266 | ||
|
|
a9b6eaa31f | ||
|
|
01f9ce0015 | ||
|
|
f4309f5af6 | ||
|
|
1004ce564f | ||
|
|
5a1823d13e | ||
|
|
66fb66edbc | ||
|
|
5bb66ed7d4 | ||
|
|
95a7980ada | ||
|
|
281e9d1357 | ||
|
|
14e74afb07 | ||
|
|
742f05f59d | ||
|
|
79db4f8aa1 | ||
|
|
c4e216f839 | ||
|
|
752fdfedf2 | ||
|
|
2a49e7c8ef | ||
|
|
02af01d2ca | ||
|
|
07c05c1f2a | ||
|
|
ee4af4c7bf | ||
|
|
3d565e74a5 | ||
|
|
3cb84222f8 | ||
|
|
1b013bb73b | ||
|
|
fd54e625d5 | ||
|
|
e440694987 | ||
|
|
b4a12edc61 | ||
|
|
2b04d6834f | ||
|
|
1191574e07 | ||
|
|
77f6412d3b | ||
|
|
327eab6c0d | ||
|
|
0d8a0db883 | ||
|
|
9727062d60 | ||
|
|
09979d3270 | ||
|
|
116839d6f6 | ||
|
|
bed6c48e99 | ||
|
|
4d09e90b90 | ||
|
|
1d91cc6fc1 | ||
|
|
c81cd5450f | ||
|
|
0b663abe50 | ||
|
|
3b27fb2aa7 | ||
|
|
6bd67ae68c | ||
|
|
14c362d4ba | ||
|
|
f28bc1bff7 | ||
|
|
de8a5ea262 | ||
|
|
339013434b | ||
|
|
8a3ad331d2 | ||
|
|
e3892dc26d | ||
|
|
b95df6d883 | ||
|
|
11ad03b21e | ||
|
|
9cb474ea9c | ||
|
|
fce43b4e1d | ||
|
|
1d547500e8 | ||
|
|
f23d0480e4 | ||
|
|
fe9c630572 | ||
|
|
ce94226c3c | ||
|
|
f12d36b5ed | ||
|
|
3cb5259494 | ||
|
|
a351cd9d9f | ||
|
|
d8e01584f3 | ||
|
|
dd76840568 | ||
|
|
94690fad7a | ||
|
|
d693af9615 | ||
|
|
4cc18c25fe | ||
|
|
8b398f49c0 | ||
|
|
902ce68164 | ||
|
|
cd0474ce7b | ||
|
|
946def022f | ||
|
|
fb499be979 | ||
|
|
c62a101635 | ||
|
|
69a575097d | ||
|
|
b40551a8fa | ||
|
|
5b27bcd781 | ||
|
|
75725a38df | ||
|
|
c4e277853c | ||
|
|
24b055b1b8 | ||
|
|
7da3773f7f | ||
|
|
32999ffa84 | ||
|
|
f06c53f1f1 | ||
|
|
a9eec28360 | ||
|
|
5cda972872 | ||
|
|
087946876b | ||
|
|
318f0f1b7e | ||
|
|
f4d7b71984 | ||
|
|
6d1a12af4b | ||
|
|
a40e5dbcd4 | ||
|
|
7c79ca7878 | ||
|
|
93c1600980 | ||
|
|
c3d1e6181f | ||
|
|
87e7f3a61c | ||
|
|
e724f216bf | ||
|
|
e6b379358a | ||
|
|
b0abba15a6 | ||
|
|
81b4874a7c | ||
|
|
f11b9c1e18 | ||
|
|
e15ecc00ce | ||
|
|
3e4c45ac6a | ||
|
|
fc657ecc71 | ||
|
|
87cb61750f | ||
|
|
3231247fb6 | ||
|
|
4115c13a65 | ||
|
|
f872e2ab80 | ||
|
|
a81b1aa0cb | ||
|
|
efc0f1ab91 | ||
|
|
ce31edc803 | ||
|
|
199caccbc3 | ||
|
|
313bab37e2 | ||
|
|
f060309002 | ||
|
|
fc3d86e6ff | ||
|
|
9fd4989142 | ||
|
|
7507a7b459 | ||
|
|
d657817211 | ||
|
|
954649007c | ||
|
|
0caa308757 | ||
|
|
b0d9903fe2 | ||
|
|
6375f3c445 | ||
|
|
2328f418be | ||
|
|
22b6564847 | ||
|
|
25c8bfefe2 | ||
|
|
30f4524821 | ||
|
|
9e4c3a7200 | ||
|
|
5b7e84c1b0 | ||
|
|
e6097e4968 | ||
|
|
0f2829097b | ||
|
|
e2a9f940e2 | ||
|
|
3eb2b2ac5d | ||
|
|
ce7b0a3b5e | ||
|
|
7bd7c99dd4 | ||
|
|
b0d12c4125 | ||
|
|
1fa8f30550 | ||
|
|
745607b5bc | ||
|
|
cc5a770b16 | ||
|
|
fbde0091de | ||
|
|
a533943a40 | ||
|
|
e11f17672c | ||
|
|
c038c99f9d | ||
|
|
5f159c1fbd | ||
|
|
6a19d8246c | ||
|
|
d6bb3a558f | ||
|
|
cd8ca8981b | ||
|
|
44300dbb34 | ||
|
|
a5d7f7acce | ||
|
|
a032c2e326 | ||
|
|
9d770ed436 | ||
|
|
ae753940f3 | ||
|
|
eb53054f49 | ||
|
|
d0d22c333c | ||
|
|
e147602a3a | ||
|
|
266ba17ebb | ||
|
|
0d0d5bafb0 | ||
|
|
b7a016edcf | ||
|
|
371253a4f6 | ||
|
|
08ce6cce97 | ||
|
|
d7a10328c0 | ||
|
|
58b951e134 | ||
|
|
30956b5441 | ||
|
|
9540cfe749 | ||
|
|
31b17faa2a | ||
|
|
5c6b8e9e50 | ||
|
|
5a36e8fb11 | ||
|
|
7d4c857a43 | ||
|
|
598bcf675f | ||
|
|
e7c657f82d | ||
|
|
3bae92b356 | ||
|
|
5365786386 | ||
|
|
c9b0a7c2dd | ||
|
|
371d8042d6 | ||
|
|
be343cb21e | ||
|
|
e9eabd6881 | ||
|
|
abccdc7f21 | ||
|
|
4ae914f729 | ||
|
|
86ac955b79 | ||
|
|
9734691cac | ||
|
|
d94f3a477d | ||
|
|
d53cd209f7 | ||
|
|
65cacb39d2 | ||
|
|
b008a6a2aa | ||
|
|
5c29feec63 | ||
|
|
d8e350d603 | ||
|
|
14a3366850 | ||
|
|
5ea0c6fca1 | ||
|
|
f454c29b8c | ||
|
|
1ddbeaa50f | ||
|
|
b937c37be3 | ||
|
|
0908369dba | ||
|
|
fe5132be1d | ||
|
|
b50ba3e0e4 | ||
|
|
4fb40f9077 | ||
|
|
dc7fef6395 | ||
|
|
da65bf7292 | ||
|
|
17d9c2577e | ||
|
|
bc7852c1cc | ||
|
|
51d8792f62 | ||
|
|
bfdbeb0964 | ||
|
|
ede82ad0d5 | ||
|
|
f50dcb9e40 | ||
|
|
676c5e5df5 | ||
|
|
d52be76c8a | ||
|
|
c6a517c88c | ||
|
|
96eb8719b8 | ||
|
|
bcd31610f6 | ||
|
|
a4d66622a5 | ||
|
|
af4f07cb26 | ||
|
|
f7120b32f5 | ||
|
|
273404e24d | ||
|
|
1b53b5b927 | ||
|
|
7c5413e568 | ||
|
|
39b2fe45a5 | ||
|
|
8d3c5d09f6 | ||
|
|
5944fdb5dc | ||
|
|
e120bad779 | ||
|
|
d546a4a15b | ||
|
|
93a88a83a8 | ||
|
|
660a2e0ed6 | ||
|
|
30ea300f65 | ||
|
|
04f4d5274d | ||
|
|
1f9695abd7 | ||
|
|
1b94cc3ac0 | ||
|
|
4698d5d2fc | ||
|
|
92bc9d81c5 | ||
|
|
952cfaec14 | ||
|
|
637c44aa59 | ||
|
|
6e5fc29dca | ||
|
|
8bd02d0c36 | ||
|
|
c6cfbb8755 | ||
|
|
75d3444391 | ||
|
|
c648e1e8d6 | ||
|
|
e2f42fddb5 | ||
|
|
f93fe684c0 | ||
|
|
ee378ea0c4 | ||
|
|
613d34e6e6 | ||
|
|
4c784af55d | ||
|
|
b28595c814 | ||
|
|
fca7beec01 | ||
|
|
f813f03a46 | ||
|
|
6ff2232df3 | ||
|
|
e3b1f058cd | ||
|
|
542e9cacc2 | ||
|
|
0a0a7ca39b | ||
|
|
cee287da99 | ||
|
|
c8e4df94f9 | ||
|
|
c86e4f52a0 | ||
|
|
44216310ca | ||
|
|
5c69599e78 | ||
|
|
e4098d3991 | ||
|
|
55a94d659b | ||
|
|
7a048d5b32 | ||
|
|
e14dd06a94 | ||
|
|
62332a2b56 | ||
|
|
639030924f | ||
|
|
241b47fe19 | ||
|
|
69beecf334 | ||
|
|
e308e02f9d | ||
|
|
87258e485a | ||
|
|
0682c346ea | ||
|
|
5ae566952b | ||
|
|
18f9ab0cda | ||
|
|
bd4a5ac844 | ||
|
|
257b1f89f3 | ||
|
|
962672564e | ||
|
|
7216c6d62a | ||
|
|
21d3261eec | ||
|
|
03f758720c | ||
|
|
eaa85ae8d5 | ||
|
|
8cb212d897 | ||
|
|
a38d3981df | ||
|
|
af08c077d2 | ||
|
|
84e2489585 | ||
|
|
744375bd5d | ||
|
|
6c1f63bfbb | ||
|
|
7d0267c924 | ||
|
|
daa9cb65e5 | ||
|
|
7072265225 | ||
|
|
8daade0021 | ||
|
|
b4d30b462f | ||
|
|
18acd67b4f | ||
|
|
78ed53f4fb | ||
|
|
d95314c754 | ||
|
|
277cc19ec3 | ||
|
|
67f4553213 | ||
|
|
b2bb656d30 | ||
|
|
ca20f41d0e | ||
|
|
13e8aeae4e | ||
|
|
02308f9e2f | ||
|
|
0fdcbb4611 | ||
|
|
829ccc3466 | ||
|
|
9ac83cf62e | ||
|
|
f760354e82 | ||
|
|
e91e35d508 | ||
|
|
db7e196bf8 | ||
|
|
f5fe4f99f1 | ||
|
|
e2bff36395 | ||
|
|
0a5d7c2100 | ||
|
|
4d42f8ec58 | ||
|
|
81e7b052da | ||
|
|
be44b7e2c7 | ||
|
|
d8a781632c | ||
|
|
3726d6fe3b | ||
|
|
6090a5b274 | ||
|
|
d4fdf6be67 | ||
|
|
1b6cbe5c23 | ||
|
|
1d130a7857 | ||
|
|
f041159aa7 | ||
|
|
f438cbf633 | ||
|
|
51684d18cf | ||
|
|
c13d2ac044 | ||
|
|
6dd1adda2e | ||
|
|
5d0d7391e7 | ||
|
|
d37da58e87 | ||
|
|
1839c1972e | ||
|
|
b7bdcc4e57 | ||
|
|
b59a3b15f3 | ||
|
|
7580f7491a | ||
|
|
f33848e16b | ||
|
|
9b4d3ad6bf | ||
|
|
7b06d4273a | ||
|
|
95f7ea9fc0 | ||
|
|
12b64d1906 | ||
|
|
52db4b3321 | ||
|
|
388c1b4ce4 | ||
|
|
b134cdb90d | ||
|
|
c120dffbf0 | ||
|
|
3578f1b254 | ||
|
|
a7e3548f22 | ||
|
|
272e5380c2 | ||
|
|
b60fd36c6e | ||
|
|
5301798654 | ||
|
|
f7e6d7d143 | ||
|
|
b9649aed32 | ||
|
|
4467c0df31 | ||
|
|
7af3acde9e | ||
|
|
68c1e49f62 | ||
|
|
1e57190b8c | ||
|
|
1b8a4577d5 | ||
|
|
51baed4932 | ||
|
|
2f1f587c50 | ||
|
|
ab1e38dde8 | ||
|
|
dd0d1e700e | ||
|
|
51ebb2579f | ||
|
|
d1d3b805f6 | ||
|
|
a6e247326b | ||
|
|
823b7e2989 | ||
|
|
5f40dc37a2 | ||
|
|
5e5c05f0c6 | ||
|
|
ab1340d213 | ||
|
|
6b6004ee70 | ||
|
|
3cef2bb7e0 | ||
|
|
cc5a0a436c | ||
|
|
495a81768d | ||
|
|
125b37e98f | ||
|
|
f8ad75329d | ||
|
|
cb2efb14f7 | ||
|
|
78327716a4 | ||
|
|
cd71b3daf3 | ||
|
|
5393fa81b9 | ||
|
|
d1efd2137a | ||
|
|
fce8c3a8a0 | ||
|
|
4bd71da056 | ||
|
|
d2e84925f7 | ||
|
|
d81523370e | ||
|
|
6939546f22 | ||
|
|
2ea10206fa | ||
|
|
8aa922c55f | ||
|
|
d66def5530 | ||
|
|
42ecf54df6 | ||
|
|
10835968fb | ||
|
|
1f5588b803 | ||
|
|
202102ebf7 | ||
|
|
9729c89f5d | ||
|
|
71714733ad | ||
|
|
3fbbfce17c | ||
|
|
ad0a08ea0e | ||
|
|
3a2fa4073a | ||
|
|
6c2297c365 | ||
|
|
5e592427e9 | ||
|
|
643541eebd | ||
|
|
13885493ac | ||
|
|
75c9353cbd | ||
|
|
01d9affe61 | ||
|
|
3ad95bec3c | ||
|
|
418b3ee7d6 | ||
|
|
0000f2a34d | ||
|
|
fc5a5f1b73 | ||
|
|
226ab406b2 | ||
|
|
9eaf5d82b6 | ||
|
|
e3d6d242ac | ||
|
|
53184715bc | ||
|
|
1844633ff1 | ||
|
|
7d7682b34e | ||
|
|
83655a749c | ||
|
|
b9444e8197 | ||
|
|
5ff70b2a36 | ||
|
|
4ed559af95 | ||
|
|
ce529a9b9f | ||
|
|
31e472145c | ||
|
|
1664428429 | ||
|
|
1780cb9b91 | ||
|
|
ad32677263 | ||
|
|
0eba4bdd61 | ||
|
|
28238eb5a7 | ||
|
|
cce4f6f7f7 | ||
|
|
6bea3dabbb | ||
|
|
ea46947054 | ||
|
|
22879f8c23 | ||
|
|
77c4423059 | ||
|
|
62a2a4a9f5 | ||
|
|
59690328e2 | ||
|
|
e50ecd613f | ||
|
|
d873a6138a | ||
|
|
8093ae8570 | ||
|
|
98ebb02763 | ||
|
|
ba22b07dce | ||
|
|
d1312703c5 | ||
|
|
8d99a42307 | ||
|
|
3ab93ecdd4 | ||
|
|
6c0d6c5425 | ||
|
|
326f346936 | ||
|
|
8762d0e164 | ||
|
|
2b91edeb74 | ||
|
|
6c49d1aa3f | ||
|
|
f07f086d62 | ||
|
|
c28862f8c7 | ||
|
|
9cfaf567be | ||
|
|
53f453bf34 | ||
|
|
a16032a8ed | ||
|
|
8cec0d8fcd | ||
|
|
6f6f67829b | ||
|
|
94471b6d07 | ||
|
|
7eed9c0584 | ||
|
|
3e717862a4 | ||
|
|
30d88bbe7e | ||
|
|
551e73adef | ||
|
|
99d32c4758 | ||
|
|
9e52c15829 | ||
|
|
71a272f0a6 | ||
|
|
64061c3440 | ||
|
|
1b4f2b9c53 | ||
|
|
d83516584d | ||
|
|
3e34d0badb | ||
|
|
b2e8474df3 | ||
|
|
73ff7e2de4 | ||
|
|
b5d8d34718 | ||
|
|
ac44d22cee | ||
|
|
6e8fa12172 | ||
|
|
deb9c4ecc0 | ||
|
|
d4e6136b09 | ||
|
|
68331fc40c | ||
|
|
3046798ec5 | ||
|
|
c4332658ba | ||
|
|
50e3da0849 | ||
|
|
62cd3b2061 | ||
|
|
7e6dfa7b92 | ||
|
|
7fbebbf361 | ||
|
|
121372802f | ||
|
|
7924907384 | ||
|
|
51d429f9ae | ||
|
|
267aebb9cb | ||
|
|
3f9ebb588e | ||
|
|
f424f07e54 | ||
|
|
e5a21a3261 | ||
|
|
6f0de7c80e | ||
|
|
3ace7eeafd | ||
|
|
eb9f15e4e4 | ||
|
|
bc80569fe9 | ||
|
|
a147458120 | ||
|
|
6182e22d18 | ||
|
|
dda84c5cd5 | ||
|
|
6c15fb6978 | ||
|
|
b17b68c44b | ||
|
|
afdb15dc58 | ||
|
|
98b4b0dce0 | ||
|
|
70f26e0bea | ||
|
|
b6ad396a6c | ||
|
|
e44bb57b0e | ||
|
|
5c10b16b65 | ||
|
|
7ec1d42808 | ||
|
|
03e9e89558 | ||
|
|
3057035dec | ||
|
|
4af72cc7ba | ||
|
|
f6aee81651 | ||
|
|
a22f569ca0 | ||
|
|
8043f5d865 | ||
|
|
2ef50ab71f | ||
|
|
192a4f5e7f | ||
|
|
1af56a7f00 | ||
|
|
d2fab7fddd | ||
|
|
1818b0281d | ||
|
|
09973ba8cf | ||
|
|
dd3174c40f | ||
|
|
f0293b8f52 | ||
|
|
d549a9ad92 | ||
|
|
0385c72a8f | ||
|
|
e223b20cbd | ||
|
|
a0f7e92e40 | ||
|
|
c87ff3ca26 | ||
|
|
82672a825d | ||
|
|
98d524e82d | ||
|
|
3d3090a8f2 | ||
|
|
5561e89201 | ||
|
|
9ed96de237 | ||
|
|
0f2420576a | ||
|
|
d1b74675d9 | ||
|
|
abb81a0bac | ||
|
|
05eb055b8c | ||
|
|
e8ddd6d16d | ||
|
|
8706998c8c | ||
|
|
06e0869767 | ||
|
|
7841fc6d3e | ||
|
|
1f7311deeb | ||
|
|
07a9e69e7b | ||
|
|
9bc8adc715 | ||
|
|
7845ebffc5 | ||
|
|
b985de6df2 | ||
|
|
11f6491889 | ||
|
|
b2ec040a8d | ||
|
|
424a53da4e | ||
|
|
963c289af7 | ||
|
|
c5af71e0a2 | ||
|
|
329008bf6d | ||
|
|
531dbc5f83 | ||
|
|
851a925956 | ||
|
|
5d4e01eea6 | ||
|
|
7484dc5b4c | ||
|
|
e04f5cb277 | ||
|
|
c513cff843 | ||
|
|
a4603a4396 | ||
|
|
bc5eafce66 | ||
|
|
5fb811eb4c | ||
|
|
84a3884ffc | ||
|
|
50ae29a08c | ||
|
|
bf8bfa582a | ||
|
|
492d1ef30e | ||
|
|
bd19c203e1 | ||
|
|
1141f9de86 | ||
|
|
7955a17a17 | ||
|
|
58085e39d1 | ||
|
|
bbc32c4cd0 | ||
|
|
3841039728 | ||
|
|
f04d954882 | ||
|
|
39602ff5f2 | ||
|
|
55ecc7a92c | ||
|
|
1148960d43 | ||
|
|
415107fbf0 | ||
|
|
437cc20198 | ||
|
|
32f78a99fd | ||
|
|
65c7855afd | ||
|
|
7f68e341da | ||
|
|
a2f750ed1a | ||
|
|
b74a42cdf5 | ||
|
|
95b35be541 | ||
|
|
ea747a3d58 | ||
|
|
9b644e3c47 | ||
|
|
3f776397d1 | ||
|
|
1ec75035ba | ||
|
|
97b7b7b968 | ||
|
|
135427dcc8 | ||
|
|
a2de514c05 | ||
|
|
f1bada7fd8 | ||
|
|
ea5d25c794 | ||
|
|
193e420eb3 | ||
|
|
8a972ee543 | ||
|
|
b51eb7326f | ||
|
|
be3b5b7fe2 | ||
|
|
3a7a606f6a | ||
|
|
294fc6b62f | ||
|
|
662a44fccf | ||
|
|
b0a5d4fb6f | ||
|
|
4fb8292618 | ||
|
|
539e5899e3 | ||
|
|
bee9e20827 | ||
|
|
12f527a120 | ||
|
|
bd626899df | ||
|
|
54d036715f | ||
|
|
54c87f81a6 | ||
|
|
5de078dc61 | ||
|
|
ff57de0753 | ||
|
|
9565aee3c5 | ||
|
|
f63da0c58b | ||
|
|
205dbc1a25 | ||
|
|
12c309fd50 | ||
|
|
f04e3d5338 | ||
|
|
dc03d0b300 | ||
|
|
3e16cc4912 | ||
|
|
fcdf252f03 | ||
|
|
b23fea9cb5 | ||
|
|
e714ff35c4 | ||
|
|
4054d0eca7 | ||
|
|
367f9b6232 | ||
|
|
194eb4e266 | ||
|
|
f717eb7388 | ||
|
|
e8f20285af | ||
|
|
0fec9c7c55 | ||
|
|
f8d0ed7ca6 | ||
|
|
020eaef5ba | ||
|
|
973b31521e | ||
|
|
59e513f130 | ||
|
|
62e730b621 | ||
|
|
f4bb62adbc | ||
|
|
48a528a4b8 | ||
|
|
5aba66ea78 | ||
|
|
c5efdf5ae3 | ||
|
|
15958cd4a3 | ||
|
|
edcdc6c97c | ||
|
|
143b807e9b | ||
|
|
861379c227 | ||
|
|
2fb9f62d0b | ||
|
|
84e02fc144 | ||
|
|
57ac90f837 | ||
|
|
10a45ece76 | ||
|
|
c88a177cb2 | ||
|
|
a63dfc4650 | ||
|
|
8924ac2783 | ||
|
|
4fffa2d0ba | ||
|
|
856d2ab266 | ||
|
|
750d2c76f5 | ||
|
|
47157049c0 | ||
|
|
22000f10df | ||
|
|
d802ce1484 | ||
|
|
4b10b9ffc3 | ||
|
|
552408f488 | ||
|
|
4884938036 | ||
|
|
cdcc8cc59a | ||
|
|
f7bd600715 | ||
|
|
0014fec63f | ||
|
|
812efde342 | ||
|
|
889f0e1569 | ||
|
|
3a26c5cd65 | ||
|
|
12a25c37aa | ||
|
|
4706e20a1d | ||
|
|
14c23051ee | ||
|
|
330ddfa3ad | ||
|
|
a1e9a14ef3 | ||
|
|
958f57085f | ||
|
|
646a786b75 | ||
|
|
c8516bc5f4 | ||
|
|
58e87b3ddf | ||
|
|
ea0abb70a2 | ||
|
|
908f9562f6 | ||
|
|
8131d9a640 | ||
|
|
e092f41074 | ||
|
|
79a90dc476 | ||
|
|
25962dbf39 | ||
|
|
8df53e441d | ||
|
|
6f89efa40b | ||
|
|
d6a1b4e71f | ||
|
|
a2c0e53f87 | ||
|
|
013af7619e | ||
|
|
aa302ecc32 | ||
|
|
99b049fe2d | ||
|
|
dbdd1b8671 | ||
|
|
8ba6a7436e | ||
|
|
6e35a9f682 | ||
|
|
78f456911a | ||
|
|
8f5d3dc49c | ||
|
|
97678577fb | ||
|
|
ce67737cc9 | ||
|
|
b9919b0a9c | ||
|
|
226f45d8d5 | ||
|
|
accbf6ecfc | ||
|
|
0aa80d82d9 | ||
|
|
ace5f81a17 | ||
|
|
21a0b33645 | ||
|
|
8b991e11a2 | ||
|
|
8f013776df | ||
|
|
c30aedd309 | ||
|
|
39f303fcd6 | ||
|
|
76c0e140cf | ||
|
|
ccb3c991a6 | ||
|
|
a7932da207 | ||
|
|
5fda20c330 | ||
|
|
1be6e4565f | ||
|
|
e606d0b1de | ||
|
|
b4bcb7ace2 | ||
|
|
a63fee1223 | ||
|
|
ae76ff0aaf | ||
|
|
bba819ba84 | ||
|
|
d0d0da6cb7 | ||
|
|
475113838a | ||
|
|
b8435efc97 | ||
|
|
780e41d6a6 | ||
|
|
6d0b55f753 | ||
|
|
c9fa5c7284 | ||
|
|
e97f4c4054 | ||
|
|
96d15b7505 | ||
|
|
2f77596034 | ||
|
|
5619c105aa | ||
|
|
9a6ee023b3 | ||
|
|
77e2e44abc | ||
|
|
32bddfdd47 | ||
|
|
c9aa654ef0 | ||
|
|
5e501857aa | ||
|
|
6b00aba039 | ||
|
|
14fa9cfa4b | ||
|
|
5633c5224e | ||
|
|
03763a1423 | ||
|
|
cf6df1556c | ||
|
|
cdc8a42393 | ||
|
|
a2fd705153 | ||
|
|
3388f699a0 | ||
|
|
5e197713ff | ||
|
|
50718495da | ||
|
|
b7b604aed4 | ||
|
|
a1f5cabbba | ||
|
|
c2aae6ddf6 | ||
|
|
8a40622815 | ||
|
|
cb88409102 | ||
|
|
b918b75414 | ||
|
|
37f0e36c98 | ||
|
|
c8dc2327a3 | ||
|
|
f660973168 | ||
|
|
cf2e7744f3 | ||
|
|
855d799b21 | ||
|
|
97dd1d0f4f | ||
|
|
5b5553b9a3 | ||
|
|
702545e0b2 | ||
|
|
fa2787eb5d | ||
|
|
0f37b326a0 | ||
|
|
7f9f551cfe | ||
|
|
ecf1847dd2 | ||
|
|
40a9dce869 | ||
|
|
a6696733fa | ||
|
|
d9bd736159 | ||
|
|
4f5f5d31a3 | ||
|
|
fad1325427 | ||
|
|
8b6678a453 | ||
|
|
c7f48a83c0 | ||
|
|
af0f02d63e | ||
|
|
497d63e67e | ||
|
|
4d048af384 | ||
|
|
3649f10600 | ||
|
|
49e69a54bd | ||
|
|
a0acc89fcb | ||
|
|
64d1a82920 | ||
|
|
2396e28479 | ||
|
|
db1ad0df63 | ||
|
|
c5de18caae | ||
|
|
e57774e121 | ||
|
|
b7ee46d400 | ||
|
|
6007132640 | ||
|
|
31b3a4c342 | ||
|
|
73ff852648 | ||
|
|
6d50eb5737 | ||
|
|
3c0b74005b | ||
|
|
93ff667df1 | ||
|
|
a8579fa68a | ||
|
|
10f77fdf1a | ||
|
|
99d824a999 | ||
|
|
97d2b5df15 | ||
|
|
84a9cf7adf | ||
|
|
a49927f173 | ||
|
|
6a5c50ff77 | ||
|
|
c948573c2d | ||
|
|
5233bc501c | ||
|
|
ad96c6f838 | ||
|
|
0e92f68b4a | ||
|
|
ac97e8c613 | ||
|
|
95fe717ca7 | ||
|
|
10b18de3e0 | ||
|
|
08295eb807 | ||
|
|
fce4f0c116 | ||
|
|
cf1424976f | ||
|
|
94e8fce40a | ||
|
|
ea671bf395 | ||
|
|
fdb868516f | ||
|
|
c75bebfc90 | ||
|
|
3e102ef760 | ||
|
|
c07eddbd97 | ||
|
|
e85b925f40 | ||
|
|
27761ba6f2 | ||
|
|
b665698e78 | ||
|
|
97ebe33d68 | ||
|
|
249f7e45fb | ||
|
|
c0612e6193 | ||
|
|
79a789c557 | ||
|
|
450888f542 | ||
|
|
380a08242a | ||
|
|
e653a933f1 | ||
|
|
bda5dffa34 | ||
|
|
29df7e84a1 | ||
|
|
19cf43a10e | ||
|
|
0398ef3b90 | ||
|
|
8c19daf949 | ||
|
|
e4f0688a02 | ||
|
|
25f4fbf2bb | ||
|
|
0533c08438 | ||
|
|
5f0ea85f47 | ||
|
|
6c7c1202ed | ||
|
|
669aa769c2 | ||
|
|
fcf2994015 | ||
|
|
bee21ddc9e | ||
|
|
263e68e677 | ||
|
|
2b958f5724 | ||
|
|
95f7177ef4 | ||
|
|
006324b78e | ||
|
|
efd8c1229d | ||
|
|
0f1aea3e0d | ||
|
|
6a41cbebc9 | ||
|
|
fba95e6a42 | ||
|
|
bffb91f196 | ||
|
|
4573b65639 | ||
|
|
3d8505385a | ||
|
|
95d3a8cc22 | ||
|
|
99c053f86b | ||
|
|
f2dde705ef | ||
|
|
be11fda814 | ||
|
|
0261105c52 | ||
|
|
264047dc0c | ||
|
|
4d84926ed2 | ||
|
|
da3211fee6 | ||
|
|
1388b03cf2 | ||
|
|
9f98b4b082 | ||
|
|
b3f1401ab4 | ||
|
|
e5e3832809 | ||
|
|
2eff7da171 | ||
|
|
e9622bcfe8 | ||
|
|
63ebadc526 | ||
|
|
fe47b07229 | ||
|
|
dc73997be3 | ||
|
|
62315fd478 | ||
|
|
fb81121bd3 | ||
|
|
5293563a6a | ||
|
|
2e1e61dabe | ||
|
|
280d63fde7 | ||
|
|
c6104195f6 | ||
|
|
e55cbb3e3d | ||
|
|
56b85e4194 | ||
|
|
6431c43d0e | ||
|
|
a62107fbd1 | ||
|
|
7959d18248 | ||
|
|
2f66915a9f | ||
|
|
a508177e21 | ||
|
|
5a9d858604 | ||
|
|
514da83961 | ||
|
|
b7bae18849 | ||
|
|
fbde247c72 | ||
|
|
3a69af9034 | ||
|
|
5c87a6cb76 | ||
|
|
9c6bb434e8 | ||
|
|
d1bd303dfa | ||
|
|
3813c32454 | ||
|
|
3b00a692ee | ||
|
|
3304ebe9d3 | ||
|
|
513120cbfe | ||
|
|
b06049d5a3 | ||
|
|
0f50355deb | ||
|
|
bd6e35fea2 | ||
|
|
a4fd63cd44 | ||
|
|
fdc4219b68 | ||
|
|
5b428bb8e6 | ||
|
|
c948ff88a5 | ||
|
|
9b9a0d7060 | ||
|
|
16578e3677 | ||
|
|
be7f84bc67 | ||
|
|
033d26f2cb | ||
|
|
4c0826b1c4 | ||
|
|
c4cc204c94 | ||
|
|
3747db18b1 | ||
|
|
4173625fca | ||
|
|
0e7863a6fb | ||
|
|
207ba00ad2 | ||
|
|
87c89586a5 | ||
|
|
1cea1ced82 | ||
|
|
08732bac0f | ||
|
|
283e8d3c08 | ||
|
|
42a7165596 | ||
|
|
aa3f5001d5 | ||
|
|
56580c4005 | ||
|
|
ba304c9651 | ||
|
|
703c5adba7 | ||
|
|
8b85f6e0a6 | ||
|
|
c136d22382 | ||
|
|
42358419ad | ||
|
|
ab2ced5c37 | ||
|
|
faf31be0dc | ||
|
|
ff4c67d068 | ||
|
|
10b133db02 | ||
|
|
f0bf607b43 | ||
|
|
8948ca5323 | ||
|
|
9c3be51fe9 | ||
|
|
2da9161f29 | ||
|
|
983dad5b53 | ||
|
|
8b23d341b4 | ||
|
|
0ad60013aa | ||
|
|
289815e128 | ||
|
|
f7ee83f1b9 | ||
|
|
f67aafa8d3 | ||
|
|
4e5ddd57bf | ||
|
|
e0d4ecf835 | ||
|
|
81a461115b | ||
|
|
d679b02658 | ||
|
|
5effcdb024 | ||
|
|
211a5eb2bb | ||
|
|
c4465ba58d | ||
|
|
7903c53876 | ||
|
|
dbefe6a560 | ||
|
|
8b1f412255 | ||
|
|
a2e0074061 | ||
|
|
5fc920087b | ||
|
|
085233ab9b | ||
|
|
6657b2629f | ||
|
|
310a279aaf | ||
|
|
58f3a76da7 | ||
|
|
a2c9458b1b | ||
|
|
75bcd9e8d5 | ||
|
|
977e7ef395 | ||
|
|
eb1b8b577f | ||
|
|
28f91685ce | ||
|
|
81a4fe59d9 | ||
|
|
e7189ab81f | ||
|
|
346db89e66 | ||
|
|
f786c7f144 | ||
|
|
51f45293b8 | ||
|
|
943b103001 | ||
|
|
f055d42277 | ||
|
|
fb7a2a8d5d | ||
|
|
1e5ed2a2e3 | ||
|
|
e1467dfe23 | ||
|
|
c480f96d30 | ||
|
|
cf613aafb2 | ||
|
|
20dbf7c5f4 | ||
|
|
47c912c25b | ||
|
|
48fb1a8127 | ||
|
|
6c1b55db16 | ||
|
|
df70c8a800 | ||
|
|
82ae2e7118 | ||
|
|
0cf9b5f3df | ||
|
|
036a825892 | ||
|
|
8b43b31c64 | ||
|
|
3abef972a7 | ||
|
|
30b00741b5 | ||
|
|
f86e743cce | ||
|
|
cb96fb735e | ||
|
|
459a52d31d | ||
|
|
44ef9a13d6 | ||
|
|
0bb3652a63 | ||
|
|
6a82d683a9 | ||
|
|
fad708e8de | ||
|
|
c6a38b8355 | ||
|
|
ee84eb666b | ||
|
|
6d2793cac6 | ||
|
|
86d518fc2e | ||
|
|
25dba1a6d5 | ||
|
|
af949c62c2 | ||
|
|
ea20342d76 | ||
|
|
7732d52583 | ||
|
|
c801bc5e6b | ||
|
|
ea43729063 | ||
|
|
e26bae8027 | ||
|
|
555f155cad | ||
|
|
f8c47f59bc | ||
|
|
f3997128b9 | ||
|
|
154a4e23dd | ||
|
|
52e4e0e569 | ||
|
|
30f2b96c68 | ||
|
|
58c94b7773 | ||
|
|
83203d5f5d | ||
|
|
f77d161643 | ||
|
|
6580b139c0 | ||
|
|
2743c7c6ac | ||
|
|
062f76214e | ||
|
|
ce98ed98a2 | ||
|
|
dce9d93f6c | ||
|
|
f7e35a6cbe | ||
|
|
931335220f | ||
|
|
3ce35a8a4b | ||
|
|
9ac4e5cf6a | ||
|
|
bd77d7eec3 | ||
|
|
b5e48aa509 | ||
|
|
b14c42b6a4 | ||
|
|
ba794ba58c | ||
|
|
b00282590d | ||
|
|
44616c6872 | ||
|
|
aaa2b4c3db | ||
|
|
8974d8e4df | ||
|
|
699063cbb0 | ||
|
|
e76000b713 | ||
|
|
332b372e31 | ||
|
|
cb3fcb7bfa | ||
|
|
bef641609e | ||
|
|
24b52f09df | ||
|
|
942b17b807 | ||
|
|
cf19d7f3ad | ||
|
|
ebd62a4112 | ||
|
|
9af7357ca4 | ||
|
|
0dbc35c252 | ||
|
|
c9f03f1ac5 | ||
|
|
02bd292b8c | ||
|
|
e5f1029d0c | ||
|
|
cae247160f | ||
|
|
6692b1992c | ||
|
|
0937837b7f | ||
|
|
828888490a | ||
|
|
91cb6ba73b | ||
|
|
4ee4d32b2e | ||
|
|
8df630a2f5 | ||
|
|
2cad42870e | ||
|
|
43651135f3 | ||
|
|
6ae42eb787 | ||
|
|
ecaf866613 | ||
|
|
5ea3329b36 | ||
|
|
7bb7149f4c | ||
|
|
5856d043ca | ||
|
|
7cd3e49f04 | ||
|
|
173e75175e | ||
|
|
800006dd76 | ||
|
|
a824b6910a | ||
|
|
dcea382b38 | ||
|
|
d9f976baea | ||
|
|
1fa13efe19 | ||
|
|
33af5cd7c6 | ||
|
|
7cb8f97ef1 | ||
|
|
bf965a9cde | ||
|
|
17ffff685a | ||
|
|
ae76271cff | ||
|
|
8f3a96d615 | ||
|
|
30e750dfe5 | ||
|
|
682dff7c6f | ||
|
|
85415eb8a8 | ||
|
|
68a80b9244 | ||
|
|
c331da7323 | ||
|
|
04ffa06221 | ||
|
|
1f0690c6ec | ||
|
|
711467abcd | ||
|
|
9439cd0e3d | ||
|
|
314c19650d | ||
|
|
ed6afcd802 | ||
|
|
082d4fe8e1 | ||
|
|
cd23b44506 | ||
|
|
46b6b024b9 | ||
|
|
cb88cc35e5 | ||
|
|
75c0c44809 | ||
|
|
a091b82ba9 | ||
|
|
a3b8f022e6 | ||
|
|
279fcb7c51 | ||
|
|
49a9376073 | ||
|
|
96840ede56 | ||
|
|
7e7f481f99 | ||
|
|
3edbf52bc6 | ||
|
|
fba6e801fc | ||
|
|
720a163273 | ||
|
|
a9b12e5172 | ||
|
|
6ac0c0a367 | ||
|
|
300402d253 | ||
|
|
0d9bfae503 | ||
|
|
bfe0d3b8a3 | ||
|
|
5fdd9c0546 | ||
|
|
b6570a16b8 | ||
|
|
8e2d3ea16f | ||
|
|
bc2c81f058 | ||
|
|
3e0f080ea7 | ||
|
|
679e07189d | ||
|
|
a38ebef100 | ||
|
|
b8ad6475e1 | ||
|
|
0f0cb3ac6d | ||
|
|
d3efb9d7cc | ||
|
|
84a237d3f5 | ||
|
|
e6de52eede | ||
|
|
98aee964d7 | ||
|
|
570e5442e0 | ||
|
|
b77a2dc353 | ||
|
|
87af31de20 | ||
|
|
cfe201dbe1 | ||
|
|
6ccdab35e0 | ||
|
|
55b9f36b45 | ||
|
|
fbcb1130c9 | ||
|
|
d4f7a6d2bc | ||
|
|
8a19f71abe | ||
|
|
fb153757b5 | ||
|
|
4f175fc93e | ||
|
|
2d4ca7cec0 | ||
|
|
bf0ea89969 | ||
|
|
073f0c2a20 | ||
|
|
ba83be9062 | ||
|
|
2e7188ea4f | ||
|
|
5a012182d9 | ||
|
|
b855438af6 | ||
|
|
2ffea143e7 | ||
|
|
61d85b49e6 | ||
|
|
35f617e96c | ||
|
|
6b6ad47c35 | ||
|
|
e57183ed0e | ||
|
|
ecfd61a822 | ||
|
|
153f87704b | ||
|
|
836f7d2163 | ||
|
|
d4d6f71cf4 | ||
|
|
42a9da006e | ||
|
|
2bd5c4f527 | ||
|
|
6a49b5c106 | ||
|
|
23e14d1b72 | ||
|
|
f4f11c8884 | ||
|
|
2b220abdb7 | ||
|
|
c1d947ebe3 | ||
|
|
d695cf392e | ||
|
|
21304a695c | ||
|
|
fa51b06c46 | ||
|
|
7560bb8d7b | ||
|
|
fc9d65abcc | ||
|
|
a7413cccd0 | ||
|
|
7610353f07 | ||
|
|
d3f978c90c | ||
|
|
b55a8ef62a | ||
|
|
8d79deffb5 | ||
|
|
8158487c3e | ||
|
|
0cc061196d | ||
|
|
d0ec055222 | ||
|
|
ae12ddd32b | ||
|
|
31da3adaa9 | ||
|
|
9fd5213f13 | ||
|
|
de882f5849 | ||
|
|
fded1e0021 | ||
|
|
6cb06c146d | ||
|
|
b8f1386ad0 | ||
|
|
2b38b5ea50 | ||
|
|
2f707a6b16 | ||
|
|
d4c2fcd559 | ||
|
|
082970cdb7 | ||
|
|
fe97c78977 | ||
|
|
79394aa69f | ||
|
|
21fd6e3c21 | ||
|
|
de4944cd83 | ||
|
|
3fde5c27ed | ||
|
|
e1d492813e | ||
|
|
48d0ee3b6d | ||
|
|
eebb64901c | ||
|
|
60e0ed2af6 | ||
|
|
f030694ef4 | ||
|
|
e9ed13459a | ||
|
|
af1e38fdf7 | ||
|
|
b12900e680 | ||
|
|
44aa1f4a5e | ||
|
|
9425548a85 | ||
|
|
bfd4fc81fe | ||
|
|
439af2a325 | ||
|
|
3204b04455 | ||
|
|
bed1be14ba | ||
|
|
7cd92faf0d | ||
|
|
be7e28af5d | ||
|
|
8eaa762ec5 | ||
|
|
953a9f7cd4 | ||
|
|
36f099d68b | ||
|
|
c8fd5090bd | ||
|
|
155e1be494 | ||
|
|
cf5e125cb3 | ||
|
|
764fc8477d | ||
|
|
d35e62f8cf | ||
|
|
904babdd13 | ||
|
|
154d3842a8 | ||
|
|
edb8a120bd | ||
|
|
cdfeba0b82 | ||
|
|
8ce1465e9f | ||
|
|
a296b1c9c8 | ||
|
|
bb8d7058a4 | ||
|
|
816cfa1c7e | ||
|
|
53938200fc | ||
|
|
3885bb039d | ||
|
|
4adad6e424 | ||
|
|
5fb9531338 | ||
|
|
273d9c76a7 | ||
|
|
79a1d6c561 | ||
|
|
4b0eb8475d | ||
|
|
3dc874b517 | ||
|
|
8a3da1ce8d | ||
|
|
42d90542b5 | ||
|
|
690a93d82d | ||
|
|
8042fe4e2b | ||
|
|
a27ce375db | ||
|
|
db3688799d | ||
|
|
a88be35292 | ||
|
|
e2d7fcbfc2 | ||
|
|
421d155586 | ||
|
|
7f9e318214 | ||
|
|
57386edb7c | ||
|
|
94d5ba4550 | ||
|
|
2a0b4ea828 | ||
|
|
893ef227d4 | ||
|
|
1fe6e5a00d | ||
|
|
6c96cde73c | ||
|
|
2b12834d53 | ||
|
|
8a2e74b3b8 | ||
|
|
aa1721ab3d | ||
|
|
c0a256306b | ||
|
|
f0b03b4ada | ||
|
|
5503f53af2 | ||
|
|
a89d294b27 | ||
|
|
012e1cbcc5 | ||
|
|
3759e0f778 | ||
|
|
1c18641699 | ||
|
|
e50e2201b1 | ||
|
|
1419729458 | ||
|
|
c14177b0e8 | ||
|
|
126df969b3 | ||
|
|
f8ee92ba06 | ||
|
|
81a278dd8c | ||
|
|
a98013806c | ||
|
|
0171ffac6a | ||
|
|
7544241316 | ||
|
|
061afb3a94 | ||
|
|
8a5eda9c1f | ||
|
|
f62040f0ec | ||
|
|
f2e51779e4 | ||
|
|
da114fa3a5 | ||
|
|
3775a1657b | ||
|
|
2bd7c4bc81 | ||
|
|
253c489a33 | ||
|
|
ac84b6fe3f | ||
|
|
8761e61439 | ||
|
|
29e903e1c8 | ||
|
|
ec27e19e3f | ||
|
|
5df0dae11a | ||
|
|
7fffc1a36d | ||
|
|
f3d0179834 | ||
|
|
8bf69c598a | ||
|
|
aa5fad6628 | ||
|
|
b0f1fad4e2 | ||
|
|
3b6d0995b4 | ||
|
|
0cbf4ac37d | ||
|
|
9ccffee82c | ||
|
|
1b38e2eedf | ||
|
|
ce87abe96e | ||
|
|
becbda8483 | ||
|
|
da210e2ae4 | ||
|
|
d4fc6feeba | ||
|
|
f1cbca8d76 | ||
|
|
dfd9364061 | ||
|
|
1931395fdb | ||
|
|
b01fd24e15 | ||
|
|
c9d1329fc2 | ||
|
|
ab2d3bfd80 | ||
|
|
36bb172f29 | ||
|
|
01e64be39d | ||
|
|
4ebe160f6c | ||
|
|
b427eca21f | ||
|
|
3eb438c8d2 | ||
|
|
068f425833 | ||
|
|
b3c84242dc | ||
|
|
24672d91d8 | ||
|
|
4422af26ec | ||
|
|
5329e803e2 | ||
|
|
ad542b91fa | ||
|
|
e9e03c945b | ||
|
|
e20cfb3dae | ||
|
|
48baac916c | ||
|
|
adadf38b08 | ||
|
|
d4e1469450 | ||
|
|
2c456f044f | ||
|
|
228c15ace3 | ||
|
|
a0d15e6e7b | ||
|
|
2fe78cf971 | ||
|
|
5ec3544340 | ||
|
|
5443a17775 | ||
|
|
40d60e4eb3 | ||
|
|
f3312a6403 | ||
|
|
e638b55b30 | ||
|
|
5caa76a8b3 | ||
|
|
901a5ce9d2 | ||
|
|
6ab74951f4 | ||
|
|
c2625d696d | ||
|
|
77fb5ef2ab | ||
|
|
c20ca3399e | ||
|
|
5825da9c76 | ||
|
|
e3853ae402 | ||
|
|
bd142a9710 | ||
|
|
4f23847546 | ||
|
|
85820c571d | ||
|
|
d9bed03025 | ||
|
|
d6e05962c9 | ||
|
|
d32636ed6b | ||
|
|
bbf066f030 | ||
|
|
a3d2f6592e | ||
|
|
87b6327c5e | ||
|
|
abaebb329d | ||
|
|
8970fe412d | ||
|
|
9dc5ae21c4 | ||
|
|
4132fb79a6 | ||
|
|
9a4dc30604 | ||
|
|
192b542fe4 | ||
|
|
490547cd3d | ||
|
|
17f9829498 | ||
|
|
234e77fd06 | ||
|
|
87ac831c8a | ||
|
|
4e92492165 | ||
|
|
c3d0b1114f | ||
|
|
4463a7d4ba | ||
|
|
741fe3dd90 | ||
|
|
e910f3915d | ||
|
|
39aafc5007 | ||
|
|
9b83afae42 | ||
|
|
bdf54f6cff | ||
|
|
f2a9887a12 | ||
|
|
4f4d78bfab | ||
|
|
3b460fb8fa | ||
|
|
ee15e9acc5 | ||
|
|
48fce35fb3 | ||
|
|
78899378c2 | ||
|
|
67404a327d | ||
|
|
702dfa4b79 | ||
|
|
2144407e41 | ||
|
|
b36dd62c50 | ||
|
|
7026df7d96 | ||
|
|
ed8e7afdf6 | ||
|
|
d78e5932f9 | ||
|
|
26d83bb9ea | ||
|
|
8e89b1bdf2 | ||
|
|
c880cc0987 | ||
|
|
0874ba7a03 | ||
|
|
7962278475 | ||
|
|
c8949f5eeb | ||
|
|
8108b93c5f | ||
|
|
9dbe531bf7 | ||
|
|
46e2ff1001 | ||
|
|
d2cdc67ec7 | ||
|
|
56121203bf | ||
|
|
e13133fd2b | ||
|
|
f20565fd16 | ||
|
|
cf2d5841f5 | ||
|
|
630d2ca926 | ||
|
|
34cb93794c | ||
|
|
122b5ba468 | ||
|
|
401466d6c0 | ||
|
|
7f2627dbc8 | ||
|
|
6aecc3915c | ||
|
|
ef1b3aa7f5 | ||
|
|
1aaab2a814 | ||
|
|
e93734b209 | ||
|
|
9e5218f6b4 | ||
|
|
711ec39327 | ||
|
|
08049252f2 | ||
|
|
f1e7ec0c6b | ||
|
|
23765d9139 | ||
|
|
43febe269c | ||
|
|
40233c7702 | ||
|
|
27ed81614b | ||
|
|
889d23e9bd | ||
|
|
f8571023f6 | ||
|
|
6364e00202 | ||
|
|
a76c6f86c6 | ||
|
|
555e815402 | ||
|
|
8a1d81989b | ||
|
|
ee9234b2c6 | ||
|
|
735b9c5844 | ||
|
|
064f3eb3bc | ||
|
|
f1775d4fd1 | ||
|
|
a9bc111c4f | ||
|
|
c100612473 | ||
|
|
26087f8dc7 | ||
|
|
36e75cb728 | ||
|
|
d7a2fc2be4 | ||
|
|
142176f194 | ||
|
|
c5892fc17e | ||
|
|
6e69cfbca4 | ||
|
|
775181f761 | ||
|
|
36e83d628e | ||
|
|
5f6fcb2bc0 | ||
|
|
7b106e5650 | ||
|
|
79d9c83a2d | ||
|
|
269669ba28 | ||
|
|
4ef7240598 | ||
|
|
efdf689c31 | ||
|
|
f7606e92ca | ||
|
|
6750be3ec9 | ||
|
|
68fb5089f8 | ||
|
|
a8d093bacd | ||
|
|
233a1995b3 | ||
|
|
8ef3baaffb | ||
|
|
c9597b9447 | ||
|
|
b2dc1d8b23 | ||
|
|
859c0c7f6c | ||
|
|
aaf18e2416 | ||
|
|
fd679ef117 | ||
|
|
6cc611b3f1 | ||
|
|
77ee726f66 | ||
|
|
dc603b76a4 | ||
|
|
bcb3371acc | ||
|
|
d14ce7e476 | ||
|
|
4d26b806dd | ||
|
|
a2b95dbb39 | ||
|
|
47f7b43bcc | ||
|
|
77fd8c120c | ||
|
|
a1a6f40158 | ||
|
|
ed09cd7489 | ||
|
|
eb3330d145 | ||
|
|
5ba0588c7b | ||
|
|
d4a199f0e1 | ||
|
|
32dd186f4d | ||
|
|
d820f55358 | ||
|
|
81f0fb3c74 | ||
|
|
972c83cd52 | ||
|
|
66a704af55 | ||
|
|
31c5d6e1c1 | ||
|
|
bf0ab95c09 | ||
|
|
c1d85f760d | ||
|
|
88ad2f4c18 | ||
|
|
be9f9e7b0c | ||
|
|
2cc1973f62 | ||
|
|
eb4625a0b9 | ||
|
|
5bfb01254b | ||
|
|
bb80fa4a2d | ||
|
|
ddb715d88d | ||
|
|
395b499856 | ||
|
|
cce6a47f11 | ||
|
|
7fd17b4ec0 | ||
|
|
e16ab2a0fd | ||
|
|
15f5364c30 | ||
|
|
65081767bf | ||
|
|
c7c595e5fa | ||
|
|
5b24e8b69c | ||
|
|
e6a845e606 | ||
|
|
ec8b8a7b87 | ||
|
|
51a9205105 | ||
|
|
ed5567fc73 | ||
|
|
4b3f5d74a0 | ||
|
|
b01c5a05e7 | ||
|
|
36eddabc1c | ||
|
|
ea11aa7a0d | ||
|
|
e7efa76e6d | ||
|
|
41c8ca8ab4 | ||
|
|
4624079be7 | ||
|
|
c6f6042271 | ||
|
|
e9e3b9b7c6 | ||
|
|
becbb09a29 | ||
|
|
6f6ab50995 | ||
|
|
d8ee766860 | ||
|
|
108c26d8af | ||
|
|
ed8d3088ca | ||
|
|
46c4e2d212 | ||
|
|
94891d45f9 | ||
|
|
7448ad109e | ||
|
|
6211dfe024 | ||
|
|
9b85200954 | ||
|
|
94ee739d91 | ||
|
|
e81a6db9a3 | ||
|
|
b2f5a259ab | ||
|
|
c8a0d3c10d | ||
|
|
97df964051 | ||
|
|
66dd05f8bc | ||
|
|
19589d9117 | ||
|
|
8147b2e0b1 | ||
|
|
be22f8cd14 | ||
|
|
868be9b7ff | ||
|
|
5011281104 | ||
|
|
42992c64ec | ||
|
|
2baff243ed | ||
|
|
83440a6b0f | ||
|
|
87c9a1c06c | ||
|
|
b848fe249f | ||
|
|
1e804d97ce | ||
|
|
218d3c144b | ||
|
|
05a4905490 | ||
|
|
75103da378 | ||
|
|
9db9b53c81 | ||
|
|
0e4787f3e8 | ||
|
|
f8d8d4b186 | ||
|
|
45e0a1ffea | ||
|
|
75c58093f1 | ||
|
|
cc708e9fb4 | ||
|
|
2ce0e38827 | ||
|
|
5b980e8c13 | ||
|
|
21b602650c | ||
|
|
fa4b7a1a69 | ||
|
|
977dfe700b | ||
|
|
48ac50e1c9 | ||
|
|
1a817947eb | ||
|
|
be64603097 | ||
|
|
f6b90c8271 | ||
|
|
26e4be87c7 | ||
|
|
cddbb8d80d | ||
|
|
58023b4bf0 | ||
|
|
4f18a5f1c3 | ||
|
|
56df8d8bd3 | ||
|
|
211ec104c2 | ||
|
|
3fb573247d | ||
|
|
6aac44db14 | ||
|
|
3255e11cfc | ||
|
|
844bf29de1 | ||
|
|
04d91d1422 | ||
|
|
db90e1f801 | ||
|
|
7f30748a41 | ||
|
|
a4e0abb48f | ||
|
|
3f27dc89d8 | ||
|
|
d6f6efc189 | ||
|
|
2cda49fc38 | ||
|
|
04f4a76b41 | ||
|
|
0a8f7085f3 | ||
|
|
7ae48d7390 | ||
|
|
c908502644 | ||
|
|
2f0631809d | ||
|
|
91ab3bd972 | ||
|
|
672636313c | ||
|
|
79875ef50d | ||
|
|
aea5445495 | ||
|
|
754a36fbc9 | ||
|
|
85dafc0b3c | ||
|
|
b516ab9b4f | ||
|
|
1a27e60e55 | ||
|
|
2c710736e8 | ||
|
|
69b9ff69be | ||
|
|
a3a4fc0cc2 | ||
|
|
ae686bb15d | ||
|
|
68a5325849 | ||
|
|
75e3bddfa9 | ||
|
|
bd3a8db438 | ||
|
|
102868bf74 | ||
|
|
1a73a27102 | ||
|
|
a9cf34ab56 | ||
|
|
46d17c3314 | ||
|
|
40f816c311 | ||
|
|
13f1c12912 | ||
|
|
93c25f5d1b | ||
|
|
aa6ec60c34 | ||
|
|
ac159bb52e | ||
|
|
919aee64f9 | ||
|
|
553bec1a1f | ||
|
|
bcb6d1cf93 | ||
|
|
7d24e5b279 | ||
|
|
12253e23b5 | ||
|
|
4acb66fb7a | ||
|
|
68ef85b64b | ||
|
|
b73efe6bb4 | ||
|
|
89c84522d2 | ||
|
|
98172764ac | ||
|
|
448e881104 | ||
|
|
f16134ab1f | ||
|
|
f5dc1564a4 | ||
|
|
133df75bd4 | ||
|
|
440be0653a | ||
|
|
d721a40ca5 | ||
|
|
a9b252b8fa | ||
|
|
8a5b3ddee7 | ||
|
|
d83e543a98 | ||
|
|
bcd6e8fd63 | ||
|
|
d5c5738aab | ||
|
|
9e4dfe081f | ||
|
|
090852b72b | ||
|
|
ff5e038c49 | ||
|
|
5cc2e5f6e1 | ||
|
|
4e8c0573c4 | ||
|
|
ce905ba2c4 | ||
|
|
3104c17fb3 | ||
|
|
7651941722 | ||
|
|
7bf938901a | ||
|
|
f8b61d2926 | ||
|
|
4edea59ab1 | ||
|
|
c8bcd2818d | ||
|
|
9b46dbaff1 | ||
|
|
17a139f27f | ||
|
|
bd00c728d1 | ||
|
|
9d510b514c | ||
|
|
00dcc5ecda | ||
|
|
dbbdd3f799 | ||
|
|
3541b4b968 | ||
|
|
5b1bf35a23 | ||
|
|
591b61945f | ||
|
|
bd1943626b | ||
|
|
f152cdef51 | ||
|
|
33f8c9747d | ||
|
|
714a5e26b3 | ||
|
|
7f2c6e40d3 | ||
|
|
db676ec223 | ||
|
|
ffb3e511a7 | ||
|
|
e9e64f6a44 | ||
|
|
a7b8adb0e1 | ||
|
|
4140ff03d7 | ||
|
|
e042ef05a4 | ||
|
|
7c02e4d66a | ||
|
|
711794cfe1 | ||
|
|
c0e4cf2358 | ||
|
|
a92f8f36c1 | ||
|
|
12698dc347 | ||
|
|
3e6a55f78e | ||
|
|
7585f14b89 | ||
|
|
01b5fc4d49 | ||
|
|
0fb7d3bfc8 | ||
|
|
2cd74d355c | ||
|
|
3d405f8c63 | ||
|
|
a92f0c4c6e | ||
|
|
de142ac9d6 | ||
|
|
468ef7ecff | ||
|
|
4d768fd236 | ||
|
|
bfc1f95190 | ||
|
|
bc17ebd90e | ||
|
|
bb1b3727cb | ||
|
|
4dbebefb45 | ||
|
|
e1c5764fbf | ||
|
|
70f975e4f0 | ||
|
|
845567d1ba | ||
|
|
f570447000 | ||
|
|
9d7b8f1f2f | ||
|
|
bae6bfc32d | ||
|
|
8a63390464 | ||
|
|
0b52cd8b31 | ||
|
|
f97569dd34 | ||
|
|
a9164e63ab | ||
|
|
8c95067ec4 | ||
|
|
4f77bbeb2b | ||
|
|
8bbed2c831 | ||
|
|
6b43a23c4b | ||
|
|
be9521f659 | ||
|
|
90761fd840 | ||
|
|
d49d9a783c | ||
|
|
d7dc7c4eda | ||
|
|
fe64c6a841 | ||
|
|
2bbdc85a29 | ||
|
|
74628b7034 | ||
|
|
15aa249f64 | ||
|
|
fdf58e1225 | ||
|
|
866f305686 | ||
|
|
1550e5343c | ||
|
|
add3dd1077 | ||
|
|
79a142fb19 | ||
|
|
1a30fe4a1a | ||
|
|
4ff991764e | ||
|
|
001f066769 | ||
|
|
c47b553a8e | ||
|
|
319af51f84 | ||
|
|
5dbaaae68e | ||
|
|
8c1a749a5a | ||
|
|
fc8643f238 | ||
|
|
c8653f19bf | ||
|
|
b01100d818 | ||
|
|
d4096a9026 | ||
|
|
b9e780cdcd | ||
|
|
b77cd56a01 | ||
|
|
9cdec156dc | ||
|
|
6aa5968863 | ||
|
|
8f7686cd7b | ||
|
|
d8d384a979 | ||
|
|
ade318bb78 | ||
|
|
ed3aa8189f | ||
|
|
3e43597617 | ||
|
|
4c8e895ac7 | ||
|
|
f6a3671366 | ||
|
|
e641b0a965 | ||
|
|
eddddc6c9b | ||
|
|
f249d6306f | ||
|
|
5c31bd54e4 | ||
|
|
71ba73b38f | ||
|
|
db0ff74857 | ||
|
|
1acb073737 | ||
|
|
251dda3652 | ||
|
|
22db24509d | ||
|
|
54c9d27fd8 | ||
|
|
01888ff078 | ||
|
|
ffbd140a97 | ||
|
|
dedf5c52d9 | ||
|
|
10465c5d68 | ||
|
|
1f4f64a7c0 | ||
|
|
a6f116b57b | ||
|
|
0a80186a92 | ||
|
|
635bdf15cb | ||
|
|
a72bdfdacc | ||
|
|
dc3e04456c | ||
|
|
b0e4fb7602 | ||
|
|
df7aa3339b | ||
|
|
c475536388 | ||
|
|
cc7def89af | ||
|
|
58da87898e | ||
|
|
bded5490d2 | ||
|
|
c3715a2a3d | ||
|
|
abf084f6c2 | ||
|
|
37ba409dc3 | ||
|
|
f29488b24f | ||
|
|
71bdade7b9 | ||
|
|
60d97c887d | ||
|
|
5bba50f01f | ||
|
|
1f7884dc70 | ||
|
|
69dafd6c68 | ||
|
|
64b79cd5ac | ||
|
|
1af21735a9 | ||
|
|
9886af3cec | ||
|
|
1eb8f9ad97 | ||
|
|
08e73d9d7d | ||
|
|
b0e349b215 | ||
|
|
caa98b08da | ||
|
|
00caa13a12 | ||
|
|
cfc0135e86 | ||
|
|
9ee8c1c791 | ||
|
|
cd3aba2b89 | ||
|
|
a150d8e289 | ||
|
|
6da8e92f20 | ||
|
|
1d4dd4be96 | ||
|
|
7df1a03b4b | ||
|
|
ad316ffd37 | ||
|
|
91f5542a57 | ||
|
|
d47a8aa562 | ||
|
|
676f790933 | ||
|
|
70433f3d05 | ||
|
|
9f2a2b9869 | ||
|
|
a0c09fc617 | ||
|
|
19d391fa05 | ||
|
|
d1aa1fd4d8 | ||
|
|
0e02d03d9a | ||
|
|
4133f9c56f | ||
|
|
53055064e1 | ||
|
|
06090d8de1 | ||
|
|
d6ccae38f8 | ||
|
|
f7210effec | ||
|
|
8e7efd98b2 | ||
|
|
ea50ba16f9 | ||
|
|
b62e4f6662 | ||
|
|
f5a1c8bc49 | ||
|
|
4cb8e99430 | ||
|
|
bbac49ff38 | ||
|
|
1d12017f11 | ||
|
|
46af2e37a7 | ||
|
|
a480919ec3 | ||
|
|
f8abf9fce1 | ||
|
|
62f2a552ea | ||
|
|
b053e02174 | ||
|
|
3798167908 | ||
|
|
56fe2014e1 | ||
|
|
be2e64433f | ||
|
|
8732e89e55 | ||
|
|
fdd0a93bad | ||
|
|
dd12572b1d | ||
|
|
e23f20227a | ||
|
|
5cc791690b | ||
|
|
9f1deb0c36 | ||
|
|
4cebbf8d22 | ||
|
|
93971537b4 | ||
|
|
87e816a7f5 | ||
|
|
0f45b1da48 | ||
|
|
a20049c82a | ||
|
|
e57ebdb583 | ||
|
|
372122037f | ||
|
|
23a5cb1917 | ||
|
|
f8d5fef3c4 | ||
|
|
250005ad16 | ||
|
|
719aea2a58 | ||
|
|
0e06da6c63 | ||
|
|
68fef169f3 | ||
|
|
c668201df4 | ||
|
|
1d68c8cc87 | ||
|
|
b9ac8b42ea | ||
|
|
b4a03a56b4 | ||
|
|
9eb668ab30 | ||
|
|
233a74c146 | ||
|
|
e0c7269b8e | ||
|
|
73063df11b | ||
|
|
ff00afb5d7 | ||
|
|
3f43dc1855 | ||
|
|
4a4e7fc7cb | ||
|
|
0253dc9623 | ||
|
|
f8855b83fa | ||
|
|
0d0459d83d | ||
|
|
374ef3902c | ||
|
|
235690064f | ||
|
|
0167c25e08 | ||
|
|
d2432716ea | ||
|
|
52ef85cba3 | ||
|
|
8140057bea | ||
|
|
22df59e229 | ||
|
|
ed351eee54 | ||
|
|
c021b4c368 | ||
|
|
04a3c4bb22 | ||
|
|
b5fda5642f | ||
|
|
b0955705be | ||
|
|
a4a624d537 | ||
|
|
6a8cf1b768 | ||
|
|
aac2a8f830 | ||
|
|
8269490dd1 | ||
|
|
39274b0c5d | ||
|
|
55c2430671 | ||
|
|
023486e175 | ||
|
|
8227643741 | ||
|
|
e44131f97a | ||
|
|
5028377d45 | ||
|
|
51aaf1b150 | ||
|
|
13406e76de | ||
|
|
4672d98e8a | ||
|
|
858b3d640a | ||
|
|
6087002562 | ||
|
|
82ced56bed | ||
|
|
982b8ea51d | ||
|
|
877c463494 | ||
|
|
9882582903 | ||
|
|
ba566657f1 | ||
|
|
cb1a178fbf | ||
|
|
ad788fbed1 | ||
|
|
749533b0b4 | ||
|
|
142a5f7ca1 | ||
|
|
28bfa8e418 | ||
|
|
7b8ed487e9 | ||
|
|
0059f9475e | ||
|
|
9429ea7c64 | ||
|
|
a157580b22 | ||
|
|
41a0147938 | ||
|
|
16e021e94f | ||
|
|
449d76a6c7 | ||
|
|
70172db693 | ||
|
|
ff93a38354 | ||
|
|
e3b70b10d1 | ||
|
|
400141b093 | ||
|
|
ca5e45a46d | ||
|
|
74b547b93c | ||
|
|
a688305572 | ||
|
|
f0f2eefb59 | ||
|
|
bdb548ffdc | ||
|
|
fe5d4abec1 | ||
|
|
70632706f9 | ||
|
|
8f424c063e | ||
|
|
9955c3dd5d | ||
|
|
d555fcf7bd | ||
|
|
8da00c0872 | ||
|
|
393290df2c | ||
|
|
f8a7835341 | ||
|
|
082bac8c3a | ||
|
|
4cafe42cf4 | ||
|
|
89485971fa | ||
|
|
cb72d5100e | ||
|
|
f103533852 | ||
|
|
55f1e7ece1 | ||
|
|
c0a765c998 | ||
|
|
ed44fb461c | ||
|
|
8543613563 | ||
|
|
734adc6445 | ||
|
|
827f8d4d51 | ||
|
|
5bbd3d6273 | ||
|
|
df90e3414d | ||
|
|
16b9abbe92 | ||
|
|
2de43b719e | ||
|
|
3b84f27f36 | ||
|
|
f7a6a333e1 | ||
|
|
c37ea90206 | ||
|
|
0b39ef68d9 | ||
|
|
40ea759e2c | ||
|
|
3671a70e3b | ||
|
|
2fa50e458f | ||
|
|
9c7db1381c | ||
|
|
2d4f5b8603 | ||
|
|
5181890433 | ||
|
|
99a9e3a91b | ||
|
|
101378c625 | ||
|
|
aa5e47b462 | ||
|
|
15715a2968 | ||
|
|
b5751e5746 | ||
|
|
7e40cb5331 | ||
|
|
4b1a86ee02 | ||
|
|
6c66ca8acf | ||
|
|
d58a091bb7 | ||
|
|
0566a2d9b1 | ||
|
|
3d23d1de4f | ||
|
|
c9c5f7f088 | ||
|
|
8e65408b1c | ||
|
|
c3adc956d7 | ||
|
|
f69d6b4eb1 | ||
|
|
916d377aaa | ||
|
|
39532a9d65 | ||
|
|
3dc696b2a9 | ||
|
|
7be7dec19a | ||
|
|
fc709ba266 | ||
|
|
080e2f2589 | ||
|
|
0dc4440a99 | ||
|
|
f770786b89 | ||
|
|
46bc331428 | ||
|
|
3af77b6a31 | ||
|
|
8c4461c4f8 | ||
|
|
bccfd21cf4 | ||
|
|
e6f1394a74 | ||
|
|
de24831fb9 | ||
|
|
e5716162ad | ||
|
|
5809a3af0d | ||
|
|
11a385550a | ||
|
|
255b8f2005 | ||
|
|
3d398cfd53 | ||
|
|
5f8804c25c | ||
|
|
02d1369d5b | ||
|
|
0fef2ab509 | ||
|
|
16088b8a08 | ||
|
|
69befe8f0e | ||
|
|
ae7a3981c0 | ||
|
|
8b4aa3f5af | ||
|
|
60c8a2c598 | ||
|
|
fbb7dd4c3f | ||
|
|
833ecfb1af | ||
|
|
c20bab2436 | ||
|
|
afb17af571 | ||
|
|
5012568464 | ||
|
|
02dd141095 | ||
|
|
0be82d964e | ||
|
|
b41c7962c2 | ||
|
|
6f9e06e78d | ||
|
|
c2347076f4 | ||
|
|
c744af161d | ||
|
|
74ea382cf2 | ||
|
|
ab4a9e72d4 | ||
|
|
3f9a29730f | ||
|
|
8a076c01ab | ||
|
|
ca75efcbaf | ||
|
|
f96ce2fd83 | ||
|
|
d5f4f987f2 | ||
|
|
11475b0c38 | ||
|
|
137fa98903 | ||
|
|
ea62c1806e | ||
|
|
45afd06047 | ||
|
|
e6ec59092c | ||
|
|
35f788693d | ||
|
|
d5314d2a85 | ||
|
|
efd8c3d6d2 | ||
|
|
7d04353843 | ||
|
|
644da0b77b | ||
|
|
785c349adc | ||
|
|
1608196cd2 | ||
|
|
9d34abf603 | ||
|
|
05beb6ca79 | ||
|
|
12c7238c72 | ||
|
|
ed359ca10c | ||
|
|
b66468c4ea | ||
|
|
d2c9ccbfdd | ||
|
|
85e05b787f | ||
|
|
e5471b44e0 | ||
|
|
e0f0a76ae4 | ||
|
|
6336ab121e | ||
|
|
e899d2d5b8 | ||
|
|
a94c19a6cf | ||
|
|
9c09ee3b71 | ||
|
|
d8e68a75b9 | ||
|
|
302c5cfe09 | ||
|
|
1be337fbc5 | ||
|
|
3ec37e2c66 | ||
|
|
3740c21bee | ||
|
|
5a6568e7c2 | ||
|
|
4cd9b7b050 | ||
|
|
dd780945e1 | ||
|
|
e86f6a841a | ||
|
|
fad8dcd304 | ||
|
|
1633a2ff70 | ||
|
|
a2878fa066 | ||
|
|
735de2908a | ||
|
|
818021e0b7 | ||
|
|
3cc6c4433f | ||
|
|
8306ddd40f | ||
|
|
024e71cdf5 | ||
|
|
4313cbaa5c | ||
|
|
f5da2eb633 | ||
|
|
23f0cd3a26 | ||
|
|
74db3e17d0 | ||
|
|
7bde7f0cfd | ||
|
|
ac68e9c6b5 | ||
|
|
32692dce07 | ||
|
|
64d3b8e104 | ||
|
|
a03edf3d58 | ||
|
|
e5b7ccb612 | ||
|
|
9c1ce5543d | ||
|
|
ba387a8e4e | ||
|
|
7fa25c1ff4 | ||
|
|
3bd1bfc769 | ||
|
|
dad47ade38 | ||
|
|
fa6e0c8964 | ||
|
|
bb4b252401 | ||
|
|
a50404b141 | ||
|
|
61690ecf4a | ||
|
|
f4c87af5c1 | ||
|
|
83d12f7d39 | ||
|
|
2e73b229d7 | ||
|
|
3a0074d96e | ||
|
|
7068c175f2 | ||
|
|
9b5ed8407f | ||
|
|
7d08de9c99 | ||
|
|
575d07e41a | ||
|
|
24da3608c4 | ||
|
|
37935bf388 | ||
|
|
9eb7fad621 | ||
|
|
438d51d26e | ||
|
|
34ef055d7b | ||
|
|
4a1d66f210 | ||
|
|
1f6328bf4e | ||
|
|
8e7a230dbc | ||
|
|
6e718ca772 | ||
|
|
70554e24b1 | ||
|
|
a0f736bb88 | ||
|
|
79473c243d | ||
|
|
441eb3bb29 | ||
|
|
ca44af0625 | ||
|
|
9e179170ee | ||
|
|
9f71dbb006 | ||
|
|
7531314e3f | ||
|
|
a006b52052 | ||
|
|
bebebaa3dd | ||
|
|
55ff035fc9 | ||
|
|
d8c8d7bc57 | ||
|
|
b0acb58442 | ||
|
|
2b28ae3402 | ||
|
|
aa47bae2ad | ||
|
|
ccfde84769 | ||
|
|
b1df6d5149 | ||
|
|
d51aefa156 | ||
|
|
c40412d7c6 | ||
|
|
b0bc7ecacb | ||
|
|
5489bd37c9 | ||
|
|
ea2e3f25d8 | ||
|
|
09b37cf538 | ||
|
|
e30a01310e | ||
|
|
d5cc5b2574 | ||
|
|
160ca6add4 | ||
|
|
da96c85d32 | ||
|
|
de15a1c36f | ||
|
|
814fc8bc69 | ||
|
|
0c9fd25d3e | ||
|
|
9a660f3fe9 | ||
|
|
6e1466e411 | ||
|
|
7913b3cbc2 | ||
|
|
87c9ed6356 | ||
|
|
06ceb056f3 | ||
|
|
65b4ef6c3d | ||
|
|
0284ef401e | ||
|
|
8a87f93741 | ||
|
|
af19536222 | ||
|
|
abe77ab96f | ||
|
|
ea720bb4a5 | ||
|
|
6ee2e2b570 | ||
|
|
3885107e6e | ||
|
|
30a68fefec | ||
|
|
fa84c4e461 | ||
|
|
5743a5f91d | ||
|
|
9d2d060dec | ||
|
|
b36e7e172e | ||
|
|
aacb92a7ae | ||
|
|
4943bde3d4 | ||
|
|
fc459be531 | ||
|
|
3151502a3f | ||
|
|
79b10ed18a | ||
|
|
34b27f2e68 | ||
|
|
c433f736a5 | ||
|
|
55e6c6e01a | ||
|
|
496b5a092f | ||
|
|
02510efda1 | ||
|
|
be828af3e2 | ||
|
|
9b1c114c3f | ||
|
|
4df27d4b0b | ||
|
|
e3445dae46 | ||
|
|
f5fcf23678 | ||
|
|
0a6c08e2c3 | ||
|
|
b80a7459cf | ||
|
|
f6480e6e0c | ||
|
|
41d12c433e | ||
|
|
169a2484f2 | ||
|
|
be52ec1390 | ||
|
|
00db43198d | ||
|
|
6bac207611 | ||
|
|
df1eb631e1 | ||
|
|
6150ae787d | ||
|
|
fc7967d455 | ||
|
|
fca21ac126 | ||
|
|
6fb96fa3c1 | ||
|
|
a1f565f756 | ||
|
|
5992ed1fab | ||
|
|
beccdac717 | ||
|
|
9f3e9786a8 | ||
|
|
b72ea63100 | ||
|
|
27550f2d4b | ||
|
|
6917919f35 | ||
|
|
48d6fe5918 | ||
|
|
c9bc530df0 | ||
|
|
0b569a4120 | ||
|
|
950fd7d2cf | ||
|
|
50dd0354d1 | ||
|
|
78f1cb8a66 | ||
|
|
4bfe9a9ae9 | ||
|
|
c5d38d8962 | ||
|
|
bbe3ee701f | ||
|
|
2f86bb1ca5 | ||
|
|
3999690062 | ||
|
|
b1c0d6b452 | ||
|
|
d57edaa4c1 | ||
|
|
3033d2086e | ||
|
|
0f7d185a61 | ||
|
|
81f200641b | ||
|
|
c6129b44a1 | ||
|
|
088419b38e | ||
|
|
8ebcee32c2 | ||
|
|
2b801a756a | ||
|
|
98b639540b | ||
|
|
e0b797fc7e | ||
|
|
795416a84d | ||
|
|
545dda166f | ||
|
|
f19ec5d9b6 | ||
|
|
6ea978d83d | ||
|
|
42f3b70a22 | ||
|
|
1cd10f074b | ||
|
|
bed1d31bc8 | ||
|
|
99478897c5 | ||
|
|
d79cd463a0 | ||
|
|
2a8290a4b7 | ||
|
|
ccf4e73701 | ||
|
|
01b67c692b | ||
|
|
4023ab3f28 | ||
|
|
70f3b7450f | ||
|
|
ca4960e097 | ||
|
|
ebe604e1af | ||
|
|
32b04cd32f | ||
|
|
e149174696 | ||
|
|
f878ffc01b | ||
|
|
15b49f4db8 | ||
|
|
b1cc7b3296 | ||
|
|
65d90a6dff | ||
|
|
a58f4c2ec2 | ||
|
|
f038069fe2 | ||
|
|
407cb3e7d5 | ||
|
|
b8bc62ee11 | ||
|
|
ccbd179f23 | ||
|
|
dac7830bd4 | ||
|
|
75d7ac2d8a | ||
|
|
468cfeffb6 | ||
|
|
bc82ca2106 | ||
|
|
725c962236 | ||
|
|
6720c1aa46 | ||
|
|
280203e64e | ||
|
|
281d8b7cec | ||
|
|
2c6cda1f27 | ||
|
|
d7dfeaf0c1 | ||
|
|
fa532da8c7 | ||
|
|
cbf84647de | ||
|
|
dbfbd54e1f | ||
|
|
c38a490a6f | ||
|
|
9d7a450821 | ||
|
|
8007bea7db | ||
|
|
dc1ab7e331 | ||
|
|
a0d197d0c0 | ||
|
|
a776ba248e | ||
|
|
0ecd9673b8 | ||
|
|
97aa1230ef | ||
|
|
ff0be73b1f | ||
|
|
8049e44dec | ||
|
|
dc26022fb4 | ||
|
|
e8e44f9a32 | ||
|
|
12d56b8b03 | ||
|
|
e62fd7ed15 | ||
|
|
978eb95acd | ||
|
|
e34f4acb22 | ||
|
|
195aeb5caf | ||
|
|
15a600c763 | ||
|
|
82ad5839fa | ||
|
|
9af883231d | ||
|
|
9bfe8ac007 | ||
|
|
f46367d77b | ||
|
|
38649de85f | ||
|
|
eb2e1c0c45 | ||
|
|
33bb86cbcf | ||
|
|
baffc2d6ca | ||
|
|
96ab508c91 | ||
|
|
57e42659e3 | ||
|
|
f059e97697 | ||
|
|
516e6430eb | ||
|
|
f194a8ecf4 | ||
|
|
13f046f310 | ||
|
|
1edf5acb87 | ||
|
|
af636870d4 | ||
|
|
379b8ada61 | ||
|
|
5e63471983 | ||
|
|
086f0f8450 | ||
|
|
97a4b3dc2a | ||
|
|
4eb8d681c1 | ||
|
|
2066584164 | ||
|
|
a954c198fb | ||
|
|
bb1f8cd5e8 | ||
|
|
101e96dcb3 | ||
|
|
59adf82895 | ||
|
|
3b68f56b15 | ||
|
|
2962c4372c | ||
|
|
517e376582 | ||
|
|
7a90fe5aec | ||
|
|
ea45dde63a | ||
|
|
22a301b55e | ||
|
|
605177dcf0 | ||
|
|
460e1f5563 | ||
|
|
6f25337b99 | ||
|
|
08148a07b2 | ||
|
|
27c0e45940 | ||
|
|
bdd736315a | ||
|
|
d57ec0cd53 | ||
|
|
952c9d8bdb | ||
|
|
cf84ec78fa | ||
|
|
b595e84c30 | ||
|
|
6e5f115bd5 | ||
|
|
a1ab00c93e | ||
|
|
6e5c4e832e | ||
|
|
48ea487974 | ||
|
|
54dc98a90b | ||
|
|
c5bdd3d056 | ||
|
|
64d6e1f8e1 | ||
|
|
69d60ffb24 | ||
|
|
e6ffa3d143 | ||
|
|
bb4330e486 | ||
|
|
1a4d720978 | ||
|
|
91c2f479bb | ||
|
|
b61701fa17 | ||
|
|
cb9f910642 | ||
|
|
4b8d07f301 | ||
|
|
2db3a4f1ef | ||
|
|
ead1f65887 | ||
|
|
aae9866866 | ||
|
|
085ff84bc9 | ||
|
|
e12975cf0b | ||
|
|
a33cf6b532 | ||
|
|
5be25d9538 | ||
|
|
2b29eeb795 | ||
|
|
785561a0cc | ||
|
|
b46dc88346 | ||
|
|
96d81ef72b | ||
|
|
81dc3de26a | ||
|
|
4d0c572c2e | ||
|
|
fb2da0ee9e | ||
|
|
b8b0247717 | ||
|
|
103e212aee | ||
|
|
2f33575907 | ||
|
|
576c528573 | ||
|
|
3c444d3fb3 | ||
|
|
7cb499cde9 | ||
|
|
5a174ba014 | ||
|
|
041feb4e86 | ||
|
|
19726cf428 | ||
|
|
aaf134b1c5 | ||
|
|
9d5f5ee94b | ||
|
|
a48f0827ae | ||
|
|
5686158245 | ||
|
|
3824cdde68 | ||
|
|
e619b9bf7b | ||
|
|
b7243c2226 | ||
|
|
70b6674f44 | ||
|
|
ef67b8481e | ||
|
|
baffe4861c | ||
|
|
5cf489a270 | ||
|
|
44b1819926 | ||
|
|
d84c2b780b | ||
|
|
dc8991a1da | ||
|
|
7bd0ca2212 | ||
|
|
4dd619b8c6 | ||
|
|
3a86ab186c | ||
|
|
2f2a6367c2 | ||
|
|
be880c25f9 | ||
|
|
17812f0d77 | ||
|
|
0c5eae2349 | ||
|
|
3ad1803057 | ||
|
|
02c20e97b7 | ||
|
|
716dc781e4 | ||
|
|
d9900d8e4c | ||
|
|
3b9065b057 | ||
|
|
e73b748b95 | ||
|
|
b309161f00 | ||
|
|
b21667834e | ||
|
|
183fa59c83 | ||
|
|
0c5586ddfb | ||
|
|
33855bcb8b | ||
|
|
dc81b7a699 | ||
|
|
b0b2c32654 | ||
|
|
6f1ed76b4c | ||
|
|
f81cee0be2 | ||
|
|
bcd85b11a1 | ||
|
|
ec368ae3fd | ||
|
|
d28c264422 | ||
|
|
fba505bc90 | ||
|
|
c50ed2c328 | ||
|
|
7e11ff2b20 | ||
|
|
3fb83c46e2 | ||
|
|
763f2bd5c5 | ||
|
|
85edee288f | ||
|
|
1aa494a97a | ||
|
|
a8e7627184 | ||
|
|
d590bbdd2c | ||
|
|
80d65b5acb | ||
|
|
1d250f7491 | ||
|
|
dd741ec6d8 | ||
|
|
e741af6d55 | ||
|
|
e691b1b7c3 | ||
|
|
29142128f2 | ||
|
|
758f44e25f | ||
|
|
16c26d8098 | ||
|
|
a004c61afc | ||
|
|
a9d1a64c32 | ||
|
|
889224715b | ||
|
|
442b9d23f1 | ||
|
|
e4dd895709 | ||
|
|
82677c304e | ||
|
|
73d8dfe381 | ||
|
|
1177aa8aca | ||
|
|
0eda0a4935 | ||
|
|
a19dab0dc9 | ||
|
|
d8eb80b72e | ||
|
|
4f3a6821d1 | ||
|
|
77bd7541ca | ||
|
|
ca46bc5366 | ||
|
|
2e19bc07df | ||
|
|
3f4de43b67 | ||
|
|
0d0bf62fc4 | ||
|
|
3c8654fa25 | ||
|
|
756a6ec5aa | ||
|
|
98c7364924 | ||
|
|
62c01b59b2 | ||
|
|
43db1824be | ||
|
|
7f671c9f3f | ||
|
|
410009dd61 | ||
|
|
580cc00967 | ||
|
|
612c565cfd | ||
|
|
979c5351a8 | ||
|
|
97b7479081 | ||
|
|
1df2f5e96a | ||
|
|
0601833387 | ||
|
|
8b36279e52 | ||
|
|
32163d5f21 | ||
|
|
1c337f6817 | ||
|
|
6df26f2400 | ||
|
|
a9431a5aee | ||
|
|
5a3c832a98 | ||
|
|
c4b5bb22db | ||
|
|
2b5a976f35 | ||
|
|
5d7a625883 | ||
|
|
ae1ca85924 | ||
|
|
c9acfdb1d7 | ||
|
|
11ac8fbf13 | ||
|
|
dc541444ba | ||
|
|
8ea25bcd1c | ||
|
|
f5e46a663a | ||
|
|
64ec415a54 | ||
|
|
57154b2853 | ||
|
|
0243a902b2 | ||
|
|
6c04402a98 | ||
|
|
ef7c9b5c2a | ||
|
|
73448a6039 | ||
|
|
176a0ff99b | ||
|
|
b96d562700 | ||
|
|
7a3ead8f3b | ||
|
|
f72903ccc2 | ||
|
|
668678b2c4 | ||
|
|
e2802175a5 | ||
|
|
71c5b1be86 | ||
|
|
44da085e0b | ||
|
|
362554ad3b | ||
|
|
f01866d76f | ||
|
|
53490cd368 | ||
|
|
c171088838 | ||
|
|
0cc944dc5a | ||
|
|
8bd8834237 | ||
|
|
84fc739c8d | ||
|
|
a7fa2cf0c9 | ||
|
|
1137cd5ca5 | ||
|
|
d47906b525 | ||
|
|
13a59a882e | ||
|
|
3b7348f862 | ||
|
|
07585f01e3 | ||
|
|
5042137006 | ||
|
|
a2ea79130c | ||
|
|
979401f3ac | ||
|
|
4c98db2269 | ||
|
|
209c5f337c | ||
|
|
8080ed4787 | ||
|
|
f3be5f0e67 | ||
|
|
fb2d185c5f | ||
|
|
f2d696b48e | ||
|
|
5596d2df8e | ||
|
|
b72ca439e2 | ||
|
|
432ed264c2 | ||
|
|
0a411cbe4f | ||
|
|
581f71911a | ||
|
|
e548bf8bc2 | ||
|
|
1d944bab51 | ||
|
|
6f407750f5 | ||
|
|
19ffe8f308 | ||
|
|
c9069d472f | ||
|
|
68d3cc7507 | ||
|
|
0c90376752 | ||
|
|
f5eb832cd2 | ||
|
|
c3a058a479 | ||
|
|
bc87210ce3 | ||
|
|
d595eb2614 | ||
|
|
cb4d118ccc | ||
|
|
62c723866a | ||
|
|
c9e54f2ba9 | ||
|
|
e2c86c4b96 | ||
|
|
4469a334fd | ||
|
|
aca379db6e | ||
|
|
9ce5210c33 | ||
|
|
4dd68452b4 | ||
|
|
714b3d3fe0 | ||
|
|
2378e0d961 | ||
|
|
f78bbdc29f | ||
|
|
708620f929 | ||
|
|
9f0490fc12 | ||
|
|
d37eebd8ed | ||
|
|
bfeda23ce5 | ||
|
|
52eb158231 | ||
|
|
afb782410d | ||
|
|
aebb7da3c7 | ||
|
|
b90710945a | ||
|
|
56efd51c06 | ||
|
|
76728d1783 | ||
|
|
5b1fe9aa0a | ||
|
|
e3c8466819 | ||
|
|
6a70cd1975 | ||
|
|
2c45771024 | ||
|
|
ebca8c0217 | ||
|
|
752a080876 | ||
|
|
0541d9189d | ||
|
|
0e454b08c8 | ||
|
|
2d0ca20a03 | ||
|
|
61d9ccf263 | ||
|
|
1c30584153 | ||
|
|
5c5bebd689 | ||
|
|
d9548a2891 | ||
|
|
d25e027201 | ||
|
|
93211470d1 | ||
|
|
b5800205c4 | ||
|
|
eeebf04509 | ||
|
|
f4f99f594d | ||
|
|
5e8e739f78 | ||
|
|
a15adc43af | ||
|
|
07556592c1 | ||
|
|
7694349078 | ||
|
|
4f3cb3103e | ||
|
|
842cd1ecf0 | ||
|
|
81a4f42673 | ||
|
|
152e695f4c | ||
|
|
5a0c10b80e | ||
|
|
06adf3d346 | ||
|
|
7be824640c | ||
|
|
c061487a16 | ||
|
|
97fd34150f | ||
|
|
6d294a0c74 | ||
|
|
fe4ef354ac | ||
|
|
d28b8b5e8d | ||
|
|
f2b30d9a3f | ||
|
|
0a614f2741 | ||
|
|
a9fb50787b | ||
|
|
ce7d7a8e01 | ||
|
|
7006c00233 | ||
|
|
21866634b3 | ||
|
|
34dfd50702 | ||
|
|
d9502a6c00 | ||
|
|
95f7b9205a | ||
|
|
d14d4944a0 | ||
|
|
b4b2729e96 | ||
|
|
299b81f51b | ||
|
|
ad6b18e66f | ||
|
|
091a462a42 | ||
|
|
cb218a57f1 | ||
|
|
ba8649117d | ||
|
|
20daebd965 | ||
|
|
7c2786969a | ||
|
|
565aae5967 | ||
|
|
16a634063a | ||
|
|
4c28b5b227 | ||
|
|
a7a949377b | ||
|
|
c048b1a25b | ||
|
|
f7e7f7ed01 | ||
|
|
5dfcb80de8 | ||
|
|
c8f6100a6a | ||
|
|
c0f4e07e10 | ||
|
|
3c259b2c22 | ||
|
|
3b3a2d4edc | ||
|
|
e930098b51 | ||
|
|
43d5df4a12 | ||
|
|
914cfdbc55 | ||
|
|
aa8f4af339 | ||
|
|
b6fbe7d07d | ||
|
|
bf9d6c7ac4 | ||
|
|
139ae547c6 | ||
|
|
8b252b458c | ||
|
|
efecfa328b | ||
|
|
5651e7107f | ||
|
|
b6b3ceef4d | ||
|
|
e44d89c2af | ||
|
|
3e74d75f28 | ||
|
|
6d737b9e4c | ||
|
|
dec82589d1 | ||
|
|
f0193b0f67 | ||
|
|
fdf8eb0657 | ||
|
|
2ce424b567 | ||
|
|
8995fa9ed1 | ||
|
|
dc412b305c | ||
|
|
d7505da997 | ||
|
|
4b54a81dfd | ||
|
|
132254b3a5 | ||
|
|
9128b12960 | ||
|
|
e9104df047 | ||
|
|
bae52613ab | ||
|
|
18af906fd3 | ||
|
|
d45415ab22 | ||
|
|
c6c42740c5 | ||
|
|
b4c033ca50 | ||
|
|
b67f2d874b | ||
|
|
a8d8540346 | ||
|
|
cbf1afc9fe | ||
|
|
8a798e620a | ||
|
|
774751a25c | ||
|
|
13718032f6 | ||
|
|
1b497b340b | ||
|
|
bb41ab482c | ||
|
|
215aab0fe4 | ||
|
|
666822cf51 | ||
|
|
40101df6ec | ||
|
|
4adcb9c439 | ||
|
|
a6cd0bf7e9 | ||
|
|
8158744829 | ||
|
|
70c0c7bc14 | ||
|
|
fdda29f048 | ||
|
|
95cc8ea80d | ||
|
|
18f8dde712 | ||
|
|
effff3405b | ||
|
|
9d8cbcb993 | ||
|
|
3345f2f3b8 | ||
|
|
bcf1d986a4 | ||
|
|
a51e74bfa1 | ||
|
|
cf00acac04 | ||
|
|
876a7a4646 | ||
|
|
95d1b7bc36 | ||
|
|
d4ae0b0a2e | ||
|
|
36739fb444 | ||
|
|
7906c28abb | ||
|
|
f87b40941f | ||
|
|
05f816fc5d | ||
|
|
f9a157fe18 | ||
|
|
ca213589ac | ||
|
|
c5ca9fafee | ||
|
|
82b3a97d99 | ||
|
|
1c94064c57 | ||
|
|
7969dd431f | ||
|
|
22e7ddcb1d | ||
|
|
b1eafac67a | ||
|
|
5d81cec00c | ||
|
|
9512450d7c | ||
|
|
ed1998162f | ||
|
|
ac2a21f992 | ||
|
|
ad78ce0eb6 | ||
|
|
8ce49c25d4 | ||
|
|
4c24bd4ab9 | ||
|
|
0de49e2a75 | ||
|
|
05c3f459ad | ||
|
|
50aaef5103 | ||
|
|
38872049fd | ||
|
|
5dc1cc54d5 | ||
|
|
57f0fbbb98 | ||
|
|
977fef03b0 | ||
|
|
7d67e6a276 | ||
|
|
0832be5970 | ||
|
|
2343fbd86a | ||
|
|
367ebc1dd4 | ||
|
|
15cc88de6c | ||
|
|
64b3c11682 | ||
|
|
b8784185e8 | ||
|
|
fdc721baa1 | ||
|
|
03b64bc493 | ||
|
|
a6a781f67c | ||
|
|
fe1f8ca0a8 | ||
|
|
a600feb5de | ||
|
|
1f2c0a78c2 | ||
|
|
e4b9c6a2ee | ||
|
|
a69db4d572 | ||
|
|
12c92072d0 | ||
|
|
e674d9246b | ||
|
|
b71f81af57 | ||
|
|
b3535281ef | ||
|
|
5f5e6ea845 | ||
|
|
64d2e80690 | ||
|
|
b6e0568e76 | ||
|
|
dca5b3b2a0 | ||
|
|
243915516e | ||
|
|
bc3683d8f6 | ||
|
|
1d36ce0fdf | ||
|
|
88d4d306f3 | ||
|
|
184d928cf7 | ||
|
|
fbd911ed27 | ||
|
|
dec3762b7a | ||
|
|
a849872c21 | ||
|
|
1d71fb3554 | ||
|
|
0d3bf0cd00 | ||
|
|
6c766eba86 | ||
|
|
cc760acb62 | ||
|
|
f4d4bf8779 | ||
|
|
90f62e5e4a | ||
|
|
f1bd3e1711 | ||
|
|
01dde8bea5 | ||
|
|
341c66a199 | ||
|
|
bc1fb2770b | ||
|
|
9f1373945b | ||
|
|
266ee2ca81 | ||
|
|
35738cc1a3 | ||
|
|
ff310f89bd | ||
|
|
2dd004f6cd | ||
|
|
964b7e0e23 | ||
|
|
bc039bde81 | ||
|
|
9505f82d9b | ||
|
|
9189db5531 | ||
|
|
bfa5f39b6d | ||
|
|
15f97bbf26 | ||
|
|
90ba761325 | ||
|
|
ddd428f76e | ||
|
|
0c83fa7060 | ||
|
|
f2e2c7e4d0 | ||
|
|
717bfffa63 | ||
|
|
a764a4a44b | ||
|
|
247fa0ce7c | ||
|
|
13932b2cfb | ||
|
|
0bd0540d2f | ||
|
|
9a17cc503c | ||
|
|
89a048e5fa | ||
|
|
88bc022e2a | ||
|
|
00e080459e | ||
|
|
5b197adf33 | ||
|
|
9019c31f91 | ||
|
|
2e14703b16 | ||
|
|
f87698438d | ||
|
|
4af1cf1d1f | ||
|
|
d6ad7dc6eb | ||
|
|
f25e4ea520 | ||
|
|
17891d373b | ||
|
|
9f29149d87 | ||
|
|
010e20989a | ||
|
|
c885f2edaa | ||
|
|
ae5a7176ba | ||
|
|
ee13cd10fe | ||
|
|
b0f9bf2c62 | ||
|
|
9fbfc3d677 | ||
|
|
189389f96a | ||
|
|
2af7066512 | ||
|
|
9cbc40a229 | ||
|
|
18bf220ca4 | ||
|
|
8750c4b121 | ||
|
|
417d2cb40a | ||
|
|
36b0698432 | ||
|
|
0edc57f0e3 | ||
|
|
3d76137247 | ||
|
|
df9d231389 | ||
|
|
e2aebaf0e7 | ||
|
|
20e84a847a | ||
|
|
ad4779e32f | ||
|
|
90537e42ba | ||
|
|
4615465599 | ||
|
|
95418724fa | ||
|
|
989cb05257 | ||
|
|
d7df20413d | ||
|
|
f7e0f55c13 | ||
|
|
e16f48c9fd | ||
|
|
4694644043 | ||
|
|
f468d6e947 | ||
|
|
9a19477796 | ||
|
|
00d41c6de2 | ||
|
|
fc2a9a85ff | ||
|
|
78c86880e4 | ||
|
|
aca61c0354 | ||
|
|
73dde4de51 | ||
|
|
597c4a2e4f | ||
|
|
62ec7f4d37 | ||
|
|
319c7e9e9f | ||
|
|
580492b0c8 | ||
|
|
655ce7b87a | ||
|
|
4e09b404a2 | ||
|
|
748f831495 | ||
|
|
bb3b87814c | ||
|
|
0bfe20182f | ||
|
|
4245c0a0ad | ||
|
|
25aadc690a | ||
|
|
12dc4ab1fa | ||
|
|
55a5917282 | ||
|
|
a5b33d11fc | ||
|
|
d2d872f51c | ||
|
|
5c0b500f48 | ||
|
|
28418288e3 | ||
|
|
0150769c17 | ||
|
|
2eaea02489 | ||
|
|
1a9c4b7714 | ||
|
|
d9f710aa52 | ||
|
|
2069cc4392 | ||
|
|
f78be9050a | ||
|
|
feb5d13e1c | ||
|
|
a3b0448f53 | ||
|
|
3dfbefb9f5 | ||
|
|
9f6bac1b1b | ||
|
|
0f2ed14d16 | ||
|
|
3e898c487a | ||
|
|
efb9dce92f | ||
|
|
f024e0bbed | ||
|
|
3f1bb6771a | ||
|
|
0b3ced5203 | ||
|
|
373267c53b | ||
|
|
ae3e250269 | ||
|
|
33200b2d08 | ||
|
|
b032e00d01 | ||
|
|
fda95dfc5d | ||
|
|
bc96f2d0cb | ||
|
|
c649e1b4a2 | ||
|
|
f54ed8ebd1 | ||
|
|
b82167fefa | ||
|
|
2efc2bc186 | ||
|
|
f572c11912 | ||
|
|
4595a77c41 | ||
|
|
7c1853431a | ||
|
|
e26eb85718 | ||
|
|
821b5686f2 | ||
|
|
c989f466ed | ||
|
|
97c771f93a | ||
|
|
54dbdde9cb | ||
|
|
513957eea1 | ||
|
|
5eed4672ed | ||
|
|
aafa4fe0b9 | ||
|
|
572c03631d | ||
|
|
2f869a55e2 | ||
|
|
161f6090c1 | ||
|
|
efad7270b7 | ||
|
|
24eb78d137 | ||
|
|
e969a1c97c | ||
|
|
4f31632863 | ||
|
|
1d417c07cd | ||
|
|
344c9fe57e | ||
|
|
9d4400349b | ||
|
|
24f7000918 | ||
|
|
6ff3286d78 | ||
|
|
f058de8bcd | ||
|
|
fbfc74e5ca | ||
|
|
1b5654001c | ||
|
|
e0f3e94e2b | ||
|
|
5da89892b4 | ||
|
|
a6ecb54cc4 | ||
|
|
04da13eaf9 | ||
|
|
7fa4df082e | ||
|
|
ae001c5e82 | ||
|
|
e7f942eda7 | ||
|
|
fa8236ee2c | ||
|
|
08ec04c889 | ||
|
|
e5150ea012 | ||
|
|
222ece2533 | ||
|
|
294696daf5 | ||
|
|
d099356207 | ||
|
|
5c06761b1a | ||
|
|
05fc3c5eca | ||
|
|
9d4e2adde4 | ||
|
|
a8db3d8dd3 | ||
|
|
6ae7c51dc5 | ||
|
|
84771f5864 | ||
|
|
4304d44851 | ||
|
|
1018c0e8a5 | ||
|
|
b1d0013214 | ||
|
|
94ef25bbb9 | ||
|
|
13830ffc9c | ||
|
|
e0bef941b4 | ||
|
|
03e9522d98 | ||
|
|
1bdbd31b96 | ||
|
|
ef9db701f8 | ||
|
|
afb564a4fc | ||
|
|
3e7f58dedd | ||
|
|
e46d8345db | ||
|
|
2e364b6d9a | ||
|
|
b4177836a8 | ||
|
|
5b2ee21204 | ||
|
|
9b6e798eb6 | ||
|
|
7c91c4ae5a | ||
|
|
7bc3b662e4 | ||
|
|
64af1f7e9b | ||
|
|
f0038e9796 | ||
|
|
768aa4ac92 | ||
|
|
f61c137ea3 | ||
|
|
20a8059758 | ||
|
|
58696c6ad4 | ||
|
|
b5ed018bae | ||
|
|
91b7dd988e | ||
|
|
b0c3c78899 | ||
|
|
282f00e091 | ||
|
|
5cd2791506 | ||
|
|
9b2e9ec41a | ||
|
|
08ef9ee682 | ||
|
|
a8bc753720 | ||
|
|
266df86d98 | ||
|
|
85a1f59a93 | ||
|
|
43258ee816 | ||
|
|
c4ca0b6e91 | ||
|
|
1bf3b3077e | ||
|
|
c9194c3635 | ||
|
|
27c462fee9 | ||
|
|
7886e5d57c | ||
|
|
6912dec166 | ||
|
|
b8e610e1b6 | ||
|
|
421b5846f2 | ||
|
|
6a30f2cbc8 | ||
|
|
a8b1e91843 | ||
|
|
20f97d0d13 | ||
|
|
4c78f06c2b | ||
|
|
c700d5c922 | ||
|
|
a9508a2c04 | ||
|
|
09d55a0cbd | ||
|
|
b165129388 | ||
|
|
0ef3471f8f | ||
|
|
9ba9998bd6 | ||
|
|
72126730ef | ||
|
|
fd2213232c | ||
|
|
369c5754f2 | ||
|
|
fc3d0ab053 | ||
|
|
1c63d7ff31 | ||
|
|
de971fa53f | ||
|
|
d005eb46cf | ||
|
|
d1dd7d1d51 | ||
|
|
b78ef006ec | ||
|
|
134c68c98e | ||
|
|
82539fc420 | ||
|
|
7a5604697f | ||
|
|
84d2b8ad6d | ||
|
|
9a0c843f29 | ||
|
|
4d96d95370 | ||
|
|
51ea5dc342 | ||
|
|
97d58e34f2 | ||
|
|
86ce5c591b | ||
|
|
dea47a6e3d | ||
|
|
7621cf3377 | ||
|
|
5090b01b8e | ||
|
|
6675fdf3c2 | ||
|
|
491812fac5 | ||
|
|
8a82552bdc | ||
|
|
bd4fc2e5cc | ||
|
|
32aa4c41ce | ||
|
|
2a6bedbd8d | ||
|
|
83942c2551 | ||
|
|
458d794f52 | ||
|
|
95982ad464 | ||
|
|
7723ff461b | ||
|
|
0ca36a89e3 | ||
|
|
cc5fdd9844 | ||
|
|
d09ee6611f | ||
|
|
bba6855872 | ||
|
|
43970b404e | ||
|
|
1868289b71 | ||
|
|
37bcd5c603 | ||
|
|
c9ad5bea93 | ||
|
|
a09b3bb6c7 | ||
|
|
3d6170be5e | ||
|
|
00477fd67a | ||
|
|
21c57f968a | ||
|
|
f7d2314d64 | ||
|
|
5ecf8c83db | ||
|
|
608834eafb | ||
|
|
1fd4b2b9fc | ||
|
|
01a143cd5a | ||
|
|
6321b21a1a | ||
|
|
8405826fab | ||
|
|
22de8855c1 | ||
|
|
1830478ec3 | ||
|
|
6d98b93135 | ||
|
|
54978e4d64 | ||
|
|
9d567d61fe | ||
|
|
79feb691bd | ||
|
|
e16fe1e6a5 | ||
|
|
04d3981921 | ||
|
|
40c3099e4e | ||
|
|
3f86fd7176 | ||
|
|
9e6bc46540 | ||
|
|
5e892f222b | ||
|
|
2da1554caa | ||
|
|
a53d0c091e | ||
|
|
f88bfa059d | ||
|
|
2e38999506 | ||
|
|
42b841cb78 | ||
|
|
c0d007ffa9 | ||
|
|
127b361979 | ||
|
|
e3dab3cf20 | ||
|
|
569b9f3d06 | ||
|
|
d6b5494625 | ||
|
|
f76edf74f9 | ||
|
|
5c199d3bb4 | ||
|
|
634a51635c | ||
|
|
4f9395e881 | ||
|
|
8035531a27 | ||
|
|
cc177533e8 | ||
|
|
cd210d9fbf | ||
|
|
87b9b56b65 | ||
|
|
bffcaa1c17 | ||
|
|
33cbb2ada8 | ||
|
|
d08e77cf36 | ||
|
|
1f8ed9dcb9 | ||
|
|
53b127902c | ||
|
|
389cbf4900 | ||
|
|
80d100f3f9 | ||
|
|
a05589c5a6 | ||
|
|
7d32636133 | ||
|
|
3db5f928ee | ||
|
|
797da3bc8e | ||
|
|
1e8d695311 | ||
|
|
00eb474e02 | ||
|
|
ad6104baeb | ||
|
|
cd552ab202 | ||
|
|
bbd471ad93 | ||
|
|
0f1ca1c7cf | ||
|
|
62fc554d25 | ||
|
|
84dc34e68f | ||
|
|
0bb77bfa7f | ||
|
|
b6702a0c3b | ||
|
|
a781a1dd4d | ||
|
|
d771527f77 | ||
|
|
3d9945b60c | ||
|
|
5897045f24 | ||
|
|
b2f53a183e | ||
|
|
be3dd63360 | ||
|
|
f951fe6939 | ||
|
|
0622be843b | ||
|
|
272fbc0cb0 | ||
|
|
36bf2a3c38 | ||
|
|
663ed9833a | ||
|
|
fcf757f715 | ||
|
|
88e729664a | ||
|
|
c03abdb5e7 | ||
|
|
6d3eb7bb4b | ||
|
|
7ffd37d9cb | ||
|
|
87aacb4270 | ||
|
|
3f756aac21 | ||
|
|
504d13943d | ||
|
|
59b1466e5d | ||
|
|
d5d9ac5c76 | ||
|
|
bb12ec702a | ||
|
|
82490b0a58 | ||
|
|
2cbf625483 | ||
|
|
44f2a986a2 | ||
|
|
c3df1c6cde | ||
|
|
6b52206186 | ||
|
|
9d4238e5cc | ||
|
|
c16c119a7d | ||
|
|
b49835c72f | ||
|
|
ee6f6ae391 | ||
|
|
95a51aafdc | ||
|
|
5e7cd79ed9 | ||
|
|
aba6173e23 | ||
|
|
468beee045 | ||
|
|
70ad66bcff | ||
|
|
e2c3b35391 | ||
|
|
448de23f59 | ||
|
|
74a015c329 | ||
|
|
44a07c74fd | ||
|
|
0f8af4ba1c | ||
|
|
214d788029 | ||
|
|
530bf22bd5 | ||
|
|
ccc98370eb | ||
|
|
7640bc029c | ||
|
|
3f72eb51a0 | ||
|
|
8801ace247 | ||
|
|
faf46e4447 | ||
|
|
63978e226b | ||
|
|
b96164d4f5 | ||
|
|
944070dfb1 | ||
|
|
f0584df1d0 | ||
|
|
ba209c2bdd | ||
|
|
c6e2f28b97 | ||
|
|
2436bb0128 | ||
|
|
9c4640e010 | ||
|
|
1ee43113b1 | ||
|
|
902f477ee3 | ||
|
|
9c1d46ff92 | ||
|
|
fe0d4f08f3 | ||
|
|
9cbd0fceea | ||
|
|
b22a4f94ab | ||
|
|
14c2005bbc | ||
|
|
a4c351fd4f | ||
|
|
a364d4950d | ||
|
|
d017dd75cd | ||
|
|
021df83c3f | ||
|
|
7805974736 | ||
|
|
c1dae95f71 | ||
|
|
e7c2ff3bd2 | ||
|
|
25459b52a1 | ||
|
|
d45274494d | ||
|
|
b81be8f358 | ||
|
|
aa6c0b9d6e | ||
|
|
64580237d5 | ||
|
|
b93165592e | ||
|
|
83c1e44925 | ||
|
|
3088115aba | ||
|
|
fc93e502b8 | ||
|
|
e90e6eaac3 | ||
|
|
2f4dcba54d | ||
|
|
683c6a748e | ||
|
|
175a871ee0 | ||
|
|
b4e2061e85 | ||
|
|
2aef99c440 | ||
|
|
6c125e125f | ||
|
|
88cbc32abc | ||
|
|
8f45e8f84a | ||
|
|
21635aadfe | ||
|
|
d5234888b3 | ||
|
|
f478afb58a | ||
|
|
a54ca699b5 | ||
|
|
1f5ff0c6d3 | ||
|
|
2a2541df59 | ||
|
|
cd629c1699 | ||
|
|
ff96773295 | ||
|
|
4d6828ec14 | ||
|
|
dae1d6057e | ||
|
|
6726c42cc8 | ||
|
|
4f6023e44c | ||
|
|
9e16d7f433 | ||
|
|
aa86cfc55f | ||
|
|
6931cb9895 | ||
|
|
d32d04bd4e | ||
|
|
0b3e9bf5e2 | ||
|
|
a4af7b8e21 | ||
|
|
72deee5d74 | ||
|
|
5e9e523d4c | ||
|
|
c54509df3d | ||
|
|
63cc9adeaa | ||
|
|
74d760a46d | ||
|
|
d46531def8 | ||
|
|
eb09ec6834 | ||
|
|
9bd9c6a400 | ||
|
|
7321e206c5 | ||
|
|
2c7917f0ca | ||
|
|
d94b20a908 | ||
|
|
b1b1fe21dd | ||
|
|
1db3af7c8e | ||
|
|
397fe31f97 | ||
|
|
bc283aa025 | ||
|
|
9dbdf0947b | ||
|
|
7c21bf4555 | ||
|
|
361dc194ee | ||
|
|
8c1aa83d12 | ||
|
|
d2755a8049 | ||
|
|
1b78bd1684 | ||
|
|
5f67f1f078 | ||
|
|
07061928df | ||
|
|
18ff2df65c | ||
|
|
7b1411d171 | ||
|
|
3a1d0f3695 | ||
|
|
2cd5e1d3c5 | ||
|
|
000765fb77 | ||
|
|
0ff324b0db | ||
|
|
a96d5096fe | ||
|
|
e8ef476a6d | ||
|
|
22b9df62d1 | ||
|
|
6026da867b | ||
|
|
4d58902ba7 | ||
|
|
4dc1343445 | ||
|
|
080487cb33 | ||
|
|
0febcf4f9e | ||
|
|
cd23f711ed | ||
|
|
f9b147af42 | ||
|
|
775f1110d3 | ||
|
|
57649a9b81 | ||
|
|
72a268b70a | ||
|
|
f86a171dff | ||
|
|
e022b782a9 | ||
|
|
bd67731bb7 | ||
|
|
25de4e4782 | ||
|
|
c590247afa | ||
|
|
5d36539271 | ||
|
|
0d673486a3 | ||
|
|
29f1651a18 | ||
|
|
dd20a3e685 | ||
|
|
75a5b1354c | ||
|
|
dae9ac8173 | ||
|
|
78b735276b | ||
|
|
e10dd54e2b | ||
|
|
cb8deab1f9 | ||
|
|
e5c27d0236 | ||
|
|
faf6fa9450 | ||
|
|
873bdc6733 | ||
|
|
8a40b075b5 | ||
|
|
56c41374bf | ||
|
|
a08c2c6437 | ||
|
|
e94634544c | ||
|
|
07fe5b247b | ||
|
|
c1c694035d | ||
|
|
147d2a02be | ||
|
|
6f91786f4d | ||
|
|
f62a933d1c | ||
|
|
451835fbeb | ||
|
|
547e7a1b21 | ||
|
|
053e3ba923 | ||
|
|
bf65dcd49b | ||
|
|
a1d186112a | ||
|
|
ca7a298509 | ||
|
|
ff4d58f648 | ||
|
|
a1e10e99fa | ||
|
|
16bda530f6 | ||
|
|
bf9e04d9db | ||
|
|
8df86a75b1 | ||
|
|
5056203023 | ||
|
|
a0026e66ce | ||
|
|
f75dd2209d | ||
|
|
e35f6d9e35 | ||
|
|
3cb00ce4e0 | ||
|
|
8e18cf5986 | ||
|
|
81f80600f5 | ||
|
|
895156675f | ||
|
|
1c424e2e0a | ||
|
|
0124bb17e8 | ||
|
|
2c89b2d262 | ||
|
|
c7bbe2f1fe | ||
|
|
88609a8829 | ||
|
|
329beb166c | ||
|
|
e36f3d937c | ||
|
|
1395092ca6 | ||
|
|
c09004dbc8 | ||
|
|
7efe4a2776 | ||
|
|
b763e0b0cb | ||
|
|
ddd0d1bef3 | ||
|
|
dbca2178c0 | ||
|
|
af742ea536 | ||
|
|
14c1a86b9b | ||
|
|
ee3dc8c4cd | ||
|
|
1ed148aaf5 | ||
|
|
3327adb1ae | ||
|
|
4d5f771f9f | ||
|
|
aa69d663ed | ||
|
|
29d1894f9a | ||
|
|
e5738d608c | ||
|
|
9775d3a33d | ||
|
|
ad4cf8d631 | ||
|
|
a27e8777aa | ||
|
|
d23edcc0b5 | ||
|
|
52373e5bef | ||
|
|
bb70e796a1 | ||
|
|
7957ec4369 | ||
|
|
3365d26b40 | ||
|
|
d3c111b533 | ||
|
|
ec876eb102 | ||
|
|
dddfb1ec08 | ||
|
|
6fc9c03d70 | ||
|
|
199ff071e8 | ||
|
|
7e4a06044a | ||
|
|
d047b75cb7 | ||
|
|
6fb6b13037 | ||
|
|
460c5a1ae3 | ||
|
|
9955bcc339 | ||
|
|
0a3ab996eb | ||
|
|
46f912a6f9 | ||
|
|
01e0f24752 | ||
|
|
7178c63e10 | ||
|
|
30c402eb83 | ||
|
|
2601cc898c | ||
|
|
d2a8823808 | ||
|
|
6b61fa9f6f | ||
|
|
247052df5f | ||
|
|
8eb28555bc | ||
|
|
73132475dc | ||
|
|
42c6487ff3 | ||
|
|
8d2ca25fd6 | ||
|
|
5c5919a7eb | ||
|
|
34cdbfc852 | ||
|
|
1bc50194aa | ||
|
|
4a75236e74 | ||
|
|
64b2f881c4 | ||
|
|
4709ddea5d | ||
|
|
6ef49152f3 | ||
|
|
1c44b0bc98 | ||
|
|
11bce8c17c | ||
|
|
b42fff1055 | ||
|
|
1b2e442513 | ||
|
|
a4d48077ba | ||
|
|
901e2527d8 | ||
|
|
f0839571d0 | ||
|
|
89d0d6ec93 | ||
|
|
922ab1d17b | ||
|
|
7c7be378bc | ||
|
|
ec01f8f54b | ||
|
|
5a094b44c4 | ||
|
|
3c657a6645 | ||
|
|
3129d44ff1 | ||
|
|
00306f82c5 | ||
|
|
7def676a17 | ||
|
|
6c48735854 | ||
|
|
a0b1831cdb | ||
|
|
db9fb8480a | ||
|
|
c138e2ffb4 | ||
|
|
473c45794e | ||
|
|
a12aa81d73 | ||
|
|
0033e279f1 | ||
|
|
a25e98d0cb | ||
|
|
bc65480f27 | ||
|
|
8582cda124 | ||
|
|
d963dfdbb6 | ||
|
|
f7e9c109f6 | ||
|
|
30c3004f27 | ||
|
|
17653761b9 | ||
|
|
4f049fd94b | ||
|
|
f98d1c95cc | ||
|
|
a2b5c0247b | ||
|
|
bca9b5d8c0 | ||
|
|
bc789c7f9f | ||
|
|
28bda9fa41 | ||
|
|
18aeeab041 | ||
|
|
c7427a5f7c | ||
|
|
03aa6c7d3a | ||
|
|
10077ae750 | ||
|
|
74eec25285 | ||
|
|
b6055479a1 | ||
|
|
69b781419f | ||
|
|
da6db24f9e | ||
|
|
2b66723d42 | ||
|
|
00a3e25714 | ||
|
|
8ccbd2d8f9 | ||
|
|
8307f26099 | ||
|
|
c686f7eefc | ||
|
|
311c7b1158 | ||
|
|
a17325f028 | ||
|
|
b734097d16 | ||
|
|
afaf077aca | ||
|
|
bf14af6a1f | ||
|
|
e72faef839 | ||
|
|
b274bafe8e | ||
|
|
7bed967755 | ||
|
|
944b81b71c | ||
|
|
cd529d53ae | ||
|
|
0d680a58f3 | ||
|
|
b30d519523 | ||
|
|
83932e1725 | ||
|
|
4ce0e39760 | ||
|
|
84232f25f0 | ||
|
|
2daedf8fd5 | ||
|
|
fe084a4478 | ||
|
|
5bf9646a76 | ||
|
|
2b1f28e6c2 | ||
|
|
5b8bd6e64f | ||
|
|
426fd499ce | ||
|
|
17d3a5840d | ||
|
|
be49e1d383 | ||
|
|
daa98e8925 | ||
|
|
58784b7568 | ||
|
|
419a183167 | ||
|
|
675b4bde14 | ||
|
|
ee6ee99577 | ||
|
|
3bc1f69e75 | ||
|
|
5b9df6d5f2 | ||
|
|
9f062ec1b8 | ||
|
|
b52a47bd03 | ||
|
|
5e20134f4f | ||
|
|
89d267d6a2 | ||
|
|
607bc42f59 | ||
|
|
880757fb5d | ||
|
|
c8acc6a12e | ||
|
|
7d4c2442da | ||
|
|
e5255b0c7c | ||
|
|
ac3ef9b6fc | ||
|
|
7b5a41c3ff | ||
|
|
d5b0d2a886 | ||
|
|
4d60447242 | ||
|
|
78bee3dc59 | ||
|
|
e2db958510 | ||
|
|
16440072fb | ||
|
|
be2dd6dc32 | ||
|
|
189bde7c9c | ||
|
|
6a4760e291 | ||
|
|
c082bb97e0 | ||
|
|
c8e14f91e7 | ||
|
|
6032d096ec | ||
|
|
defa9a2270 | ||
|
|
77a913f858 | ||
|
|
6e3fa974ba | ||
|
|
7926055b97 | ||
|
|
ffd10e656e | ||
|
|
59c1828078 | ||
|
|
6164271fe8 | ||
|
|
26ba35933d | ||
|
|
87359937c9 | ||
|
|
9b938f6515 | ||
|
|
6c3913785d | ||
|
|
542cf3147d | ||
|
|
fb9828badc | ||
|
|
2505ac3f98 | ||
|
|
fde8548166 | ||
|
|
fe91295704 | ||
|
|
15b99c5749 | ||
|
|
9d66ca4a49 | ||
|
|
b749a27f86 | ||
|
|
083212cffe | ||
|
|
c4e8756210 | ||
|
|
3a6448f727 | ||
|
|
fe18df25ba | ||
|
|
db65460ec0 | ||
|
|
0ad3eceb82 | ||
|
|
a376d6e361 | ||
|
|
45c7f3f3ca | ||
|
|
238de59a2a | ||
|
|
96255e51d2 | ||
|
|
18c3223105 | ||
|
|
b9e97792f3 | ||
|
|
cbce9b8637 | ||
|
|
5ab90b85da | ||
|
|
f3e1e8a2c7 | ||
|
|
e41b292e54 | ||
|
|
86928bbb2d | ||
|
|
2f5ec8b5bf | ||
|
|
a42d7d867e | ||
|
|
14ac6446de | ||
|
|
260a9723a4 | ||
|
|
4e7b000dcd | ||
|
|
2254e4c57e | ||
|
|
d517697564 | ||
|
|
25a27733b9 | ||
|
|
6ab520984c | ||
|
|
04d7106956 | ||
|
|
db5589f2aa | ||
|
|
d06dbbb4bd | ||
|
|
b7a62bd9e7 | ||
|
|
93ad9a3aa6 | ||
|
|
f1855174f0 | ||
|
|
a2dedba0ef | ||
|
|
5a65f445f0 | ||
|
|
f52289b2c3 | ||
|
|
3b5ea0f15f | ||
|
|
238bcb8698 | ||
|
|
3ee8bcad8c | ||
|
|
f0a51bafbe | ||
|
|
944f3bd329 | ||
|
|
8bb7b2e88b | ||
|
|
aab0b0b4bf | ||
|
|
083d6c5125 | ||
|
|
c2167a2c5f | ||
|
|
1a695e0451 | ||
|
|
8847f325ed | ||
|
|
94c9da468e | ||
|
|
24b38407e4 | ||
|
|
f49d1ae860 | ||
|
|
8b3b541a56 | ||
|
|
a974e84ad1 | ||
|
|
c4f4115bcb | ||
|
|
3c5adbee31 | ||
|
|
55645e3730 | ||
|
|
d918bb568c | ||
|
|
b1bff62bf7 | ||
|
|
d11d389ae4 | ||
|
|
a73c159160 | ||
|
|
7adf102d8d | ||
|
|
e4d3ff623a | ||
|
|
2433d59f00 | ||
|
|
8c68e76c3e | ||
|
|
0b204de5a9 | ||
|
|
93c811ab70 | ||
|
|
3ff861099a | ||
|
|
f22762539f | ||
|
|
677442a3c0 | ||
|
|
b73f12cdba | ||
|
|
28fbb61e81 | ||
|
|
c1104d1cd6 | ||
|
|
e346702292 | ||
|
|
90887779ea | ||
|
|
a941b1437c | ||
|
|
04bdcbd490 | ||
|
|
87a815fd6f | ||
|
|
d623848c87 | ||
|
|
46abd0cc42 | ||
|
|
e315325d91 | ||
|
|
f3fc083330 | ||
|
|
92cb57eb7b | ||
|
|
d645fbff2f | ||
|
|
8486f4d43a | ||
|
|
60b1a05894 | ||
|
|
f955d63707 | ||
|
|
f106019938 | ||
|
|
2473249c8b | ||
|
|
d13dc4fba3 | ||
|
|
41a0af032c | ||
|
|
70cf7b0c5a | ||
|
|
14f6788ab9 | ||
|
|
bb67049d90 | ||
|
|
ae2162beaf | ||
|
|
19f2c5e07f | ||
|
|
8abc5b3889 | ||
|
|
4d37c28bc7 | ||
|
|
cc0933eee4 | ||
|
|
2de9a804a0 | ||
|
|
ffeb2e91f4 | ||
|
|
8cf5ec9e5a | ||
|
|
ea0526f29a | ||
|
|
cfcb3a69e5 | ||
|
|
e3e0378857 | ||
|
|
ccc3809daa | ||
|
|
c97786e12c | ||
|
|
400071879f | ||
|
|
4cd6e20c91 | ||
|
|
460e3ad395 | ||
|
|
6f08bd6fc5 | ||
|
|
eed3a749db | ||
|
|
6587d12fbd | ||
|
|
f8dd68ecc4 | ||
|
|
f0aef2b853 | ||
|
|
7d27df1b97 | ||
|
|
457ec86c25 | ||
|
|
a24c66958f | ||
|
|
617628b886 | ||
|
|
6b7e623d33 | ||
|
|
5ca85b7e83 | ||
|
|
5965bf3332 | ||
|
|
baf2dd293b | ||
|
|
2cc19e7e32 | ||
|
|
53ab6f8569 | ||
|
|
cf8faac7ef | ||
|
|
86947a384d | ||
|
|
22855279bd | ||
|
|
e56fdecdc6 | ||
|
|
dc75a5812f | ||
|
|
33e20c9969 | ||
|
|
109204897f | ||
|
|
3b3a2d62f8 | ||
|
|
b1b4b3fb63 | ||
|
|
d583c68de5 | ||
|
|
d360f30af6 | ||
|
|
ed033565a4 | ||
|
|
2d6acfae1b | ||
|
|
10da894124 | ||
|
|
6dda8f21e4 | ||
|
|
1a9d759002 | ||
|
|
df24e13eb5 | ||
|
|
2ab19937af | ||
|
|
390b86cd8e | ||
|
|
423aba5bab | ||
|
|
dc0b9231cd | ||
|
|
3b177bedf8 | ||
|
|
12ce719213 | ||
|
|
320433b1bf | ||
|
|
7f35e2280e | ||
|
|
c514d988df | ||
|
|
749a080397 | ||
|
|
b105a12505 | ||
|
|
abaf363ddd | ||
|
|
16db9d4290 | ||
|
|
a694b0364d | ||
|
|
b68835f171 | ||
|
|
32714c5dac | ||
|
|
245e06f026 | ||
|
|
e0111d3fe6 | ||
|
|
a71d4223ff | ||
|
|
20cba6411b | ||
|
|
502a8112b5 | ||
|
|
308c6ee4da | ||
|
|
cae003d4fa | ||
|
|
b9b900e908 | ||
|
|
8bdba9178a | ||
|
|
97f11e38cd | ||
|
|
c4f5df0cd0 | ||
|
|
9ed3a6748a | ||
|
|
359c0354f6 | ||
|
|
fc77c089fa | ||
|
|
137a7ac48c | ||
|
|
42b60aef4e | ||
|
|
5ab7380ad1 | ||
|
|
afa25df1af | ||
|
|
5cb888328e | ||
|
|
78aeb94917 | ||
|
|
5f3e9a19ea | ||
|
|
420e8c001b | ||
|
|
c63b8a4ebc | ||
|
|
5f5feaed5f | ||
|
|
87a1f616b0 | ||
|
|
cc051544f9 | ||
|
|
85a438a40f | ||
|
|
877260a243 | ||
|
|
83d99043a8 | ||
|
|
6a57d25f4a | ||
|
|
91473e731e | ||
|
|
1d91ac1169 | ||
|
|
2850477a71 | ||
|
|
651b1c92c3 | ||
|
|
77e74eb37b | ||
|
|
5bb2bc7077 | ||
|
|
98a001a8ca | ||
|
|
0d75ff336d | ||
|
|
8567f1655e | ||
|
|
68b94737ed | ||
|
|
094c92ed85 | ||
|
|
42ab6deff1 | ||
|
|
3a257e1e00 | ||
|
|
2bf9a353a6 | ||
|
|
bbe41febf1 | ||
|
|
031362a633 | ||
|
|
4418f8bfce | ||
|
|
364175fa9d | ||
|
|
13cf2b48e1 | ||
|
|
e4f6694223 | ||
|
|
59093f1721 | ||
|
|
db5e79a19b | ||
|
|
f0b1585b52 | ||
|
|
50228c5970 | ||
|
|
b98e85016a | ||
|
|
bc540eefb6 | ||
|
|
3f1c4b4117 | ||
|
|
5e7689a151 | ||
|
|
42845cfcc0 | ||
|
|
caad0eca67 | ||
|
|
67f8ec7f87 | ||
|
|
d8d37a66e4 | ||
|
|
69db23f2f6 | ||
|
|
c3f6bcad56 | ||
|
|
ab1521bf26 | ||
|
|
fafe8b88c2 | ||
|
|
9276988ff6 | ||
|
|
85179edf1b | ||
|
|
2f1ba6cf1f | ||
|
|
93674b4e29 | ||
|
|
20851664e8 | ||
|
|
38c87a056c | ||
|
|
ad77565508 | ||
|
|
0e02e21967 | ||
|
|
1e35a6ce5e | ||
|
|
90b167eba1 | ||
|
|
5b1defad9f | ||
|
|
8dc1ad8168 | ||
|
|
126a42056d | ||
|
|
5866dad79a | ||
|
|
9dac679b72 | ||
|
|
12ff3abeda | ||
|
|
0f07fb4479 | ||
|
|
d9d98439b2 | ||
|
|
d251a30cb8 | ||
|
|
a2632fdcc8 | ||
|
|
10c818474c | ||
|
|
5e8279cf51 | ||
|
|
4c8c081c31 | ||
|
|
bad2baba7f | ||
|
|
b5da6f9c74 | ||
|
|
7ec999475e | ||
|
|
742bf85a89 | ||
|
|
c9c6f41aad | ||
|
|
b0d93df387 | ||
|
|
3e20892fdf | ||
|
|
369f8b3fe0 | ||
|
|
337dfba2b8 | ||
|
|
493687b5bb | ||
|
|
c7587960fb | ||
|
|
5c962aa899 | ||
|
|
3e9d2a8062 | ||
|
|
c2aa8a206a | ||
|
|
6d8ea2b6a4 | ||
|
|
b581e33611 | ||
|
|
5e43a02cd3 | ||
|
|
6f37d5ca5c | ||
|
|
3263008379 | ||
|
|
4588089bd6 | ||
|
|
44b75f0b92 | ||
|
|
162bd6a8c3 | ||
|
|
0c13603185 | ||
|
|
ed2a45e975 | ||
|
|
0fa165c606 | ||
|
|
fe63ab1242 | ||
|
|
faf808da69 | ||
|
|
71709cd662 | ||
|
|
d92040b804 | ||
|
|
3662fbb462 | ||
|
|
d89ae3ebbf | ||
|
|
6175fecdd8 | ||
|
|
fab632da62 | ||
|
|
c1e3b0d971 | ||
|
|
7b15ba31ea | ||
|
|
f11d4ccd45 | ||
|
|
fbec803129 | ||
|
|
0f57d1a433 | ||
|
|
63829b6382 | ||
|
|
8ac3899ddc | ||
|
|
59fb4ea6f8 | ||
|
|
92bb9bb3c3 | ||
|
|
1795c491a8 | ||
|
|
ea333c19f7 | ||
|
|
28ef879c07 | ||
|
|
10839abf24 | ||
|
|
9832394f8e | ||
|
|
dd89ea3731 | ||
|
|
5d9fd6dc3b | ||
|
|
f7c87e26db | ||
|
|
f98f4085bf | ||
|
|
543519d055 | ||
|
|
5a9fcd9267 | ||
|
|
fe2360883f | ||
|
|
b45ddadb09 | ||
|
|
a3cbe80a36 | ||
|
|
ee6c6266cc | ||
|
|
d6bd35287f | ||
|
|
962a29110c | ||
|
|
a242475b38 | ||
|
|
d59bf84470 | ||
|
|
161ee17f45 | ||
|
|
8aa00b0cfc | ||
|
|
afe89c3621 | ||
|
|
bdf68311b4 | ||
|
|
afa69f4c0e | ||
|
|
6fe2b24592 | ||
|
|
7442b356e3 | ||
|
|
1d7be6457f | ||
|
|
c9ff05ba80 | ||
|
|
faae184f1c | ||
|
|
515a8a9bbb | ||
|
|
58914e5c5f | ||
|
|
c944eaab5c | ||
|
|
d3d9533493 | ||
|
|
9c474cc089 | ||
|
|
3f1b0b986f | ||
|
|
28e08ebaf5 | ||
|
|
3213c03754 | ||
|
|
4447288a4c | ||
|
|
eee4e83a1e | ||
|
|
a67b492620 | ||
|
|
6062ff2748 | ||
|
|
3b11195caa | ||
|
|
9946ea111c | ||
|
|
7074d66f8e | ||
|
|
008b26f329 | ||
|
|
b246f0779f | ||
|
|
dc89218702 | ||
|
|
3c013b3533 | ||
|
|
fe0d0f08e4 | ||
|
|
38b5063038 | ||
|
|
e55481a454 | ||
|
|
7063a88513 | ||
|
|
a9bf3d0226 | ||
|
|
781b3aff1b | ||
|
|
b011b9203b | ||
|
|
39344fcae5 | ||
|
|
a046b357da | ||
|
|
d8e4020cec | ||
|
|
f80b172022 | ||
|
|
66fc4b536c | ||
|
|
1f97ccdddb | ||
|
|
308d6889a7 | ||
|
|
c3b9982c44 | ||
|
|
fab796e4e4 | ||
|
|
749db6ba82 | ||
|
|
12d6c4ddf5 | ||
|
|
430a03bb14 | ||
|
|
43f21fc7aa | ||
|
|
b27da3d1a0 | ||
|
|
4463a8e3b2 | ||
|
|
9e74ddac48 | ||
|
|
5f62e41d62 | ||
|
|
19a103d3a0 | ||
|
|
8fb6bc059e | ||
|
|
8f61a0d258 | ||
|
|
7fa589e430 | ||
|
|
6d8d826764 | ||
|
|
a40e84e1f6 | ||
|
|
4844c2123f | ||
|
|
236d437430 | ||
|
|
ae726c199b | ||
|
|
e7f54f005c | ||
|
|
e7b1ec6904 | ||
|
|
f4f664a4a2 | ||
|
|
fec52a8151 | ||
|
|
d8b4c1e209 | ||
|
|
eac853c7dd | ||
|
|
a04337a270 | ||
|
|
50d7e16365 | ||
|
|
ef7bc931b7 | ||
|
|
41de771074 | ||
|
|
2ebdd6c5cb | ||
|
|
b51cfcc753 | ||
|
|
91cc03dd80 | ||
|
|
9d673a213e | ||
|
|
97e789538e | ||
|
|
e05ff01d57 | ||
|
|
0748dff355 | ||
|
|
28d4084aa0 | ||
|
|
afd2ccfb4f | ||
|
|
057127f4de | ||
|
|
2937b25d6d | ||
|
|
419f26db87 | ||
|
|
be1b9c0e43 | ||
|
|
894d28c60b | ||
|
|
06cc08d9f7 | ||
|
|
75393c0b28 | ||
|
|
bdc1da70c1 | ||
|
|
7cef990ba6 | ||
|
|
fb0f12bb20 | ||
|
|
e94b8d3e84 | ||
|
|
8c00e1fdf4 | ||
|
|
a31fa82284 | ||
|
|
5d0af45d8f | ||
|
|
e9f248020e | ||
|
|
a8e1058af6 | ||
|
|
1a087fd799 | ||
|
|
50c81533e0 | ||
|
|
5eab9aa4b1 | ||
|
|
1970cbfe37 | ||
|
|
6d736201f9 | ||
|
|
51ec52b573 | ||
|
|
d099387186 | ||
|
|
3f91e4da66 | ||
|
|
4124159378 | ||
|
|
18f3789e29 | ||
|
|
a713c92530 | ||
|
|
7828af591e | ||
|
|
d432dba726 | ||
|
|
72ae87857f | ||
|
|
724acff591 | ||
|
|
482b432e2c | ||
|
|
351c0cb0a8 | ||
|
|
314a0fb5d6 | ||
|
|
a301bf8bf5 | ||
|
|
37b3601c47 | ||
|
|
6e944485f0 | ||
|
|
431266069e | ||
|
|
d48a09e68b | ||
|
|
1db1ec7b5e | ||
|
|
2a8f0a4eab | ||
|
|
79f3669fac | ||
|
|
aab0f2dcd5 | ||
|
|
a47831e278 | ||
|
|
f1a5e8a42c | ||
|
|
723e9b3cba | ||
|
|
ff759a8074 | ||
|
|
4de1056d82 | ||
|
|
884b8da8bf | ||
|
|
044ad77a4b | ||
|
|
1fe8b388a3 | ||
|
|
79fe7d684c | ||
|
|
c409af0ea8 | ||
|
|
5110eaff96 | ||
|
|
db3eee72b5 | ||
|
|
3bcff91328 | ||
|
|
e843f192ec | ||
|
|
f3d2053878 | ||
|
|
efe8fbbd11 | ||
|
|
ce507b3b52 | ||
|
|
85de227003 | ||
|
|
7c6eb7c794 | ||
|
|
2037741b54 | ||
|
|
d534a8952d | ||
|
|
0b05b883cb | ||
|
|
6937aa5ddd | ||
|
|
8f6b24e0aa | ||
|
|
ba3b64a6c6 | ||
|
|
d23b32a830 | ||
|
|
ceba08a801 | ||
|
|
e0bb03a53f | ||
|
|
0881c6a20b | ||
|
|
f88a4b1791 | ||
|
|
2b43e3ee23 | ||
|
|
2e063f91bc | ||
|
|
79062e2034 | ||
|
|
a413f3cded | ||
|
|
4baaaa8d59 | ||
|
|
c99b35428b | ||
|
|
3c8e4f8bbf | ||
|
|
aa9a37da38 | ||
|
|
85efb48c1f | ||
|
|
888e7ee023 | ||
|
|
d7bbf8a8da | ||
|
|
e2ee88de84 | ||
|
|
1d1ab5b7b2 | ||
|
|
54c863d48f | ||
|
|
acc633b4b6 | ||
|
|
766ccf85c2 | ||
|
|
7ab5a2be47 | ||
|
|
7a6e1fe566 | ||
|
|
4749c92252 | ||
|
|
0e035e47df | ||
|
|
1359545e13 | ||
|
|
5b2f24f842 | ||
|
|
bb73e30909 | ||
|
|
490903ca25 | ||
|
|
901b32297e | ||
|
|
dd72046922 | ||
|
|
6286b34d00 | ||
|
|
81f4e0de56 | ||
|
|
596fbfb517 | ||
|
|
da756fa568 | ||
|
|
30aebc4ee3 | ||
|
|
45138ce5ca | ||
|
|
f26b9feeaf | ||
|
|
9e47d933af | ||
|
|
f309a9d537 | ||
|
|
a786b37cb9 | ||
|
|
6a519a30a2 | ||
|
|
81ae552e69 | ||
|
|
0ec04a3624 | ||
|
|
81d5b47fce | ||
|
|
ed31a0cf15 | ||
|
|
201d1926bc | ||
|
|
9ee6655bfa | ||
|
|
c4beab6b0d | ||
|
|
34b6643913 | ||
|
|
98e391b867 | ||
|
|
19eb8e9a6d | ||
|
|
43b7aa40c3 | ||
|
|
747af44fc1 | ||
|
|
a73381e24b | ||
|
|
d5ef428edd | ||
|
|
5fa4d227b8 | ||
|
|
cc7e3b0c26 | ||
|
|
473a2ae275 | ||
|
|
7f5d47f39d | ||
|
|
6031f146aa | ||
|
|
020a469f3b | ||
|
|
091de3aa66 | ||
|
|
b837f7608c | ||
|
|
afe9367bac | ||
|
|
9bd9023cb6 | ||
|
|
8502cf8498 | ||
|
|
33dade0584 | ||
|
|
84cc2ad0fa | ||
|
|
dc2d3bc7c0 | ||
|
|
64df557423 | ||
|
|
715cc77e76 | ||
|
|
b80d1af3d7 | ||
|
|
f05f534fd2 | ||
|
|
c0837ead0e | ||
|
|
a1f135bd66 | ||
|
|
978f4ecc58 | ||
|
|
46a8d96997 | ||
|
|
c283224000 | ||
|
|
a6ef755139 | ||
|
|
29a257d17a | ||
|
|
368b76a183 | ||
|
|
8bb861124d | ||
|
|
2f884ec778 | ||
|
|
8c561e92c8 | ||
|
|
633b9180d7 | ||
|
|
0e2d0e1b6f | ||
|
|
ea4d65ceee | ||
|
|
d47ac84d2e | ||
|
|
a97759aa35 | ||
|
|
3fcfd4abdd | ||
|
|
6d771da9a9 | ||
|
|
6201247875 | ||
|
|
8c367bcc53 | ||
|
|
8198132ca7 | ||
|
|
cf3b4e9e63 | ||
|
|
987dbf8a92 | ||
|
|
acf8c9bc4a | ||
|
|
7173895d36 | ||
|
|
43530d4a5f | ||
|
|
fefabef9ee | ||
|
|
0dd40a941b | ||
|
|
24b6670bc4 | ||
|
|
76661abbf5 | ||
|
|
e9dc9eff9b | ||
|
|
2f160743bc | ||
|
|
98616e772c | ||
|
|
bc014fec9b | ||
|
|
732598d9d2 | ||
|
|
2979acd5b8 | ||
|
|
fd20cd524e | ||
|
|
7b80ae42e1 | ||
|
|
b7012674c6 | ||
|
|
c76bd39280 | ||
|
|
09cd710f66 | ||
|
|
d9aadf9d98 | ||
|
|
86716b5ffb | ||
|
|
96e3aab3b4 | ||
|
|
72c78fe3ad | ||
|
|
abe746020b | ||
|
|
8e1c15419c | ||
|
|
ee47646cf7 | ||
|
|
32d9acdaa5 | ||
|
|
4eb3bd496b | ||
|
|
3c4f4d27d6 | ||
|
|
2060af8a92 | ||
|
|
21bf74a467 | ||
|
|
677833a277 | ||
|
|
0b5e4f2dd7 | ||
|
|
06a1f30350 | ||
|
|
c1ff241550 | ||
|
|
5717f75eac | ||
|
|
6b3b68a4e5 | ||
|
|
8bda2d0add | ||
|
|
bc02c9573c | ||
|
|
86bb5503ab | ||
|
|
21ce23d27d | ||
|
|
6c75baecb2 | ||
|
|
8167608f04 | ||
|
|
514e31aef9 | ||
|
|
20a31a6d38 | ||
|
|
4f0aa1bc02 | ||
|
|
be0ef6e594 | ||
|
|
93a8dbd31a | ||
|
|
cf931e8ddf | ||
|
|
510bfbf268 | ||
|
|
2f93bb969b | ||
|
|
27365c9f7b | ||
|
|
b1d2e188f5 | ||
|
|
e4f67df2a1 | ||
|
|
e094ea3d2a | ||
|
|
7515b745b5 | ||
|
|
0e902a7e71 | ||
|
|
2dfb443625 | ||
|
|
e6e7747ae1 | ||
|
|
d80ea6c0f5 | ||
|
|
ac6e3988a8 | ||
|
|
bfd98f3767 | ||
|
|
cc8bc1339f | ||
|
|
542d1dc600 | ||
|
|
1c66c88f95 | ||
|
|
dc880c672a | ||
|
|
073f38c68c | ||
|
|
6a6d13b075 | ||
|
|
9bb7e72c69 | ||
|
|
7436e01188 | ||
|
|
3d272d0f10 | ||
|
|
ee66a12dad | ||
|
|
47de85b012 | ||
|
|
f85b63a972 | ||
|
|
e630919ef8 | ||
|
|
2e3fd49b40 | ||
|
|
dd54af2c08 | ||
|
|
737bf411ff | ||
|
|
5070b1a6b5 | ||
|
|
c849da92cf | ||
|
|
6a4e7201fe | ||
|
|
ffa6dea452 | ||
|
|
30c1d31a99 | ||
|
|
6934a2d5c3 | ||
|
|
b9906ced9a | ||
|
|
5500b4fe35 | ||
|
|
2353f12cd6 | ||
|
|
1b8cab0f58 | ||
|
|
869c1d4ea4 | ||
|
|
9b938195a8 | ||
|
|
bb3c52821a | ||
|
|
81c8ae95e2 | ||
|
|
6098570ab7 | ||
|
|
d033c24fe5 | ||
|
|
4995e52dd6 | ||
|
|
c685a31056 | ||
|
|
c32ce3bb7b | ||
|
|
c0d8f904b3 | ||
|
|
8dba0dac9e | ||
|
|
d0bf4a5329 | ||
|
|
7b28ba6078 | ||
|
|
e6466c3c3a | ||
|
|
d96d3064d6 | ||
|
|
d4589ed7e3 | ||
|
|
5cfc52ea18 | ||
|
|
3fcacd8339 | ||
|
|
49fe13f22f | ||
|
|
4d27ba1bda | ||
|
|
b715ac8bf4 | ||
|
|
d96049416f | ||
|
|
1c4df785fd | ||
|
|
8f94c5efeb | ||
|
|
7cffa1ece7 | ||
|
|
1ac18d7b33 | ||
|
|
1111d2518b | ||
|
|
ba7416450e | ||
|
|
3b02d36acb | ||
|
|
c2aa9a5337 | ||
|
|
70fb181b7b | ||
|
|
e64f4e3f39 | ||
|
|
e4d518749f | ||
|
|
7dcca2c907 | ||
|
|
4a027b8a79 | ||
|
|
c2c6e6080e | ||
|
|
4f87ebdf0a | ||
|
|
09abec15b1 | ||
|
|
33d0d12bc8 | ||
|
|
f488869635 | ||
|
|
6382564727 | ||
|
|
7476b4c7db | ||
|
|
daf3e6a47a | ||
|
|
19b6cba398 | ||
|
|
5bd3d12c7b | ||
|
|
c9db74ebca | ||
|
|
f8a88cc1a4 | ||
|
|
4a081bf125 | ||
|
|
8a68a3e861 | ||
|
|
7a9dd9ad9c | ||
|
|
6c01d0f9d8 | ||
|
|
45a53ac168 | ||
|
|
dabb2790c9 | ||
|
|
c66c5ea53c | ||
|
|
0a98ba6985 | ||
|
|
bb8e491856 | ||
|
|
5590d31336 | ||
|
|
dc7e48dc53 | ||
|
|
371d357218 | ||
|
|
f22960ad59 | ||
|
|
34ead436b0 | ||
|
|
808d5a75ae | ||
|
|
55e897faac | ||
|
|
5a5dda21e4 | ||
|
|
f085655daa | ||
|
|
5cf9c07b73 | ||
|
|
9751089807 | ||
|
|
211eeea05d | ||
|
|
b2516117f5 | ||
|
|
2816b3edae | ||
|
|
242398c724 | ||
|
|
289583325d | ||
|
|
0f793ebd65 | ||
|
|
ce014044ea | ||
|
|
1064e531f0 | ||
|
|
dc3128fb3e | ||
|
|
51a3521834 | ||
|
|
d40aa7260f | ||
|
|
fc8c4063f2 | ||
|
|
f204c77ba3 | ||
|
|
7a8545273c | ||
|
|
6a9575e9f4 | ||
|
|
c13e79e9c3 | ||
|
|
62088259ae | ||
|
|
925ebcc06e | ||
|
|
a20eaf852f | ||
|
|
84a6a5235e | ||
|
|
8235b7b96d | ||
|
|
0376e0d711 | ||
|
|
6bd0682e8c | ||
|
|
e24c22f9be | ||
|
|
673a6bbe2c | ||
|
|
cf32a33984 | ||
|
|
f4ca8cd738 | ||
|
|
98c1bc276d | ||
|
|
629536b562 | ||
|
|
422109868d | ||
|
|
bcc7834650 | ||
|
|
1161e4f6c1 | ||
|
|
14435c24ac | ||
|
|
22ede79799 | ||
|
|
6cb3699ee9 | ||
|
|
6c65d3830e | ||
|
|
cdcf39fe82 | ||
|
|
1441042458 | ||
|
|
71403e5acd | ||
|
|
3d70bc722a | ||
|
|
b2f50da322 | ||
|
|
2a50c66df8 | ||
|
|
8de47c0a6e | ||
|
|
023391e22a | ||
|
|
a4ddfd404f | ||
|
|
7307e558cb | ||
|
|
47356f5221 | ||
|
|
c6f8950b64 | ||
|
|
58c8311d56 | ||
|
|
071f4eacde | ||
|
|
f96bdc578e | ||
|
|
e03a0fffa9 | ||
|
|
8e2c12f8d9 | ||
|
|
114420e8fd | ||
|
|
ba49b2c681 | ||
|
|
5391fc962a | ||
|
|
7cec7ae608 | ||
|
|
d6211af5bd | ||
|
|
ef114e31c2 | ||
|
|
fd74a03479 | ||
|
|
428bf634e9 | ||
|
|
c49f722e4f | ||
|
|
d4d95a43b6 | ||
|
|
8789d983ed | ||
|
|
10faa96bcf | ||
|
|
42d31b9ee6 | ||
|
|
c9dc9b4fe9 | ||
|
|
a345089c8b | ||
|
|
67c268e13d | ||
|
|
f13e02a1a9 | ||
|
|
d887ab126b | ||
|
|
1a7868159a | ||
|
|
c6a1c8e8c4 | ||
|
|
fba339f666 | ||
|
|
09d41a9708 | ||
|
|
ce85c8d986 | ||
|
|
4630a162af | ||
|
|
fde157ff50 | ||
|
|
51f875c02d | ||
|
|
f0957c838f | ||
|
|
f5bebef37f | ||
|
|
80a15089b4 | ||
|
|
cb35604ef5 | ||
|
|
61681bb1d6 | ||
|
|
8edf399631 | ||
|
|
d5ffd1432f | ||
|
|
e73bf03615 | ||
|
|
665fe0e01e | ||
|
|
1a226c4dc6 | ||
|
|
a866aa9c18 | ||
|
|
d9089b798c | ||
|
|
d34ebd4d1b | ||
|
|
716aa74004 | ||
|
|
2aae76c9bc | ||
|
|
5fc3ca0e23 | ||
|
|
5bb27109bf | ||
|
|
7406ab6017 | ||
|
|
08fccc4e77 | ||
|
|
c1d50e82e1 | ||
|
|
9777af7cb5 | ||
|
|
fd86035865 | ||
|
|
a8ec032553 | ||
|
|
66ee27c5fa | ||
|
|
17a737ca88 | ||
|
|
f30ff7a2fd | ||
|
|
c102828a99 | ||
|
|
cb0e631b85 | ||
|
|
75e7c0e50d | ||
|
|
62b2adab78 | ||
|
|
fc0cf1ff51 | ||
|
|
0f4d46671f | ||
|
|
048f9c0294 | ||
|
|
0529eed0c9 | ||
|
|
ca77842b5b | ||
|
|
8c169dc82b | ||
|
|
195342f7db | ||
|
|
cfaaef7860 | ||
|
|
e939d5e96e | ||
|
|
6fa8b7f5f1 | ||
|
|
a2d03c14ae | ||
|
|
c667a0e74c | ||
|
|
8123828113 | ||
|
|
72b8dbb45b | ||
|
|
9f4628cf0a | ||
|
|
ec4d24af91 | ||
|
|
7703875740 | ||
|
|
6442bb8a13 | ||
|
|
51373f59e2 | ||
|
|
6cc56879d3 | ||
|
|
f29d7c9252 | ||
|
|
2f7f53ed96 | ||
|
|
da89460830 | ||
|
|
9e006d42bb | ||
|
|
4c02bab4ee | ||
|
|
5800ed41f1 | ||
|
|
18b5b4901f | ||
|
|
368418cf56 | ||
|
|
94031a52a5 | ||
|
|
d67f91e7ed | ||
|
|
3e6cadf3d8 | ||
|
|
f37697c4fb | ||
|
|
0c5a76b391 | ||
|
|
69448c7329 | ||
|
|
8e9815fb91 | ||
|
|
bf1afcfe8a | ||
|
|
2980818f0d | ||
|
|
9da58dbaf0 | ||
|
|
4cdd7978cf | ||
|
|
40d81358f4 | ||
|
|
c7b62aed91 | ||
|
|
55d71659f8 | ||
|
|
c0e7d6d826 | ||
|
|
f809377de8 | ||
|
|
9767bd9697 | ||
|
|
3a55528552 | ||
|
|
56197ffe3a | ||
|
|
0f0d0c046c | ||
|
|
8d5b546763 | ||
|
|
19c9707d62 | ||
|
|
ecc4973645 | ||
|
|
79e004a040 | ||
|
|
3169f93cc2 | ||
|
|
c1a1a73599 | ||
|
|
48308db45b | ||
|
|
3f37e96f78 | ||
|
|
db1b0ccb79 | ||
|
|
df161ce672 | ||
|
|
4e21a5e557 | ||
|
|
72fe30892e | ||
|
|
19fa69811b | ||
|
|
0ddb4c625d | ||
|
|
d373105b32 | ||
|
|
36dc1d2f97 | ||
|
|
11fa2cb35d | ||
|
|
546f07156f | ||
|
|
7e7117632d | ||
|
|
954226da0d | ||
|
|
38a1291c5b | ||
|
|
998bf92ad4 | ||
|
|
974ba40f28 | ||
|
|
e57d8ba0ef | ||
|
|
6b79c6135f | ||
|
|
28b311b7ed | ||
|
|
dcda513901 | ||
|
|
72c400794c | ||
|
|
a747d8c2d5 | ||
|
|
a3aec6b939 | ||
|
|
042409f870 | ||
|
|
5b8f4f4069 | ||
|
|
d132d63c1d | ||
|
|
4374506981 | ||
|
|
ef8b936069 | ||
|
|
36e3bfffb4 | ||
|
|
91a38bdb60 | ||
|
|
f169a68319 | ||
|
|
ee886f98dd | ||
|
|
a3826cc6a7 | ||
|
|
ba33b832ba | ||
|
|
f6c017176b | ||
|
|
7a01b115bb | ||
|
|
1dc021e871 | ||
|
|
c9f916ebab | ||
|
|
ff627fd128 | ||
|
|
bba57f8d2b | ||
|
|
695873d35a | ||
|
|
15da19dcea | ||
|
|
4312a01707 | ||
|
|
ecd8f97d8b | ||
|
|
d5bdc1600b | ||
|
|
dfa077fd5f | ||
|
|
06abe63fb1 | ||
|
|
5155770213 | ||
|
|
9d507b09ca | ||
|
|
9c4a712dc7 | ||
|
|
f1d5bbb036 | ||
|
|
69ed0aebc3 | ||
|
|
549e56e220 | ||
|
|
450f4d9a5a | ||
|
|
6533a9793c | ||
|
|
2000cadb17 | ||
|
|
083c321efa | ||
|
|
f64c4a981f | ||
|
|
3ac8ce03bf | ||
|
|
66fca8710e | ||
|
|
1e245ece46 | ||
|
|
81efce03ba | ||
|
|
4e549dd426 | ||
|
|
52f74ff7e0 | ||
|
|
3c71b815f5 | ||
|
|
9efd48fe51 | ||
|
|
4609ee75b6 | ||
|
|
963ea4177e | ||
|
|
17e6940a42 | ||
|
|
315a9ceba3 | ||
|
|
a2bdeedb09 | ||
|
|
da5700d2d7 | ||
|
|
90e7f30247 | ||
|
|
3ccf6ba892 | ||
|
|
e50cd5b745 | ||
|
|
db77be5d72 | ||
|
|
c36870c23e | ||
|
|
e9be007040 | ||
|
|
9e400d9aa6 | ||
|
|
490c8dae75 | ||
|
|
3bcffe375d | ||
|
|
9f81a591e1 | ||
|
|
3db5306c70 | ||
|
|
45029dd084 | ||
|
|
b01cd30339 | ||
|
|
09329e1104 | ||
|
|
ab0fc2ecfa | ||
|
|
bf5d36d6bd | ||
|
|
a29527ec96 | ||
|
|
45e7ad8049 | ||
|
|
4d54663efd | ||
|
|
29d386cc51 | ||
|
|
ba1a67969b | ||
|
|
390ea5419e | ||
|
|
0fdeec7cc4 | ||
|
|
e34d883e50 | ||
|
|
507871687b | ||
|
|
ed58f62cd1 | ||
|
|
94bc4e7125 | ||
|
|
5832f7930d | ||
|
|
0066a20c22 | ||
|
|
774e4bfced | ||
|
|
054c7a76a4 | ||
|
|
c7f3b77aac | ||
|
|
a6a4620374 | ||
|
|
5148c62d1c | ||
|
|
6fc863a91e | ||
|
|
e066a154a1 | ||
|
|
d432edaed2 | ||
|
|
8f34f4e80b | ||
|
|
39b751acf5 | ||
|
|
bd5e8ba961 | ||
|
|
ed20327c41 | ||
|
|
991c68c394 | ||
|
|
2acc31a4e7 | ||
|
|
b9733e3dfa | ||
|
|
bb106bfce7 | ||
|
|
daf1388a6a | ||
|
|
8226f1fa75 | ||
|
|
e675512fa3 | ||
|
|
65e67b6c3e | ||
|
|
7612481570 | ||
|
|
f6c7cb5804 | ||
|
|
2201c9062f | ||
|
|
ca3da262da | ||
|
|
5847f92bef | ||
|
|
31ee1be81e | ||
|
|
6bccdd015f | ||
|
|
cecea318da | ||
|
|
8663ec6880 | ||
|
|
9b03f128aa | ||
|
|
8a51f97616 | ||
|
|
ee74ed9ce9 | ||
|
|
0f947c756e | ||
|
|
cae7949a48 | ||
|
|
be58b614e1 | ||
|
|
b0a01fa4b2 | ||
|
|
9734228001 | ||
|
|
9df1d44bc4 | ||
|
|
13d887028a | ||
|
|
83a8979309 | ||
|
|
75c29f1cb7 | ||
|
|
d9d15e41c7 | ||
|
|
d3598d5854 | ||
|
|
3a8aaee5d7 | ||
|
|
4fcf57d42c | ||
|
|
adb0891335 | ||
|
|
d21e719cc1 | ||
|
|
5807ab82c1 | ||
|
|
65cb04da63 | ||
|
|
312e3611b1 | ||
|
|
46acc62279 | ||
|
|
529b358c9b | ||
|
|
7fca04404e | ||
|
|
3a1cc6a2be | ||
|
|
5b76c91004 | ||
|
|
cf87837f7d | ||
|
|
5a0a7b907b | ||
|
|
6a2b1669b3 | ||
|
|
ca8264b3f4 | ||
|
|
b44ecd8819 | ||
|
|
987942959e | ||
|
|
91992b48c1 | ||
|
|
c9a335a6f9 | ||
|
|
b7ed159b50 | ||
|
|
c72961a52a | ||
|
|
afe6afca36 | ||
|
|
050acd239c | ||
|
|
24505ee4f5 | ||
|
|
63a249aba3 | ||
|
|
7bd94df2a0 | ||
|
|
761161a8e5 | ||
|
|
513579a7ee | ||
|
|
7165483d83 | ||
|
|
f8bcf219cb | ||
|
|
590506e306 | ||
|
|
9a5439c580 | ||
|
|
6b2f5fbb19 | ||
|
|
051c147b41 | ||
|
|
9111adf15f | ||
|
|
ba18b27371 | ||
|
|
2a287b2ae6 | ||
|
|
fc9040f715 | ||
|
|
0029022ef6 | ||
|
|
94f728d3fd | ||
|
|
d53ced7830 | ||
|
|
053d8c44c2 | ||
|
|
9f5767ea16 | ||
|
|
e8d76b0555 | ||
|
|
c2675600f6 | ||
|
|
6f087b4ec1 | ||
|
|
e94708606d | ||
|
|
c248f1a762 | ||
|
|
28402b0894 | ||
|
|
7dd98e99f9 | ||
|
|
dba195b396 | ||
|
|
88b153bc12 | ||
|
|
d4a47dc974 | ||
|
|
fe3ea6edfd | ||
|
|
6c8fc4846b | ||
|
|
b14a0e0dde | ||
|
|
e982f5076f | ||
|
|
54d9656f09 | ||
|
|
42188b9f49 | ||
|
|
49da324c5d | ||
|
|
9bf87697fd | ||
|
|
f368f5a9c4 | ||
|
|
eea85485e6 | ||
|
|
1a544b3b82 | ||
|
|
8b38fe9fe0 | ||
|
|
1bf4addf63 | ||
|
|
407e16e900 | ||
|
|
6e9fe3248a | ||
|
|
d8cf86fd6f | ||
|
|
f8aa4a9588 | ||
|
|
c249907846 | ||
|
|
57c1524a9a | ||
|
|
d8d82e2ba3 | ||
|
|
807b512ef7 | ||
|
|
b2f06b6777 | ||
|
|
d7adff9a65 | ||
|
|
b0d7e11d48 | ||
|
|
fc9cdb61f2 | ||
|
|
9c00492dc2 | ||
|
|
1a6babd199 | ||
|
|
1b693eed37 | ||
|
|
afb566b6b4 | ||
|
|
f870e9ed3e | ||
|
|
4bcf13cb58 | ||
|
|
50e2dcbcd5 | ||
|
|
6104bb98f1 | ||
|
|
946a6d6041 | ||
|
|
372c213c2c | ||
|
|
a5a79d3ab7 | ||
|
|
e6c5cfb703 | ||
|
|
7843eccae8 | ||
|
|
7ca153abd0 | ||
|
|
33b4774c49 | ||
|
|
c243481432 | ||
|
|
80873e4ea9 | ||
|
|
4e4a1f11e6 | ||
|
|
9bbe405cd0 | ||
|
|
c440a4c730 | ||
|
|
a1251371d7 | ||
|
|
7d702e8332 | ||
|
|
43d7c8d48c | ||
|
|
7423583508 | ||
|
|
08b0838f9a | ||
|
|
038d821a7c | ||
|
|
6a218814d3 | ||
|
|
905f89b0f5 | ||
|
|
14882bda78 | ||
|
|
781fa4634b | ||
|
|
cdb173fd6e | ||
|
|
466cb4be89 | ||
|
|
c39e2ffd56 | ||
|
|
17bf09e276 | ||
|
|
bc01f9f8fd | ||
|
|
c0870c5694 | ||
|
|
3b5174a2ea | ||
|
|
af6885f3e8 | ||
|
|
e01996095f | ||
|
|
5d86f7b6ba | ||
|
|
8d6ac6406d | ||
|
|
40ff54f67e | ||
|
|
cce7ac09d0 | ||
|
|
73a18891c5 | ||
|
|
fe22cedc1d | ||
|
|
fa09c7c8b2 | ||
|
|
15e28e3cc0 | ||
|
|
2cb4f6b1fc | ||
|
|
b17a483b85 | ||
|
|
7c3e5443ab | ||
|
|
f95a2851c8 | ||
|
|
2b2eee352f | ||
|
|
11569d8056 | ||
|
|
bdf87452b6 | ||
|
|
0c6bf81c24 | ||
|
|
f2fa26fb07 | ||
|
|
f5e212ff1e | ||
|
|
461e6562ca | ||
|
|
fd67d08402 | ||
|
|
e6411d11b1 | ||
|
|
dd81d947fc | ||
|
|
23b887c30e | ||
|
|
c4eae3f130 | ||
|
|
41a04a2849 | ||
|
|
ed1d34e678 | ||
|
|
f44487338d | ||
|
|
7aced85a31 | ||
|
|
fbe0e2d6eb | ||
|
|
6e34f0697c | ||
|
|
a835f9f0cb | ||
|
|
16715673c3 | ||
|
|
c48c74f173 | ||
|
|
f262348497 | ||
|
|
7185bcd51f | ||
|
|
28d05e2449 | ||
|
|
7fafa21a1b | ||
|
|
84f598e143 | ||
|
|
e30f8628db | ||
|
|
0be9c88106 | ||
|
|
e046fc1ac5 | ||
|
|
3a476ac493 | ||
|
|
e33ec0cf50 | ||
|
|
b4b70a988e | ||
|
|
e66b381070 | ||
|
|
771b598c09 | ||
|
|
cd44f13171 | ||
|
|
aa6b72ac87 | ||
|
|
a467fe5ed7 | ||
|
|
467411c6c3 | ||
|
|
2648b7ca54 | ||
|
|
de35c7024a | ||
|
|
9d219c163d | ||
|
|
f7434b5ec8 | ||
|
|
5ed3360c0b | ||
|
|
6f5974f875 | ||
|
|
fef71f29c4 | ||
|
|
0835fdd0d1 | ||
|
|
dcf44fed58 | ||
|
|
b204b183de | ||
|
|
522360dcb7 | ||
|
|
979713c4db | ||
|
|
e41d5c249f | ||
|
|
f82a779817 | ||
|
|
df8a8ea204 | ||
|
|
8957d33e49 | ||
|
|
28fe1e4c8f | ||
|
|
0c7f4e2168 | ||
|
|
b22956bd99 | ||
|
|
42516206d9 | ||
|
|
fc4edde6e6 | ||
|
|
54cc04fd96 | ||
|
|
80062b6a62 | ||
|
|
99af79fcf3 | ||
|
|
11d87205d7 | ||
|
|
5866d414ce | ||
|
|
9a972b0b8a | ||
|
|
e6aeeea8c1 | ||
|
|
5d064aa1d7 | ||
|
|
34832d5942 | ||
|
|
e3b1179a21 | ||
|
|
f94a36613c | ||
|
|
efc3cc24f4 | ||
|
|
b47f8aaf70 | ||
|
|
94ca4607bc | ||
|
|
2dab1d3e6e | ||
|
|
825b0fb22f | ||
|
|
1cdb039ea2 | ||
|
|
7409cb3abb | ||
|
|
e8e8f70c27 | ||
|
|
6e2e36e7a0 | ||
|
|
9994df9601 |
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/packages/node_modules/** linguist-generated=false
|
||||
34
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,34 +0,0 @@
|
||||
<!--
|
||||
## Before you hit that Submit button....
|
||||
|
||||
This issue tracker is for problems with the Node-RED runtime, the editor or the core nodes.
|
||||
|
||||
If your issue is:
|
||||
- a general 'how-to' type question,
|
||||
- a feature request or suggestion for a change,
|
||||
- or problems with 3rd party (`node-red-contrib-`) nodes
|
||||
|
||||
please use the [Node-RED Forum](https://discourse.nodered.org) or [slack team](https://nodered.org/slack).
|
||||
|
||||
You could also consider asking a question on [Stack Overflow](https://stackoverflow.com/questions/tagged/node-red) and tag it `node-red`.
|
||||
|
||||
That way the whole Node-RED user community can help, rather than rely on the core development team.
|
||||
|
||||
## So you have a real issue to raise...
|
||||
|
||||
To help us understand the issue, please fill-in as much of the following information as you can:
|
||||
-->
|
||||
|
||||
### What are the steps to reproduce?
|
||||
|
||||
### What happens?
|
||||
|
||||
### What do you expect to happen?
|
||||
|
||||
### Please tell us about your environment:
|
||||
|
||||
- [ ] Node-RED version:
|
||||
- [ ] node.js version:
|
||||
- [ ] npm version:
|
||||
- [ ] Platform/OS:
|
||||
- [ ] Browser:
|
||||
61
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
name: 🐞 Report a bug
|
||||
description: File a bug/issue on the core of Node-RED
|
||||
labels: [needs-triage]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
This issue tracker is for problems with the Node-RED runtime, the editor or the core nodes.
|
||||
|
||||
If your issue is:
|
||||
- a general 'how-to' type question,
|
||||
- a feature request or suggestion for a change,
|
||||
- or problems with 3rd party (`node-red-contrib-`) nodes
|
||||
|
||||
please use the [Node-RED Forum](https://discourse.nodered.org) or [slack team](https://nodered.org/slack).
|
||||
|
||||
You could also consider asking a question on [Stack Overflow](https://stackoverflow.com/questions/tagged/node-red) and tag it `node-red`.
|
||||
|
||||
That way the whole Node-RED user community can help, rather than rely on the core development team.
|
||||
|
||||
To help us understand the issue, please fill-in as much of the following information as you can:
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Current Behavior
|
||||
description: A clear & concise description of what you're experiencing.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: A clear & concise description of what you expected to happen.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps To Reproduce
|
||||
description: Steps to reproduce the behavior.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Example flow
|
||||
description: If you have a minimal example flow that demonstrates the issue, share it here.
|
||||
value: |
|
||||
```
|
||||
paste your flow here
|
||||
```
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Environment
|
||||
description: Please tell us about your environment. Include any relevant information on how you are running Node-RED.
|
||||
value: |
|
||||
- Node-RED version:
|
||||
- Node.js version:
|
||||
- npm version:
|
||||
- Platform/OS:
|
||||
- Browser:
|
||||
validations:
|
||||
required: false
|
||||
14
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: ❓ Questions
|
||||
url: https://discourse.nodered.org
|
||||
about: Ask your question on the Node-RED forum
|
||||
- name: ⭐️ Feature Request
|
||||
url: https://discourse.nodered.org/c/development/feature-requests
|
||||
about: Discuss your request with the community
|
||||
- name: 🗂 Documentation
|
||||
url: https://nodered.org/docs
|
||||
about: Go straight to the documentation
|
||||
- name: 💬 Slack
|
||||
url: https://nodered.org/slack
|
||||
about: Chat about the project on our slack team
|
||||
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -29,6 +29,6 @@ the [forum](https://discourse.nodered.org) or
|
||||
<!-- Put an `x` in the boxes that apply -->
|
||||
|
||||
- [ ] I have read the [contribution guidelines](https://github.com/node-red/node-red/blob/master/CONTRIBUTING.md)
|
||||
- [ ] For non-bugfix PRs, I have discussed this change on the mailing list/slack team.
|
||||
- [ ] I have run `grunt` to verify the unit tests pass
|
||||
- [ ] For non-bugfix PRs, I have discussed this change on the forum/slack team.
|
||||
- [ ] I have run `npm run test` to verify the unit tests pass
|
||||
- [ ] I have added suitable unit tests to cover the new/changed functionality
|
||||
|
||||
15
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions" # See documentation for possible values
|
||||
directory: "/" # Location of package manifests
|
||||
schedule:
|
||||
interval: "monthly"
|
||||
groups:
|
||||
github-actions:
|
||||
patterns:
|
||||
- "*"
|
||||
29
.github/scripts/update-node-red-docker.js
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
const fs = require("fs");
|
||||
|
||||
const newVersion = require("../../package.json").version;
|
||||
|
||||
if (process.env.GITHUB_REF !== "refs/tags/"+newVersion) {
|
||||
console.log(`GITHUB_REF doesn't match the package.json version: ${process.env.GITHUB_REF} !== ${newVersion}`);
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
if (!/^\d+\.\d+\.\d+$/.test(newVersion)) {
|
||||
console.log(`Not updating for a non-stable release - ${newVersion}`);
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
const currentVersion = require("../../../node-red-docker/package.json").version;
|
||||
|
||||
console.log(`Update from ${currentVersion} to ${newVersion}`)
|
||||
|
||||
updateFile(__dirname+"/../../../node-red-docker/package.json", currentVersion, newVersion);
|
||||
updateFile(__dirname+"/../../../node-red-docker/docker-custom/package.json", currentVersion, newVersion);
|
||||
updateFile(__dirname+"/../../../node-red-docker/README.md", currentVersion, newVersion);
|
||||
|
||||
console.log(`::set-env name=newVersion::${newVersion}`);
|
||||
|
||||
function updateFile(path,from,to) {
|
||||
let contents = fs.readFileSync(path,"utf8");
|
||||
contents = contents.replace(new RegExp(from.replace(/\./g,"\\."),"g"), to);
|
||||
fs.writeFileSync(path, contents);
|
||||
}
|
||||
18
.github/scripts/update-node-red-website.js
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
const fs = require("fs");
|
||||
|
||||
const newVersion = require("../../package.json").version;
|
||||
|
||||
if (process.env.GITHUB_REF !== "refs/tags/"+newVersion) {
|
||||
console.log(`GITHUB_REF doesn't match the package.json version: ${process.env.GITHUB_REF} !== ${newVersion}`);
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
if (!/^\d+\.\d+\.\d+$/.test(newVersion)) {
|
||||
console.log(`Not updating for a non-stable release - ${newVersion}`);
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
const path = __dirname+"/../../../node-red.github.io/index.html";
|
||||
let contents = fs.readFileSync(path, "utf8");
|
||||
contents = contents.replace(/<span class="node-red-latest-version">v\d+\.\d+\.\d+<\/span>/, `<span class="node-red-latest-version">v${newVersion}<\/span>` );
|
||||
fs.writeFileSync(path, contents);
|
||||
62
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
name: Publish Release
|
||||
env:
|
||||
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
generate:
|
||||
name: 'Update node-red-docker image'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out node-red repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: 'node-red'
|
||||
- name: Check out node-red-docker repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: 'node-red/node-red-docker'
|
||||
path: 'node-red-docker'
|
||||
- name: Check out node-red.github.io repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: 'node-red/node-red.github.io'
|
||||
path: 'node-red.github.io'
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '16'
|
||||
- run: node ./node-red/.github/scripts/update-node-red-docker.js
|
||||
- name: Create Docker Pull Request
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
token: ${{ secrets.NR_REPO_TOKEN }}
|
||||
committer: GitHub <noreply@github.com>
|
||||
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
|
||||
path: 'node-red-docker'
|
||||
commit-message: 'Bump to ${{ env.newVersion }}'
|
||||
title: '🚀 Update to Node-RED ${{ env.newVersion }} release'
|
||||
body: |
|
||||
Updates the Node-RED Docker repo for the ${{ env.newVersion }} release.
|
||||
|
||||
Once this is merged, you will need to create a new release with the tag `v${{ env.newVersion }}`.
|
||||
|
||||
This PR was auto-generated by a GitHub Action. Any questions, speak to @knolleary
|
||||
- run: node ./node-red/.github/scripts/update-node-red-website.js
|
||||
- name: Create Website Pull Request
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
token: ${{ secrets.NR_REPO_TOKEN }}
|
||||
committer: GitHub <noreply@github.com>
|
||||
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
|
||||
path: 'node-red.github.io'
|
||||
commit-message: 'Bump to ${{ env.newVersion }}'
|
||||
title: '🚀 Update to Node-RED ${{ env.newVersion }} release'
|
||||
body: |
|
||||
Updates the Node-RED Website repo for the ${{ env.newVersion }} release.
|
||||
|
||||
This PR was auto-generated by a GitHub Action. Any questions, speak to @knolleary
|
||||
30
.github/workflows/tests.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
name: Run tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master, dev ]
|
||||
pull_request:
|
||||
branches: [ master, dev ]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
permissions:
|
||||
contents: read # for actions/checkout to fetch code
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [18, 20]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Install Dependencies
|
||||
run: npm install
|
||||
- name: Run tests
|
||||
run: |
|
||||
npm run test
|
||||
11
.gitignore
vendored
@@ -7,7 +7,9 @@
|
||||
.sessions.json
|
||||
.settings
|
||||
.tern-project
|
||||
.i18n-editor-metadata
|
||||
*.backup
|
||||
*.bak
|
||||
*_cred*
|
||||
coverage
|
||||
credentials.json
|
||||
@@ -17,3 +19,12 @@ node_modules
|
||||
public
|
||||
locales/zz-ZZ
|
||||
nodes/core/locales/zz-ZZ
|
||||
!packages/node_modules
|
||||
packages/node_modules/@node-red/editor-client/public
|
||||
!test/**/node_modules
|
||||
docs
|
||||
!packages/node_modules/**/docs
|
||||
.vscode
|
||||
.nyc_output
|
||||
sync.ffs_db
|
||||
package-lock.json
|
||||
|
||||
@@ -15,5 +15,5 @@
|
||||
"shadow": true, // allow variable shadowing (re-use of names...)
|
||||
"sub": true, // don't warn that foo['bar'] should be written as foo.bar
|
||||
"proto": true, // allow setting of __proto__ in node < v0.12,
|
||||
"esversion": 6 // allow es6
|
||||
"esversion": 11 // allow es11(ES2020)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/Gruntfile.js
|
||||
/.git/*
|
||||
/lib/*
|
||||
*.backup
|
||||
/public/*
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
.settings
|
||||
.jshintignore
|
||||
.jshintrc
|
||||
.project
|
||||
.tern-project
|
||||
.travis.yml
|
||||
.git
|
||||
12
.travis.yml
@@ -1,12 +0,0 @@
|
||||
sudo: false
|
||||
language: node_js
|
||||
matrix:
|
||||
include:
|
||||
- node_js: "10"
|
||||
script:
|
||||
- ./node_modules/.bin/grunt && istanbul report text && ( cat coverage/lcov.info | $(npm get prefix)/bin/coveralls || true ) && rm -rf coverage
|
||||
before_script:
|
||||
- npm install -g istanbul coveralls
|
||||
- node_js: "8"
|
||||
- node_js: "6"
|
||||
- node_js: "4"
|
||||
19
API.md
Normal file
@@ -0,0 +1,19 @@
|
||||
Node-RED consists of 6 node modules under the `@node-red` scope, which are pulled together
|
||||
by the top-level `node-red` module. The typical scenario is where you are embedding Node-RED into your
|
||||
own application, in which case you would use the `node-red` module rather than any of the
|
||||
internal modules directly.
|
||||
|
||||
```javascript
|
||||
let RED = require("node-red");
|
||||
```
|
||||
|
||||
|
||||
Module | Description
|
||||
-------|-------
|
||||
[node-red](node-red.html) | the main module that pulls together all of the internal modules and provides the executable version of Node-RED
|
||||
[@node-red/editor-api](@node-red_editor-api.html) | an Express application that serves the Node-RED editor and provides the Admin HTTP API
|
||||
[@node-red/runtime](@node-red_runtime.html) | the core runtime of Node-RED
|
||||
[@node-red/util](@node-red_util.html) | common utilities for the Node-RED runtime and editor modules
|
||||
[@node-red/registry](@node-red_registry.html) | the internal node registry
|
||||
@node-red/nodes | the default set of core nodes. This module only contains the Node-RED nodes - it does not expose any APIs.
|
||||
@node-red/editor-client | the client-side resources of the Node-RED editor application
|
||||
1863
CHANGELOG.md
@@ -16,6 +16,9 @@ behavior to the project's core team at team@nodered.org.
|
||||
Please raise any bug reports on the relevant project's issue tracker. Be sure to
|
||||
search the list to see if your issue has already been raised.
|
||||
|
||||
If your issue is more of a question on how to do something with Node-RED, please
|
||||
consider using the [community forum](https://discourse.nodered.org/).
|
||||
|
||||
A good bug report is one that make it easy for us to understand what you were
|
||||
trying to do and what went wrong.
|
||||
|
||||
@@ -26,7 +29,7 @@ relevant nodes, press Ctrl-E and copy the flow data from the Export dialog.
|
||||
At a minimum, please include:
|
||||
|
||||
- Version of Node-RED - either release number if you downloaded a zip, or the first few lines of `git log` if you are cloning the repository directly.
|
||||
- Version of node.js - what does `node -v` say?
|
||||
- Version of Node.js - what does `node -v` say?
|
||||
|
||||
## Feature requests
|
||||
|
||||
@@ -35,16 +38,25 @@ For feature requests, please raise them on the [forum](https://discourse.nodered
|
||||
## Pull-Requests
|
||||
|
||||
If you want to raise a pull-request with a new feature, or a refactoring
|
||||
of existing code, it may well get rejected if you haven't discussed it on
|
||||
the [forum](https://discourse.nodered.org) first.
|
||||
of existing code, please come and discuss it with us first. We prefer to
|
||||
do it that way to make sure your time and effort is well spent on something
|
||||
that fits with our goals.
|
||||
|
||||
All contributors need to sign the JS Foundation's Contributor License Agreement.
|
||||
It is an online process and quick to do. You can read the details of the agreement
|
||||
here: https://cla.js.foundation/node-red/node-red.
|
||||
If you've got a bug-fix or similar for us, then you are most welcome to
|
||||
get it raised - just make sure you link back to the issue it's fixing and
|
||||
try to include some tests!
|
||||
|
||||
If you raise a pull-request without having signed the CLA, you will be prompted
|
||||
to do so automatically.
|
||||
All contributors need to sign the OpenJS Foundation's Contributor License Agreement.
|
||||
It is an online process and quick to do. If you raise a pull-request without
|
||||
having signed the CLA, you will be prompted to do so automatically.
|
||||
|
||||
### Code Branches
|
||||
|
||||
When raising a PR for a fix or a new feature, it is important to target the right branch.
|
||||
|
||||
- `master` - this is the main branch for the latest stable release of Node-RED. All bug fixes for that release should target this branch.
|
||||
- `v1.x` - this is the maintenance branch for the 1.x stream. If a fix *only* applies to 1.x, then it should target this branch. If it applies to the current stable release as well, target `master` first. We will then decide if it needs to be back ported to the 1.x stream.
|
||||
- `dev` - this is the branch for new feature development targeting the next milestone release.
|
||||
|
||||
### Coding standards
|
||||
|
||||
|
||||
581
Gruntfile.js
@@ -15,17 +15,35 @@
|
||||
**/
|
||||
|
||||
var path = require("path");
|
||||
var fs = require("fs-extra");
|
||||
var sass = require("sass");
|
||||
|
||||
module.exports = function(grunt) {
|
||||
|
||||
var nodemonArgs = ["-v"];
|
||||
var nodemonArgs = ["-V"];
|
||||
var flowFile = grunt.option('flowFile');
|
||||
if (flowFile) {
|
||||
nodemonArgs.push(flowFile);
|
||||
process.env.NODE_RED_ENABLE_PROJECTS=false;
|
||||
}
|
||||
var userDir = grunt.option('userDir');
|
||||
if (userDir) {
|
||||
nodemonArgs.push("-u");
|
||||
nodemonArgs.push(userDir);
|
||||
}
|
||||
|
||||
var browserstack = grunt.option('browserstack');
|
||||
if (browserstack) {
|
||||
process.env.BROWSERSTACK = true;
|
||||
}
|
||||
var nonHeadless = grunt.option('non-headless');
|
||||
if (nonHeadless) {
|
||||
process.env.NODE_RED_NON_HEADLESS = true;
|
||||
}
|
||||
const pkg = grunt.file.readJSON('package.json');
|
||||
process.env.NODE_RED_PACKAGE_VERSION = pkg.version;
|
||||
grunt.initConfig({
|
||||
pkg: grunt.file.readJSON('package.json'),
|
||||
pkg: pkg,
|
||||
paths: {
|
||||
dist: ".dist"
|
||||
},
|
||||
@@ -37,8 +55,8 @@ module.exports = function(grunt) {
|
||||
ui: 'bdd',
|
||||
reporter: 'spec'
|
||||
},
|
||||
all: { src: ['test/**/*_spec.js'] },
|
||||
core: { src: ["test/_spec.js","test/red/**/*_spec.js"]},
|
||||
all: { src: ["test/unit/_spec.js","test/unit/**/*_spec.js","test/nodes/**/*_spec.js"] },
|
||||
core: { src: ["test/unit/_spec.js","test/unit/**/*_spec.js"]},
|
||||
nodes: { src: ["test/nodes/**/*_spec.js"]}
|
||||
},
|
||||
webdriver: {
|
||||
@@ -46,18 +64,19 @@ module.exports = function(grunt) {
|
||||
configFile: 'test/editor/wdio.conf.js'
|
||||
}
|
||||
},
|
||||
mocha_istanbul: {
|
||||
nyc: {
|
||||
options: {
|
||||
globals: ['expect'],
|
||||
timeout: 3000,
|
||||
ignoreLeaks: false,
|
||||
ui: 'bdd',
|
||||
reportFormats: ['lcov','html'],
|
||||
print: 'both'
|
||||
cwd: '.',
|
||||
include: ['packages/node_modules/**'],
|
||||
excludeNodeModules: false,
|
||||
exclude: ['packages/node_modules/@node-red/editor-client/**'],
|
||||
reporter: ['lcov', 'html','text-summary'],
|
||||
reportDir: 'coverage',
|
||||
all: true
|
||||
},
|
||||
all: { src: ["test/_spec.js","test/red/**/*_spec.js","test/nodes/**/*_spec.js"] },
|
||||
core: { src: ["test/_spec.js","test/red/**/*_spec.js"]},
|
||||
nodes: { src: ["test/nodes/**/*_spec.js"]}
|
||||
all: { cmd: false, args: ['grunt', 'simplemocha:all'] },
|
||||
core: { options: { exclude:['packages/node_modules/@node-red/editor-client/**', 'packages/node_modules/@node-red/nodes/**']},cmd: false, args: ['grunt', 'simplemocha:core'] },
|
||||
nodes: { cmd: false, args: ['grunt', 'simplemocha:nodes'] }
|
||||
},
|
||||
jshint: {
|
||||
options: {
|
||||
@@ -73,22 +92,20 @@ module.exports = function(grunt) {
|
||||
//"loopfunc": true, // allow functions to be defined in loops
|
||||
//"sub": true // don't warn that foo['bar'] should be written as foo.bar
|
||||
},
|
||||
all: [
|
||||
'Gruntfile.js',
|
||||
'red.js',
|
||||
'red/**/*.js',
|
||||
'nodes/core/*/*.js',
|
||||
'editor/js/**/*.js'
|
||||
],
|
||||
core: {
|
||||
files: {
|
||||
src: [
|
||||
'Gruntfile.js',
|
||||
'red.js',
|
||||
'red/**/*.js'
|
||||
]
|
||||
}
|
||||
},
|
||||
// all: [
|
||||
// 'Gruntfile.js',
|
||||
// 'red.js',
|
||||
// 'packages/**/*.js'
|
||||
// ],
|
||||
// core: {
|
||||
// files: {
|
||||
// src: [
|
||||
// 'Gruntfile.js',
|
||||
// 'red.js',
|
||||
// 'packages/**/*.js',
|
||||
// ]
|
||||
// }
|
||||
// },
|
||||
nodes: {
|
||||
files: {
|
||||
src: [ 'nodes/core/*/*.js' ]
|
||||
@@ -96,7 +113,7 @@ module.exports = function(grunt) {
|
||||
},
|
||||
editor: {
|
||||
files: {
|
||||
src: [ 'editor/js/**/*.js' ]
|
||||
src: [ 'packages/node_modules/@node-red/editor-client/src/js/**/*.js' ]
|
||||
}
|
||||
},
|
||||
tests: {
|
||||
@@ -116,79 +133,111 @@ module.exports = function(grunt) {
|
||||
src: [
|
||||
// Ensure editor source files are concatenated in
|
||||
// the right order
|
||||
"editor/js/red.js",
|
||||
"editor/js/events.js",
|
||||
"editor/js/i18n.js",
|
||||
"editor/js/settings.js",
|
||||
"editor/js/user.js",
|
||||
"editor/js/comms.js",
|
||||
"editor/js/text/bidi.js",
|
||||
"editor/js/text/format.js",
|
||||
"editor/js/ui/state.js",
|
||||
"editor/js/nodes.js",
|
||||
"editor/js/history.js",
|
||||
"editor/js/validators.js",
|
||||
"editor/js/ui/utils.js",
|
||||
"editor/js/ui/common/editableList.js",
|
||||
"editor/js/ui/common/checkboxSet.js",
|
||||
"editor/js/ui/common/menu.js",
|
||||
"editor/js/ui/common/panels.js",
|
||||
"editor/js/ui/common/popover.js",
|
||||
"editor/js/ui/common/searchBox.js",
|
||||
"editor/js/ui/common/tabs.js",
|
||||
"editor/js/ui/common/stack.js",
|
||||
"editor/js/ui/common/typedInput.js",
|
||||
"editor/js/ui/actions.js",
|
||||
"editor/js/ui/deploy.js",
|
||||
"editor/js/ui/diff.js",
|
||||
"editor/js/ui/keyboard.js",
|
||||
"editor/js/ui/workspaces.js",
|
||||
"editor/js/ui/view.js",
|
||||
"editor/js/ui/view-navigator.js",
|
||||
"editor/js/ui/sidebar.js",
|
||||
"editor/js/ui/palette.js",
|
||||
"editor/js/ui/tab-info.js",
|
||||
"editor/js/ui/tab-config.js",
|
||||
"editor/js/ui/palette-editor.js",
|
||||
"editor/js/ui/editor.js",
|
||||
"editor/js/ui/tray.js",
|
||||
"editor/js/ui/clipboard.js",
|
||||
"editor/js/ui/library.js",
|
||||
"editor/js/ui/notifications.js",
|
||||
"editor/js/ui/search.js",
|
||||
"editor/js/ui/typeSearch.js",
|
||||
"editor/js/ui/subflow.js",
|
||||
"editor/js/ui/userSettings.js",
|
||||
"editor/js/ui/projects/projects.js",
|
||||
"editor/js/ui/projects/projectSettings.js",
|
||||
"editor/js/ui/projects/projectUserSettings.js",
|
||||
"editor/js/ui/projects/tab-versionControl.js",
|
||||
"editor/js/ui/touch/radialMenu.js"
|
||||
"packages/node_modules/@node-red/editor-client/src/js/polyfills.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/jquery-addons.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/red.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/events.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/hooks.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/i18n.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/settings.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/user.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/comms.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/runtime.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/multiplayer.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/text/bidi.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/text/format.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/state.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/plugins.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/nodes.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/font-awesome.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/history.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/validators.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/utils.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/common/editableList.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/common/treeList.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/common/checkboxSet.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/common/menu.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/common/panels.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/common/popover.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/common/searchBox.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/common/stack.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/common/typedInput.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/common/toggleButton.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/common/autoComplete.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/actions.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/diagnostics.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/diff.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/keyboard.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/env-var.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/statusBar.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/view.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/view-annotations.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/view-navigator.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/sidebar.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/palette.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/tab-info.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/tab-help.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/tab-config.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/tab-context.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/palette-editor.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/editor.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/*.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/editors/*.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/editors/code-editors/*.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/event-log.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/tray.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/library.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/notifications.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/search.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/contextMenu.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/actionList.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/typeSearch.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/group.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/userSettings.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/projects/projects.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/projects/projectSettings.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/projects/projectUserSettings.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/projects/tab-versionControl.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/touch/radialMenu.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/js/ui/tour/*.js"
|
||||
],
|
||||
dest: "public/red/red.js"
|
||||
dest: "packages/node_modules/@node-red/editor-client/public/red/red.js"
|
||||
},
|
||||
vendor: {
|
||||
files: {
|
||||
"public/vendor/vendor.js": [
|
||||
"editor/vendor/jquery/js/jquery-1.11.3.min.js",
|
||||
"editor/vendor/bootstrap/js/bootstrap.min.js",
|
||||
"editor/vendor/jquery/js/jquery-ui-1.10.3.custom.min.js",
|
||||
"editor/vendor/jquery/js/jquery.ui.touch-punch.min.js",
|
||||
"editor/vendor/marked/marked.min.js",
|
||||
"editor/vendor/d3/d3.v3.min.js",
|
||||
"editor/vendor/i18next/i18next.min.js"
|
||||
],
|
||||
"public/vendor/vendor.css": [
|
||||
// TODO: resolve relative resource paths in
|
||||
// bootstrap/FA/jquery
|
||||
],
|
||||
"public/vendor/jsonata/jsonata.min.js": [
|
||||
"packages/node_modules/@node-red/editor-client/public/vendor/vendor.js": [
|
||||
"packages/node_modules/@node-red/editor-client/src/vendor/jquery/js/jquery-3.5.1.min.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/vendor/jquery/js/jquery-migrate-3.3.0.min.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/vendor/jquery/js/jquery-ui.min.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/vendor/jquery/js/jquery.ui.touch-punch.min.js",
|
||||
"node_modules/marked/marked.min.js",
|
||||
"node_modules/dompurify/dist/purify.min.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/vendor/d3/d3.v3.min.js",
|
||||
"node_modules/i18next/i18next.min.js",
|
||||
"node_modules/i18next-http-backend/i18nextHttpBackend.min.js",
|
||||
"node_modules/jquery-i18next/jquery-i18next.min.js",
|
||||
"node_modules/jsonata/jsonata-es5.min.js",
|
||||
"editor/vendor/jsonata/formatter.js"
|
||||
"packages/node_modules/@node-red/editor-client/src/vendor/jsonata/formatter.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/vendor/ace/ace.js",
|
||||
"packages/node_modules/@node-red/editor-client/src/vendor/ace/ext-language_tools.js"
|
||||
],
|
||||
"public/vendor/ace/worker-jsonata.js": [
|
||||
// "packages/node_modules/@node-red/editor-client/public/vendor/vendor.css": [
|
||||
// // TODO: resolve relative resource paths in
|
||||
// // bootstrap/FA/jquery
|
||||
// ],
|
||||
"packages/node_modules/@node-red/editor-client/public/vendor/ace/worker-jsonata.js": [
|
||||
"node_modules/jsonata/jsonata-es5.min.js",
|
||||
"editor/vendor/jsonata/worker-jsonata.js"
|
||||
"packages/node_modules/@node-red/editor-client/src/vendor/jsonata/worker-jsonata.js"
|
||||
],
|
||||
"packages/node_modules/@node-red/editor-client/public/vendor/mermaid/mermaid.min.js": [
|
||||
"node_modules/mermaid/dist/mermaid.min.js"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -196,63 +245,62 @@ module.exports = function(grunt) {
|
||||
uglify: {
|
||||
build: {
|
||||
files: {
|
||||
'public/red/red.min.js': 'public/red/red.js',
|
||||
'public/red/main.min.js': 'public/red/main.js',
|
||||
'public/vendor/ace/mode-jsonata.js': 'editor/vendor/jsonata/mode-jsonata.js',
|
||||
'public/vendor/ace/snippets/jsonata.js': 'editor/vendor/jsonata/snippets-jsonata.js'
|
||||
'packages/node_modules/@node-red/editor-client/public/red/red.min.js': 'packages/node_modules/@node-red/editor-client/public/red/red.js',
|
||||
'packages/node_modules/@node-red/editor-client/public/red/main.min.js': 'packages/node_modules/@node-red/editor-client/public/red/main.js',
|
||||
'packages/node_modules/@node-red/editor-client/public/vendor/ace/mode-jsonata.js': 'packages/node_modules/@node-red/editor-client/src/vendor/jsonata/mode-jsonata.js',
|
||||
'packages/node_modules/@node-red/editor-client/public/vendor/ace/snippets/jsonata.js': 'packages/node_modules/@node-red/editor-client/src/vendor/jsonata/snippets-jsonata.js'
|
||||
}
|
||||
}
|
||||
},
|
||||
sass: {
|
||||
build: {
|
||||
options: {
|
||||
implementation: sass,
|
||||
outputStyle: 'compressed'
|
||||
},
|
||||
files: [{
|
||||
dest: 'public/red/style.min.css',
|
||||
src: 'editor/sass/style.scss'
|
||||
},
|
||||
{
|
||||
dest: 'public/vendor/bootstrap/css/bootstrap.min.css',
|
||||
src: 'editor/vendor/bootstrap/css/bootstrap.css'
|
||||
dest: 'packages/node_modules/@node-red/editor-client/public/red/style.min.css',
|
||||
src: 'packages/node_modules/@node-red/editor-client/src/sass/style.scss'
|
||||
}]
|
||||
}
|
||||
},
|
||||
jsonlint: {
|
||||
messages: {
|
||||
src: [
|
||||
'nodes/core/locales/en-US/messages.json',
|
||||
'red/api/locales/en-US/editor.json',
|
||||
'red/runtime/locales/en-US/runtime.json'
|
||||
'packages/node_modules/@node-red/nodes/locales/**/*.json',
|
||||
'packages/node_modules/@node-red/editor-client/locales/**/*.json',
|
||||
'packages/node_modules/@node-red/runtime/locales/**/*.json'
|
||||
]
|
||||
},
|
||||
keymaps: {
|
||||
src: [
|
||||
'editor/js/keymap.json'
|
||||
'packages/node_modules/@node-red/editor-client/src/js/keymap.json'
|
||||
]
|
||||
}
|
||||
},
|
||||
attachCopyright: {
|
||||
js: {
|
||||
src: [
|
||||
'public/red/red.min.js',
|
||||
'public/red/main.min.js'
|
||||
'packages/node_modules/@node-red/editor-client/public/red/red.min.js',
|
||||
'packages/node_modules/@node-red/editor-client/public/red/main.min.js'
|
||||
]
|
||||
},
|
||||
css: {
|
||||
src: [
|
||||
'public/red/style.min.css'
|
||||
'packages/node_modules/@node-red/editor-client/public/red/style.min.css'
|
||||
]
|
||||
}
|
||||
},
|
||||
clean: {
|
||||
build: {
|
||||
src: [
|
||||
"public/red",
|
||||
"public/index.html",
|
||||
"public/favicon.ico",
|
||||
"public/icons",
|
||||
"public/vendor"
|
||||
"packages/node_modules/@node-red/editor-client/public/red",
|
||||
"packages/node_modules/@node-red/editor-client/public/index.html",
|
||||
"packages/node_modules/@node-red/editor-client/public/favicon.ico",
|
||||
"packages/node_modules/@node-red/editor-client/public/icons",
|
||||
"packages/node_modules/@node-red/editor-client/public/vendor",
|
||||
"packages/node_modules/@node-red/editor-client/public/types/node",
|
||||
"packages/node_modules/@node-red/editor-client/public/types/node-red",
|
||||
]
|
||||
},
|
||||
release: {
|
||||
@@ -264,30 +312,36 @@ module.exports = function(grunt) {
|
||||
watch: {
|
||||
js: {
|
||||
files: [
|
||||
'editor/js/**/*.js'
|
||||
'packages/node_modules/@node-red/editor-client/src/js/**/*.js'
|
||||
],
|
||||
tasks: ['copy:build','concat','uglify','attachCopyright:js']
|
||||
tasks: ['copy:build','concat',/*'uglify',*/ 'attachCopyright:js']
|
||||
},
|
||||
sass: {
|
||||
files: [
|
||||
'editor/sass/**/*.scss'
|
||||
'packages/node_modules/@node-red/editor-client/src/sass/**/*.scss'
|
||||
],
|
||||
tasks: ['sass','attachCopyright:css']
|
||||
},
|
||||
json: {
|
||||
files: [
|
||||
'nodes/core/locales/en-US/messages.json',
|
||||
'red/api/locales/en-US/editor.json',
|
||||
'red/runtime/locales/en-US/runtime.json'
|
||||
'packages/node_modules/@node-red/nodes/locales/**/*.json',
|
||||
'packages/node_modules/@node-red/editor-client/locales/**/*.json',
|
||||
'packages/node_modules/@node-red/runtime/locales/**/*.json'
|
||||
],
|
||||
tasks: ['jsonlint:messages']
|
||||
},
|
||||
keymaps: {
|
||||
files: [
|
||||
'editor/js/keymap.json'
|
||||
'packages/node_modules/@node-red/editor-client/src/js/keymap.json'
|
||||
],
|
||||
tasks: ['jsonlint:keymaps','copy:build']
|
||||
},
|
||||
tours: {
|
||||
files: [
|
||||
'packages/node_modules/@node-red/editor-client/src/tours/**/*.js'
|
||||
],
|
||||
tasks: ['copy:build']
|
||||
},
|
||||
misc: {
|
||||
files: [
|
||||
'CHANGELOG.md'
|
||||
@@ -299,12 +353,13 @@ module.exports = function(grunt) {
|
||||
nodemon: {
|
||||
/* uses .nodemonignore */
|
||||
dev: {
|
||||
script: 'red.js',
|
||||
script: 'packages/node_modules/node-red/red.js',
|
||||
options: {
|
||||
args: nodemonArgs,
|
||||
ext: 'js,html,json',
|
||||
watch: [
|
||||
'red','nodes'
|
||||
'packages/node_modules',
|
||||
'!packages/node_modules/@node-red/editor-client'
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -323,69 +378,75 @@ module.exports = function(grunt) {
|
||||
build: {
|
||||
files:[
|
||||
{
|
||||
src: 'editor/js/main.js',
|
||||
dest: 'public/red/main.js'
|
||||
src: 'packages/node_modules/@node-red/editor-client/src/js/main.js',
|
||||
dest: 'packages/node_modules/@node-red/editor-client/public/red/main.js'
|
||||
},
|
||||
{
|
||||
src: 'editor/js/keymap.json',
|
||||
dest: 'public/red/keymap.json'
|
||||
src: 'packages/node_modules/@node-red/editor-client/src/js/keymap.json',
|
||||
dest: 'packages/node_modules/@node-red/editor-client/public/red/keymap.json'
|
||||
},
|
||||
{
|
||||
cwd: 'editor/images',
|
||||
cwd: 'packages/node_modules/@node-red/editor-client/src/images',
|
||||
src: '**',
|
||||
expand: true,
|
||||
dest: 'public/red/images/'
|
||||
dest: 'packages/node_modules/@node-red/editor-client/public/red/images/'
|
||||
},
|
||||
{
|
||||
cwd: 'editor/vendor',
|
||||
cwd: 'packages/node_modules/@node-red/editor-client/src/vendor',
|
||||
src: [
|
||||
'ace/**',
|
||||
//'bootstrap/css/**',
|
||||
'bootstrap/img/**',
|
||||
'jquery/css/**',
|
||||
'font-awesome/**'
|
||||
'jquery/css/base/**',
|
||||
'font-awesome/**',
|
||||
'monaco/dist/**',
|
||||
'monaco/types/extraLibs.js',
|
||||
'monaco/style.css',
|
||||
'monaco/monaco-bootstrap.js'
|
||||
],
|
||||
expand: true,
|
||||
dest: 'public/vendor/'
|
||||
dest: 'packages/node_modules/@node-red/editor-client/public/vendor/'
|
||||
},
|
||||
{
|
||||
cwd: 'editor/icons',
|
||||
cwd: 'packages/node_modules/@node-red/editor-client/src',
|
||||
src: [
|
||||
'types/node/**/*.ts',
|
||||
'types/node-red/*.ts',
|
||||
],
|
||||
expand: true,
|
||||
dest: 'packages/node_modules/@node-red/editor-client/public/'
|
||||
},
|
||||
{
|
||||
cwd: 'packages/node_modules/@node-red/editor-client/src/icons',
|
||||
src: '**',
|
||||
expand: true,
|
||||
dest: 'public/icons/'
|
||||
dest: 'packages/node_modules/@node-red/editor-client/public/icons/'
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
src: ['editor/index.html','editor/favicon.ico'],
|
||||
dest: 'public/',
|
||||
src: ['packages/node_modules/@node-red/editor-client/src/index.html','packages/node_modules/@node-red/editor-client/src/favicon.ico'],
|
||||
dest: 'packages/node_modules/@node-red/editor-client/public/',
|
||||
flatten: true
|
||||
},
|
||||
{
|
||||
src: 'CHANGELOG.md',
|
||||
dest: 'public/red/about'
|
||||
dest: 'packages/node_modules/@node-red/editor-client/public/red/about'
|
||||
},
|
||||
{
|
||||
src: 'CHANGELOG.md',
|
||||
dest: 'packages/node_modules/node-red/'
|
||||
},
|
||||
{
|
||||
cwd: 'packages/node_modules/@node-red/editor-client/src/ace/bin/',
|
||||
src: '**',
|
||||
expand: true,
|
||||
dest: 'packages/node_modules/@node-red/editor-client/public/vendor/ace/'
|
||||
},
|
||||
{
|
||||
cwd: 'packages/node_modules/@node-red/editor-client/src/tours',
|
||||
src: '**',
|
||||
expand: true,
|
||||
dest: 'packages/node_modules/@node-red/editor-client/public/red/tours/'
|
||||
}
|
||||
]
|
||||
},
|
||||
release: {
|
||||
files: [{
|
||||
mode: true,
|
||||
expand: true,
|
||||
src: [
|
||||
'*.md',
|
||||
'LICENSE',
|
||||
'package.json',
|
||||
'settings.js',
|
||||
'red.js',
|
||||
'lib/.gitignore',
|
||||
'nodes/*.demo',
|
||||
'nodes/core/**',
|
||||
'red/**',
|
||||
'public/**',
|
||||
'editor/templates/**',
|
||||
'bin/**'
|
||||
],
|
||||
dest: path.resolve('<%= paths.dist %>/node-red-<%= pkg.version %>')
|
||||
}]
|
||||
}
|
||||
},
|
||||
chmod: {
|
||||
@@ -394,19 +455,95 @@ module.exports = function(grunt) {
|
||||
},
|
||||
release: {
|
||||
src: [
|
||||
path.resolve('<%= paths.dist %>/node-red-<%= pkg.version %>/nodes/core/hardware/nrgpio*'),
|
||||
path.resolve('<%= paths.dist %>/node-red-<%= pkg.version %>/red/runtime/storage/localfilesystem/projects/git/node-red-*sh')
|
||||
"packages/node_modules/@node-red/nodes/core/hardware/nrgpio",
|
||||
"packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/git/node-red-*sh"
|
||||
]
|
||||
}
|
||||
},
|
||||
'npm-command': {
|
||||
options: {
|
||||
cmd: "pack",
|
||||
cwd: "<%= paths.dist %>/modules"
|
||||
},
|
||||
'node-red': { options: { args: [__dirname+'/packages/node_modules/node-red'] } },
|
||||
'@node-red/editor-api': { options: { args: [__dirname+'/packages/node_modules/@node-red/editor-api'] } },
|
||||
'@node-red/editor-client': { options: { args: [__dirname+'/packages/node_modules/@node-red/editor-client'] } },
|
||||
'@node-red/nodes': { options: { args: [__dirname+'/packages/node_modules/@node-red/nodes'] } },
|
||||
'@node-red/registry': { options: { args: [__dirname+'/packages/node_modules/@node-red/registry'] } },
|
||||
'@node-red/runtime': { options: { args: [__dirname+'/packages/node_modules/@node-red/runtime'] } },
|
||||
'@node-red/util': { options: { args: [__dirname+'/packages/node_modules/@node-red/util'] } }
|
||||
|
||||
|
||||
},
|
||||
mkdir: {
|
||||
release: {
|
||||
options: {
|
||||
create: ['<%= paths.dist %>/modules']
|
||||
},
|
||||
},
|
||||
},
|
||||
compress: {
|
||||
release: {
|
||||
options: {
|
||||
archive: '<%= paths.dist %>/node-red-<%= pkg.version %>.zip'
|
||||
},
|
||||
expand: true,
|
||||
cwd: '<%= paths.dist %>/',
|
||||
src: ['node-red-<%= pkg.version %>/**']
|
||||
cwd: 'packages/node_modules/',
|
||||
src: [
|
||||
'**',
|
||||
'!@node-red/editor-client/src/**'
|
||||
]
|
||||
}
|
||||
},
|
||||
jsdoc : {
|
||||
modules: {
|
||||
src: [
|
||||
'API.md',
|
||||
'packages/node_modules/node-red/lib/red.js',
|
||||
'packages/node_modules/@node-red/runtime/lib/index.js',
|
||||
'packages/node_modules/@node-red/runtime/lib/api/*.js',
|
||||
'packages/node_modules/@node-red/runtime/lib/events.js',
|
||||
'packages/node_modules/@node-red/runtime/lib/hooks.js',
|
||||
'packages/node_modules/@node-red/util/**/*.js',
|
||||
'packages/node_modules/@node-red/editor-api/lib/index.js',
|
||||
'packages/node_modules/@node-red/editor-api/lib/auth/index.js',
|
||||
'packages/node_modules/@node-red/registry/lib/index.js'
|
||||
],
|
||||
options: {
|
||||
destination: 'docs',
|
||||
configure: './jsdoc.json',
|
||||
fred: "hi there"
|
||||
}
|
||||
},
|
||||
_editor: {
|
||||
src: [
|
||||
'packages/node_modules/@node-red/editor-client/src/js'
|
||||
],
|
||||
options: {
|
||||
destination: 'packages/node_modules/@node-red/editor-client/docs',
|
||||
configure: './jsdoc.json'
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
jsdoc2md: {
|
||||
runtimeAPI: {
|
||||
options: {
|
||||
separators: true
|
||||
},
|
||||
src: [
|
||||
'packages/node_modules/@node-red/runtime/lib/index.js',
|
||||
'packages/node_modules/@node-red/runtime/lib/api/*.js',
|
||||
'packages/node_modules/@node-red/runtime/lib/events.js'
|
||||
],
|
||||
dest: 'packages/node_modules/@node-red/runtime/docs/api.md'
|
||||
},
|
||||
nodeREDUtil: {
|
||||
options: {
|
||||
separators: true
|
||||
},
|
||||
src: 'packages/node_modules/@node-red/util/**/*.js',
|
||||
dest: 'packages/node_modules/@node-red/util/docs/api.md'
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -419,18 +556,42 @@ module.exports = function(grunt) {
|
||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||
grunt.loadNpmTasks('grunt-concurrent');
|
||||
grunt.loadNpmTasks('grunt-sass');
|
||||
grunt.loadNpmTasks('grunt-nodemon');
|
||||
grunt.loadNpmTasks('grunt-contrib-compress');
|
||||
grunt.loadNpmTasks('grunt-contrib-copy');
|
||||
grunt.loadNpmTasks('grunt-chmod');
|
||||
grunt.loadNpmTasks('grunt-jsonlint');
|
||||
grunt.loadNpmTasks('grunt-mocha-istanbul');
|
||||
grunt.loadNpmTasks('grunt-webdriver');
|
||||
if (fs.existsSync(path.join("node_modules", "grunt-webdriver"))) {
|
||||
grunt.loadNpmTasks('grunt-webdriver');
|
||||
}
|
||||
grunt.loadNpmTasks('grunt-jsdoc');
|
||||
grunt.loadNpmTasks('grunt-jsdoc-to-markdown');
|
||||
grunt.loadNpmTasks('grunt-npm-command');
|
||||
grunt.loadNpmTasks('grunt-mkdir');
|
||||
grunt.loadNpmTasks('grunt-simple-nyc');
|
||||
|
||||
grunt.registerMultiTask('nodemon', 'Runs a nodemon monitor of your node.js server.', function () {
|
||||
const nodemon = require('nodemon');
|
||||
this.async();
|
||||
const options = this.options();
|
||||
options.script = this.data.script;
|
||||
let callback;
|
||||
if (options.callback) {
|
||||
callback = options.callback;
|
||||
delete options.callback;
|
||||
} else {
|
||||
callback = function(nodemonApp) {
|
||||
nodemonApp.on('log', function (event) {
|
||||
console.log(event.colour);
|
||||
});
|
||||
};
|
||||
}
|
||||
callback(nodemon(options));
|
||||
});
|
||||
|
||||
grunt.registerMultiTask('attachCopyright', function() {
|
||||
var files = this.data.src;
|
||||
var copyright = "/**\n"+
|
||||
" * Copyright JS Foundation and other contributors, http://js.foundation\n"+
|
||||
" * Copyright OpenJS Foundation and other contributors, https://openjsf.org/\n"+
|
||||
" *\n"+
|
||||
" * Licensed under the Apache License, Version 2.0 (the \"License\");\n"+
|
||||
" * you may not use this file except in compliance with the License.\n"+
|
||||
@@ -467,6 +628,38 @@ module.exports = function(grunt) {
|
||||
}
|
||||
});
|
||||
|
||||
grunt.registerTask('verifyPackageDependencies', function() {
|
||||
var done = this.async();
|
||||
var verifyDependencies = require("./scripts/verify-package-dependencies.js");
|
||||
verifyDependencies().then(function(failures) {
|
||||
if (failures.length > 0) {
|
||||
failures.forEach(f => grunt.log.error(f));
|
||||
grunt.fail.fatal("Failed to verify package dependencies");
|
||||
}
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
grunt.registerTask('verifyUiTestDependencies', function() {
|
||||
if (!fs.existsSync(path.join("node_modules", "grunt-webdriver"))) {
|
||||
grunt.fail.fatal('You need to install the UI test dependencies first.\nUse the script in "scripts/install-ui-test-dependencies.sh"');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
grunt.registerTask('generatePublishScript',
|
||||
'Generates a script to publish build output to npm',
|
||||
function () {
|
||||
const done = this.async();
|
||||
const generatePublishScript = require("./scripts/generate-publish-script.js");
|
||||
generatePublishScript().then(function(output) {
|
||||
grunt.log.writeln(output);
|
||||
|
||||
const filePath = path.join(grunt.config.get('paths.dist'),"modules","publish.sh");
|
||||
grunt.file.write(filePath,output);
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
grunt.registerTask('setDevEnv',
|
||||
'Sets NODE_ENV=development so non-minified assets are used',
|
||||
function () {
|
||||
@@ -475,37 +668,61 @@ module.exports = function(grunt) {
|
||||
|
||||
grunt.registerTask('default',
|
||||
'Builds editor content then runs code style checks and unit tests on all components',
|
||||
['build','jshint:editor','mocha_istanbul:all']);
|
||||
['build','verifyPackageDependencies','jshint:editor','nyc:all']);
|
||||
|
||||
grunt.registerTask('no-coverage',
|
||||
'Builds editor content then runs code style checks and unit tests on all components without code coverage',
|
||||
['build','verifyPackageDependencies','jshint:editor','simplemocha:all']);
|
||||
|
||||
|
||||
grunt.registerTask('test-core',
|
||||
'Runs code style check and unit tests on core runtime code',
|
||||
['build','mocha_istanbul:core']);
|
||||
['build','nyc:core']);
|
||||
|
||||
grunt.registerTask('test-editor',
|
||||
'Runs code style check on editor code',
|
||||
['jshint:editor']);
|
||||
|
||||
grunt.registerTask('test-ui',
|
||||
'Builds editor content then runs unit tests on editor ui',
|
||||
['build','jshint:editor','webdriver:all']);
|
||||
if (!fs.existsSync(path.join("node_modules", "grunt-webdriver"))) {
|
||||
grunt.registerTask('test-ui',
|
||||
'Builds editor content then runs unit tests on editor ui',
|
||||
['verifyUiTestDependencies']);
|
||||
} else {
|
||||
grunt.registerTask('test-ui',
|
||||
'Builds editor content then runs unit tests on editor ui',
|
||||
['verifyUiTestDependencies','build','jshint:editor','webdriver:all']);
|
||||
}
|
||||
|
||||
grunt.registerTask('test-nodes',
|
||||
'Runs unit tests on core nodes',
|
||||
['build','mocha_istanbul:nodes']);
|
||||
['build','nyc:nodes']);
|
||||
|
||||
grunt.registerTask('build',
|
||||
'Builds editor content',
|
||||
['clean:build','jsonlint','concat:build','concat:vendor','copy:build','uglify:build','sass:build','attachCopyright']);
|
||||
|
||||
grunt.registerTask('build-dev',
|
||||
'Developer mode: build dev version',
|
||||
['clean:build','concat:build','concat:vendor','copy:build','sass:build','setDevEnv']);
|
||||
|
||||
grunt.registerTask('dev',
|
||||
'Developer mode: run node-red, watch for source changes and build/restart',
|
||||
['build','setDevEnv','concurrent:dev']);
|
||||
|
||||
grunt.registerTask('release',
|
||||
'Create distribution zip file',
|
||||
['build','clean:release','copy:release','chmod:release','compress:release']);
|
||||
['build','verifyPackageDependencies','clean:release','mkdir:release','chmod:release','compress:release','pack-modules','generatePublishScript']);
|
||||
|
||||
grunt.registerTask('pack-modules',
|
||||
'Create module pack files for release',
|
||||
['mkdir:release','npm-command']);
|
||||
|
||||
|
||||
grunt.registerTask('coverage',
|
||||
'Run Istanbul code test coverage task',
|
||||
['build','mocha_istanbul:all']);
|
||||
['build','nyc:all']);
|
||||
|
||||
grunt.registerTask('docs',
|
||||
'Generates API documentation',
|
||||
['jsdoc']);
|
||||
};
|
||||
|
||||
2
LICENSE
@@ -1,4 +1,4 @@
|
||||
Copyright JS Foundation and other contributors, http://js.foundation
|
||||
Copyright OpenJS Foundation and other contributors, https://openjsf.org/
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
|
||||
28
README.md
@@ -1,17 +1,16 @@
|
||||
# Node-RED
|
||||
|
||||
http://nodered.org
|
||||
https://nodered.org
|
||||
|
||||
[](https://travis-ci.org/node-red/node-red)
|
||||
[](https://coveralls.io/r/node-red/node-red?branch=master)
|
||||
[](https://github.com/node-red/node-red/actions?query=branch%3Amaster)
|
||||
|
||||
A visual tool for wiring the Internet of Things.
|
||||
Low-code programming for event-driven applications.
|
||||
|
||||

|
||||

|
||||
|
||||
## Quick Start
|
||||
|
||||
Check out http://nodered.org/docs/getting-started/ for full instructions on getting
|
||||
Check out https://nodered.org/docs/getting-started/ for full instructions on getting
|
||||
started.
|
||||
|
||||
1. `sudo npm install -g --unsafe-perm node-red`
|
||||
@@ -20,7 +19,7 @@ started.
|
||||
|
||||
## Getting Help
|
||||
|
||||
More documentation can be found [here](http://nodered.org/docs).
|
||||
More documentation can be found [here](https://nodered.org/docs).
|
||||
|
||||
For further help, or general discussion, please use the [Node-RED Forum](https://discourse.nodered.org) or [slack team](https://nodered.org/slack).
|
||||
|
||||
@@ -44,9 +43,6 @@ If you want to run the latest code from git, here's how to get started:
|
||||
4. Run
|
||||
|
||||
npm start
|
||||
or
|
||||
|
||||
node red.js
|
||||
|
||||
## Contributing
|
||||
|
||||
@@ -59,15 +55,15 @@ This project adheres to the [Contributor Covenant 1.4](http://contributor-covena
|
||||
|
||||
## Authors
|
||||
|
||||
Node-RED is a project of the [JS Foundation](http://js.foundation).
|
||||
Node-RED is a project of the [OpenJS Foundation](http://openjsf.org).
|
||||
|
||||
It was created by [IBM Emerging Technology](https://www.ibm.com/blogs/emerging-technology/).
|
||||
|
||||
* Nick O'Leary [@knolleary](http://twitter.com/knolleary)
|
||||
* Dave Conway-Jones [@ceejay](http://twitter.com/ceejay)
|
||||
It is maintained by:
|
||||
|
||||
* Nick O'Leary [@knolleary](http://twitter.com/knolleary)
|
||||
* Dave Conway-Jones [@ceejay](http://twitter.com/ceejay)
|
||||
* And many others...
|
||||
|
||||
|
||||
## Copyright and license
|
||||
|
||||
Copyright JS Foundation and other contributors, http://js.foundation under [the Apache 2.0 license](LICENSE).
|
||||
Copyright OpenJS Foundation and other contributors, https://openjsf.org under [the Apache 2.0 license](LICENSE).
|
||||
|
||||
5
SECURITY.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Security Policy
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Please report any potential security issues to `team@nodered.org`. This will notify the core project team who will respond accordingly.
|
||||
|
Before Width: | Height: | Size: 308 B |
|
Before Width: | Height: | Size: 603 B |
|
Before Width: | Height: | Size: 712 B |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 508 B |
|
Before Width: | Height: | Size: 575 B |
|
Before Width: | Height: | Size: 493 B |
|
Before Width: | Height: | Size: 601 B |
|
Before Width: | Height: | Size: 459 B |
|
Before Width: | Height: | Size: 218 B |
|
Before Width: | Height: | Size: 324 B |
|
Before Width: | Height: | Size: 378 B |
|
Before Width: | Height: | Size: 255 B |
|
Before Width: | Height: | Size: 457 B |
|
Before Width: | Height: | Size: 502 B |
|
Before Width: | Height: | Size: 449 B |
|
Before Width: | Height: | Size: 253 B |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 639 B |
|
Before Width: | Height: | Size: 402 B |
|
Before Width: | Height: | Size: 414 B |
|
Before Width: | Height: | Size: 671 B |
|
Before Width: | Height: | Size: 386 B |
|
Before Width: | Height: | Size: 386 B |
|
Before Width: | Height: | Size: 413 B |
|
Before Width: | Height: | Size: 393 B |
|
Before Width: | Height: | Size: 467 B |
|
Before Width: | Height: | Size: 393 B |
|
Before Width: | Height: | Size: 423 B |
|
Before Width: | Height: | Size: 360 B |
|
Before Width: | Height: | Size: 736 B |
|
Before Width: | Height: | Size: 482 B |
|
Before Width: | Height: | Size: 273 B |
|
Before Width: | Height: | Size: 793 B |
|
Before Width: | Height: | Size: 256 B |
|
Before Width: | Height: | Size: 439 B |
|
Before Width: | Height: | Size: 592 B |
|
Before Width: | Height: | Size: 509 B |
|
Before Width: | Height: | Size: 488 B |
|
Before Width: | Height: | Size: 628 B |
|
Before Width: | Height: | Size: 258 B |
|
Before Width: | Height: | Size: 404 B |
|
Before Width: | Height: | Size: 591 B |
|
Before Width: | Height: | Size: 707 B |
|
Before Width: | Height: | Size: 291 B |
|
Before Width: | Height: | Size: 386 B |
|
Before Width: | Height: | Size: 289 B |
|
Before Width: | Height: | Size: 368 B |
|
Before Width: | Height: | Size: 290 B |
|
Before Width: | Height: | Size: 392 B |
|
Before Width: | Height: | Size: 192 B |
|
Before Width: | Height: | Size: 1019 B |
|
Before Width: | Height: | Size: 600 B |
|
Before Width: | Height: | Size: 410 B |
|
Before Width: | Height: | Size: 638 B |
|
Before Width: | Height: | Size: 546 B |
|
Before Width: | Height: | Size: 638 B |
|
Before Width: | Height: | Size: 646 B |
|
Before Width: | Height: | Size: 809 B |
|
Before Width: | Height: | Size: 563 B |
|
Before Width: | Height: | Size: 588 B |
|
Before Width: | Height: | Size: 502 B |
@@ -1,332 +0,0 @@
|
||||
/**
|
||||
* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
RED.history = (function() {
|
||||
var undo_history = [];
|
||||
|
||||
function undoEvent(ev) {
|
||||
var i;
|
||||
var len;
|
||||
var node;
|
||||
var subflow;
|
||||
var modifiedTabs = {};
|
||||
if (ev) {
|
||||
if (ev.t == 'multi') {
|
||||
len = ev.events.length;
|
||||
for (i=len-1;i>=0;i--) {
|
||||
undoEvent(ev.events[i]);
|
||||
}
|
||||
} else if (ev.t == 'replace') {
|
||||
RED.nodes.clear();
|
||||
var imported = RED.nodes.import(ev.config);
|
||||
imported[0].forEach(function(n) {
|
||||
if (ev.changed[n.id]) {
|
||||
n.changed = true;
|
||||
}
|
||||
})
|
||||
|
||||
RED.nodes.version(ev.rev);
|
||||
} else if (ev.t == 'add') {
|
||||
if (ev.nodes) {
|
||||
for (i=0;i<ev.nodes.length;i++) {
|
||||
node = RED.nodes.node(ev.nodes[i]);
|
||||
if (node.z) {
|
||||
modifiedTabs[node.z] = true;
|
||||
}
|
||||
RED.nodes.remove(ev.nodes[i]);
|
||||
}
|
||||
}
|
||||
if (ev.links) {
|
||||
for (i=0;i<ev.links.length;i++) {
|
||||
RED.nodes.removeLink(ev.links[i]);
|
||||
}
|
||||
}
|
||||
if (ev.workspaces) {
|
||||
for (i=0;i<ev.workspaces.length;i++) {
|
||||
RED.nodes.removeWorkspace(ev.workspaces[i].id);
|
||||
RED.workspaces.remove(ev.workspaces[i]);
|
||||
}
|
||||
}
|
||||
if (ev.subflows) {
|
||||
for (i=0;i<ev.subflows.length;i++) {
|
||||
RED.nodes.removeSubflow(ev.subflows[i]);
|
||||
RED.workspaces.remove(ev.subflows[i]);
|
||||
}
|
||||
}
|
||||
if (ev.subflow) {
|
||||
if (ev.subflow.instances) {
|
||||
ev.subflow.instances.forEach(function(n) {
|
||||
var node = RED.nodes.node(n.id);
|
||||
if (node) {
|
||||
node.changed = n.changed;
|
||||
node.dirty = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (ev.subflow.hasOwnProperty('changed')) {
|
||||
subflow = RED.nodes.subflow(ev.subflow.id);
|
||||
if (subflow) {
|
||||
subflow.changed = ev.subflow.changed;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ev.removedLinks) {
|
||||
for (i=0;i<ev.removedLinks.length;i++) {
|
||||
RED.nodes.addLink(ev.removedLinks[i]);
|
||||
}
|
||||
}
|
||||
|
||||
} else if (ev.t == "delete") {
|
||||
if (ev.workspaces) {
|
||||
for (i=0;i<ev.workspaces.length;i++) {
|
||||
RED.nodes.addWorkspace(ev.workspaces[i]);
|
||||
RED.workspaces.add(ev.workspaces[i]);
|
||||
}
|
||||
}
|
||||
if (ev.subflow && ev.subflow.subflow) {
|
||||
RED.nodes.addSubflow(ev.subflow.subflow);
|
||||
}
|
||||
if (ev.subflowInputs && ev.subflowInputs.length > 0) {
|
||||
subflow = RED.nodes.subflow(ev.subflowInputs[0].z);
|
||||
subflow.in.push(ev.subflowInputs[0]);
|
||||
subflow.in[0].dirty = true;
|
||||
}
|
||||
if (ev.subflowOutputs && ev.subflowOutputs.length > 0) {
|
||||
subflow = RED.nodes.subflow(ev.subflowOutputs[0].z);
|
||||
ev.subflowOutputs.sort(function(a,b) { return a.i-b.i});
|
||||
for (i=0;i<ev.subflowOutputs.length;i++) {
|
||||
var output = ev.subflowOutputs[i];
|
||||
subflow.out.splice(output.i,0,output);
|
||||
for (var j=output.i+1;j<subflow.out.length;j++) {
|
||||
subflow.out[j].i++;
|
||||
subflow.out[j].dirty = true;
|
||||
}
|
||||
RED.nodes.eachLink(function(l) {
|
||||
if (l.source.type == "subflow:"+subflow.id) {
|
||||
if (l.sourcePort >= output.i) {
|
||||
l.sourcePort++;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
if (ev.subflow && ev.subflow.hasOwnProperty('instances')) {
|
||||
ev.subflow.instances.forEach(function(n) {
|
||||
var node = RED.nodes.node(n.id);
|
||||
if (node) {
|
||||
node.changed = n.changed;
|
||||
node.dirty = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (subflow) {
|
||||
RED.nodes.filterNodes({type:"subflow:"+subflow.id}).forEach(function(n) {
|
||||
n.inputs = subflow.in.length;
|
||||
n.outputs = subflow.out.length;
|
||||
while (n.outputs > n.ports.length) {
|
||||
n.ports.push(n.ports.length);
|
||||
}
|
||||
n.resize = true;
|
||||
n.dirty = true;
|
||||
});
|
||||
}
|
||||
if (ev.nodes) {
|
||||
for (i=0;i<ev.nodes.length;i++) {
|
||||
RED.nodes.add(ev.nodes[i]);
|
||||
modifiedTabs[ev.nodes[i].z] = true;
|
||||
}
|
||||
}
|
||||
if (ev.links) {
|
||||
for (i=0;i<ev.links.length;i++) {
|
||||
RED.nodes.addLink(ev.links[i]);
|
||||
}
|
||||
}
|
||||
if (ev.changes) {
|
||||
for (i in ev.changes) {
|
||||
if (ev.changes.hasOwnProperty(i)) {
|
||||
node = RED.nodes.node(i);
|
||||
if (node) {
|
||||
for (var d in ev.changes[i]) {
|
||||
if (ev.changes[i].hasOwnProperty(d)) {
|
||||
node[d] = ev.changes[i][d];
|
||||
}
|
||||
}
|
||||
node.dirty = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} else if (ev.t == "move") {
|
||||
for (i=0;i<ev.nodes.length;i++) {
|
||||
var n = ev.nodes[i];
|
||||
n.n.x = n.ox;
|
||||
n.n.y = n.oy;
|
||||
n.n.dirty = true;
|
||||
n.n.moved = n.moved;
|
||||
}
|
||||
// A move could have caused a link splice
|
||||
if (ev.links) {
|
||||
for (i=0;i<ev.links.length;i++) {
|
||||
RED.nodes.removeLink(ev.links[i]);
|
||||
}
|
||||
}
|
||||
if (ev.removedLinks) {
|
||||
for (i=0;i<ev.removedLinks.length;i++) {
|
||||
RED.nodes.addLink(ev.removedLinks[i]);
|
||||
}
|
||||
}
|
||||
} else if (ev.t == "edit") {
|
||||
for (i in ev.changes) {
|
||||
if (ev.changes.hasOwnProperty(i)) {
|
||||
if (ev.node._def.defaults && ev.node._def.defaults[i] && ev.node._def.defaults[i].type) {
|
||||
// This is a config node property
|
||||
var currentConfigNode = RED.nodes.node(ev.node[i]);
|
||||
if (currentConfigNode) {
|
||||
currentConfigNode.users.splice(currentConfigNode.users.indexOf(ev.node),1);
|
||||
}
|
||||
var newConfigNode = RED.nodes.node(ev.changes[i]);
|
||||
if (newConfigNode) {
|
||||
newConfigNode.users.push(ev.node);
|
||||
}
|
||||
}
|
||||
ev.node[i] = ev.changes[i];
|
||||
}
|
||||
}
|
||||
if (ev.subflow) {
|
||||
if (ev.subflow.hasOwnProperty('inputCount')) {
|
||||
if (ev.node.in.length > ev.subflow.inputCount) {
|
||||
ev.node.in.splice(ev.subflow.inputCount);
|
||||
} else if (ev.subflow.inputs.length > 0) {
|
||||
ev.node.in = ev.node.in.concat(ev.subflow.inputs);
|
||||
}
|
||||
}
|
||||
if (ev.subflow.hasOwnProperty('outputCount')) {
|
||||
if (ev.node.out.length > ev.subflow.outputCount) {
|
||||
ev.node.out.splice(ev.subflow.outputCount);
|
||||
} else if (ev.subflow.outputs.length > 0) {
|
||||
ev.node.out = ev.node.out.concat(ev.subflow.outputs);
|
||||
}
|
||||
}
|
||||
if (ev.subflow.hasOwnProperty('instances')) {
|
||||
ev.subflow.instances.forEach(function(n) {
|
||||
var node = RED.nodes.node(n.id);
|
||||
if (node) {
|
||||
node.changed = n.changed;
|
||||
node.dirty = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
RED.editor.validateNode(ev.node);
|
||||
RED.nodes.filterNodes({type:"subflow:"+ev.node.id}).forEach(function(n) {
|
||||
n.inputs = ev.node.in.length;
|
||||
n.outputs = ev.node.out.length;
|
||||
RED.editor.updateNodeProperties(n);
|
||||
RED.editor.validateNode(n);
|
||||
});
|
||||
} else {
|
||||
var outputMap;
|
||||
if (ev.outputMap) {
|
||||
outputMap = {};
|
||||
for (var port in ev.outputMap) {
|
||||
if (ev.outputMap.hasOwnProperty(port) && ev.outputMap[port] !== "-1") {
|
||||
outputMap[ev.outputMap[port]] = port;
|
||||
}
|
||||
}
|
||||
}
|
||||
RED.editor.updateNodeProperties(ev.node,outputMap);
|
||||
RED.editor.validateNode(ev.node);
|
||||
}
|
||||
if (ev.links) {
|
||||
for (i=0;i<ev.links.length;i++) {
|
||||
RED.nodes.addLink(ev.links[i]);
|
||||
}
|
||||
}
|
||||
ev.node.dirty = true;
|
||||
ev.node.changed = ev.changed;
|
||||
} else if (ev.t == "createSubflow") {
|
||||
if (ev.nodes) {
|
||||
RED.nodes.filterNodes({z:ev.subflow.subflow.id}).forEach(function(n) {
|
||||
n.z = ev.activeWorkspace;
|
||||
n.dirty = true;
|
||||
});
|
||||
for (i=0;i<ev.nodes.length;i++) {
|
||||
RED.nodes.remove(ev.nodes[i]);
|
||||
}
|
||||
}
|
||||
if (ev.links) {
|
||||
for (i=0;i<ev.links.length;i++) {
|
||||
RED.nodes.removeLink(ev.links[i]);
|
||||
}
|
||||
}
|
||||
|
||||
RED.nodes.removeSubflow(ev.subflow.subflow);
|
||||
RED.workspaces.remove(ev.subflow.subflow);
|
||||
|
||||
if (ev.removedLinks) {
|
||||
for (i=0;i<ev.removedLinks.length;i++) {
|
||||
RED.nodes.addLink(ev.removedLinks[i]);
|
||||
}
|
||||
}
|
||||
} else if (ev.t == "reorder") {
|
||||
if (ev.order) {
|
||||
RED.workspaces.order(ev.order);
|
||||
}
|
||||
}
|
||||
Object.keys(modifiedTabs).forEach(function(id) {
|
||||
var subflow = RED.nodes.subflow(id);
|
||||
if (subflow) {
|
||||
RED.editor.validateNode(subflow);
|
||||
}
|
||||
});
|
||||
|
||||
RED.nodes.dirty(ev.dirty);
|
||||
RED.view.redraw(true);
|
||||
RED.palette.refresh();
|
||||
RED.workspaces.refresh();
|
||||
RED.sidebar.config.refresh();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return {
|
||||
//TODO: this function is a placeholder until there is a 'save' event that can be listened to
|
||||
markAllDirty: function() {
|
||||
for (var i=0;i<undo_history.length;i++) {
|
||||
undo_history[i].dirty = true;
|
||||
}
|
||||
},
|
||||
list: function() {
|
||||
return undo_history
|
||||
},
|
||||
depth: function() {
|
||||
return undo_history.length;
|
||||
},
|
||||
push: function(ev) {
|
||||
undo_history.push(ev);
|
||||
},
|
||||
pop: function() {
|
||||
var ev = undo_history.pop();
|
||||
undoEvent(ev);
|
||||
},
|
||||
peek: function() {
|
||||
return undo_history[undo_history.length-1];
|
||||
},
|
||||
clear: function() {
|
||||
undo_history = [];
|
||||
}
|
||||
}
|
||||
|
||||
})();
|
||||
@@ -1,86 +0,0 @@
|
||||
/**
|
||||
* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
|
||||
RED.i18n = (function() {
|
||||
|
||||
return {
|
||||
init: function(done) {
|
||||
i18n.init({
|
||||
resGetPath: 'locales/__ns__?lng=__lng__',
|
||||
dynamicLoad: false,
|
||||
load:'current',
|
||||
ns: {
|
||||
namespaces: ["editor","node-red","jsonata","infotips"],
|
||||
defaultNs: "editor"
|
||||
},
|
||||
fallbackLng: ['en-US'],
|
||||
useCookie: false
|
||||
},function() {
|
||||
done();
|
||||
});
|
||||
RED["_"] = function() {
|
||||
return i18n.t.apply(null,arguments);
|
||||
}
|
||||
|
||||
},
|
||||
loadCatalog: function(namespace,done) {
|
||||
var languageList = i18n.functions.toLanguages(i18n.detectLanguage());
|
||||
var toLoad = languageList.length;
|
||||
languageList.forEach(function(lang) {
|
||||
$.ajax({
|
||||
headers: {
|
||||
"Accept":"application/json"
|
||||
},
|
||||
cache: false,
|
||||
url: 'locales/'+namespace+'?lng='+lang,
|
||||
success: function(data) {
|
||||
i18n.addResourceBundle(lang,namespace,data);
|
||||
toLoad--;
|
||||
if (toLoad === 0) {
|
||||
done();
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
},
|
||||
|
||||
loadNodeCatalogs: function(done) {
|
||||
var languageList = i18n.functions.toLanguages(i18n.detectLanguage());
|
||||
var toLoad = languageList.length;
|
||||
|
||||
languageList.forEach(function(lang) {
|
||||
$.ajax({
|
||||
headers: {
|
||||
"Accept":"application/json"
|
||||
},
|
||||
cache: false,
|
||||
url: 'locales/nodes?lng='+lang,
|
||||
success: function(data) {
|
||||
var namespaces = Object.keys(data);
|
||||
namespaces.forEach(function(ns) {
|
||||
i18n.addResourceBundle(lang,ns,data[ns]);
|
||||
});
|
||||
toLoad--;
|
||||
if (toLoad === 0) {
|
||||
done();
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
})();
|
||||
@@ -1,43 +0,0 @@
|
||||
{
|
||||
"*": {
|
||||
"ctrl-shift-p":"core:manage-palette",
|
||||
"ctrl-f": "core:search",
|
||||
"ctrl-=": "core:zoom-in",
|
||||
"ctrl--": "core:zoom-out",
|
||||
"ctrl-0": "core:zoom-reset",
|
||||
"ctrl-enter": "core:confirm-edit-tray",
|
||||
"ctrl-escape": "core:cancel-edit-tray",
|
||||
"ctrl-g i": "core:show-info-tab",
|
||||
"ctrl-g d": "core:show-debug-tab",
|
||||
"ctrl-g c": "core:show-config-tab",
|
||||
"ctrl-e": "core:show-export-dialog",
|
||||
"ctrl-i": "core:show-import-dialog",
|
||||
"ctrl-space": "core:toggle-sidebar",
|
||||
"ctrl-,": "core:show-user-settings",
|
||||
"ctrl-alt-r": "core:show-remote-diff",
|
||||
"ctrl-alt-n": "core:new-project",
|
||||
"ctrl-alt-o": "core:open-project",
|
||||
"ctrl-g v": "core:show-version-control-tab"
|
||||
},
|
||||
"workspace": {
|
||||
"backspace": "core:delete-selection",
|
||||
"delete": "core:delete-selection",
|
||||
"enter": "core:edit-selected-node",
|
||||
"ctrl-c": "core:copy-selection-to-internal-clipboard",
|
||||
"ctrl-x": "core:cut-selection-to-internal-clipboard",
|
||||
"ctrl-v": "core:paste-from-internal-clipboard",
|
||||
"ctrl-z": "core:undo",
|
||||
"ctrl-a": "core:select-all-nodes",
|
||||
"shift-?": "core:show-help",
|
||||
"up": "core:move-selection-up",
|
||||
"right": "core:move-selection-right",
|
||||
"down": "core:move-selection-down",
|
||||
"left": "core:move-selection-left",
|
||||
"shift-up": "core:step-selection-up",
|
||||
"shift-right": "core:step-selection-right",
|
||||
"shift-down": "core:step-selection-down",
|
||||
"shift-left": "core:step-selection-left",
|
||||
"ctrl-shift-j": "core:show-previous-tab",
|
||||
"ctrl-shift-k": "core:show-next-tab"
|
||||
}
|
||||
}
|
||||
@@ -1,501 +0,0 @@
|
||||
/**
|
||||
* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
(function() {
|
||||
|
||||
function appendNodeConfig(nodeConfig) {
|
||||
var m = /<!-- --- \[red-module:(\S+)\] --- -->/.exec(nodeConfig.trim());
|
||||
var moduleId;
|
||||
if (m) {
|
||||
moduleId = m[1];
|
||||
} else {
|
||||
moduleId = "unknown";
|
||||
}
|
||||
try {
|
||||
$("body").append(nodeConfig);
|
||||
} catch(err) {
|
||||
RED.notify(RED._("notification.errors.failedToAppendNode",{module:moduleId, error:err.toString()}),{
|
||||
type: "error",
|
||||
timeout: 10000
|
||||
});
|
||||
console.log("["+moduleId+"] "+err.toString());
|
||||
}
|
||||
}
|
||||
|
||||
function loadNodeList() {
|
||||
$.ajax({
|
||||
headers: {
|
||||
"Accept":"application/json"
|
||||
},
|
||||
cache: false,
|
||||
url: 'nodes',
|
||||
success: function(data) {
|
||||
RED.nodes.setNodeList(data);
|
||||
RED.i18n.loadNodeCatalogs(function() {
|
||||
loadIconList(loadNodes);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function loadIconList(done) {
|
||||
$.ajax({
|
||||
headers: {
|
||||
"Accept":"application/json"
|
||||
},
|
||||
cache: false,
|
||||
url: 'icons',
|
||||
success: function(data) {
|
||||
RED.nodes.setIconSets(data);
|
||||
if (done) {
|
||||
done();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function loadNodes() {
|
||||
$.ajax({
|
||||
headers: {
|
||||
"Accept":"text/html"
|
||||
},
|
||||
cache: false,
|
||||
url: 'nodes',
|
||||
success: function(data) {
|
||||
var configs = data.trim().split(/(?=<!-- --- \[red-module:\S+\] --- -->)/);
|
||||
configs.forEach(function(data) {
|
||||
appendNodeConfig(data);
|
||||
});
|
||||
|
||||
$("body").i18n();
|
||||
$("#palette > .palette-spinner").hide();
|
||||
$(".palette-scroll").removeClass("hide");
|
||||
$("#palette-search").removeClass("hide");
|
||||
loadFlows(function() {
|
||||
if (RED.settings.theme("projects.enabled",false)) {
|
||||
RED.projects.refresh(function(activeProject) {
|
||||
RED.sidebar.info.refresh()
|
||||
if (!activeProject) {
|
||||
// Projects enabled but no active project
|
||||
RED.menu.setDisabled('menu-item-projects-open',true);
|
||||
RED.menu.setDisabled('menu-item-projects-settings',true);
|
||||
if (activeProject === false) {
|
||||
// User previously decline the migration to projects.
|
||||
} else { // null/undefined
|
||||
RED.projects.showStartup();
|
||||
}
|
||||
}
|
||||
completeLoad();
|
||||
});
|
||||
} else {
|
||||
// Projects disabled by the user
|
||||
RED.sidebar.info.refresh()
|
||||
completeLoad();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function loadFlows(done) {
|
||||
$.ajax({
|
||||
headers: {
|
||||
"Accept":"application/json",
|
||||
},
|
||||
cache: false,
|
||||
url: 'flows',
|
||||
success: function(nodes) {
|
||||
if (nodes) {
|
||||
var currentHash = window.location.hash;
|
||||
RED.nodes.version(nodes.rev);
|
||||
RED.nodes.import(nodes.flows);
|
||||
RED.nodes.dirty(false);
|
||||
RED.view.redraw(true);
|
||||
if (/^#flow\/.+$/.test(currentHash)) {
|
||||
RED.workspaces.show(currentHash.substring(6));
|
||||
}
|
||||
}
|
||||
done();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function completeLoad() {
|
||||
var persistentNotifications = {};
|
||||
RED.comms.subscribe("notification/#",function(topic,msg) {
|
||||
var parts = topic.split("/");
|
||||
var notificationId = parts[1];
|
||||
if (notificationId === "runtime-deploy") {
|
||||
// handled in ui/deploy.js
|
||||
return;
|
||||
}
|
||||
if (notificationId === "node") {
|
||||
// handled below
|
||||
return;
|
||||
}
|
||||
if (notificationId === "project-update") {
|
||||
RED.nodes.clear();
|
||||
RED.history.clear();
|
||||
RED.view.redraw(true);
|
||||
RED.projects.refresh(function() {
|
||||
loadFlows(function() {
|
||||
var project = RED.projects.getActiveProject();
|
||||
var message = {
|
||||
"change-branch": RED._("notification.project.change-branch", {project: project.git.branches.local}),
|
||||
"merge-abort": RED._("notification.project.merge-abort"),
|
||||
"loaded": RED._("notification.project.loaded", {project: msg.project}),
|
||||
"updated": RED._("notification.project.updated", {project: msg.project}),
|
||||
"pull": RED._("notification.project.pull", {project: msg.project}),
|
||||
"revert": RED._("notification.project.revert", {project: msg.project}),
|
||||
"merge-complete": RED._("notification.project.merge-complete")
|
||||
}[msg.action];
|
||||
RED.notify("<p>"+message+"</p>");
|
||||
RED.sidebar.info.refresh()
|
||||
});
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (msg.text) {
|
||||
msg.default = msg.text;
|
||||
var text = RED._(msg.text,msg);
|
||||
var options = {
|
||||
type: msg.type,
|
||||
fixed: msg.timeout === undefined,
|
||||
timeout: msg.timeout,
|
||||
id: notificationId
|
||||
}
|
||||
if (notificationId === "runtime-state") {
|
||||
if (msg.error === "missing-types") {
|
||||
text+="<ul><li>"+msg.types.join("</li><li>")+"</li></ul>";
|
||||
if (!!RED.projects.getActiveProject()) {
|
||||
options.buttons = [
|
||||
{
|
||||
text: RED._("notification.label.manage-project-dep"),
|
||||
click: function() {
|
||||
persistentNotifications[notificationId].hideNotification();
|
||||
RED.projects.settings.show('deps');
|
||||
}
|
||||
}
|
||||
]
|
||||
// } else if (RED.settings.theme('palette.editable') !== false) {
|
||||
} else {
|
||||
options.buttons = [
|
||||
{
|
||||
text: RED._("common.label.close"),
|
||||
click: function() {
|
||||
persistentNotifications[notificationId].hideNotification();
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
} else if (msg.error === "credentials_load_failed") {
|
||||
if (RED.settings.theme("projects.enabled",false)) {
|
||||
// projects enabled
|
||||
if (RED.user.hasPermission("projects.write")) {
|
||||
options.buttons = [
|
||||
{
|
||||
text: RED._("notification.label.setup-cred"),
|
||||
click: function() {
|
||||
persistentNotifications[notificationId].hideNotification();
|
||||
RED.projects.showCredentialsPrompt();
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
} else {
|
||||
options.buttons = [
|
||||
{
|
||||
text: RED._("common.label.close"),
|
||||
click: function() {
|
||||
persistentNotifications[notificationId].hideNotification();
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
} else if (msg.error === "missing_flow_file") {
|
||||
if (RED.user.hasPermission("projects.write")) {
|
||||
options.buttons = [
|
||||
{
|
||||
text: RED._("notification.label.setup-project"),
|
||||
click: function() {
|
||||
persistentNotifications[notificationId].hideNotification();
|
||||
RED.projects.showFilesPrompt();
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
} else if (msg.error === "missing_package_file") {
|
||||
if (RED.user.hasPermission("projects.write")) {
|
||||
options.buttons = [
|
||||
{
|
||||
text: RED._("notification.label.create-default-package"),
|
||||
click: function() {
|
||||
persistentNotifications[notificationId].hideNotification();
|
||||
RED.projects.createDefaultPackageFile();
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
} else if (msg.error === "project_empty") {
|
||||
if (RED.user.hasPermission("projects.write")) {
|
||||
options.buttons = [
|
||||
{
|
||||
text: RED._("notification.label.no-thanks"),
|
||||
click: function() {
|
||||
persistentNotifications[notificationId].hideNotification();
|
||||
}
|
||||
},
|
||||
{
|
||||
text: RED._("notification.label.create-default-project"),
|
||||
click: function() {
|
||||
persistentNotifications[notificationId].hideNotification();
|
||||
RED.projects.createDefaultFileSet();
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
} else if (msg.error === "git_merge_conflict") {
|
||||
RED.nodes.clear();
|
||||
RED.sidebar.versionControl.refresh(true);
|
||||
if (RED.user.hasPermission("projects.write")) {
|
||||
options.buttons = [
|
||||
{
|
||||
text: RED._("notification.label.show-merge-conflicts"),
|
||||
click: function() {
|
||||
persistentNotifications[notificationId].hideNotification();
|
||||
RED.sidebar.versionControl.showLocalChanges();
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!persistentNotifications.hasOwnProperty(notificationId)) {
|
||||
persistentNotifications[notificationId] = RED.notify(text,options);
|
||||
} else {
|
||||
persistentNotifications[notificationId].update(text,options);
|
||||
}
|
||||
} else if (persistentNotifications.hasOwnProperty(notificationId)) {
|
||||
persistentNotifications[notificationId].close();
|
||||
delete persistentNotifications[notificationId];
|
||||
}
|
||||
});
|
||||
RED.comms.subscribe("status/#",function(topic,msg) {
|
||||
var parts = topic.split("/");
|
||||
var node = RED.nodes.node(parts[1]);
|
||||
if (node) {
|
||||
if (msg.hasOwnProperty("text")) {
|
||||
if (msg.text[0] !== ".") {
|
||||
msg.text = node._(msg.text.toString(),{defaultValue:msg.text.toString()});
|
||||
}
|
||||
}
|
||||
node.status = msg;
|
||||
node.dirty = true;
|
||||
RED.view.redraw();
|
||||
}
|
||||
});
|
||||
RED.comms.subscribe("notification/node/#",function(topic,msg) {
|
||||
var i,m;
|
||||
var typeList;
|
||||
var info;
|
||||
if (topic == "notification/node/added") {
|
||||
var addedTypes = [];
|
||||
msg.forEach(function(m) {
|
||||
var id = m.id;
|
||||
RED.nodes.addNodeSet(m);
|
||||
addedTypes = addedTypes.concat(m.types);
|
||||
RED.i18n.loadCatalog(id, function() {
|
||||
$.get('nodes/'+id, function(data) {
|
||||
appendNodeConfig(data);
|
||||
});
|
||||
});
|
||||
});
|
||||
if (addedTypes.length) {
|
||||
typeList = "<ul><li>"+addedTypes.join("</li><li>")+"</li></ul>";
|
||||
RED.notify(RED._("palette.event.nodeAdded", {count:addedTypes.length})+typeList,"success");
|
||||
}
|
||||
loadIconList();
|
||||
} else if (topic == "notification/node/removed") {
|
||||
for (i=0;i<msg.length;i++) {
|
||||
m = msg[i];
|
||||
info = RED.nodes.removeNodeSet(m.id);
|
||||
if (info.added) {
|
||||
typeList = "<ul><li>"+m.types.join("</li><li>")+"</li></ul>";
|
||||
RED.notify(RED._("palette.event.nodeRemoved", {count:m.types.length})+typeList,"success");
|
||||
}
|
||||
}
|
||||
loadIconList();
|
||||
} else if (topic == "notification/node/enabled") {
|
||||
if (msg.types) {
|
||||
info = RED.nodes.getNodeSet(msg.id);
|
||||
if (info.added) {
|
||||
RED.nodes.enableNodeSet(msg.id);
|
||||
typeList = "<ul><li>"+msg.types.join("</li><li>")+"</li></ul>";
|
||||
RED.notify(RED._("palette.event.nodeEnabled", {count:msg.types.length})+typeList,"success");
|
||||
} else {
|
||||
$.get('nodes/'+msg.id, function(data) {
|
||||
appendNodeConfig(data);
|
||||
typeList = "<ul><li>"+msg.types.join("</li><li>")+"</li></ul>";
|
||||
RED.notify(RED._("palette.event.nodeAdded", {count:msg.types.length})+typeList,"success");
|
||||
});
|
||||
}
|
||||
}
|
||||
} else if (topic == "notification/node/disabled") {
|
||||
if (msg.types) {
|
||||
RED.nodes.disableNodeSet(msg.id);
|
||||
typeList = "<ul><li>"+msg.types.join("</li><li>")+"</li></ul>";
|
||||
RED.notify(RED._("palette.event.nodeDisabled", {count:msg.types.length})+typeList,"success");
|
||||
}
|
||||
} else if (topic == "node/upgraded") {
|
||||
RED.notify(RED._("palette.event.nodeUpgraded", {module:msg.module,version:msg.version}),"success");
|
||||
RED.nodes.registry.setModulePendingUpdated(msg.module,msg.version);
|
||||
}
|
||||
// Refresh flow library to ensure any examples are updated
|
||||
RED.library.loadFlowLibrary();
|
||||
});
|
||||
}
|
||||
|
||||
function showAbout() {
|
||||
$.get('red/about', function(data) {
|
||||
var aboutHeader = '<div style="text-align:center;">'+
|
||||
'<img width="50px" src="red/images/node-red-icon.svg" />'+
|
||||
'</div>';
|
||||
|
||||
RED.sidebar.info.set(aboutHeader+marked(data));
|
||||
RED.sidebar.info.show();
|
||||
});
|
||||
}
|
||||
|
||||
function loadEditor() {
|
||||
var menuOptions = [];
|
||||
if (RED.settings.theme("projects.enabled",false)) {
|
||||
menuOptions.push({id:"menu-item-projects-menu",label:RED._("menu.label.projects"),options:[
|
||||
{id:"menu-item-projects-new",label:RED._("menu.label.projects-new"),disabled:false,onselect:"core:new-project"},
|
||||
{id:"menu-item-projects-open",label:RED._("menu.label.projects-open"),disabled:false,onselect:"core:open-project"},
|
||||
{id:"menu-item-projects-settings",label:RED._("menu.label.projects-settings"),disabled:false,onselect:"core:show-project-settings"}
|
||||
]});
|
||||
}
|
||||
|
||||
|
||||
menuOptions.push({id:"menu-item-view-menu",label:RED._("menu.label.view.view"),options:[
|
||||
// {id:"menu-item-view-show-grid",setting:"view-show-grid",label:RED._("menu.label.view.showGrid"),toggle:true,onselect:"core:toggle-show-grid"},
|
||||
// {id:"menu-item-view-snap-grid",setting:"view-snap-grid",label:RED._("menu.label.view.snapGrid"),toggle:true,onselect:"core:toggle-snap-grid"},
|
||||
// {id:"menu-item-status",setting:"node-show-status",label:RED._("menu.label.displayStatus"),toggle:true,onselect:"core:toggle-status", selected: true},
|
||||
//null,
|
||||
// {id:"menu-item-bidi",label:RED._("menu.label.view.textDir"),options:[
|
||||
// {id:"menu-item-bidi-default",toggle:"text-direction",label:RED._("menu.label.view.defaultDir"),selected: true, onselect:function(s) { if(s){RED.text.bidi.setTextDirection("")}}},
|
||||
// {id:"menu-item-bidi-ltr",toggle:"text-direction",label:RED._("menu.label.view.ltr"), onselect:function(s) { if(s){RED.text.bidi.setTextDirection("ltr")}}},
|
||||
// {id:"menu-item-bidi-rtl",toggle:"text-direction",label:RED._("menu.label.view.rtl"), onselect:function(s) { if(s){RED.text.bidi.setTextDirection("rtl")}}},
|
||||
// {id:"menu-item-bidi-auto",toggle:"text-direction",label:RED._("menu.label.view.auto"), onselect:function(s) { if(s){RED.text.bidi.setTextDirection("auto")}}}
|
||||
// ]},
|
||||
// null,
|
||||
{id:"menu-item-sidebar",label:RED._("menu.label.sidebar.show"),toggle:true,onselect:"core:toggle-sidebar", selected: true},
|
||||
null
|
||||
]});
|
||||
menuOptions.push(null);
|
||||
menuOptions.push({id:"menu-item-import",label:RED._("menu.label.import"),options:[
|
||||
{id:"menu-item-import-clipboard",label:RED._("menu.label.clipboard"),onselect:"core:show-import-dialog"},
|
||||
{id:"menu-item-import-library",label:RED._("menu.label.library"),options:[]}
|
||||
]});
|
||||
menuOptions.push({id:"menu-item-export",label:RED._("menu.label.export"),options:[
|
||||
{id:"menu-item-export-clipboard",label:RED._("menu.label.clipboard"),onselect:"core:show-export-dialog"},
|
||||
{id:"menu-item-export-library",label:RED._("menu.label.library"),disabled:true,onselect:"core:library-export"}
|
||||
]});
|
||||
menuOptions.push(null);
|
||||
menuOptions.push({id:"menu-item-search",label:RED._("menu.label.search"),onselect:"core:search"});
|
||||
menuOptions.push(null);
|
||||
menuOptions.push({id:"menu-item-config-nodes",label:RED._("menu.label.displayConfig"),onselect:"core:show-config-tab"});
|
||||
menuOptions.push({id:"menu-item-workspace",label:RED._("menu.label.flows"),options:[
|
||||
{id:"menu-item-workspace-add",label:RED._("menu.label.add"),onselect:"core:add-flow"},
|
||||
{id:"menu-item-workspace-edit",label:RED._("menu.label.rename"),onselect:"core:edit-flow"},
|
||||
{id:"menu-item-workspace-delete",label:RED._("menu.label.delete"),onselect:"core:remove-flow"}
|
||||
]});
|
||||
menuOptions.push({id:"menu-item-subflow",label:RED._("menu.label.subflows"), options: [
|
||||
{id:"menu-item-subflow-create",label:RED._("menu.label.createSubflow"),onselect:"core:create-subflow"},
|
||||
{id:"menu-item-subflow-convert",label:RED._("menu.label.selectionToSubflow"),disabled:true,onselect:"core:convert-to-subflow"},
|
||||
]});
|
||||
menuOptions.push(null);
|
||||
if (RED.settings.theme('palette.editable') !== false) {
|
||||
menuOptions.push({id:"menu-item-edit-palette",label:RED._("menu.label.editPalette"),onselect:"core:manage-palette"});
|
||||
menuOptions.push(null);
|
||||
}
|
||||
|
||||
menuOptions.push({id:"menu-item-user-settings",label:RED._("menu.label.settings"),onselect:"core:show-user-settings"});
|
||||
menuOptions.push(null);
|
||||
|
||||
menuOptions.push({id:"menu-item-keyboard-shortcuts",label:RED._("menu.label.keyboardShortcuts"),onselect:"core:show-help"});
|
||||
menuOptions.push({id:"menu-item-help",
|
||||
label: RED.settings.theme("menu.menu-item-help.label",RED._("menu.label.help")),
|
||||
href: RED.settings.theme("menu.menu-item-help.url","http://nodered.org/docs")
|
||||
});
|
||||
menuOptions.push({id:"menu-item-node-red-version", label:"v"+RED.settings.version, onselect: "core:show-about" });
|
||||
|
||||
|
||||
RED.view.init();
|
||||
RED.userSettings.init();
|
||||
RED.user.init();
|
||||
RED.library.init();
|
||||
RED.keyboard.init();
|
||||
RED.palette.init();
|
||||
if (RED.settings.theme('palette.editable') !== false) {
|
||||
RED.palette.editor.init();
|
||||
} else {
|
||||
console.log("Palette editor disabled");
|
||||
}
|
||||
|
||||
RED.sidebar.init();
|
||||
|
||||
if (RED.settings.theme("projects.enabled",false)) {
|
||||
RED.projects.init();
|
||||
} else {
|
||||
console.log("Projects disabled");
|
||||
}
|
||||
|
||||
RED.subflow.init();
|
||||
RED.workspaces.init();
|
||||
RED.clipboard.init();
|
||||
RED.search.init();
|
||||
RED.editor.init();
|
||||
RED.diff.init();
|
||||
|
||||
RED.menu.init({id:"btn-sidemenu",options: menuOptions});
|
||||
|
||||
RED.deploy.init(RED.settings.theme("deployButton",null));
|
||||
RED.notifications.init();
|
||||
|
||||
RED.actions.add("core:show-about", showAbout);
|
||||
RED.nodes.init();
|
||||
RED.comms.connect();
|
||||
|
||||
$("#main-container").show();
|
||||
$(".header-toolbar").show();
|
||||
|
||||
loadNodeList();
|
||||
}
|
||||
|
||||
$(function() {
|
||||
|
||||
if ((window.location.hostname !== "localhost") && (window.location.hostname !== "127.0.0.1")) {
|
||||
document.title = document.title+" : "+window.location.hostname;
|
||||
}
|
||||
|
||||
ace.require("ace/ext/language_tools");
|
||||
|
||||
RED.i18n.init(function() {
|
||||
RED.settings.init(loadEditor);
|
||||
})
|
||||
});
|
||||
})();
|
||||
1422
editor/js/nodes.js
@@ -1,35 +0,0 @@
|
||||
RED.actions = (function() {
|
||||
var actions = {
|
||||
|
||||
}
|
||||
|
||||
function addAction(name,handler) {
|
||||
actions[name] = handler;
|
||||
}
|
||||
function removeAction(name) {
|
||||
delete actions[name];
|
||||
}
|
||||
function getAction(name) {
|
||||
return actions[name];
|
||||
}
|
||||
function invokeAction(name) {
|
||||
if (actions.hasOwnProperty(name)) {
|
||||
actions[name]();
|
||||
}
|
||||
}
|
||||
function listActions() {
|
||||
var result = [];
|
||||
Object.keys(actions).forEach(function(action) {
|
||||
var shortcut = RED.keyboard.getShortcut(action);
|
||||
result.push({id:action,scope:shortcut?shortcut.scope:undefined,key:shortcut?shortcut.key:undefined,user:shortcut?shortcut.user:undefined})
|
||||
})
|
||||
return result;
|
||||
}
|
||||
return {
|
||||
add: addAction,
|
||||
remove: removeAction,
|
||||
get: getAction,
|
||||
invoke: invokeAction,
|
||||
list: listActions
|
||||
}
|
||||
})();
|
||||
@@ -1,368 +0,0 @@
|
||||
/**
|
||||
* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
|
||||
|
||||
RED.clipboard = (function() {
|
||||
|
||||
var dialog;
|
||||
var dialogContainer;
|
||||
var exportNodesDialog;
|
||||
var importNodesDialog;
|
||||
var disabled = false;
|
||||
|
||||
function setupDialogs() {
|
||||
dialog = $('<div id="clipboard-dialog" class="hide node-red-dialog"><form class="dialog-form form-horizontal"></form></div>')
|
||||
.appendTo("body")
|
||||
.dialog({
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: 500,
|
||||
resizable: false,
|
||||
buttons: [
|
||||
{
|
||||
id: "clipboard-dialog-cancel",
|
||||
text: RED._("common.label.cancel"),
|
||||
click: function() {
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "clipboard-dialog-close",
|
||||
class: "primary",
|
||||
text: RED._("common.label.close"),
|
||||
click: function() {
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "clipboard-dialog-copy",
|
||||
class: "primary",
|
||||
text: RED._("clipboard.export.copy"),
|
||||
click: function() {
|
||||
$("#clipboard-export").select();
|
||||
document.execCommand("copy");
|
||||
document.getSelection().removeAllRanges();
|
||||
RED.notify(RED._("clipboard.nodesExported"));
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "clipboard-dialog-ok",
|
||||
class: "primary",
|
||||
text: RED._("common.label.import"),
|
||||
click: function() {
|
||||
RED.view.importNodes($("#clipboard-import").val(),$("#import-tab > a.selected").attr('id') === 'import-tab-new');
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
}
|
||||
],
|
||||
open: function(e) {
|
||||
$(this).parent().find(".ui-dialog-titlebar-close").hide();
|
||||
},
|
||||
close: function(e) {
|
||||
}
|
||||
});
|
||||
|
||||
dialogContainer = dialog.children(".dialog-form");
|
||||
|
||||
exportNodesDialog =
|
||||
'<div class="form-row">'+
|
||||
'<label style="width:auto;margin-right: 10px;" data-i18n="clipboard.export.copy"></label>'+
|
||||
'<span id="export-range-group" class="button-group">'+
|
||||
'<a id="export-range-selected" class="editor-button toggle" href="#" data-i18n="clipboard.export.selected"></a>'+
|
||||
'<a id="export-range-flow" class="editor-button toggle" href="#" data-i18n="clipboard.export.current"></a>'+
|
||||
'<a id="export-range-full" class="editor-button toggle" href="#" data-i18n="clipboard.export.all"></a>'+
|
||||
'</span>'+
|
||||
'</div>'+
|
||||
'<div class="form-row">'+
|
||||
'<textarea readonly style="resize: none; width: 100%; border-radius: 4px;font-family: monospace; font-size: 12px; background:#f3f3f3; padding-left: 0.5em; box-sizing:border-box;" id="clipboard-export" rows="5"></textarea>'+
|
||||
'</div>'+
|
||||
'<div class="form-row" style="text-align: right;">'+
|
||||
'<span id="export-format-group" class="button-group">'+
|
||||
'<a id="export-format-mini" class="editor-button editor-button-small toggle" href="#" data-i18n="clipboard.export.compact"></a>'+
|
||||
'<a id="export-format-full" class="editor-button editor-button-small toggle" href="#" data-i18n="clipboard.export.formatted"></a>'+
|
||||
'</span>'+
|
||||
'</div>';
|
||||
|
||||
importNodesDialog = '<div class="form-row">'+
|
||||
'<textarea style="resize: none; width: 100%; border-radius: 0px;font-family: monospace; font-size: 12px; background:#eee; padding-left: 0.5em; box-sizing:border-box;" id="clipboard-import" rows="5" placeholder="'+
|
||||
RED._("clipboard.pasteNodes")+
|
||||
'"></textarea>'+
|
||||
'</div>'+
|
||||
'<div class="form-row">'+
|
||||
'<label style="width:auto;margin-right: 10px;" data-i18n="clipboard.import.import"></label>'+
|
||||
'<span id="import-tab" class="button-group">'+
|
||||
'<a id="import-tab-current" class="editor-button toggle selected" href="#" data-i18n="clipboard.export.current"></a>'+
|
||||
'<a id="import-tab-new" class="editor-button toggle" href="#" data-i18n="clipboard.import.newFlow"></a>'+
|
||||
'</span>'+
|
||||
'</div>';
|
||||
}
|
||||
|
||||
function validateImport() {
|
||||
var importInput = $("#clipboard-import");
|
||||
var v = importInput.val();
|
||||
v = v.substring(v.indexOf('['),v.lastIndexOf(']')+1);
|
||||
try {
|
||||
JSON.parse(v);
|
||||
importInput.removeClass("input-error");
|
||||
importInput.val(v);
|
||||
$("#clipboard-dialog-ok").button("enable");
|
||||
} catch(err) {
|
||||
if (v !== "") {
|
||||
importInput.addClass("input-error");
|
||||
}
|
||||
$("#clipboard-dialog-ok").button("disable");
|
||||
}
|
||||
}
|
||||
|
||||
function importNodes() {
|
||||
if (disabled) {
|
||||
return;
|
||||
}
|
||||
dialogContainer.empty();
|
||||
dialogContainer.append($(importNodesDialog));
|
||||
dialogContainer.i18n();
|
||||
|
||||
$("#clipboard-dialog-ok").show();
|
||||
$("#clipboard-dialog-cancel").show();
|
||||
$("#clipboard-dialog-close").hide();
|
||||
$("#clipboard-dialog-copy").hide();
|
||||
$("#clipboard-dialog-ok").button("disable");
|
||||
$("#clipboard-import").keyup(validateImport);
|
||||
$("#clipboard-import").on('paste',function() { setTimeout(validateImport,10)});
|
||||
|
||||
$("#import-tab > a").click(function(evt) {
|
||||
evt.preventDefault();
|
||||
if ($(this).hasClass('disabled') || $(this).hasClass('selected')) {
|
||||
return;
|
||||
}
|
||||
$(this).parent().children().removeClass('selected');
|
||||
$(this).addClass('selected');
|
||||
});
|
||||
|
||||
dialog.dialog("option","title",RED._("clipboard.importNodes")).dialog("open");
|
||||
}
|
||||
|
||||
function exportNodes() {
|
||||
if (disabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
dialogContainer.empty();
|
||||
dialogContainer.append($(exportNodesDialog));
|
||||
dialogContainer.i18n();
|
||||
var format = RED.settings.flowFilePretty ? "export-format-full" : "export-format-mini";
|
||||
|
||||
$("#export-format-group > a").click(function(evt) {
|
||||
evt.preventDefault();
|
||||
if ($(this).hasClass('disabled') || $(this).hasClass('selected')) {
|
||||
$("#clipboard-export").focus();
|
||||
return;
|
||||
}
|
||||
$(this).parent().children().removeClass('selected');
|
||||
$(this).addClass('selected');
|
||||
|
||||
var flow = $("#clipboard-export").val();
|
||||
if (flow.length > 0) {
|
||||
var nodes = JSON.parse(flow);
|
||||
|
||||
format = $(this).attr('id');
|
||||
if (format === 'export-format-full') {
|
||||
flow = JSON.stringify(nodes,null,4);
|
||||
} else {
|
||||
flow = JSON.stringify(nodes);
|
||||
}
|
||||
$("#clipboard-export").val(flow);
|
||||
$("#clipboard-export").focus();
|
||||
}
|
||||
});
|
||||
|
||||
$("#export-range-group > a").click(function(evt) {
|
||||
evt.preventDefault();
|
||||
if ($(this).hasClass('disabled') || $(this).hasClass('selected')) {
|
||||
$("#clipboard-export").focus();
|
||||
return;
|
||||
}
|
||||
$(this).parent().children().removeClass('selected');
|
||||
$(this).addClass('selected');
|
||||
var type = $(this).attr('id');
|
||||
var flow = "";
|
||||
var nodes = null;
|
||||
if (type === 'export-range-selected') {
|
||||
var selection = RED.view.selection();
|
||||
// Don't include the subflow meta-port nodes in the exported selection
|
||||
nodes = RED.nodes.createExportableNodeSet(selection.nodes.filter(function(n) { return n.type !== 'subflow'}));
|
||||
} else if (type === 'export-range-flow') {
|
||||
var activeWorkspace = RED.workspaces.active();
|
||||
nodes = RED.nodes.filterNodes({z:activeWorkspace});
|
||||
var parentNode = RED.nodes.workspace(activeWorkspace)||RED.nodes.subflow(activeWorkspace);
|
||||
nodes.unshift(parentNode);
|
||||
nodes = RED.nodes.createExportableNodeSet(nodes);
|
||||
} else if (type === 'export-range-full') {
|
||||
nodes = RED.nodes.createCompleteNodeSet(false);
|
||||
}
|
||||
if (nodes !== null) {
|
||||
if (format === "export-format-full") {
|
||||
flow = JSON.stringify(nodes,null,4);
|
||||
} else {
|
||||
flow = JSON.stringify(nodes);
|
||||
}
|
||||
}
|
||||
if (flow.length > 0) {
|
||||
$("#export-copy").removeClass('disabled');
|
||||
} else {
|
||||
$("#export-copy").addClass('disabled');
|
||||
}
|
||||
$("#clipboard-export").val(flow);
|
||||
$("#clipboard-export").focus();
|
||||
})
|
||||
|
||||
$("#clipboard-dialog-ok").hide();
|
||||
$("#clipboard-dialog-cancel").hide();
|
||||
$("#clipboard-dialog-copy").hide();
|
||||
$("#clipboard-dialog-close").hide();
|
||||
var selection = RED.view.selection();
|
||||
if (selection.nodes) {
|
||||
$("#export-range-selected").click();
|
||||
} else {
|
||||
$("#export-range-selected").addClass('disabled').removeClass('selected');
|
||||
$("#export-range-flow").click();
|
||||
}
|
||||
if (format === "export-format-full") {
|
||||
$("#export-format-full").click();
|
||||
} else {
|
||||
$("#export-format-mini").click();
|
||||
}
|
||||
$("#clipboard-export")
|
||||
.focus(function() {
|
||||
var textarea = $(this);
|
||||
textarea.select();
|
||||
textarea.mouseup(function() {
|
||||
textarea.unbind("mouseup");
|
||||
return false;
|
||||
})
|
||||
});
|
||||
dialog.dialog("option","title",RED._("clipboard.exportNodes")).dialog( "open" );
|
||||
|
||||
$("#clipboard-export").focus();
|
||||
if (!document.queryCommandSupported("copy")) {
|
||||
$("#clipboard-dialog-cancel").hide();
|
||||
$("#clipboard-dialog-close").show();
|
||||
} else {
|
||||
$("#clipboard-dialog-cancel").show();
|
||||
$("#clipboard-dialog-copy").show();
|
||||
}
|
||||
}
|
||||
|
||||
function hideDropTarget() {
|
||||
$("#dropTarget").hide();
|
||||
RED.keyboard.remove("escape");
|
||||
}
|
||||
function copyText(value,element,msg) {
|
||||
var truncated = false;
|
||||
if (typeof value !== "string" ) {
|
||||
value = JSON.stringify(value, function(key,value) {
|
||||
if (value !== null && typeof value === 'object') {
|
||||
if (value.__encoded__ && value.hasOwnProperty('data') && value.hasOwnProperty('length')) {
|
||||
truncated = value.data.length !== value.length;
|
||||
return value.data;
|
||||
}
|
||||
}
|
||||
return value;
|
||||
});
|
||||
}
|
||||
if (truncated) {
|
||||
msg += "_truncated";
|
||||
}
|
||||
$("#clipboard-hidden").val(value).select();
|
||||
var result = document.execCommand("copy");
|
||||
if (result && element) {
|
||||
var popover = RED.popover.create({
|
||||
target: element,
|
||||
direction: 'left',
|
||||
size: 'small',
|
||||
content: RED._(msg)
|
||||
});
|
||||
setTimeout(function() {
|
||||
popover.close();
|
||||
},1000);
|
||||
popover.open();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
return {
|
||||
init: function() {
|
||||
setupDialogs();
|
||||
|
||||
$('<input type="text" id="clipboard-hidden">').appendTo("body");
|
||||
|
||||
RED.actions.add("core:show-export-dialog",exportNodes);
|
||||
RED.actions.add("core:show-import-dialog",importNodes);
|
||||
|
||||
|
||||
RED.events.on("editor:open",function() { disabled = true; });
|
||||
RED.events.on("editor:close",function() { disabled = false; });
|
||||
RED.events.on("search:open",function() { disabled = true; });
|
||||
RED.events.on("search:close",function() { disabled = false; });
|
||||
RED.events.on("type-search:open",function() { disabled = true; });
|
||||
RED.events.on("type-search:close",function() { disabled = false; });
|
||||
|
||||
|
||||
$('#chart').on("dragenter",function(event) {
|
||||
if ($.inArray("text/plain",event.originalEvent.dataTransfer.types) != -1 ||
|
||||
$.inArray("Files",event.originalEvent.dataTransfer.types) != -1) {
|
||||
$("#dropTarget").css({display:'table'});
|
||||
RED.keyboard.add("*", "escape" ,hideDropTarget);
|
||||
}
|
||||
});
|
||||
|
||||
$('#dropTarget').on("dragover",function(event) {
|
||||
if ($.inArray("text/plain",event.originalEvent.dataTransfer.types) != -1 ||
|
||||
$.inArray("Files",event.originalEvent.dataTransfer.types) != -1) {
|
||||
event.preventDefault();
|
||||
}
|
||||
})
|
||||
.on("dragleave",function(event) {
|
||||
hideDropTarget();
|
||||
})
|
||||
.on("drop",function(event) {
|
||||
if ($.inArray("text/plain",event.originalEvent.dataTransfer.types) != -1) {
|
||||
var data = event.originalEvent.dataTransfer.getData("text/plain");
|
||||
data = data.substring(data.indexOf('['),data.lastIndexOf(']')+1);
|
||||
RED.view.importNodes(data);
|
||||
} else if ($.inArray("Files",event.originalEvent.dataTransfer.types) != -1) {
|
||||
var files = event.originalEvent.dataTransfer.files;
|
||||
if (files.length === 1) {
|
||||
var file = files[0];
|
||||
var reader = new FileReader();
|
||||
reader.onload = (function(theFile) {
|
||||
return function(e) {
|
||||
RED.view.importNodes(e.target.result);
|
||||
};
|
||||
})(file);
|
||||
reader.readAsText(file);
|
||||
}
|
||||
}
|
||||
hideDropTarget();
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
},
|
||||
import: importNodes,
|
||||
export: exportNodes,
|
||||
copyText: copyText
|
||||
}
|
||||
})();
|
||||
@@ -1,267 +0,0 @@
|
||||
/**
|
||||
* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
RED.menu = (function() {
|
||||
|
||||
var menuItems = {};
|
||||
|
||||
function createMenuItem(opt) {
|
||||
var item;
|
||||
|
||||
if (opt !== null && opt.id) {
|
||||
var themeSetting = RED.settings.theme("menu."+opt.id);
|
||||
if (themeSetting === false) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function setInitialState() {
|
||||
var savedStateActive = RED.settings.get("menu-" + opt.id);
|
||||
if (opt.setting) {
|
||||
// May need to migrate pre-0.17 setting
|
||||
|
||||
if (savedStateActive !== null) {
|
||||
RED.settings.set(opt.setting,savedStateActive);
|
||||
RED.settings.remove("menu-" + opt.id);
|
||||
} else {
|
||||
savedStateActive = RED.settings.get(opt.setting);
|
||||
}
|
||||
}
|
||||
if (savedStateActive) {
|
||||
link.addClass("active");
|
||||
triggerAction(opt.id,true);
|
||||
} else if (savedStateActive === false) {
|
||||
link.removeClass("active");
|
||||
triggerAction(opt.id,false);
|
||||
} else if (opt.hasOwnProperty("selected")) {
|
||||
if (opt.selected) {
|
||||
link.addClass("active");
|
||||
} else {
|
||||
link.removeClass("active");
|
||||
}
|
||||
triggerAction(opt.id,opt.selected);
|
||||
}
|
||||
}
|
||||
|
||||
if (opt === null) {
|
||||
item = $('<li class="divider"></li>');
|
||||
} else {
|
||||
item = $('<li></li>');
|
||||
|
||||
if (opt.group) {
|
||||
item.addClass("menu-group-"+opt.group);
|
||||
|
||||
}
|
||||
var linkContent = '<a '+(opt.id?'id="'+opt.id+'" ':'')+'tabindex="-1" href="#">';
|
||||
if (opt.toggle) {
|
||||
linkContent += '<i class="fa fa-square pull-left"></i>';
|
||||
linkContent += '<i class="fa fa-check-square pull-left"></i>';
|
||||
|
||||
}
|
||||
if (opt.icon !== undefined) {
|
||||
if (/\.png/.test(opt.icon)) {
|
||||
linkContent += '<img src="'+opt.icon+'"/> ';
|
||||
} else {
|
||||
linkContent += '<i class="'+(opt.icon?opt.icon:'" style="display: inline-block;"')+'"></i> ';
|
||||
}
|
||||
}
|
||||
|
||||
if (opt.sublabel) {
|
||||
linkContent += '<span class="menu-label-container"><span class="menu-label">'+opt.label+'</span>'+
|
||||
'<span class="menu-sublabel">'+opt.sublabel+'</span></span>'
|
||||
} else {
|
||||
linkContent += '<span class="menu-label">'+opt.label+'</span>'
|
||||
}
|
||||
|
||||
linkContent += '</a>';
|
||||
|
||||
var link = $(linkContent).appendTo(item);
|
||||
|
||||
menuItems[opt.id] = opt;
|
||||
|
||||
if (opt.onselect) {
|
||||
link.click(function(e) {
|
||||
e.preventDefault();
|
||||
if ($(this).parent().hasClass("disabled")) {
|
||||
return;
|
||||
}
|
||||
if (opt.toggle) {
|
||||
var selected = isSelected(opt.id);
|
||||
if (typeof opt.toggle === "string") {
|
||||
if (!selected) {
|
||||
for (var m in menuItems) {
|
||||
if (menuItems.hasOwnProperty(m)) {
|
||||
var mi = menuItems[m];
|
||||
if (mi.id != opt.id && opt.toggle == mi.toggle) {
|
||||
setSelected(mi.id,false);
|
||||
}
|
||||
}
|
||||
}
|
||||
setSelected(opt.id,true);
|
||||
}
|
||||
} else {
|
||||
setSelected(opt.id, !selected);
|
||||
}
|
||||
} else {
|
||||
triggerAction(opt.id);
|
||||
}
|
||||
});
|
||||
if (opt.toggle) {
|
||||
setInitialState();
|
||||
}
|
||||
} else if (opt.href) {
|
||||
link.attr("target","_blank").attr("href",opt.href);
|
||||
} else if (!opt.options) {
|
||||
item.addClass("disabled");
|
||||
link.click(function(event) {
|
||||
event.preventDefault();
|
||||
});
|
||||
}
|
||||
if (opt.options) {
|
||||
item.addClass("dropdown-submenu pull-left");
|
||||
var submenu = $('<ul id="'+opt.id+'-submenu" class="dropdown-menu"></ul>').appendTo(item);
|
||||
|
||||
for (var i=0;i<opt.options.length;i++) {
|
||||
var li = createMenuItem(opt.options[i]);
|
||||
if (li) {
|
||||
li.appendTo(submenu);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (opt.disabled) {
|
||||
item.addClass("disabled");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return item;
|
||||
|
||||
}
|
||||
function createMenu(options) {
|
||||
|
||||
var menuParent = $("#"+options.id);
|
||||
|
||||
var topMenu = $("<ul/>",{id:options.id+"-submenu", class:"dropdown-menu pull-right"});
|
||||
|
||||
if (menuParent.length === 1) {
|
||||
topMenu.insertAfter(menuParent);
|
||||
}
|
||||
|
||||
var lastAddedSeparator = false;
|
||||
for (var i=0;i<options.options.length;i++) {
|
||||
var opt = options.options[i];
|
||||
if (opt !== null || !lastAddedSeparator) {
|
||||
var li = createMenuItem(opt);
|
||||
if (li) {
|
||||
li.appendTo(topMenu);
|
||||
lastAddedSeparator = (opt === null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return topMenu;
|
||||
}
|
||||
|
||||
function triggerAction(id, args) {
|
||||
var opt = menuItems[id];
|
||||
var callback = opt.onselect;
|
||||
if (typeof opt.onselect === 'string') {
|
||||
callback = RED.actions.get(opt.onselect);
|
||||
}
|
||||
if (callback) {
|
||||
callback.call(opt,args);
|
||||
} else {
|
||||
console.log("No callback for",id,opt.onselect);
|
||||
}
|
||||
}
|
||||
|
||||
function isSelected(id) {
|
||||
return $("#" + id).hasClass("active");
|
||||
}
|
||||
|
||||
function setSelected(id,state) {
|
||||
if (isSelected(id) == state) {
|
||||
return;
|
||||
}
|
||||
var opt = menuItems[id];
|
||||
if (state) {
|
||||
$("#"+id).addClass("active");
|
||||
} else {
|
||||
$("#"+id).removeClass("active");
|
||||
}
|
||||
if (opt && opt.onselect) {
|
||||
triggerAction(opt.id,state);
|
||||
}
|
||||
RED.settings.set(opt.setting||("menu-"+opt.id), state);
|
||||
}
|
||||
|
||||
function toggleSelected(id) {
|
||||
setSelected(id,!isSelected(id));
|
||||
}
|
||||
|
||||
function setDisabled(id,state) {
|
||||
if (state) {
|
||||
$("#"+id).parent().addClass("disabled");
|
||||
} else {
|
||||
$("#"+id).parent().removeClass("disabled");
|
||||
}
|
||||
}
|
||||
|
||||
function addItem(id,opt) {
|
||||
var item = createMenuItem(opt);
|
||||
if (opt.group) {
|
||||
var groupItems = $("#"+id+"-submenu").children(".menu-group-"+opt.group);
|
||||
if (groupItems.length === 0) {
|
||||
item.appendTo("#"+id+"-submenu");
|
||||
} else {
|
||||
for (var i=0;i<groupItems.length;i++) {
|
||||
var groupItem = groupItems[i];
|
||||
var label = $(groupItem).find(".menu-label").html();
|
||||
if (opt.label < label) {
|
||||
$(groupItem).before(item);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i === groupItems.length) {
|
||||
item.appendTo("#"+id+"-submenu");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
item.appendTo("#"+id+"-submenu");
|
||||
}
|
||||
}
|
||||
function removeItem(id) {
|
||||
$("#"+id).parent().remove();
|
||||
}
|
||||
|
||||
function setAction(id,action) {
|
||||
var opt = menuItems[id];
|
||||
if (opt) {
|
||||
opt.onselect = action;
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
init: createMenu,
|
||||
setSelected: setSelected,
|
||||
isSelected: isSelected,
|
||||
toggleSelected: toggleSelected,
|
||||
setDisabled: setDisabled,
|
||||
addItem: addItem,
|
||||
removeItem: removeItem,
|
||||
setAction: setAction
|
||||
//TODO: add an api for replacing a submenu - see library.js:loadFlowLibrary
|
||||
}
|
||||
})();
|
||||
@@ -1,81 +0,0 @@
|
||||
/**
|
||||
* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
|
||||
|
||||
RED.panels = (function() {
|
||||
|
||||
function createPanel(options) {
|
||||
var container = options.container || $("#"+options.id);
|
||||
var children = container.children();
|
||||
if (children.length !== 2) {
|
||||
throw new Error("Container must have exactly two children");
|
||||
}
|
||||
|
||||
container.addClass("red-ui-panels");
|
||||
var separator = $('<div class="red-ui-panels-separator"></div>').insertAfter(children[0]);
|
||||
var startPosition;
|
||||
var panelHeights = [];
|
||||
var modifiedHeights = false;
|
||||
var panelRatio;
|
||||
|
||||
separator.draggable({
|
||||
axis: "y",
|
||||
containment: container,
|
||||
scroll: false,
|
||||
start:function(event,ui) {
|
||||
var height = container.height();
|
||||
startPosition = ui.position.top;
|
||||
panelHeights = [$(children[0]).height(),$(children[1]).height()];
|
||||
},
|
||||
drag: function(event,ui) {
|
||||
var height = container.height();
|
||||
var delta = ui.position.top-startPosition;
|
||||
var newHeights = [panelHeights[0]+delta,panelHeights[1]-delta];
|
||||
$(children[0]).height(newHeights[0]);
|
||||
$(children[1]).height(newHeights[1]);
|
||||
if (options.resize) {
|
||||
options.resize(newHeights[0],newHeights[1]);
|
||||
}
|
||||
ui.position.top -= delta;
|
||||
panelRatio = newHeights[0]/height;
|
||||
},
|
||||
stop:function(event,ui) {
|
||||
modifiedHeights = true;
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
resize: function(height) {
|
||||
var panelHeights = [$(children[0]).height(),$(children[1]).height()];
|
||||
container.height(height);
|
||||
if (modifiedHeights) {
|
||||
var topPanelHeight = panelRatio*height;
|
||||
var bottomPanelHeight = height - topPanelHeight - 48;
|
||||
panelHeights = [topPanelHeight,bottomPanelHeight];
|
||||
$(children[0]).height(panelHeights[0]);
|
||||
$(children[1]).height(panelHeights[1]);
|
||||
}
|
||||
if (options.resize) {
|
||||
options.resize(panelHeights[0],panelHeights[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
create: createPanel
|
||||
}
|
||||
})();
|
||||
@@ -1,153 +0,0 @@
|
||||
/**
|
||||
* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
|
||||
RED.popover = (function() {
|
||||
var deltaSizes = {
|
||||
"default": {
|
||||
top: 10,
|
||||
leftRight: 17,
|
||||
leftLeft: 25,
|
||||
leftBottom: 8,
|
||||
},
|
||||
"small": {
|
||||
top: 5,
|
||||
leftRight: 17,
|
||||
leftLeft: 16,
|
||||
leftBottom: 3,
|
||||
}
|
||||
}
|
||||
function createPopover(options) {
|
||||
var target = options.target;
|
||||
var direction = options.direction || "right";
|
||||
var trigger = options.trigger;
|
||||
var content = options.content;
|
||||
var delay = options.delay;
|
||||
var autoClose = options.autoClose;
|
||||
var width = options.width||"auto";
|
||||
var size = options.size||"default";
|
||||
if (!deltaSizes[size]) {
|
||||
throw new Error("Invalid RED.popover size value:",size);
|
||||
}
|
||||
|
||||
var timer = null;
|
||||
var active;
|
||||
var div;
|
||||
|
||||
var openPopup = function(instant) {
|
||||
if (active) {
|
||||
div = $('<div class="red-ui-popover red-ui-popover-'+direction+'"></div>').appendTo("body");
|
||||
if (size !== "default") {
|
||||
div.addClass("red-ui-popover-size-"+size);
|
||||
}
|
||||
if (typeof content === 'function') {
|
||||
content.call(res).appendTo(div);
|
||||
} else {
|
||||
div.html(content);
|
||||
}
|
||||
if (width !== "auto") {
|
||||
div.width(width);
|
||||
}
|
||||
|
||||
|
||||
var targetPos = target.offset();
|
||||
var targetWidth = target.width();
|
||||
var targetHeight = target.height();
|
||||
var divHeight = div.height();
|
||||
var divWidth = div.width();
|
||||
if (direction === 'right') {
|
||||
div.css({top: targetPos.top+targetHeight/2-divHeight/2-deltaSizes[size].top,left:targetPos.left+targetWidth+deltaSizes[size].leftRight});
|
||||
} else if (direction === 'left') {
|
||||
div.css({top: targetPos.top+targetHeight/2-divHeight/2-deltaSizes[size].top,left:targetPos.left-deltaSizes[size].leftLeft-divWidth});
|
||||
} else if (direction === 'bottom') {
|
||||
div.css({top: targetPos.top+targetHeight+deltaSizes[size].top,left:targetPos.left+targetWidth/2-divWidth/2 - deltaSizes[size].leftBottom});
|
||||
}
|
||||
if (instant) {
|
||||
div.show();
|
||||
} else {
|
||||
div.fadeIn("fast");
|
||||
}
|
||||
}
|
||||
}
|
||||
var closePopup = function(instant) {
|
||||
if (!active) {
|
||||
if (div) {
|
||||
if (instant) {
|
||||
$(this).remove();
|
||||
} else {
|
||||
div.fadeOut("fast",function() {
|
||||
$(this).remove();
|
||||
});
|
||||
}
|
||||
div = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (trigger === 'hover') {
|
||||
target.on('mouseenter',function(e) {
|
||||
clearTimeout(timer);
|
||||
active = true;
|
||||
timer = setTimeout(openPopup,delay.show);
|
||||
});
|
||||
target.on('mouseleave', function(e) {
|
||||
if (timer) {
|
||||
clearTimeout(timer);
|
||||
}
|
||||
active = false;
|
||||
setTimeout(closePopup,delay.hide);
|
||||
});
|
||||
} else if (trigger === 'click') {
|
||||
target.click(function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
active = !active;
|
||||
if (!active) {
|
||||
closePopup();
|
||||
} else {
|
||||
openPopup();
|
||||
}
|
||||
});
|
||||
} else if (autoClose) {
|
||||
setTimeout(function() {
|
||||
active = false;
|
||||
closePopup();
|
||||
},autoClose);
|
||||
}
|
||||
var res = {
|
||||
setContent: function(_content) {
|
||||
content = _content;
|
||||
return res;
|
||||
},
|
||||
open: function (instant) {
|
||||
active = true;
|
||||
openPopup(instant);
|
||||
return res;
|
||||
},
|
||||
close: function (instant) {
|
||||
active = false;
|
||||
closePopup(instant);
|
||||
return res;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
|
||||
}
|
||||
|
||||
return {
|
||||
create: createPopover
|
||||
}
|
||||
|
||||
})();
|
||||
@@ -1,99 +0,0 @@
|
||||
/**
|
||||
* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
(function($) {
|
||||
|
||||
$.widget( "nodered.searchBox", {
|
||||
_create: function() {
|
||||
var that = this;
|
||||
|
||||
this.currentTimeout = null;
|
||||
this.lastSent = "";
|
||||
this.element.val("");
|
||||
this.uiContainer = this.element.wrap("<div>").parent();
|
||||
this.uiContainer.addClass("red-ui-searchBox-container");
|
||||
|
||||
$('<i class="fa fa-search"></i>').prependTo(this.uiContainer);
|
||||
this.clearButton = $('<a href="#"><i class="fa fa-times"></i></a>').appendTo(this.uiContainer);
|
||||
this.clearButton.on("click",function(e) {
|
||||
e.preventDefault();
|
||||
that.element.val("");
|
||||
that._change("",true);
|
||||
that.element.focus();
|
||||
});
|
||||
|
||||
this.resultCount = $('<span>',{class:"red-ui-searchBox-resultCount hide"}).appendTo(this.uiContainer);
|
||||
|
||||
this.element.val("");
|
||||
this.element.on("keydown",function(evt) {
|
||||
if (evt.keyCode === 27) {
|
||||
that.element.val("");
|
||||
}
|
||||
})
|
||||
this.element.on("keyup",function(evt) {
|
||||
that._change($(this).val());
|
||||
});
|
||||
|
||||
this.element.on("focus",function() {
|
||||
$("body").one("mousedown",function() {
|
||||
that.element.blur();
|
||||
});
|
||||
});
|
||||
|
||||
},
|
||||
_change: function(val,instant) {
|
||||
var fireEvent = false;
|
||||
if (val === "") {
|
||||
this.clearButton.hide();
|
||||
fireEvent = true;
|
||||
} else {
|
||||
this.clearButton.show();
|
||||
fireEvent = (val.length >= (this.options.minimumLength||0));
|
||||
}
|
||||
var current = this.element.val();
|
||||
fireEvent = fireEvent && current !== this.lastSent;
|
||||
if (fireEvent) {
|
||||
if (!instant && this.options.delay > 0) {
|
||||
clearTimeout(this.currentTimeout);
|
||||
var that = this;
|
||||
this.currentTimeout = setTimeout(function() {
|
||||
that.lastSent = that.element.val();
|
||||
that._trigger("change");
|
||||
},this.options.delay);
|
||||
} else {
|
||||
this._trigger("change");
|
||||
}
|
||||
}
|
||||
},
|
||||
value: function(val) {
|
||||
if (val === undefined) {
|
||||
return this.element.val();
|
||||
} else {
|
||||
this.element.val(val);
|
||||
this._change(val);
|
||||
}
|
||||
},
|
||||
count: function(val) {
|
||||
if (val === undefined || val === null || val === "") {
|
||||
this.resultCount.text("").hide();
|
||||
} else {
|
||||
this.resultCount.text(val).show();
|
||||
}
|
||||
},
|
||||
change: function() {
|
||||
this._trigger("change");
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
@@ -1,509 +0,0 @@
|
||||
/**
|
||||
* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
|
||||
|
||||
|
||||
RED.tabs = (function() {
|
||||
function createTabs(options) {
|
||||
var tabs = {};
|
||||
var pinnedTabsCount = 0;
|
||||
var currentTabWidth;
|
||||
var currentActiveTabWidth = 0;
|
||||
var collapsibleMenu;
|
||||
|
||||
var ul = options.element || $("#"+options.id);
|
||||
var wrapper = ul.wrap( "<div>" ).parent();
|
||||
var scrollContainer = ul.wrap( "<div>" ).parent();
|
||||
wrapper.addClass("red-ui-tabs");
|
||||
if (options.vertical) {
|
||||
wrapper.addClass("red-ui-tabs-vertical");
|
||||
}
|
||||
if (options.addButton && typeof options.addButton === 'function') {
|
||||
wrapper.addClass("red-ui-tabs-add");
|
||||
var addButton = $('<div class="red-ui-tab-button"><a href="#"><i class="fa fa-plus"></i></a></div>').appendTo(wrapper);
|
||||
addButton.find('a').click(function(evt) {
|
||||
evt.preventDefault();
|
||||
options.addButton();
|
||||
})
|
||||
|
||||
}
|
||||
var scrollLeft;
|
||||
var scrollRight;
|
||||
|
||||
if (options.scrollable) {
|
||||
wrapper.addClass("red-ui-tabs-scrollable");
|
||||
scrollContainer.addClass("red-ui-tabs-scroll-container");
|
||||
scrollContainer.scroll(updateScroll);
|
||||
scrollLeft = $('<div class="red-ui-tab-button red-ui-tab-scroll red-ui-tab-scroll-left"><a href="#" style="display:none;"><i class="fa fa-caret-left"></i></a></div>').appendTo(wrapper).find("a");
|
||||
scrollLeft.on('mousedown',function(evt) { scrollEventHandler(evt,'-=150') }).on('click',function(evt){ evt.preventDefault();});
|
||||
scrollRight = $('<div class="red-ui-tab-button red-ui-tab-scroll red-ui-tab-scroll-right"><a href="#" style="display:none;"><i class="fa fa-caret-right"></i></a></div>').appendTo(wrapper).find("a");
|
||||
scrollRight.on('mousedown',function(evt) { scrollEventHandler(evt,'+=150') }).on('click',function(evt){ evt.preventDefault();});
|
||||
}
|
||||
|
||||
if (options.collapsible) {
|
||||
// var dropDown = $('<div>',{class:"red-ui-tabs-select"}).appendTo(wrapper);
|
||||
// ul.hide();
|
||||
wrapper.addClass("red-ui-tabs-collapsible");
|
||||
|
||||
var collapsedButtonsRow = $('<div class="red-ui-tab-link-buttons"></div>').appendTo(wrapper);
|
||||
|
||||
var selectButton = $('<a href="#"><i class="fa fa-caret-down"></i></a>').appendTo(collapsedButtonsRow);
|
||||
selectButton.addClass("red-ui-tab-link-button-menu")
|
||||
selectButton.click(function(evt) {
|
||||
evt.preventDefault();
|
||||
if (!collapsibleMenu) {
|
||||
var pinnedOptions = [];
|
||||
var options = [];
|
||||
ul.children().each(function(i,el) {
|
||||
var id = $(el).data('tabId');
|
||||
var opt = {
|
||||
id:"red-ui-tabs-menu-option-"+id,
|
||||
label: tabs[id].name,
|
||||
onselect: function() {
|
||||
activateTab(id);
|
||||
}
|
||||
};
|
||||
if (tabs[id].pinned) {
|
||||
pinnedOptions.push(opt);
|
||||
} else {
|
||||
options.push(opt);
|
||||
}
|
||||
});
|
||||
options = pinnedOptions.concat(options);
|
||||
collapsibleMenu = RED.menu.init({id:"debug-message-option-menu",options: options});
|
||||
collapsibleMenu.css({
|
||||
position: "absolute"
|
||||
})
|
||||
collapsibleMenu.on('mouseleave', function(){ $(this).hide() });
|
||||
collapsibleMenu.on('mouseup', function() { $(this).hide() });
|
||||
collapsibleMenu.appendTo("body");
|
||||
var elementPos = selectButton.offset();
|
||||
collapsibleMenu.css({
|
||||
top: (elementPos.top+selectButton.height()-20)+"px",
|
||||
left: (elementPos.left - collapsibleMenu.width() + selectButton.width())+"px"
|
||||
})
|
||||
}
|
||||
collapsibleMenu.toggle();
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
function scrollEventHandler(evt,dir) {
|
||||
evt.preventDefault();
|
||||
if ($(this).hasClass('disabled')) {
|
||||
return;
|
||||
}
|
||||
var currentScrollLeft = scrollContainer.scrollLeft();
|
||||
scrollContainer.animate( { scrollLeft: dir }, 100);
|
||||
var interval = setInterval(function() {
|
||||
var newScrollLeft = scrollContainer.scrollLeft()
|
||||
if (newScrollLeft === currentScrollLeft) {
|
||||
clearInterval(interval);
|
||||
return;
|
||||
}
|
||||
currentScrollLeft = newScrollLeft;
|
||||
scrollContainer.animate( { scrollLeft: dir }, 100);
|
||||
},100);
|
||||
$(this).one('mouseup',function() {
|
||||
clearInterval(interval);
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
ul.children().first().addClass("active");
|
||||
ul.children().addClass("red-ui-tab");
|
||||
|
||||
function onTabClick() {
|
||||
if (options.onclick) {
|
||||
options.onclick(tabs[$(this).attr('href').slice(1)]);
|
||||
}
|
||||
activateTab($(this));
|
||||
return false;
|
||||
}
|
||||
|
||||
function updateScroll() {
|
||||
if (ul.children().length !== 0) {
|
||||
var sl = scrollContainer.scrollLeft();
|
||||
var scWidth = scrollContainer.width();
|
||||
var ulWidth = ul.width();
|
||||
if (sl === 0) {
|
||||
scrollLeft.hide();
|
||||
} else {
|
||||
scrollLeft.show();
|
||||
}
|
||||
if (sl === ulWidth-scWidth) {
|
||||
scrollRight.hide();
|
||||
} else {
|
||||
scrollRight.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
function onTabDblClick() {
|
||||
if (options.ondblclick) {
|
||||
options.ondblclick(tabs[$(this).attr('href').slice(1)]);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function activateTab(link) {
|
||||
if (typeof link === "string") {
|
||||
link = ul.find("a[href='#"+link+"']");
|
||||
}
|
||||
if (link.length === 0) {
|
||||
return;
|
||||
}
|
||||
if (!link.parent().hasClass("active")) {
|
||||
ul.children().removeClass("active");
|
||||
ul.children().css({"transition": "width 100ms"});
|
||||
link.parent().addClass("active");
|
||||
var parentId = link.parent().attr('id');
|
||||
wrapper.find(".red-ui-tab-link-button").removeClass("active");
|
||||
$("#"+parentId+"-link-button").addClass("active");
|
||||
if (options.scrollable) {
|
||||
var pos = link.parent().position().left;
|
||||
if (pos-21 < 0) {
|
||||
scrollContainer.animate( { scrollLeft: '+='+(pos-50) }, 300);
|
||||
} else if (pos + 120 > scrollContainer.width()) {
|
||||
scrollContainer.animate( { scrollLeft: '+='+(pos + 140-scrollContainer.width()) }, 300);
|
||||
}
|
||||
}
|
||||
if (options.onchange) {
|
||||
options.onchange(tabs[link.attr('href').slice(1)]);
|
||||
}
|
||||
updateTabWidths();
|
||||
setTimeout(function() {
|
||||
ul.children().css({"transition": ""});
|
||||
},100);
|
||||
}
|
||||
}
|
||||
function activatePreviousTab() {
|
||||
var previous = ul.find("li.active").prev();
|
||||
if (previous.length > 0) {
|
||||
activateTab(previous.find("a"));
|
||||
}
|
||||
}
|
||||
function activateNextTab() {
|
||||
var next = ul.find("li.active").next();
|
||||
if (next.length > 0) {
|
||||
activateTab(next.find("a"));
|
||||
}
|
||||
}
|
||||
|
||||
function updateTabWidths() {
|
||||
if (options.vertical) {
|
||||
return;
|
||||
}
|
||||
var tabs = ul.find("li.red-ui-tab");
|
||||
var width = wrapper.width();
|
||||
var tabCount = tabs.size();
|
||||
var tabWidth;
|
||||
|
||||
if (options.collapsible) {
|
||||
tabWidth = width - collapsedButtonsRow.width()-10;
|
||||
if (tabWidth < 198) {
|
||||
var delta = 198 - tabWidth;
|
||||
var b = collapsedButtonsRow.find("a:last").prev();
|
||||
while (b.is(":not(:visible)")) {
|
||||
b = b.prev();
|
||||
}
|
||||
if (!b.hasClass("red-ui-tab-link-button-pinned")) {
|
||||
b.hide();
|
||||
}
|
||||
tabWidth = width - collapsedButtonsRow.width()-10;
|
||||
} else {
|
||||
var space = width - 198 - collapsedButtonsRow.width();
|
||||
if (space > 40) {
|
||||
collapsedButtonsRow.find("a:not(:visible):first").show();
|
||||
tabWidth = width - collapsedButtonsRow.width()-10;
|
||||
}
|
||||
}
|
||||
tabs.css({width:tabWidth});
|
||||
|
||||
} else {
|
||||
var tabWidth = (width-12-(tabCount*6))/tabCount;
|
||||
currentTabWidth = (100*tabWidth/width)+"%";
|
||||
currentActiveTabWidth = currentTabWidth+"%";
|
||||
if (options.scrollable) {
|
||||
tabWidth = Math.max(tabWidth,140);
|
||||
currentTabWidth = tabWidth+"px";
|
||||
currentActiveTabWidth = 0;
|
||||
var listWidth = Math.max(wrapper.width(),12+(tabWidth+6)*tabCount);
|
||||
ul.width(listWidth);
|
||||
updateScroll();
|
||||
} else if (options.hasOwnProperty("minimumActiveTabWidth")) {
|
||||
if (tabWidth < options.minimumActiveTabWidth) {
|
||||
tabCount -= 1;
|
||||
tabWidth = (width-12-options.minimumActiveTabWidth-(tabCount*6))/tabCount;
|
||||
currentTabWidth = (100*tabWidth/width)+"%";
|
||||
currentActiveTabWidth = options.minimumActiveTabWidth+"px";
|
||||
} else {
|
||||
currentActiveTabWidth = 0;
|
||||
}
|
||||
}
|
||||
if (options.collapsible) {
|
||||
console.log(currentTabWidth);
|
||||
}
|
||||
|
||||
tabs.css({width:currentTabWidth});
|
||||
if (tabWidth < 50) {
|
||||
ul.find(".red-ui-tab-close").hide();
|
||||
ul.find(".red-ui-tab-icon").hide();
|
||||
ul.find(".red-ui-tab-label").css({paddingLeft:Math.min(12,Math.max(0,tabWidth-38))+"px"})
|
||||
} else {
|
||||
ul.find(".red-ui-tab-close").show();
|
||||
ul.find(".red-ui-tab-icon").show();
|
||||
ul.find(".red-ui-tab-label").css({paddingLeft:""})
|
||||
}
|
||||
if (currentActiveTabWidth !== 0) {
|
||||
ul.find("li.red-ui-tab.active").css({"width":options.minimumActiveTabWidth});
|
||||
ul.find("li.red-ui-tab.active .red-ui-tab-close").show();
|
||||
ul.find("li.red-ui-tab.active .red-ui-tab-icon").show();
|
||||
ul.find("li.red-ui-tab.active .red-ui-tab-label").css({paddingLeft:""})
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ul.find("li.red-ui-tab a").on("click",onTabClick).on("dblclick",onTabDblClick);
|
||||
setTimeout(function() {
|
||||
updateTabWidths();
|
||||
},0);
|
||||
|
||||
|
||||
function removeTab(id) {
|
||||
var li = ul.find("a[href='#"+id+"']").parent();
|
||||
if (li.hasClass("active")) {
|
||||
var tab = li.prev();
|
||||
if (tab.size() === 0) {
|
||||
tab = li.next();
|
||||
}
|
||||
activateTab(tab.find("a"));
|
||||
}
|
||||
li.remove();
|
||||
if (tabs[id].pinned) {
|
||||
pinnedTabsCount--;
|
||||
}
|
||||
if (options.onremove) {
|
||||
options.onremove(tabs[id]);
|
||||
}
|
||||
delete tabs[id];
|
||||
updateTabWidths();
|
||||
collapsibleMenu = null;
|
||||
}
|
||||
|
||||
return {
|
||||
addTab: function(tab) {
|
||||
tabs[tab.id] = tab;
|
||||
var li = $("<li/>",{class:"red-ui-tab"}).appendTo(ul);
|
||||
li.attr('id',"red-ui-tab-"+(tab.id.replace(".","-")));
|
||||
li.data("tabId",tab.id);
|
||||
|
||||
if (options.maximumTabWidth) {
|
||||
li.css("maxWidth",options.maximumTabWidth+"px");
|
||||
}
|
||||
var link = $("<a/>",{href:"#"+tab.id, class:"red-ui-tab-label"}).appendTo(li);
|
||||
if (tab.icon) {
|
||||
$('<img src="'+tab.icon+'" class="red-ui-tab-icon"/>').appendTo(link);
|
||||
} else if (tab.iconClass) {
|
||||
$('<i>',{class:"red-ui-tab-icon "+tab.iconClass}).appendTo(link);
|
||||
}
|
||||
var span = $('<span/>',{class:"bidiAware"}).text(tab.label).appendTo(link);
|
||||
span.attr('dir', RED.text.bidi.resolveBaseTextDir(tab.label));
|
||||
if (options.collapsible) {
|
||||
li.addClass("red-ui-tab-pinned");
|
||||
var pinnedLink = $('<a href="#'+tab.id+'" class="red-ui-tab-link-button"></a>');
|
||||
if (tab.pinned) {
|
||||
if (pinnedTabsCount === 0) {
|
||||
pinnedLink.prependTo(collapsedButtonsRow)
|
||||
} else {
|
||||
pinnedLink.insertAfter(collapsedButtonsRow.find("a.red-ui-tab-link-button-pinned:last"));
|
||||
}
|
||||
} else {
|
||||
pinnedLink.insertBefore(collapsedButtonsRow.find("a:last"));
|
||||
}
|
||||
|
||||
pinnedLink.attr('id',li.attr('id')+"-link-button");
|
||||
if (tab.iconClass) {
|
||||
$('<i>',{class:tab.iconClass}).appendTo(pinnedLink);
|
||||
} else {
|
||||
$('<i>',{class:"fa fa-lemon-o"}).appendTo(pinnedLink);
|
||||
}
|
||||
pinnedLink.click(function(evt) {
|
||||
evt.preventDefault();
|
||||
activateTab(tab.id);
|
||||
});
|
||||
if (tab.pinned) {
|
||||
pinnedLink.addClass("red-ui-tab-link-button-pinned");
|
||||
pinnedTabsCount++;
|
||||
}
|
||||
RED.popover.create({
|
||||
target:$(pinnedLink),
|
||||
trigger: "hover",
|
||||
size: "small",
|
||||
direction: "bottom",
|
||||
content: tab.name,
|
||||
delay: { show: 550, hide: 10 }
|
||||
});
|
||||
|
||||
}
|
||||
link.on("click",onTabClick);
|
||||
link.on("dblclick",onTabDblClick);
|
||||
if (tab.closeable) {
|
||||
var closeLink = $("<a/>",{href:"#",class:"red-ui-tab-close"}).appendTo(li);
|
||||
closeLink.append('<i class="fa fa-times" />');
|
||||
|
||||
closeLink.on("click",function(event) {
|
||||
event.preventDefault();
|
||||
removeTab(tab.id);
|
||||
});
|
||||
}
|
||||
updateTabWidths();
|
||||
if (options.onadd) {
|
||||
options.onadd(tab);
|
||||
}
|
||||
link.attr("title",tab.label);
|
||||
if (ul.find("li.red-ui-tab").size() == 1) {
|
||||
activateTab(link);
|
||||
}
|
||||
if (options.onreorder) {
|
||||
var originalTabOrder;
|
||||
var tabDragIndex;
|
||||
var tabElements = [];
|
||||
var startDragIndex;
|
||||
|
||||
li.draggable({
|
||||
axis:"x",
|
||||
distance: 20,
|
||||
start: function(event,ui) {
|
||||
originalTabOrder = [];
|
||||
tabElements = [];
|
||||
ul.children().each(function(i) {
|
||||
tabElements[i] = {
|
||||
el:$(this),
|
||||
text: $(this).text(),
|
||||
left: $(this).position().left,
|
||||
width: $(this).width()
|
||||
};
|
||||
if ($(this).is(li)) {
|
||||
tabDragIndex = i;
|
||||
startDragIndex = i;
|
||||
}
|
||||
originalTabOrder.push($(this).data("tabId"));
|
||||
});
|
||||
ul.children().each(function(i) {
|
||||
if (i!==tabDragIndex) {
|
||||
$(this).css({
|
||||
position: 'absolute',
|
||||
left: tabElements[i].left+"px",
|
||||
width: tabElements[i].width+2,
|
||||
transition: "left 0.3s"
|
||||
});
|
||||
}
|
||||
|
||||
})
|
||||
if (!li.hasClass('active')) {
|
||||
li.css({'zIndex':1});
|
||||
}
|
||||
},
|
||||
drag: function(event,ui) {
|
||||
ui.position.left += tabElements[tabDragIndex].left+scrollContainer.scrollLeft();
|
||||
var tabCenter = ui.position.left + tabElements[tabDragIndex].width/2 - scrollContainer.scrollLeft();
|
||||
for (var i=0;i<tabElements.length;i++) {
|
||||
if (i === tabDragIndex) {
|
||||
continue;
|
||||
}
|
||||
if (tabCenter > tabElements[i].left && tabCenter < tabElements[i].left+tabElements[i].width) {
|
||||
if (i < tabDragIndex) {
|
||||
tabElements[i].left += tabElements[tabDragIndex].width+8;
|
||||
tabElements[tabDragIndex].el.detach().insertBefore(tabElements[i].el);
|
||||
} else {
|
||||
tabElements[i].left -= tabElements[tabDragIndex].width+8;
|
||||
tabElements[tabDragIndex].el.detach().insertAfter(tabElements[i].el);
|
||||
}
|
||||
tabElements[i].el.css({left:tabElements[i].left+"px"});
|
||||
|
||||
tabElements.splice(i, 0, tabElements.splice(tabDragIndex, 1)[0]);
|
||||
|
||||
tabDragIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
stop: function(event,ui) {
|
||||
ul.children().css({position:"relative",left:"",transition:""});
|
||||
if (!li.hasClass('active')) {
|
||||
li.css({zIndex:""});
|
||||
}
|
||||
updateTabWidths();
|
||||
if (startDragIndex !== tabDragIndex) {
|
||||
options.onreorder(originalTabOrder, $.makeArray(ul.children().map(function() { return $(this).data('tabId');})));
|
||||
}
|
||||
activateTab(tabElements[tabDragIndex].el.data('tabId'));
|
||||
}
|
||||
})
|
||||
}
|
||||
collapsibleMenu = null;
|
||||
},
|
||||
removeTab: removeTab,
|
||||
activateTab: activateTab,
|
||||
nextTab: activateNextTab,
|
||||
previousTab: activatePreviousTab,
|
||||
resize: updateTabWidths,
|
||||
count: function() {
|
||||
return ul.find("li.red-ui-tab").size();
|
||||
},
|
||||
contains: function(id) {
|
||||
return ul.find("a[href='#"+id+"']").length > 0;
|
||||
},
|
||||
renameTab: function(id,label) {
|
||||
tabs[id].label = label;
|
||||
var tab = ul.find("a[href='#"+id+"']");
|
||||
tab.attr("title",label);
|
||||
tab.find("span.bidiAware").text(label).attr('dir', RED.text.bidi.resolveBaseTextDir(label));
|
||||
updateTabWidths();
|
||||
},
|
||||
order: function(order) {
|
||||
var existingTabOrder = $.makeArray(ul.children().map(function() { return $(this).data('tabId');}));
|
||||
if (existingTabOrder.length !== order.length) {
|
||||
return
|
||||
}
|
||||
var i;
|
||||
var match = true;
|
||||
for (i=0;i<order.length;i++) {
|
||||
if (order[i] !== existingTabOrder[i]) {
|
||||
match = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (match) {
|
||||
return;
|
||||
}
|
||||
var existingTabMap = {};
|
||||
var existingTabs = ul.children().detach().each(function() {
|
||||
existingTabMap[$(this).data("tabId")] = $(this);
|
||||
});
|
||||
for (i=0;i<order.length;i++) {
|
||||
existingTabMap[order[i]].appendTo(ul);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
create: createTabs
|
||||
}
|
||||
})();
|
||||
@@ -1,516 +0,0 @@
|
||||
/**
|
||||
* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
(function($) {
|
||||
var allOptions = {
|
||||
msg: {value:"msg",label:"msg.",validate:RED.utils.validatePropertyExpression},
|
||||
flow: {value:"flow",label:"flow.",validate:RED.utils.validatePropertyExpression},
|
||||
global: {value:"global",label:"global.",validate:RED.utils.validatePropertyExpression},
|
||||
str: {value:"str",label:"string",icon:"red/images/typedInput/az.png"},
|
||||
num: {value:"num",label:"number",icon:"red/images/typedInput/09.png",validate:/^[+-]?[0-9]*\.?[0-9]*([eE][-+]?[0-9]+)?$/},
|
||||
bool: {value:"bool",label:"boolean",icon:"red/images/typedInput/bool.png",options:["true","false"]},
|
||||
json: {
|
||||
value:"json",
|
||||
label:"JSON",
|
||||
icon:"red/images/typedInput/json.png",
|
||||
validate: function(v) { try{JSON.parse(v);return true;}catch(e){return false;}},
|
||||
expand: function() {
|
||||
var that = this;
|
||||
var value = this.value();
|
||||
try {
|
||||
value = JSON.stringify(JSON.parse(value),null,4);
|
||||
} catch(err) {
|
||||
}
|
||||
RED.editor.editJSON({
|
||||
value: value,
|
||||
complete: function(v) {
|
||||
var value = v;
|
||||
try {
|
||||
value = JSON.stringify(JSON.parse(v));
|
||||
} catch(err) {
|
||||
}
|
||||
that.value(value);
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
re: {value:"re",label:"regular expression",icon:"red/images/typedInput/re.png"},
|
||||
date: {value:"date",label:"timestamp",hasValue:false},
|
||||
jsonata: {
|
||||
value: "jsonata",
|
||||
label: "expression",
|
||||
icon: "red/images/typedInput/expr.png",
|
||||
validate: function(v) { try{jsonata(v);return true;}catch(e){return false;}},
|
||||
expand:function() {
|
||||
var that = this;
|
||||
RED.editor.editExpression({
|
||||
value: this.value().replace(/\t/g,"\n"),
|
||||
complete: function(v) {
|
||||
that.value(v.replace(/\n/g,"\t"));
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
bin: {
|
||||
value: "bin",
|
||||
label: "buffer",
|
||||
icon: "red/images/typedInput/bin.png",
|
||||
expand: function() {
|
||||
var that = this;
|
||||
RED.editor.editBuffer({
|
||||
value: this.value(),
|
||||
complete: function(v) {
|
||||
that.value(v);
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
env: {
|
||||
value: "env",
|
||||
label: "env variable",
|
||||
icon: "red/images/typedInput/env.png"
|
||||
}
|
||||
};
|
||||
var nlsd = false;
|
||||
|
||||
$.widget( "nodered.typedInput", {
|
||||
_create: function() {
|
||||
if (!nlsd && RED && RED._) {
|
||||
for (var i in allOptions) {
|
||||
if (allOptions.hasOwnProperty(i)) {
|
||||
allOptions[i].label = RED._("typedInput.type."+i,{defaultValue:allOptions[i].label});
|
||||
}
|
||||
}
|
||||
}
|
||||
nlsd = true;
|
||||
var that = this;
|
||||
|
||||
this.disarmClick = false;
|
||||
this.element.addClass('red-ui-typedInput');
|
||||
this.uiWidth = this.element.outerWidth();
|
||||
this.elementDiv = this.element.wrap("<div>").parent().addClass('red-ui-typedInput-input');
|
||||
this.uiSelect = this.elementDiv.wrap( "<div>" ).parent();
|
||||
var attrStyle = this.element.attr('style');
|
||||
var m;
|
||||
if ((m = /width\s*:\s*(calc\s*\(.*\)|\d+(%|px))/i.exec(attrStyle)) !== null) {
|
||||
this.element.css('width','100%');
|
||||
this.uiSelect.width(m[1]);
|
||||
this.uiWidth = null;
|
||||
} else {
|
||||
this.uiSelect.width(this.uiWidth);
|
||||
}
|
||||
["Right","Left"].forEach(function(d) {
|
||||
var m = that.element.css("margin"+d);
|
||||
that.uiSelect.css("margin"+d,m);
|
||||
that.element.css("margin"+d,0);
|
||||
});
|
||||
this.uiSelect.addClass("red-ui-typedInput-container");
|
||||
|
||||
this.options.types = this.options.types||Object.keys(allOptions);
|
||||
|
||||
this.selectTrigger = $('<button tabindex="0"></button>').prependTo(this.uiSelect);
|
||||
if (this.options.types.length > 1) {
|
||||
$('<i class="fa fa-sort-desc"></i>').appendTo(this.selectTrigger);
|
||||
}
|
||||
this.selectLabel = $('<span></span>').appendTo(this.selectTrigger);
|
||||
|
||||
this.types(this.options.types);
|
||||
|
||||
if (this.options.typeField) {
|
||||
this.typeField = $(this.options.typeField).hide();
|
||||
var t = this.typeField.val();
|
||||
if (t && this.typeMap[t]) {
|
||||
this.options.default = t;
|
||||
}
|
||||
} else {
|
||||
this.typeField = $("<input>",{type:'hidden'}).appendTo(this.uiSelect);
|
||||
}
|
||||
|
||||
this.element.on('focus', function() {
|
||||
that.uiSelect.addClass('red-ui-typedInput-focus');
|
||||
});
|
||||
this.element.on('blur', function() {
|
||||
that.uiSelect.removeClass('red-ui-typedInput-focus');
|
||||
});
|
||||
this.element.on('change', function() {
|
||||
that.validate();
|
||||
})
|
||||
this.selectTrigger.click(function(event) {
|
||||
event.preventDefault();
|
||||
that._showTypeMenu();
|
||||
});
|
||||
this.selectTrigger.on('keydown',function(evt) {
|
||||
if (evt.keyCode === 40) {
|
||||
// Down
|
||||
that._showTypeMenu();
|
||||
}
|
||||
}).on('focus', function() {
|
||||
that.uiSelect.addClass('red-ui-typedInput-focus');
|
||||
})
|
||||
|
||||
// explicitly set optionSelectTrigger display to inline-block otherwise jQ sets it to 'inline'
|
||||
this.optionSelectTrigger = $('<button tabindex="0" class="red-ui-typedInput-option-trigger" style="display:inline-block"><span class="red-ui-typedInput-option-caret"><i class="fa fa-sort-desc"></i></span></button>').appendTo(this.uiSelect);
|
||||
this.optionSelectLabel = $('<span class="red-ui-typedInput-option-label"></span>').prependTo(this.optionSelectTrigger);
|
||||
this.optionSelectTrigger.click(function(event) {
|
||||
event.preventDefault();
|
||||
that._showOptionSelectMenu();
|
||||
}).on('keydown', function(evt) {
|
||||
if (evt.keyCode === 40) {
|
||||
// Down
|
||||
that._showOptionSelectMenu();
|
||||
}
|
||||
}).on('blur', function() {
|
||||
that.uiSelect.removeClass('red-ui-typedInput-focus');
|
||||
}).on('focus', function() {
|
||||
that.uiSelect.addClass('red-ui-typedInput-focus');
|
||||
});
|
||||
|
||||
this.optionExpandButton = $('<button tabindex="0" class="red-ui-typedInput-option-expand" style="display:inline-block"><i class="fa fa-ellipsis-h"></i></button>').appendTo(this.uiSelect);
|
||||
|
||||
|
||||
this.type(this.options.default||this.typeList[0].value);
|
||||
},
|
||||
_showTypeMenu: function() {
|
||||
if (this.typeList.length > 1) {
|
||||
this._showMenu(this.menu,this.selectTrigger);
|
||||
this.menu.find("[value='"+this.propertyType+"']").focus();
|
||||
} else {
|
||||
this.element.focus();
|
||||
}
|
||||
},
|
||||
_showOptionSelectMenu: function() {
|
||||
if (this.optionMenu) {
|
||||
this.optionMenu.css({
|
||||
minWidth:this.optionSelectLabel.width()
|
||||
});
|
||||
|
||||
this._showMenu(this.optionMenu,this.optionSelectLabel);
|
||||
var selectedOption = this.optionMenu.find("[value='"+this.value()+"']");
|
||||
if (selectedOption.length === 0) {
|
||||
selectedOption = this.optionMenu.children(":first");
|
||||
}
|
||||
selectedOption.focus();
|
||||
|
||||
}
|
||||
},
|
||||
_hideMenu: function(menu) {
|
||||
$(document).off("mousedown.close-property-select");
|
||||
menu.hide();
|
||||
if (this.elementDiv.is(":visible")) {
|
||||
this.element.focus();
|
||||
} else if (this.optionSelectTrigger.is(":visible")){
|
||||
this.optionSelectTrigger.focus();
|
||||
} else {
|
||||
this.selectTrigger.focus();
|
||||
}
|
||||
},
|
||||
_createMenu: function(opts,callback) {
|
||||
var that = this;
|
||||
var menu = $("<div>").addClass("red-ui-typedInput-options");
|
||||
opts.forEach(function(opt) {
|
||||
if (typeof opt === 'string') {
|
||||
opt = {value:opt,label:opt};
|
||||
}
|
||||
var op = $('<a href="#"></a>').attr("value",opt.value).appendTo(menu);
|
||||
if (opt.label) {
|
||||
op.text(opt.label);
|
||||
}
|
||||
if (opt.icon) {
|
||||
$('<img>',{src:opt.icon,style:"margin-right: 4px; height: 18px;"}).prependTo(op);
|
||||
} else {
|
||||
op.css({paddingLeft: "18px"});
|
||||
}
|
||||
|
||||
op.click(function(event) {
|
||||
event.preventDefault();
|
||||
callback(opt.value);
|
||||
that._hideMenu(menu);
|
||||
});
|
||||
});
|
||||
menu.css({
|
||||
display: "none",
|
||||
});
|
||||
menu.appendTo(document.body);
|
||||
|
||||
menu.on('keydown', function(evt) {
|
||||
if (evt.keyCode === 40) {
|
||||
// DOWN
|
||||
$(this).children(":focus").next().focus();
|
||||
} else if (evt.keyCode === 38) {
|
||||
// UP
|
||||
$(this).children(":focus").prev().focus();
|
||||
} else if (evt.keyCode === 27) {
|
||||
that._hideMenu(menu);
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
return menu;
|
||||
|
||||
},
|
||||
_showMenu: function(menu,relativeTo) {
|
||||
if (this.disarmClick) {
|
||||
this.disarmClick = false;
|
||||
return
|
||||
}
|
||||
var that = this;
|
||||
var pos = relativeTo.offset();
|
||||
var height = relativeTo.height();
|
||||
var menuHeight = menu.height();
|
||||
var top = (height+pos.top-3);
|
||||
if (top+menuHeight > $(window).height()) {
|
||||
top -= (top+menuHeight)-$(window).height()+5;
|
||||
}
|
||||
menu.css({
|
||||
top: top+"px",
|
||||
left: (2+pos.left)+"px",
|
||||
});
|
||||
menu.slideDown(100);
|
||||
this._delay(function() {
|
||||
that.uiSelect.addClass('red-ui-typedInput-focus');
|
||||
$(document).on("mousedown.close-property-select", function(event) {
|
||||
if(!$(event.target).closest(menu).length) {
|
||||
that._hideMenu(menu);
|
||||
}
|
||||
if ($(event.target).closest(relativeTo).length) {
|
||||
that.disarmClick = true;
|
||||
event.preventDefault();
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
_getLabelWidth: function(label) {
|
||||
var labelWidth = label.outerWidth();
|
||||
if (labelWidth === 0) {
|
||||
var container = $('<div class="red-ui-typedInput-container"></div>').css({
|
||||
position:"absolute",
|
||||
top:0,
|
||||
left:-1000
|
||||
}).appendTo(document.body);
|
||||
var newTrigger = label.clone().appendTo(container);
|
||||
labelWidth = newTrigger.outerWidth();
|
||||
container.remove();
|
||||
}
|
||||
return labelWidth;
|
||||
},
|
||||
_resize: function() {
|
||||
if (this.uiWidth !== null) {
|
||||
this.uiSelect.width(this.uiWidth);
|
||||
}
|
||||
if (this.typeMap[this.propertyType] && this.typeMap[this.propertyType].hasValue === false) {
|
||||
this.selectTrigger.addClass("red-ui-typedInput-full-width");
|
||||
} else {
|
||||
this.selectTrigger.removeClass("red-ui-typedInput-full-width");
|
||||
var labelWidth = this._getLabelWidth(this.selectTrigger);
|
||||
this.elementDiv.css('left',labelWidth+"px");
|
||||
if (this.optionExpandButton.is(":visible")) {
|
||||
this.elementDiv.css('right',"22px");
|
||||
} else {
|
||||
this.elementDiv.css('right','0');
|
||||
}
|
||||
if (this.optionSelectTrigger) {
|
||||
this.optionSelectTrigger.css({'left':(labelWidth)+"px",'width':'calc( 100% - '+labelWidth+'px )'});
|
||||
}
|
||||
}
|
||||
},
|
||||
_destroy: function() {
|
||||
this.menu.remove();
|
||||
},
|
||||
types: function(types) {
|
||||
var that = this;
|
||||
var currentType = this.type();
|
||||
this.typeMap = {};
|
||||
this.typeList = types.map(function(opt) {
|
||||
var result;
|
||||
if (typeof opt === 'string') {
|
||||
result = allOptions[opt];
|
||||
} else {
|
||||
result = opt;
|
||||
}
|
||||
that.typeMap[result.value] = result;
|
||||
return result;
|
||||
});
|
||||
this.selectTrigger.toggleClass("disabled", this.typeList.length === 1);
|
||||
if (this.menu) {
|
||||
this.menu.remove();
|
||||
}
|
||||
this.menu = this._createMenu(this.typeList, function(v) { that.type(v) });
|
||||
if (currentType && !this.typeMap.hasOwnProperty(currentType)) {
|
||||
this.type(this.typeList[0].value);
|
||||
}
|
||||
},
|
||||
width: function(desiredWidth) {
|
||||
this.uiWidth = desiredWidth;
|
||||
this._resize();
|
||||
},
|
||||
value: function(value) {
|
||||
if (!arguments.length) {
|
||||
return this.element.val();
|
||||
} else {
|
||||
if (this.typeMap[this.propertyType].options) {
|
||||
var validValue = false;
|
||||
var label;
|
||||
for (var i=0;i<this.typeMap[this.propertyType].options.length;i++) {
|
||||
var op = this.typeMap[this.propertyType].options[i];
|
||||
if (typeof op === "string") {
|
||||
if (op === value) {
|
||||
label = value;
|
||||
validValue = true;
|
||||
break;
|
||||
}
|
||||
} else if (op.value === value) {
|
||||
label = op.label||op.value;
|
||||
validValue = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!validValue) {
|
||||
value = "";
|
||||
label = "";
|
||||
}
|
||||
this.optionSelectLabel.text(label);
|
||||
}
|
||||
this.element.val(value);
|
||||
this.element.trigger('change',this.type(),value);
|
||||
}
|
||||
},
|
||||
type: function(type) {
|
||||
if (!arguments.length) {
|
||||
return this.propertyType;
|
||||
} else {
|
||||
var that = this;
|
||||
var opt = this.typeMap[type];
|
||||
if (opt && this.propertyType !== type) {
|
||||
this.propertyType = type;
|
||||
this.typeField.val(type);
|
||||
this.selectLabel.empty();
|
||||
var image;
|
||||
if (opt.icon) {
|
||||
image = new Image();
|
||||
image.name = opt.icon;
|
||||
image.src = opt.icon;
|
||||
$('<img>',{src:opt.icon,style:"margin-right: 4px;height: 18px;"}).prependTo(this.selectLabel);
|
||||
} else {
|
||||
this.selectLabel.text(opt.label);
|
||||
}
|
||||
if (opt.options) {
|
||||
if (this.optionExpandButton) {
|
||||
this.optionExpandButton.hide();
|
||||
}
|
||||
if (this.optionSelectTrigger) {
|
||||
this.optionSelectTrigger.show();
|
||||
this.elementDiv.hide();
|
||||
this.optionMenu = this._createMenu(opt.options,function(v){
|
||||
that.optionSelectLabel.text(v);
|
||||
that.value(v);
|
||||
});
|
||||
var currentVal = this.element.val();
|
||||
var validValue = false;
|
||||
var op;
|
||||
for (var i=0;i<opt.options.length;i++) {
|
||||
op = opt.options[i];
|
||||
if (typeof op === "string") {
|
||||
if (op === currentVal) {
|
||||
this.optionSelectLabel.text(currentVal);
|
||||
validValue = true;
|
||||
break;
|
||||
}
|
||||
} else if (op.value === currentVal) {
|
||||
this.optionSelectLabel.text(op.label||op.value);
|
||||
validValue = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!validValue) {
|
||||
op = opt.options[0];
|
||||
if (typeof op === "string") {
|
||||
this.value(op);
|
||||
} else {
|
||||
this.value(op.value);
|
||||
}
|
||||
}
|
||||
console.log(validValue);
|
||||
}
|
||||
} else {
|
||||
if (this.optionMenu) {
|
||||
this.optionMenu.remove();
|
||||
this.optionMenu = null;
|
||||
}
|
||||
if (this.optionSelectTrigger) {
|
||||
this.optionSelectTrigger.hide();
|
||||
}
|
||||
if (opt.hasValue === false) {
|
||||
this.oldValue = this.element.val();
|
||||
this.element.val("");
|
||||
this.elementDiv.hide();
|
||||
} else {
|
||||
if (this.oldValue !== undefined) {
|
||||
this.element.val(this.oldValue);
|
||||
delete this.oldValue;
|
||||
}
|
||||
this.elementDiv.show();
|
||||
}
|
||||
if (opt.expand && typeof opt.expand === 'function') {
|
||||
this.optionExpandButton.show();
|
||||
this.optionExpandButton.off('click');
|
||||
this.optionExpandButton.on('click',function(evt) {
|
||||
evt.preventDefault();
|
||||
opt.expand.call(that);
|
||||
})
|
||||
} else {
|
||||
this.optionExpandButton.hide();
|
||||
}
|
||||
this.element.trigger('change',this.propertyType,this.value());
|
||||
}
|
||||
if (image) {
|
||||
image.onload = function() { that._resize(); }
|
||||
image.onerror = function() { that._resize(); }
|
||||
} else {
|
||||
this._resize();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
validate: function() {
|
||||
var result;
|
||||
var value = this.value();
|
||||
var type = this.type();
|
||||
if (this.typeMap[type] && this.typeMap[type].validate) {
|
||||
var val = this.typeMap[type].validate;
|
||||
if (typeof val === 'function') {
|
||||
result = val(value);
|
||||
} else {
|
||||
result = val.test(value);
|
||||
}
|
||||
} else {
|
||||
result = true;
|
||||
}
|
||||
if (result) {
|
||||
this.uiSelect.removeClass('input-error');
|
||||
} else {
|
||||
this.uiSelect.addClass('input-error');
|
||||
}
|
||||
return result;
|
||||
},
|
||||
show: function() {
|
||||
this.uiSelect.show();
|
||||
this._resize();
|
||||
},
|
||||
hide: function() {
|
||||
this.uiSelect.hide();
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
@@ -1,454 +0,0 @@
|
||||
/**
|
||||
* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
|
||||
RED.deploy = (function() {
|
||||
|
||||
var deploymentTypes = {
|
||||
"full":{img:"red/images/deploy-full-o.png"},
|
||||
"nodes":{img:"red/images/deploy-nodes-o.png"},
|
||||
"flows":{img:"red/images/deploy-flows-o.png"}
|
||||
}
|
||||
|
||||
var ignoreDeployWarnings = {
|
||||
unknown: false,
|
||||
unusedConfig: false,
|
||||
invalid: false
|
||||
}
|
||||
|
||||
var deploymentType = "full";
|
||||
|
||||
var deployInflight = false;
|
||||
|
||||
var currentDiff = null;
|
||||
|
||||
function changeDeploymentType(type) {
|
||||
deploymentType = type;
|
||||
$("#btn-deploy-icon").attr("src",deploymentTypes[type].img);
|
||||
}
|
||||
|
||||
/**
|
||||
* options:
|
||||
* type: "default" - Button with drop-down options - no further customisation available
|
||||
* type: "simple" - Button without dropdown. Customisations:
|
||||
* label: the text to display - default: "Deploy"
|
||||
* icon : the icon to use. Null removes the icon. default: "red/images/deploy-full-o.png"
|
||||
*/
|
||||
function init(options) {
|
||||
options = options || {};
|
||||
var type = options.type || "default";
|
||||
|
||||
if (type == "default") {
|
||||
$('<li><span class="deploy-button-group button-group">'+
|
||||
'<a id="btn-deploy" class="deploy-button disabled" href="#">'+
|
||||
'<span class="deploy-button-content">'+
|
||||
'<img id="btn-deploy-icon" src="red/images/deploy-full-o.png"> '+
|
||||
'<span>'+RED._("deploy.deploy")+'</span>'+
|
||||
'</span>'+
|
||||
'<span class="deploy-button-spinner hide">'+
|
||||
'<img src="red/images/spin.svg"/>'+
|
||||
'</span>'+
|
||||
'</a>'+
|
||||
'<a id="btn-deploy-options" data-toggle="dropdown" class="deploy-button" href="#"><i class="fa fa-caret-down"></i></a>'+
|
||||
'</span></li>').prependTo(".header-toolbar");
|
||||
RED.menu.init({id:"btn-deploy-options",
|
||||
options: [
|
||||
{id:"deploymenu-item-full",toggle:"deploy-type",icon:"red/images/deploy-full.png",label:RED._("deploy.full"),sublabel:RED._("deploy.fullDesc"),selected: true, onselect:function(s) { if(s){changeDeploymentType("full")}}},
|
||||
{id:"deploymenu-item-flow",toggle:"deploy-type",icon:"red/images/deploy-flows.png",label:RED._("deploy.modifiedFlows"),sublabel:RED._("deploy.modifiedFlowsDesc"), onselect:function(s) {if(s){changeDeploymentType("flows")}}},
|
||||
{id:"deploymenu-item-node",toggle:"deploy-type",icon:"red/images/deploy-nodes.png",label:RED._("deploy.modifiedNodes"),sublabel:RED._("deploy.modifiedNodesDesc"),onselect:function(s) { if(s){changeDeploymentType("nodes")}}}
|
||||
]
|
||||
});
|
||||
} else if (type == "simple") {
|
||||
var label = options.label || RED._("deploy.deploy");
|
||||
var icon = 'red/images/deploy-full-o.png';
|
||||
if (options.hasOwnProperty('icon')) {
|
||||
icon = options.icon;
|
||||
}
|
||||
|
||||
$('<li><span class="deploy-button-group button-group">'+
|
||||
'<a id="btn-deploy" class="deploy-button disabled" href="#">'+
|
||||
'<span class="deploy-button-content">'+
|
||||
(icon?'<img id="btn-deploy-icon" src="'+icon+'"> ':'')+
|
||||
'<span>'+label+'</span>'+
|
||||
'</span>'+
|
||||
'<span class="deploy-button-spinner hide">'+
|
||||
'<img src="red/images/spin.svg"/>'+
|
||||
'</span>'+
|
||||
'</a>'+
|
||||
'</span></li>').prependTo(".header-toolbar");
|
||||
}
|
||||
|
||||
$('#btn-deploy').click(function(event) {
|
||||
event.preventDefault();
|
||||
save();
|
||||
});
|
||||
|
||||
RED.actions.add("core:deploy-flows",save);
|
||||
|
||||
|
||||
RED.events.on('nodes:change',function(state) {
|
||||
if (state.dirty) {
|
||||
window.onbeforeunload = function() {
|
||||
return RED._("deploy.confirm.undeployedChanges");
|
||||
}
|
||||
$("#btn-deploy").removeClass("disabled");
|
||||
} else {
|
||||
window.onbeforeunload = null;
|
||||
$("#btn-deploy").addClass("disabled");
|
||||
}
|
||||
});
|
||||
|
||||
var activeNotifyMessage;
|
||||
RED.comms.subscribe("notification/runtime-deploy",function(topic,msg) {
|
||||
if (!activeNotifyMessage) {
|
||||
var currentRev = RED.nodes.version();
|
||||
if (currentRev === null || deployInflight || currentRev === msg.revision) {
|
||||
return;
|
||||
}
|
||||
var message = $('<p>').text(RED._('deploy.confirm.backgroundUpdate'));
|
||||
activeNotifyMessage = RED.notify(message,{
|
||||
modal: true,
|
||||
fixed: true,
|
||||
buttons: [
|
||||
{
|
||||
text: RED._('deploy.confirm.button.ignore'),
|
||||
click: function() {
|
||||
activeNotifyMessage.close();
|
||||
activeNotifyMessage = null;
|
||||
}
|
||||
},
|
||||
{
|
||||
text: RED._('deploy.confirm.button.review'),
|
||||
class: "primary",
|
||||
click: function() {
|
||||
activeNotifyMessage.close();
|
||||
var nns = RED.nodes.createCompleteNodeSet();
|
||||
resolveConflict(nns,false);
|
||||
activeNotifyMessage = null;
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getNodeInfo(node) {
|
||||
var tabLabel = "";
|
||||
if (node.z) {
|
||||
var tab = RED.nodes.workspace(node.z);
|
||||
if (!tab) {
|
||||
tab = RED.nodes.subflow(node.z);
|
||||
tabLabel = tab.name;
|
||||
} else {
|
||||
tabLabel = tab.label;
|
||||
}
|
||||
}
|
||||
var label = RED.utils.getNodeLabel(node,node.id);
|
||||
return {tab:tabLabel,type:node.type,label:label};
|
||||
}
|
||||
function sortNodeInfo(A,B) {
|
||||
if (A.tab < B.tab) { return -1;}
|
||||
if (A.tab > B.tab) { return 1;}
|
||||
if (A.type < B.type) { return -1;}
|
||||
if (A.type > B.type) { return 1;}
|
||||
if (A.name < B.name) { return -1;}
|
||||
if (A.name > B.name) { return 1;}
|
||||
return 0;
|
||||
}
|
||||
|
||||
function resolveConflict(currentNodes, activeDeploy) {
|
||||
var message = $('<div>');
|
||||
$('<p data-i18n="deploy.confirm.conflict"></p>').appendTo(message);
|
||||
var conflictCheck = $('<div id="node-dialog-confirm-deploy-conflict-checking" class="node-dialog-confirm-conflict-row">'+
|
||||
'<img src="red/images/spin.svg"/><div data-i18n="deploy.confirm.conflictChecking"></div>'+
|
||||
'</div>').appendTo(message);
|
||||
var conflictAutoMerge = $('<div class="node-dialog-confirm-conflict-row">'+
|
||||
'<i style="color: #3a3;" class="fa fa-check"></i><div data-i18n="deploy.confirm.conflictAutoMerge"></div>'+
|
||||
'</div>').hide().appendTo(message);
|
||||
var conflictManualMerge = $('<div id="node-dialog-confirm-deploy-conflict-manual-merge" class="node-dialog-confirm-conflict-row">'+
|
||||
'<i style="color: #999;" class="fa fa-exclamation"></i><div data-i18n="deploy.confirm.conflictManualMerge"></div>'+
|
||||
'</div>').hide().appendTo(message);
|
||||
|
||||
message.i18n();
|
||||
currentDiff = null;
|
||||
var buttons = [
|
||||
{
|
||||
text: RED._("common.label.cancel"),
|
||||
click: function() {
|
||||
conflictNotification.close();
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "node-dialog-confirm-deploy-review",
|
||||
text: RED._("deploy.confirm.button.review"),
|
||||
class: "primary disabled",
|
||||
click: function() {
|
||||
if (!$("#node-dialog-confirm-deploy-review").hasClass('disabled')) {
|
||||
RED.diff.showRemoteDiff();
|
||||
conflictNotification.close();
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "node-dialog-confirm-deploy-merge",
|
||||
text: RED._("deploy.confirm.button.merge"),
|
||||
class: "primary disabled",
|
||||
click: function() {
|
||||
if (!$("#node-dialog-confirm-deploy-merge").hasClass('disabled')) {
|
||||
RED.diff.mergeDiff(currentDiff);
|
||||
conflictNotification.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
];
|
||||
if (activeDeploy) {
|
||||
buttons.push({
|
||||
id: "node-dialog-confirm-deploy-overwrite",
|
||||
text: RED._("deploy.confirm.button.overwrite"),
|
||||
class: "primary",
|
||||
click: function() {
|
||||
save(true,activeDeploy);
|
||||
conflictNotification.close();
|
||||
}
|
||||
})
|
||||
}
|
||||
var conflictNotification = RED.notify(message,{
|
||||
modal: true,
|
||||
fixed: true,
|
||||
width: 600,
|
||||
buttons: buttons
|
||||
});
|
||||
|
||||
var now = Date.now();
|
||||
RED.diff.getRemoteDiff(function(diff) {
|
||||
var ellapsed = Math.max(1000 - (Date.now()-now), 0);
|
||||
currentDiff = diff;
|
||||
setTimeout(function() {
|
||||
conflictCheck.hide();
|
||||
var d = Object.keys(diff.conflicts);
|
||||
if (d.length === 0) {
|
||||
conflictAutoMerge.show();
|
||||
$("#node-dialog-confirm-deploy-merge").removeClass('disabled')
|
||||
} else {
|
||||
conflictManualMerge.show();
|
||||
}
|
||||
$("#node-dialog-confirm-deploy-review").removeClass('disabled')
|
||||
},ellapsed);
|
||||
})
|
||||
}
|
||||
function cropList(list) {
|
||||
if (list.length > 5) {
|
||||
var remainder = list.length - 5;
|
||||
list = list.slice(0,5);
|
||||
list.push(RED._("deploy.confirm.plusNMore",{count:remainder}));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
function save(skipValidation,force) {
|
||||
if (!$("#btn-deploy").hasClass("disabled")) {
|
||||
if (!RED.user.hasPermission("flows.write")) {
|
||||
RED.notify(RED._("user.errors.deploy"),"error");
|
||||
return;
|
||||
}
|
||||
if (!skipValidation) {
|
||||
var hasUnknown = false;
|
||||
var hasInvalid = false;
|
||||
var hasUnusedConfig = false;
|
||||
|
||||
var unknownNodes = [];
|
||||
var invalidNodes = [];
|
||||
|
||||
RED.nodes.eachNode(function(node) {
|
||||
hasInvalid = hasInvalid || !node.valid;
|
||||
if (!node.valid) {
|
||||
invalidNodes.push(getNodeInfo(node));
|
||||
}
|
||||
if (node.type === "unknown") {
|
||||
if (unknownNodes.indexOf(node.name) == -1) {
|
||||
unknownNodes.push(node.name);
|
||||
}
|
||||
}
|
||||
});
|
||||
hasUnknown = unknownNodes.length > 0;
|
||||
|
||||
var unusedConfigNodes = [];
|
||||
RED.nodes.eachConfig(function(node) {
|
||||
if (node.users.length === 0 && (node._def.hasUsers !== false)) {
|
||||
unusedConfigNodes.push(getNodeInfo(node));
|
||||
hasUnusedConfig = true;
|
||||
}
|
||||
});
|
||||
|
||||
var showWarning = false;
|
||||
var notificationMessage;
|
||||
var notificationButtons = [];
|
||||
var notification;
|
||||
if (hasUnknown && !ignoreDeployWarnings.unknown) {
|
||||
showWarning = true;
|
||||
notificationMessage = "<p>"+RED._('deploy.confirm.unknown')+"</p>"+
|
||||
'<ul class="node-dialog-configm-deploy-list"><li>'+cropList(unknownNodes).join("</li><li>")+"</li></ul><p>"+
|
||||
RED._('deploy.confirm.confirm')+
|
||||
"</p>";
|
||||
|
||||
notificationButtons= [
|
||||
{
|
||||
id: "node-dialog-confirm-deploy-deploy",
|
||||
text: RED._("deploy.confirm.button.confirm"),
|
||||
class: "primary",
|
||||
click: function() {
|
||||
save(true);
|
||||
notification.close();
|
||||
}
|
||||
}
|
||||
];
|
||||
} else if (hasInvalid && !ignoreDeployWarnings.invalid) {
|
||||
showWarning = true;
|
||||
invalidNodes.sort(sortNodeInfo);
|
||||
|
||||
notificationMessage = "<p>"+RED._('deploy.confirm.improperlyConfigured')+"</p>"+
|
||||
'<ul class="node-dialog-configm-deploy-list"><li>'+cropList(invalidNodes.map(function(A) { return (A.tab?"["+A.tab+"] ":"")+A.label+" ("+A.type+")"})).join("</li><li>")+"</li></ul><p>"+
|
||||
RED._('deploy.confirm.confirm')+
|
||||
"</p>";
|
||||
notificationButtons= [
|
||||
{
|
||||
id: "node-dialog-confirm-deploy-deploy",
|
||||
text: RED._("deploy.confirm.button.confirm"),
|
||||
class: "primary",
|
||||
click: function() {
|
||||
save(true);
|
||||
notification.close();
|
||||
}
|
||||
}
|
||||
];
|
||||
}
|
||||
if (showWarning) {
|
||||
notificationButtons.unshift(
|
||||
{
|
||||
text: RED._("common.label.cancel"),
|
||||
click: function() {
|
||||
notification.close();
|
||||
}
|
||||
}
|
||||
);
|
||||
notification = RED.notify(notificationMessage,{
|
||||
modal: true,
|
||||
fixed: true,
|
||||
buttons:notificationButtons
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var nns = RED.nodes.createCompleteNodeSet();
|
||||
|
||||
var startTime = Date.now();
|
||||
$(".deploy-button-content").css('opacity',0);
|
||||
$(".deploy-button-spinner").show();
|
||||
$("#btn-deploy").addClass("disabled");
|
||||
|
||||
var data = {flows:nns};
|
||||
|
||||
if (!force) {
|
||||
data.rev = RED.nodes.version();
|
||||
}
|
||||
|
||||
deployInflight = true;
|
||||
$("#header-shade").show();
|
||||
$("#editor-shade").show();
|
||||
$("#palette-shade").show();
|
||||
$("#sidebar-shade").show();
|
||||
$.ajax({
|
||||
url:"flows",
|
||||
type: "POST",
|
||||
data: JSON.stringify(data),
|
||||
contentType: "application/json; charset=utf-8",
|
||||
headers: {
|
||||
"Node-RED-Deployment-Type":deploymentType
|
||||
}
|
||||
}).done(function(data,textStatus,xhr) {
|
||||
RED.nodes.dirty(false);
|
||||
RED.nodes.version(data.rev);
|
||||
RED.nodes.originalFlow(nns);
|
||||
if (hasUnusedConfig) {
|
||||
RED.notify(
|
||||
'<p>'+RED._("deploy.successfulDeploy")+'</p>'+
|
||||
'<p>'+RED._("deploy.unusedConfigNodes")+' <a href="#" onclick="RED.sidebar.config.show(true); return false;">'+RED._("deploy.unusedConfigNodesLink")+'</a></p>',"success",false,6000);
|
||||
} else {
|
||||
RED.notify('<p>'+RED._("deploy.successfulDeploy")+'</p>',"success");
|
||||
}
|
||||
RED.nodes.eachNode(function(node) {
|
||||
if (node.changed) {
|
||||
node.dirty = true;
|
||||
node.changed = false;
|
||||
}
|
||||
if (node.moved) {
|
||||
node.dirty = true;
|
||||
node.moved = false;
|
||||
}
|
||||
if(node.credentials) {
|
||||
delete node.credentials;
|
||||
}
|
||||
});
|
||||
RED.nodes.eachConfig(function (confNode) {
|
||||
confNode.changed = false;
|
||||
if (confNode.credentials) {
|
||||
delete confNode.credentials;
|
||||
}
|
||||
});
|
||||
RED.nodes.eachSubflow(function(subflow) {
|
||||
subflow.changed = false;
|
||||
});
|
||||
RED.nodes.eachWorkspace(function(ws) {
|
||||
ws.changed = false;
|
||||
});
|
||||
// Once deployed, cannot undo back to a clean state
|
||||
RED.history.markAllDirty();
|
||||
RED.view.redraw();
|
||||
RED.events.emit("deploy");
|
||||
}).fail(function(xhr,textStatus,err) {
|
||||
RED.nodes.dirty(true);
|
||||
$("#btn-deploy").removeClass("disabled");
|
||||
if (xhr.status === 401) {
|
||||
RED.notify(RED._("deploy.deployFailed",{message:RED._("user.notAuthorized")}),"error");
|
||||
} else if (xhr.status === 409) {
|
||||
resolveConflict(nns, true);
|
||||
} else if (xhr.responseText) {
|
||||
RED.notify(RED._("deploy.deployFailed",{message:xhr.responseText}),"error");
|
||||
} else {
|
||||
RED.notify(RED._("deploy.deployFailed",{message:RED._("deploy.errors.noResponse")}),"error");
|
||||
}
|
||||
}).always(function() {
|
||||
deployInflight = false;
|
||||
var delta = Math.max(0,300-(Date.now()-startTime));
|
||||
setTimeout(function() {
|
||||
$(".deploy-button-content").css('opacity',1);
|
||||
$(".deploy-button-spinner").hide();
|
||||
$("#header-shade").hide();
|
||||
$("#editor-shade").hide();
|
||||
$("#palette-shade").hide();
|
||||
$("#sidebar-shade").hide();
|
||||
},delta);
|
||||
});
|
||||
}
|
||||
}
|
||||
return {
|
||||
init: init,
|
||||
setDeployInflight: function(state) {
|
||||
deployInflight = state;
|
||||
}
|
||||
|
||||
}
|
||||
})();
|
||||
@@ -1,490 +0,0 @@
|
||||
/**
|
||||
* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
RED.library = (function() {
|
||||
|
||||
var exportToLibraryDialog;
|
||||
var elementPrefix = "node-input-";
|
||||
|
||||
function loadFlowLibrary() {
|
||||
$.getJSON("library/flows",function(data) {
|
||||
//console.log(data);
|
||||
|
||||
var buildMenu = function(data,root) {
|
||||
var i;
|
||||
var li;
|
||||
var a;
|
||||
var ul = document.createElement("ul");
|
||||
if (root === "") {
|
||||
ul.id = "menu-item-import-library-submenu";
|
||||
}
|
||||
ul.className = "dropdown-menu";
|
||||
if (data.d) {
|
||||
for (i in data.d) {
|
||||
if (data.d.hasOwnProperty(i)) {
|
||||
li = document.createElement("li");
|
||||
li.className = "dropdown-submenu pull-left";
|
||||
a = document.createElement("a");
|
||||
a.href="#";
|
||||
var label = i.replace(/^@.*\//,"").replace(/^node-red-contrib-/,"").replace(/^node-red-node-/,"").replace(/-/," ").replace(/_/," ");
|
||||
a.innerHTML = label;
|
||||
li.appendChild(a);
|
||||
li.appendChild(buildMenu(data.d[i],root+(root!==""?"/":"")+i));
|
||||
ul.appendChild(li);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (data.f) {
|
||||
for (i in data.f) {
|
||||
if (data.f.hasOwnProperty(i)) {
|
||||
li = document.createElement("li");
|
||||
a = document.createElement("a");
|
||||
a.href="#";
|
||||
a.innerHTML = data.f[i];
|
||||
a.flowName = root+(root!==""?"/":"")+data.f[i];
|
||||
a.onclick = function() {
|
||||
$.get('library/flows/'+this.flowName, function(data) {
|
||||
RED.view.importNodes(data);
|
||||
});
|
||||
};
|
||||
li.appendChild(a);
|
||||
ul.appendChild(li);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ul;
|
||||
};
|
||||
var examples;
|
||||
if (data.d && data.d._examples_) {
|
||||
examples = data.d._examples_;
|
||||
delete data.d._examples_;
|
||||
}
|
||||
var menu = buildMenu(data,"");
|
||||
$("#menu-item-import-examples").remove();
|
||||
if (examples) {
|
||||
RED.menu.addItem("menu-item-import",{id:"menu-item-import-examples",label:RED._("menu.label.examples"),options:[]})
|
||||
$("#menu-item-import-examples-submenu").replaceWith(buildMenu(examples,"_examples_"));
|
||||
}
|
||||
//TODO: need an api in RED.menu for this
|
||||
$("#menu-item-import-library-submenu").replaceWith(menu);
|
||||
});
|
||||
}
|
||||
|
||||
function createUI(options) {
|
||||
var libraryData = {};
|
||||
var selectedLibraryItem = null;
|
||||
var libraryEditor = null;
|
||||
elementPrefix = options.elementPrefix || "node-input-";
|
||||
|
||||
// Orion editor has set/getText
|
||||
// ACE editor has set/getValue
|
||||
// normalise to set/getValue
|
||||
if (options.editor.setText) {
|
||||
// Orion doesn't like having pos passed in, so proxy the call to drop it
|
||||
options.editor.setValue = function(text,pos) {
|
||||
options.editor.setText.call(options.editor,text);
|
||||
}
|
||||
}
|
||||
if (options.editor.getText) {
|
||||
options.editor.getValue = options.editor.getText;
|
||||
}
|
||||
|
||||
function buildFileListItem(item) {
|
||||
var li = document.createElement("li");
|
||||
li.onmouseover = function(e) { $(this).addClass("list-hover"); };
|
||||
li.onmouseout = function(e) { $(this).removeClass("list-hover"); };
|
||||
return li;
|
||||
}
|
||||
|
||||
function buildFileList(root,data) {
|
||||
var ul = document.createElement("ul");
|
||||
var li;
|
||||
for (var i=0; i<data.length; i++) {
|
||||
var v = data[i];
|
||||
if (typeof v === "string") {
|
||||
// directory
|
||||
li = buildFileListItem(v);
|
||||
li.onclick = (function () {
|
||||
var dirName = v;
|
||||
return function(e) {
|
||||
var bcli = $('<li class="active"><span class="divider">/</span> <a href="#">'+dirName+'</a></li>');
|
||||
$("a",bcli).click(function(e) {
|
||||
$(this).parent().nextAll().remove();
|
||||
$.getJSON("library/"+options.url+root+dirName,function(data) {
|
||||
$("#node-select-library").children().first().replaceWith(buildFileList(root+dirName+"/",data));
|
||||
});
|
||||
e.stopPropagation();
|
||||
});
|
||||
var bc = $("#node-dialog-library-breadcrumbs");
|
||||
$(".active",bc).removeClass("active");
|
||||
bc.append(bcli);
|
||||
$.getJSON("library/"+options.url+root+dirName,function(data) {
|
||||
$("#node-select-library").children().first().replaceWith(buildFileList(root+dirName+"/",data));
|
||||
});
|
||||
}
|
||||
})();
|
||||
li.innerHTML = '<i class="fa fa-folder"></i> '+v+"</i>";
|
||||
ul.appendChild(li);
|
||||
} else {
|
||||
// file
|
||||
li = buildFileListItem(v);
|
||||
li.innerHTML = v.name;
|
||||
li.onclick = (function() {
|
||||
var item = v;
|
||||
return function(e) {
|
||||
$(".list-selected",ul).removeClass("list-selected");
|
||||
$(this).addClass("list-selected");
|
||||
$.get("library/"+options.url+root+item.fn, function(data) {
|
||||
selectedLibraryItem = item;
|
||||
libraryEditor.setValue(data,-1);
|
||||
});
|
||||
}
|
||||
})();
|
||||
ul.appendChild(li);
|
||||
}
|
||||
}
|
||||
return ul;
|
||||
}
|
||||
|
||||
$('#'+elementPrefix+"name").css("width","calc(100% - 52px)").after(
|
||||
'<div class="btn-group" style="margin-left:5px;">'+
|
||||
'<a id="node-input-'+options.type+'-lookup" class="editor-button" data-toggle="dropdown"><i class="fa fa-book"></i> <i class="fa fa-caret-down"></i></a>'+
|
||||
'<ul class="dropdown-menu pull-right" role="menu">'+
|
||||
'<li><a id="node-input-'+options.type+'-menu-open-library" tabindex="-1" href="#">'+RED._("library.openLibrary")+'</a></li>'+
|
||||
'<li><a id="node-input-'+options.type+'-menu-save-library" tabindex="-1" href="#">'+RED._("library.saveToLibrary")+'</a></li>'+
|
||||
'</ul></div>'
|
||||
);
|
||||
|
||||
$('#node-input-'+options.type+'-menu-open-library').click(function(e) {
|
||||
$("#node-select-library").children().remove();
|
||||
var bc = $("#node-dialog-library-breadcrumbs");
|
||||
bc.children().first().nextAll().remove();
|
||||
libraryEditor.setValue('',-1);
|
||||
|
||||
$.getJSON("library/"+options.url,function(data) {
|
||||
$("#node-select-library").append(buildFileList("/",data));
|
||||
$("#node-dialog-library-breadcrumbs a").click(function(e) {
|
||||
$(this).parent().nextAll().remove();
|
||||
$("#node-select-library").children().first().replaceWith(buildFileList("/",data));
|
||||
e.stopPropagation();
|
||||
});
|
||||
$( "#node-dialog-library-lookup" ).dialog( "open" );
|
||||
});
|
||||
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
$('#node-input-'+options.type+'-menu-save-library').click(function(e) {
|
||||
//var found = false;
|
||||
var name = $("#"+elementPrefix+"name").val().replace(/(^\s*)|(\s*$)/g,"");
|
||||
|
||||
//var buildPathList = function(data,root) {
|
||||
// var paths = [];
|
||||
// if (data.d) {
|
||||
// for (var i in data.d) {
|
||||
// var dn = root+(root==""?"":"/")+i;
|
||||
// var d = {
|
||||
// label:dn,
|
||||
// files:[]
|
||||
// };
|
||||
// for (var f in data.d[i].f) {
|
||||
// d.files.push(data.d[i].f[f].fn.split("/").slice(-1)[0]);
|
||||
// }
|
||||
// paths.push(d);
|
||||
// paths = paths.concat(buildPathList(data.d[i],root+(root==""?"":"/")+i));
|
||||
// }
|
||||
// }
|
||||
// return paths;
|
||||
//};
|
||||
$("#node-dialog-library-save-folder").attr("value","");
|
||||
|
||||
var filename = name.replace(/[^\w-]/g,"-");
|
||||
if (filename === "") {
|
||||
filename = "unnamed-"+options.type;
|
||||
}
|
||||
$("#node-dialog-library-save-filename").attr("value",filename+".js");
|
||||
|
||||
//var paths = buildPathList(libraryData,"");
|
||||
//$("#node-dialog-library-save-folder").autocomplete({
|
||||
// minLength: 0,
|
||||
// source: paths,
|
||||
// select: function( event, ui ) {
|
||||
// $("#node-dialog-library-save-filename").autocomplete({
|
||||
// minLength: 0,
|
||||
// source: ui.item.files
|
||||
// });
|
||||
// }
|
||||
//});
|
||||
|
||||
$( "#node-dialog-library-save" ).dialog( "open" );
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
libraryEditor = ace.edit('node-select-library-text');
|
||||
libraryEditor.setTheme("ace/theme/tomorrow");
|
||||
if (options.mode) {
|
||||
libraryEditor.getSession().setMode(options.mode);
|
||||
}
|
||||
libraryEditor.setOptions({
|
||||
readOnly: true,
|
||||
highlightActiveLine: false,
|
||||
highlightGutterLine: false
|
||||
});
|
||||
libraryEditor.renderer.$cursorLayer.element.style.opacity=0;
|
||||
libraryEditor.$blockScrolling = Infinity;
|
||||
|
||||
$( "#node-dialog-library-lookup" ).dialog({
|
||||
title: RED._("library.typeLibrary", {type:options.type}),
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: 800,
|
||||
height: 450,
|
||||
buttons: [
|
||||
{
|
||||
text: RED._("common.label.cancel"),
|
||||
click: function() {
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
},
|
||||
{
|
||||
text: RED._("common.label.load"),
|
||||
class: "primary",
|
||||
click: function() {
|
||||
if (selectedLibraryItem) {
|
||||
for (var i=0; i<options.fields.length; i++) {
|
||||
var field = options.fields[i];
|
||||
$("#"+elementPrefix+field).val(selectedLibraryItem[field]);
|
||||
}
|
||||
options.editor.setValue(libraryEditor.getValue(),-1);
|
||||
}
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
}
|
||||
],
|
||||
open: function(e) {
|
||||
var form = $("form",this);
|
||||
form.height(form.parent().height()-30);
|
||||
$("#node-select-library-text").height("100%");
|
||||
$(".form-row:last-child",form).children().height(form.height()-60);
|
||||
},
|
||||
resize: function(e) {
|
||||
var form = $("form",this);
|
||||
form.height(form.parent().height()-30);
|
||||
$(".form-row:last-child",form).children().height(form.height()-60);
|
||||
}
|
||||
});
|
||||
|
||||
function saveToLibrary(overwrite) {
|
||||
var name = $("#"+elementPrefix+"name").val().replace(/(^\s*)|(\s*$)/g,"");
|
||||
if (name === "") {
|
||||
name = RED._("library.unnamedType",{type:options.type});
|
||||
}
|
||||
var filename = $("#node-dialog-library-save-filename").val().replace(/(^\s*)|(\s*$)/g,"");
|
||||
var pathname = $("#node-dialog-library-save-folder").val().replace(/(^\s*)|(\s*$)/g,"");
|
||||
if (filename === "" || !/.+\.js$/.test(filename)) {
|
||||
RED.notify(RED._("library.invalidFilename"),"warning");
|
||||
return;
|
||||
}
|
||||
var fullpath = pathname+(pathname===""?"":"/")+filename;
|
||||
if (!overwrite) {
|
||||
//var pathnameParts = pathname.split("/");
|
||||
//var exists = false;
|
||||
//var ds = libraryData;
|
||||
//for (var pnp in pathnameParts) {
|
||||
// if (ds.d && pathnameParts[pnp] in ds.d) {
|
||||
// ds = ds.d[pathnameParts[pnp]];
|
||||
// } else {
|
||||
// ds = null;
|
||||
// break;
|
||||
// }
|
||||
//}
|
||||
//if (ds && ds.f) {
|
||||
// for (var f in ds.f) {
|
||||
// if (ds.f[f].fn == fullpath) {
|
||||
// exists = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//if (exists) {
|
||||
// $("#node-dialog-library-save-content").html(RED._("library.dialogSaveOverwrite",{libraryType:options.type,libraryName:fullpath}));
|
||||
// $("#node-dialog-library-save-confirm").dialog( "open" );
|
||||
// return;
|
||||
//}
|
||||
}
|
||||
var queryArgs = [];
|
||||
var data = {};
|
||||
for (var i=0; i<options.fields.length; i++) {
|
||||
var field = options.fields[i];
|
||||
if (field == "name") {
|
||||
data.name = name;
|
||||
} else {
|
||||
data[field] = $("#"+elementPrefix+field).val();
|
||||
}
|
||||
}
|
||||
|
||||
data.text = options.editor.getValue();
|
||||
$.ajax({
|
||||
url:"library/"+options.url+'/'+fullpath,
|
||||
type: "POST",
|
||||
data: JSON.stringify(data),
|
||||
contentType: "application/json; charset=utf-8"
|
||||
}).done(function(data,textStatus,xhr) {
|
||||
RED.notify(RED._("library.savedType", {type:options.type}),"success");
|
||||
}).fail(function(xhr,textStatus,err) {
|
||||
if (xhr.status === 401) {
|
||||
RED.notify(RED._("library.saveFailed",{message:RED._("user.notAuthorized")}),"error");
|
||||
} else {
|
||||
RED.notify(RED._("library.saveFailed",{message:xhr.responseText}),"error");
|
||||
}
|
||||
});
|
||||
}
|
||||
$( "#node-dialog-library-save-confirm" ).dialog({
|
||||
title: RED._("library.saveToLibrary"),
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: 530,
|
||||
height: 230,
|
||||
buttons: [
|
||||
{
|
||||
text: RED._("common.label.cancel"),
|
||||
click: function() {
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
},
|
||||
{
|
||||
text: RED._("common.label.save"),
|
||||
class: "primary",
|
||||
click: function() {
|
||||
saveToLibrary(true);
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
$( "#node-dialog-library-save" ).dialog({
|
||||
title: RED._("library.saveToLibrary"),
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: 530,
|
||||
height: 230,
|
||||
buttons: [
|
||||
{
|
||||
text: RED._("common.label.cancel"),
|
||||
click: function() {
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
},
|
||||
{
|
||||
text: RED._("common.label.save"),
|
||||
class: "primary",
|
||||
click: function() {
|
||||
saveToLibrary(false);
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function exportFlow() {
|
||||
//TODO: don't rely on the main dialog
|
||||
var nns = RED.nodes.createExportableNodeSet(RED.view.selection().nodes);
|
||||
$("#node-input-library-filename").attr('nodes',JSON.stringify(nns));
|
||||
exportToLibraryDialog.dialog( "open" );
|
||||
}
|
||||
|
||||
return {
|
||||
init: function() {
|
||||
|
||||
RED.actions.add("core:library-export",exportFlow);
|
||||
|
||||
RED.events.on("view:selection-changed",function(selection) {
|
||||
if (!selection.nodes) {
|
||||
RED.menu.setDisabled("menu-item-export-library",true);
|
||||
} else {
|
||||
RED.menu.setDisabled("menu-item-export-library",false);
|
||||
}
|
||||
});
|
||||
|
||||
if (RED.settings.theme("menu.menu-item-import-library") !== false) {
|
||||
loadFlowLibrary();
|
||||
}
|
||||
|
||||
exportToLibraryDialog = $('<div id="library-dialog" class="hide"><form class="dialog-form form-horizontal"></form></div>')
|
||||
.appendTo("body")
|
||||
.dialog({
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: 500,
|
||||
resizable: false,
|
||||
title: RED._("library.exportToLibrary"),
|
||||
buttons: [
|
||||
{
|
||||
id: "library-dialog-cancel",
|
||||
text: RED._("common.label.cancel"),
|
||||
click: function() {
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "library-dialog-ok",
|
||||
class: "primary",
|
||||
text: RED._("common.label.export"),
|
||||
click: function() {
|
||||
//TODO: move this to RED.library
|
||||
var flowName = $("#node-input-library-filename").val();
|
||||
if (!/^\s*$/.test(flowName)) {
|
||||
$.ajax({
|
||||
url:'library/flows/'+flowName,
|
||||
type: "POST",
|
||||
data: $("#node-input-library-filename").attr('nodes'),
|
||||
contentType: "application/json; charset=utf-8"
|
||||
}).done(function() {
|
||||
RED.library.loadFlowLibrary();
|
||||
RED.notify(RED._("library.savedNodes"),"success");
|
||||
}).fail(function(xhr,textStatus,err) {
|
||||
if (xhr.status === 401) {
|
||||
RED.notify(RED._("library.saveFailed",{message:RED._("user.notAuthorized")}),"error");
|
||||
} else {
|
||||
RED.notify(RED._("library.saveFailed",{message:xhr.responseText}),"error");
|
||||
}
|
||||
});
|
||||
}
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
}
|
||||
],
|
||||
open: function(e) {
|
||||
$(this).parent().find(".ui-dialog-titlebar-close").hide();
|
||||
},
|
||||
close: function(e) {
|
||||
}
|
||||
});
|
||||
exportToLibraryDialog.children(".dialog-form").append($(
|
||||
'<div class="form-row">'+
|
||||
'<label for="node-input-library-filename" data-i18n="[append]editor:library.filename"><i class="fa fa-file"></i> </label>'+
|
||||
'<input type="text" id="node-input-library-filename" data-i18n="[placeholder]editor:library.fullFilenamePlaceholder">'+
|
||||
'<input type="text" style="display: none;" />'+ // Second hidden input to prevent submit on Enter
|
||||
'</div>'
|
||||
));
|
||||
},
|
||||
create: createUI,
|
||||
loadFlowLibrary: loadFlowLibrary,
|
||||
|
||||
export: exportFlow
|
||||
}
|
||||
})();
|
||||