1 |
commit: f3f872cf1888a65e0ce0fce669ff0fe72721f62d |
2 |
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Dec 1 15:41:05 2022 +0000 |
4 |
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Dec 1 15:44:05 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f3f872cf |
7 |
|
8 |
x11-libs/vte: Delete SLOT="0" |
9 |
|
10 |
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org> |
11 |
|
12 |
x11-libs/vte/Manifest | 1 - |
13 |
x11-libs/vte/files/vte-0.28.2-interix.patch | 51 ------------- |
14 |
.../vte/files/vte-0.28.2-limit-arguments.patch | 40 ---------- |
15 |
...0.28.2-repaint-after-change-scroll-region.patch | 86 ---------------------- |
16 |
x11-libs/vte/files/vte-0.30.1-alt-meta.patch | 74 ------------------- |
17 |
x11-libs/vte/vte-0.28.2-r209.ebuild | 77 ------------------- |
18 |
6 files changed, 329 deletions(-) |
19 |
|
20 |
diff --git a/x11-libs/vte/Manifest b/x11-libs/vte/Manifest |
21 |
index 2ea547593f3d..8f9544563fb4 100644 |
22 |
--- a/x11-libs/vte/Manifest |
23 |
+++ b/x11-libs/vte/Manifest |
24 |
@@ -1,4 +1,3 @@ |
25 |
-DIST vte-0.28.2.tar.xz 962340 BLAKE2B 1e4b5977962265be77917ccfc9118ed93232c03d7a16b6c08a27e721fe71f8c1dd1783a439530d7b3d915111cb8cc78281f1e9e351d6a83edd31f224309ca1e9 SHA512 d6a50481aaa8946cca3779e0b328fef551be534d70366a75385d1f8ead3fcddec57bed85c7d4bc2d9f34546532129e63083aafa33cbb0efcbc7dc9d66e7c45f6 |
26 |
DIST vte-0.68.0-command-notify.patch.xz 9748 BLAKE2B de2d4c9b7f2c2b21518984f818d0052c0084398f5f4ee30d766a6adb9c4536fdec5027c753d3d710fb7432e67472b7f8ca44f1dd5f51aaef48d9124708975d24 SHA512 89be91cdba36749f97bac872f0f2196be7d36a58beaf94fa24a3ae9c266bdfbf4f4fbf1d10f43a276540653fff7062eb844107016e7f014437f2903d251dc1d7 |
27 |
DIST vte-0.68.0.tar.bz2 507598 BLAKE2B 10274d9e804f00bf071b7848633ca8de2953f4e91dc2967e33b7d6698bb304baac4f0e0431debae5a972c2c56c65efd1c5b92455a17db08cf254ddec56d3276e SHA512 785df7261b5075f166e59de7d3535b381564715ce65efd4837a130e153528691b610fc6160c00f0f17008f5f4ee94c23350d9a477b4b1d58da6ace083e5caae1 |
28 |
DIST vte-0.70.0-command-notify.patch.xz 9040 BLAKE2B 108dd05d00409af90b1fd3e9b5c3b0e5586ac80204cef8840fda935204cbc480fec1193e2a0a2782f98e2b094c3caebbfe61cf18631b16921df05cf3808afd22 SHA512 92123e7f5cb6ef876f2b2b108dbef59bce212efebd64cd790d49d9ee3215344acd848eec5d326fe2c3bd236846ed3b896148024390093491b2f6e2f7c46e2bd1 |
29 |
|
30 |
diff --git a/x11-libs/vte/files/vte-0.28.2-interix.patch b/x11-libs/vte/files/vte-0.28.2-interix.patch |
31 |
deleted file mode 100644 |
32 |
index c54d46ebc3dc..000000000000 |
33 |
--- a/x11-libs/vte/files/vte-0.28.2-interix.patch |
34 |
+++ /dev/null |
35 |
@@ -1,51 +0,0 @@ |
36 |
-reported upstream: https://bugzilla.gnome.org/show_bug.cgi?id=652290 |
37 |
- |
38 |
-diff -ru vte-0.26.2.orig/configure.in vte-0.26.2/configure.in |
39 |
---- vte-0.26.2.orig/configure.in 2011-08-17 08:30:55 +0200 |
40 |
-+++ vte-0.26.2/configure.in 2011-08-17 08:35:42 +0200 |
41 |
-@@ -362,7 +362,11 @@ |
42 |
- AC_DEFINE(HAVE_RECVMSG,1,[Define if you have the recvmsg function.]) |
43 |
- fi |
44 |
- AC_CHECK_FUNC(floor,,AC_CHECK_LIB(m,floor,LIBS=["$LIBS -lm"])) |
45 |
--AC_CHECK_FUNCS([ceil floor]) |
46 |
-+dnl if the first check didn't find floor, it caches the "no" value, |
47 |
-+dnl and doesn't recheck. this makes the below check fail always on |
48 |
-+dnl systems with floor in -lm. thus we unset the chached result. |
49 |
-+unset ac_cv_func_floor |
50 |
-+AC_CHECK_FUNCS([ceil floor round]) |
51 |
- |
52 |
- # Look for tgetent |
53 |
- |
54 |
---- vte-0.26.2.orig/configure 2012-04-30 20:02:55.000000000 +0200 |
55 |
-+++ vte-0.26.2/configure 2012-04-30 20:03:16.000000000 +0200 |
56 |
-@@ -13277,7 +13277,7 @@ |
57 |
- |
58 |
- fi |
59 |
- |
60 |
--for ac_func in ceil floor |
61 |
-+for ac_func in ceil floor round |
62 |
- do : |
63 |
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` |
64 |
- ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" |
65 |
-diff -ru vte-0.26.2.orig/src/vte.c vte-0.26.2/src/vte.c |
66 |
---- vte-0.26.2.orig/src/vte.c 2011-08-17 08:30:58 +0200 |
67 |
-+++ vte-0.26.2/src/vte.c 2011-08-17 08:38:09 +0200 |
68 |
-@@ -63,6 +63,18 @@ |
69 |
- #include <locale.h> |
70 |
- #endif |
71 |
- |
72 |
-+#ifndef HAVE_ROUND |
73 |
-+# if defined(HAVE_CEIL) && defined(HAVE_FLOOR) |
74 |
-+static inline double round(double x) { |
75 |
-+ if(x - floor(x) < 0.5) { |
76 |
-+ return floor(x); |
77 |
-+ } else { |
78 |
-+ return ceil(x); |
79 |
-+ } |
80 |
-+} |
81 |
-+# endif |
82 |
-+#endif |
83 |
-+ |
84 |
- #if GTK_CHECK_VERSION (2, 90, 7) |
85 |
- #define GDK_KEY(symbol) GDK_KEY_##symbol |
86 |
- #else |
87 |
|
88 |
diff --git a/x11-libs/vte/files/vte-0.28.2-limit-arguments.patch b/x11-libs/vte/files/vte-0.28.2-limit-arguments.patch |
89 |
deleted file mode 100644 |
90 |
index fd454079390f..000000000000 |
91 |
--- a/x11-libs/vte/files/vte-0.28.2-limit-arguments.patch |
92 |
+++ /dev/null |
93 |
@@ -1,40 +0,0 @@ |
94 |
-From feeee4b5832b17641e505b7083e0d299fdae318e Mon Sep 17 00:00:00 2001 |
95 |
-From: Christian Persch <chpe@×××××.org> |
96 |
-Date: Sat, 19 May 2012 17:36:09 +0000 |
97 |
-Subject: emulation: Limit integer arguments to 65535 |
98 |
- |
99 |
-To guard against malicious sequences containing excessively big numbers, |
100 |
-limit all parsed numbers to 16 bit range. Doing this here in the parsing |
101 |
-routine is a catch-all guard; this doesn't preclude enforcing |
102 |
-more stringent limits in the handlers themselves. |
103 |
- |
104 |
-https://bugzilla.gnome.org/show_bug.cgi?id=676090 |
105 |
---- |
106 |
-diff --git a/src/table.c b/src/table.c |
107 |
-index 140e8c8..85cf631 100644 |
108 |
---- a/src/table.c |
109 |
-+++ b/src/table.c |
110 |
-@@ -550,7 +550,7 @@ _vte_table_extract_numbers(GValueArray **array, |
111 |
- if (G_UNLIKELY (*array == NULL)) { |
112 |
- *array = g_value_array_new(1); |
113 |
- } |
114 |
-- g_value_set_long(&value, total); |
115 |
-+ g_value_set_long(&value, CLAMP (total, 0, G_MAXUSHORT)); |
116 |
- g_value_array_append(*array, &value); |
117 |
- } while (i++ < arginfo->length); |
118 |
- g_value_unset(&value); |
119 |
-diff --git a/src/vteseq.c b/src/vteseq.c |
120 |
-index 457c06a..46def5b 100644 |
121 |
---- a/src/vteseq.c |
122 |
-+++ b/src/vteseq.c |
123 |
-@@ -557,7 +557,7 @@ vte_sequence_handler_multiple(VteTerminal *terminal, |
124 |
- GValueArray *params, |
125 |
- VteTerminalSequenceHandler handler) |
126 |
- { |
127 |
-- vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXLONG); |
128 |
-+ vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXUSHORT); |
129 |
- } |
130 |
- |
131 |
- static void |
132 |
--- |
133 |
-cgit v0.9.0.2 |
134 |
|
135 |
diff --git a/x11-libs/vte/files/vte-0.28.2-repaint-after-change-scroll-region.patch b/x11-libs/vte/files/vte-0.28.2-repaint-after-change-scroll-region.patch |
136 |
deleted file mode 100644 |
137 |
index 86e547103ad7..000000000000 |
138 |
--- a/x11-libs/vte/files/vte-0.28.2-repaint-after-change-scroll-region.patch |
139 |
+++ /dev/null |
140 |
@@ -1,86 +0,0 @@ |
141 |
-https://git.gnome.org/browse/vte/commit/?id=88e8e89560a62d0981ce2b18974a230d0a07dbdd |
142 |
- |
143 |
-From 88e8e89560a62d0981ce2b18974a230d0a07dbdd Mon Sep 17 00:00:00 2001 |
144 |
-From: Micah Cowan <micah@×××××.name> |
145 |
-Date: Tue, 22 Oct 2013 23:30:43 +0200 |
146 |
-Subject: widget: Fix invalidation region |
147 |
- |
148 |
-When the sequence handler moves the cursor into the restricted scrolling region, |
149 |
-the bbox needs to be reset, too. |
150 |
-Fixes glitches with interspersing writes to the bottom line with scrolls of the |
151 |
-upper region, and also fixes missing screen redraws when using mosh. |
152 |
- |
153 |
-https://bugzilla.gnome.org/show_bug.cgi?id=542087 |
154 |
-https://bugzilla.gnome.org/show_bug.cgi?id=686097 |
155 |
- |
156 |
-diff --git a/src/vte.c b/src/vte.c |
157 |
-index 9f6d7d8..a4d9d25 100644 |
158 |
---- a/src/vte.c |
159 |
-+++ b/src/vte.c |
160 |
-@@ -4077,6 +4077,7 @@ vte_terminal_process_incoming(VteTerminal *terminal) |
161 |
- long wcount, start, delta; |
162 |
- gboolean leftovers, modified, bottom, again; |
163 |
- gboolean invalidated_text; |
164 |
-+ gboolean in_scroll_region; |
165 |
- GArray *unichars; |
166 |
- struct _vte_incoming_chunk *chunk, *next_chunk, *achunk = NULL; |
167 |
- |
168 |
-@@ -4096,6 +4097,10 @@ vte_terminal_process_incoming(VteTerminal *terminal) |
169 |
- cursor = screen->cursor_current; |
170 |
- cursor_visible = terminal->pvt->cursor_visible; |
171 |
- |
172 |
-+ in_scroll_region = screen->scrolling_restricted |
173 |
-+ && (screen->cursor_current.row >= (screen->insert_delta + screen->scrolling_region.start)) |
174 |
-+ && (screen->cursor_current.row <= (screen->insert_delta + screen->scrolling_region.end)); |
175 |
-+ |
176 |
- /* We should only be called when there's data to process. */ |
177 |
- g_assert(terminal->pvt->incoming || |
178 |
- (terminal->pvt->pending->len > 0)); |
179 |
-@@ -4194,6 +4199,8 @@ skip_chunk: |
180 |
- * points to the first character which isn't part of this |
181 |
- * sequence. */ |
182 |
- if ((match != NULL) && (match[0] != '\0')) { |
183 |
-+ gboolean new_in_scroll_region; |
184 |
-+ |
185 |
- /* Call the right sequence handler for the requested |
186 |
- * behavior. */ |
187 |
- _vte_terminal_handle_sequence(terminal, |
188 |
-@@ -4204,12 +4211,21 @@ skip_chunk: |
189 |
- start = (next - wbuf); |
190 |
- modified = TRUE; |
191 |
- |
192 |
-- /* if we have moved during the sequence handler, restart the bbox */ |
193 |
-+ new_in_scroll_region = screen->scrolling_restricted |
194 |
-+ && (screen->cursor_current.row >= (screen->insert_delta + screen->scrolling_region.start)) |
195 |
-+ && (screen->cursor_current.row <= (screen->insert_delta + screen->scrolling_region.end)); |
196 |
-+ |
197 |
-+ delta = screen->scroll_delta; /* delta may have changed from sequence. */ |
198 |
-+ |
199 |
-+ /* if we have moved greatly during the sequence handler, or moved |
200 |
-+ * into a scroll_region from outside it, restart the bbox. |
201 |
-+ */ |
202 |
- if (invalidated_text && |
203 |
-- (screen->cursor_current.col > bbox_bottomright.x + VTE_CELL_BBOX_SLACK || |
204 |
-- screen->cursor_current.col < bbox_topleft.x - VTE_CELL_BBOX_SLACK || |
205 |
-- screen->cursor_current.row > bbox_bottomright.y + VTE_CELL_BBOX_SLACK || |
206 |
-- screen->cursor_current.row < bbox_topleft.y - VTE_CELL_BBOX_SLACK)) { |
207 |
-+ ((new_in_scroll_region && !in_scroll_region) || |
208 |
-+ (screen->cursor_current.col > bbox_bottomright.x + VTE_CELL_BBOX_SLACK || |
209 |
-+ screen->cursor_current.col < bbox_topleft.x - VTE_CELL_BBOX_SLACK || |
210 |
-+ screen->cursor_current.row > bbox_bottomright.y + VTE_CELL_BBOX_SLACK || |
211 |
-+ screen->cursor_current.row < bbox_topleft.y - VTE_CELL_BBOX_SLACK))) { |
212 |
- /* Clip off any part of the box which isn't already on-screen. */ |
213 |
- bbox_topleft.x = MAX(bbox_topleft.x, 0); |
214 |
- bbox_topleft.y = MAX(bbox_topleft.y, delta); |
215 |
-@@ -4229,6 +4245,8 @@ skip_chunk: |
216 |
- bbox_bottomright.x = bbox_bottomright.y = -G_MAXINT; |
217 |
- bbox_topleft.x = bbox_topleft.y = G_MAXINT; |
218 |
- } |
219 |
-+ |
220 |
-+ in_scroll_region = new_in_scroll_region; |
221 |
- } else |
222 |
- /* Second, we have a NULL match, and next points to the very |
223 |
- * next character in the buffer. Insert the character which |
224 |
--- |
225 |
-cgit v0.10.2 |
226 |
- |
227 |
|
228 |
diff --git a/x11-libs/vte/files/vte-0.30.1-alt-meta.patch b/x11-libs/vte/files/vte-0.30.1-alt-meta.patch |
229 |
deleted file mode 100644 |
230 |
index bd364be5846c..000000000000 |
231 |
--- a/x11-libs/vte/files/vte-0.30.1-alt-meta.patch |
232 |
+++ /dev/null |
233 |
@@ -1,74 +0,0 @@ |
234 |
-From 180dcc578e13c6096e277fb853e7162db640f207 Mon Sep 17 00:00:00 2001 |
235 |
-From: Alexandre Rostovtsev <tetromino@g.o> |
236 |
-Date: Tue, 15 Nov 2011 03:06:40 -0500 |
237 |
-Subject: [PATCH] Map both gdk's Meta and Alt to vte's Meta for >=gtk+-3.2.2 |
238 |
- compatibility |
239 |
- |
240 |
-Also, since VTE_META_MASK is now a mask with multiple bits set, code that |
241 |
-compares gdk key modifiers to VTE_META_MASK by numerical equality is no |
242 |
-longer guaranteed to work. Therefore, for such comparisons a new function, |
243 |
-vte_keymap_fixup_modifiers, is introduced; it ensures that if any bits |
244 |
-matching matching VTE_META_MASK are set, then all are set. |
245 |
- |
246 |
-https://bugzilla.gnome.org/show_bug.cgi?id=663779 |
247 |
---- |
248 |
- src/keymap.c | 15 +++++++++++++-- |
249 |
- src/keymap.h | 2 +- |
250 |
- 2 files changed, 14 insertions(+), 3 deletions(-) |
251 |
- |
252 |
-diff --git a/src/keymap.c b/src/keymap.c |
253 |
-index 9a21669..95b4c5b 100644 |
254 |
---- a/src/keymap.c |
255 |
-+++ b/src/keymap.c |
256 |
-@@ -990,6 +990,17 @@ static const struct _vte_keymap_group { |
257 |
- {GDK_KEY (F35), _vte_keymap_GDK_F35}, |
258 |
- }; |
259 |
- |
260 |
-+/* Restrict modifiers to the specified mask and ensure that VTE_META_MASK, |
261 |
-+ * despite being a compound mask, is treated as indivisible. */ |
262 |
-+GdkModifierType |
263 |
-+_vte_keymap_fixup_modifiers(GdkModifierType modifiers, |
264 |
-+ GdkModifierType mask) |
265 |
-+{ |
266 |
-+ if (modifiers & VTE_META_MASK) |
267 |
-+ modifiers |= VTE_META_MASK; |
268 |
-+ return modifiers & mask; |
269 |
-+} |
270 |
-+ |
271 |
- /* Map the specified keyval/modifier setup, dependent on the mode, to either |
272 |
- * a literal string or a capability name. */ |
273 |
- void |
274 |
-@@ -1104,7 +1115,7 @@ _vte_keymap_map(guint keyval, |
275 |
- } else { |
276 |
- fkey_mode = fkey_default; |
277 |
- } |
278 |
-- modifiers &= (GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK); |
279 |
-+ modifiers = _vte_keymap_fixup_modifiers(modifiers, GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK); |
280 |
- |
281 |
- /* Search for the conditions. */ |
282 |
- for (i = 0; entries[i].normal_length || entries[i].special[0]; i++) |
283 |
-@@ -1375,7 +1386,7 @@ _vte_keymap_key_add_key_modifiers(guint keyval, |
284 |
- return; |
285 |
- } |
286 |
- |
287 |
-- switch (modifiers & significant_modifiers) { |
288 |
-+ switch (_vte_keymap_fixup_modifiers(modifiers, significant_modifiers)) { |
289 |
- case 0: |
290 |
- modifier = 0; |
291 |
- break; |
292 |
-diff --git a/src/keymap.h b/src/keymap.h |
293 |
-index 243e22e..21d9b8e 100644 |
294 |
---- a/src/keymap.h |
295 |
-+++ b/src/keymap.h |
296 |
-@@ -27,7 +27,7 @@ |
297 |
- |
298 |
- G_BEGIN_DECLS |
299 |
- |
300 |
--#define VTE_META_MASK GDK_META_MASK |
301 |
-+#define VTE_META_MASK (GDK_META_MASK | GDK_MOD1_MASK) |
302 |
- #define VTE_NUMLOCK_MASK GDK_MOD2_MASK |
303 |
- |
304 |
- /* Map the specified keyval/modifier setup, dependent on the mode, to either |
305 |
--- |
306 |
-1.7.8.rc3 |
307 |
- |
308 |
|
309 |
diff --git a/x11-libs/vte/vte-0.28.2-r209.ebuild b/x11-libs/vte/vte-0.28.2-r209.ebuild |
310 |
deleted file mode 100644 |
311 |
index 05034d5f7abb..000000000000 |
312 |
--- a/x11-libs/vte/vte-0.28.2-r209.ebuild |
313 |
+++ /dev/null |
314 |
@@ -1,77 +0,0 @@ |
315 |
-# Copyright 1999-2021 Gentoo Authors |
316 |
-# Distributed under the terms of the GNU General Public License v2 |
317 |
- |
318 |
-EAPI="6" |
319 |
- |
320 |
-inherit gnome2 |
321 |
- |
322 |
-DESCRIPTION="GNOME terminal widget" |
323 |
-HOMEPAGE="https://wiki.gnome.org/Apps/Terminal/VTE" |
324 |
- |
325 |
-LICENSE="LGPL-2+" |
326 |
-SLOT="0" |
327 |
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x64-solaris ~x86-solaris" |
328 |
-IUSE="debug +introspection" |
329 |
- |
330 |
-RDEPEND=" |
331 |
- >=dev-libs/glib-2.26:2 |
332 |
- >=x11-libs/gtk+-2.20:2[introspection?] |
333 |
- >=x11-libs/pango-1.22.0 |
334 |
- |
335 |
- sys-libs/ncurses:0= |
336 |
- x11-libs/libX11 |
337 |
- x11-libs/libXft |
338 |
- |
339 |
- introspection? ( >=dev-libs/gobject-introspection-0.9.0:= ) |
340 |
-" |
341 |
-DEPEND="${RDEPEND} |
342 |
- dev-util/gtk-doc-am |
343 |
- >=dev-util/intltool-0.35 |
344 |
- virtual/pkgconfig |
345 |
- sys-devel/gettext |
346 |
-" |
347 |
-PDEPEND="x11-libs/gnome-pty-helper" |
348 |
- |
349 |
-PATCHES=( |
350 |
- # https://bugzilla.gnome.org/show_bug.cgi?id=663779 |
351 |
- "${FILESDIR}"/${PN}-0.30.1-alt-meta.patch |
352 |
- |
353 |
- # https://bugzilla.gnome.org/show_bug.cgi?id=652290 |
354 |
- "${FILESDIR}"/${PN}-0.28.2-interix.patch |
355 |
- |
356 |
- # Fix CVE-2012-2738, upstream bug #676090 |
357 |
- "${FILESDIR}"/${PN}-0.28.2-limit-arguments.patch |
358 |
- |
359 |
- # Fix https://bugzilla.gnome.org/show_bug.cgi?id=542087 |
360 |
- # Patch from https://github.com/pld-linux/vte0/commit/1e8dce16b239e5d378b02e4d04a60e823df36257 |
361 |
- "${FILESDIR}"/${PN}-0.28.2-repaint-after-change-scroll-region.patch |
362 |
-) |
363 |
- |
364 |
-DOCS="AUTHORS ChangeLog HACKING NEWS README" |
365 |
- |
366 |
-src_configure() { |
367 |
- local myconf="" |
368 |
- |
369 |
- if [[ ${CHOST} == *-interix* ]]; then |
370 |
- myconf="${myconf} --disable-Bsymbolic" |
371 |
- |
372 |
- # interix stropts.h is empty... |
373 |
- export ac_cv_header_stropts_h=no |
374 |
- fi |
375 |
- |
376 |
- # Do not disable gnome-pty-helper, bug #401389 |
377 |
- gnome2_src_configure --disable-python \ |
378 |
- --disable-deprecation \ |
379 |
- --disable-glade-catalogue \ |
380 |
- --disable-static \ |
381 |
- $(use_enable debug) \ |
382 |
- $(use_enable introspection) \ |
383 |
- --with-gtk=2.0 \ |
384 |
- ${myconf} |
385 |
-} |
386 |
- |
387 |
-src_install() { |
388 |
- gnome2_src_install |
389 |
- |
390 |
- rm -v "${ED}usr/libexec/gnome-pty-helper" || die |
391 |
-} |