07d2f18783924a6b1ea2d0ac9e4ebffd63253048
[platform/upstream/libabigail.git] /
1 ================ changes of 'libtbb.so.2'===============
2   Functions changes summary: 0 Removed, 10 Changed (89 filtered out), 17 Added functions
3   Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
4   Function symbols changes summary: 0 Removed, 0 Added function symbol not referenced by debug info
5   Variable symbols changes summary: 3 Removed, 0 Added variable symbols not referenced by debug info
6
7   17 Added functions:
8
9     [A] 'method int tbb::interface7::internal::task_arena_base::internal_current_slot()'    {_ZN3tbb10interface78internal15task_arena_base21internal_current_slotEv}
10     [A] 'method void tbb::interface7::internal::task_arena_base::internal_enqueue(tbb::task&, intptr_t) const'    {_ZNK3tbb10interface78internal15task_arena_base16internal_enqueueERNS_4taskEl}
11     [A] 'method void tbb::interface7::internal::task_arena_base::internal_execute(tbb::interface7::internal::delegate_base&) const'    {_ZNK3tbb10interface78internal15task_arena_base16internal_executeERNS1_13delegate_baseE}
12     [A] 'method void tbb::interface7::internal::task_arena_base::internal_initialize()'    {_ZN3tbb10interface78internal15task_arena_base19internal_initializeEv}
13     [A] 'method void tbb::interface7::internal::task_arena_base::internal_terminate()'    {_ZN3tbb10interface78internal15task_arena_base18internal_terminateEv}
14     [A] 'method void tbb::interface7::internal::task_arena_base::internal_wait() const'    {_ZNK3tbb10interface78internal15task_arena_base13internal_waitEv}
15     [A] 'method void tbb::interface8::internal::x86_rtm_rw_mutex::internal_acquire_reader(tbb::interface8::internal::x86_rtm_rw_mutex::scoped_lock&, bool)'    {_ZN3tbb10interface88internal16x86_rtm_rw_mutex23internal_acquire_readerERNS2_11scoped_lockEb}
16     [A] 'method void tbb::interface8::internal::x86_rtm_rw_mutex::internal_acquire_writer(tbb::interface8::internal::x86_rtm_rw_mutex::scoped_lock&, bool)'    {_ZN3tbb10interface88internal16x86_rtm_rw_mutex23internal_acquire_writerERNS2_11scoped_lockEb}
17     [A] 'method void tbb::interface8::internal::x86_rtm_rw_mutex::internal_construct()'    {_ZN3tbb10interface88internal16x86_rtm_rw_mutex18internal_constructEv}
18     [A] 'method bool tbb::interface8::internal::x86_rtm_rw_mutex::internal_downgrade(tbb::interface8::internal::x86_rtm_rw_mutex::scoped_lock&)'    {_ZN3tbb10interface88internal16x86_rtm_rw_mutex18internal_downgradeERNS2_11scoped_lockE}
19     [A] 'method void tbb::interface8::internal::x86_rtm_rw_mutex::internal_release(tbb::interface8::internal::x86_rtm_rw_mutex::scoped_lock&)'    {_ZN3tbb10interface88internal16x86_rtm_rw_mutex16internal_releaseERNS2_11scoped_lockE}
20     [A] 'method bool tbb::interface8::internal::x86_rtm_rw_mutex::internal_try_acquire_writer(tbb::interface8::internal::x86_rtm_rw_mutex::scoped_lock&)'    {_ZN3tbb10interface88internal16x86_rtm_rw_mutex27internal_try_acquire_writerERNS2_11scoped_lockE}
21     [A] 'method bool tbb::interface8::internal::x86_rtm_rw_mutex::internal_upgrade(tbb::interface8::internal::x86_rtm_rw_mutex::scoped_lock&)'    {_ZN3tbb10interface88internal16x86_rtm_rw_mutex16internal_upgradeERNS2_11scoped_lockE}
22     [A] 'method void tbb::internal::concurrent_queue_base_v8::internal_push_move(void*)'    {_ZN3tbb8internal24concurrent_queue_base_v818internal_push_moveEPKv}
23     [A] 'method bool tbb::internal::concurrent_queue_base_v8::internal_push_move_if_not_full(void*)'    {_ZN3tbb8internal24concurrent_queue_base_v830internal_push_move_if_not_fullEPKv}
24     [A] 'method void tbb::internal::concurrent_queue_base_v8::move_content(tbb::internal::concurrent_queue_base_v8&)'    {_ZN3tbb8internal24concurrent_queue_base_v812move_contentERS1_}
25     [A] 'method void tbb::task_group_context::capture_fp_settings()'    {_ZN3tbb18task_group_context19capture_fp_settingsEv}
26
27   10 functions with some indirect sub-type change:
28
29     [C] 'method void tbb::filter::set_end_of_input()' at pipeline.cpp:700:1 has some indirect sub-type changes:
30       implicit parameter 0 of type 'tbb::filter*' has sub-type changes:
31         in pointed to type 'class tbb::filter' at pipeline.h:65:1:
32           type size hasn't changed
33           no member function changes (4 filtered);
34           1 data member changes (4 filtered):
35             type of 'tbb::internal::input_buffer* my_input_buffer' changed:
36               in pointed to type 'class tbb::internal::input_buffer' at pipeline.cpp:52:1:
37                 type size hasn't changed
38                 1 data member change:
39                   type of 'tbb::spin_mutex array_mutex' changed:
40                     type size hasn't changed
41                     1 base class insertion:
42                       class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1
43
44     [C] 'method tbb::task& tbb::internal::allocate_root_with_context_proxy::allocate(std::size_t) const' at task.h:135:1 has some indirect sub-type changes:
45       implicit parameter 0 of type 'const tbb::internal::allocate_root_with_context_proxy*' has sub-type changes:
46         in pointed to type 'const tbb::internal::allocate_root_with_context_proxy':
47           in unqualified underlying type 'class tbb::internal::allocate_root_with_context_proxy' at task.h:131:1:
48             type size hasn't changed
49             1 data member change:
50               type of 'tbb::task_group_context& my_context' changed:
51                 in referenced type 'class tbb::task_group_context' at task.h:302:1:
52                   type size hasn't changed
53                   1 data member insertion:
54                     'tbb::internal::cpu_ctl_env_space my_cpu_ctl_env', at offset 896 (in bits) at task.h:380:1
55                   2 data member changes (1 filtered):
56                     type of 'char _leading_padding[80]' changed:
57                       type name changed from 'char[80]' to 'char[72]'
58                       array type size changed from 640 to 576
59                       array type subrange 1 changed length from 80 to 72
60                     type of 'tbb::internal::generic_scheduler* my_owner' changed:
61                       in pointed to type 'class tbb::internal::generic_scheduler' at scheduler.h:110:1:
62                         type size changed from 3136 to 3072 (in bits)
63                         1 base class change:
64                           'struct tbb::internal::scheduler_state' at scheduler.h:73:1 changed:
65                             type size changed from 576 to 704 (in bits)
66                             2 data member insertions:
67                               'volatile intptr_t* my_ref_top_priority', at offset 576 (in bits) at scheduler.h:96:1
68                               'volatile uintptr_t* my_ref_reload_epoch', at offset 640 (in bits) at scheduler.h:99:1
69                             3 data member changes (2 filtered):
70                               type of 'tbb::internal::arena_slot* my_arena_slot' changed:
71                                 in pointed to type 'struct tbb::internal::arena_slot' at scheduler_common.h:316:1:
72                                   type size hasn't changed
73                                   2 base class deletions:
74                                     struct tbb::internal::padded<tbb::internal::arena_slot_line1> at tbb_stddef.h:261:1
75                                     struct tbb::internal::padded<tbb::internal::arena_slot_line2> at tbb_stddef.h:261:1
76                                   2 base class insertions:
77                                     struct tbb::internal::padded<tbb::internal::arena_slot_line1, 128ul> at tbb_stddef.h:251:1
78                                     struct tbb::internal::padded<tbb::internal::arena_slot_line2, 128ul> at tbb_stddef.h:251:1
79                               type of 'tbb::internal::arena* my_arena' changed:
80                                 in pointed to type 'class tbb::internal::arena' at arena.h:160:1:
81                                   type size hasn't changed
82                                   1 base class deletion:
83                                     struct tbb::internal::padded<tbb::internal::arena_base> at tbb_stddef.h:261:1
84                                   1 base class insertion:
85                                     struct tbb::internal::padded<tbb::internal::arena_base, 128ul> at tbb_stddef.h:251:1
86                                   no data member change (1 filtered);
87                               type of 'tbb::internal::mail_inbox my_inbox' changed:
88                                 type size hasn't changed
89                                 1 data member change:
90                                   type of 'tbb::internal::mail_outbox* my_putter' changed:
91                                     in pointed to type 'class tbb::internal::mail_outbox' at mailbox.h:103:1:
92                                       type size hasn't changed
93                                       1 base class deletion:
94                                         class tbb::internal::unpadded_mail_outbox at mailbox.h:97:1
95                                       1 base class insertion:
96                                         struct tbb::internal::padded<tbb::internal::unpadded_mail_outbox, 128ul> at tbb_stddef.h:251:1
97                                       1 data member deletion:
98                                         'char pad[104]', at offset 136 (in bits) at mailbox.h:114:1
99                         1 member function deletion:
100                           'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
101                         1 member function insertion:
102                           'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&)' at scheduler.h:362:1, virtual at voffset 7/7
103                         no member function changes (4 filtered);
104                         3 data member deletions:
105                           'unsigned int hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
106                           'volatile intptr_t* my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
107                           'volatile uintptr_t* my_ref_reload_epoch', at offset 2752 (in bits) at scheduler.h:443:1
108                         18 data member changes:
109                           'uintptr_t my_stealing_threshold' offset changed from 704 to 832 (in bits) (by +128 bits)
110                           type of 'tbb::internal::market* my_market' changed:
111                             in pointed to type 'class tbb::internal::market' at market.h:49:1:
112                               type size changed from 1664 to 1728 (in bits)
113                               no member function changes (8 filtered);
114                               1 data member insertion:
115                                 'bool join_workers', at offset 384 (in bits) at market.h:88:1
116                               7 data member changes:
117                                 type of 'tbb::internal::market::arenas_list_mutex_type my_arenas_list_mutex' changed:
118                                   underlying type 'typedef tbb::internal::scheduler_mutex_type' at scheduler_common.h:123:1 changed:
119                                     typedef name changed from tbb::internal::scheduler_mutex_type to tbb::spin_rw_mutex at spin_rw_mutex.h:38:1
120                                     underlying type 'class tbb::spin_mutex' at spin_mutex.h:47:1 changed:
121                                       type name changed from 'tbb::spin_mutex' to 'tbb::spin_rw_mutex_v3'
122                                       type size changed from 8 to 64 (in bits)
123                                       1 base class insertion:
124                                         class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1
125                                       1 data member change:
126                                         type of '__TBB_atomic_flag flag' changed:
127                                           typedef name changed from __TBB_atomic_flag to tbb::spin_rw_mutex_v3::state_t at spin_rw_mutex.h:214:1
128                                           underlying type 'typedef __TBB_Flag' at tbb_machine.h:875:1 changed:
129                                             typedef name changed from __TBB_Flag to intptr_t at stdint.h:119:1
130                                             underlying type 'unsigned char' changed:
131                                               type name changed from 'unsigned char' to 'long int'
132                                               type size changed from 8 to 64 (in bits)
133                                         and name of 'tbb::spin_mutex::flag' changed to 'tbb::spin_rw_mutex_v3::state' at spin_rw_mutex.h:224:1
134                                 'intptr_t my_global_top_priority' offset changed from 384 to 448 (in bits) (by +64 bits)
135                                 'intptr_t my_global_bottom_priority' offset changed from 448 to 512 (in bits) (by +64 bits)
136                                 'uintptr_t my_global_reload_epoch' offset changed from 512 to 576 (in bits) (by +64 bits)
137                                 type of 'tbb::internal::market::priority_level_info my_priority_levels[3]' changed:
138                                   array element type 'struct tbb::internal::market::priority_level_info' changed:
139                                     type size hasn't changed
140                                     1 data member change:
141                                       type of 'tbb::internal::intrusive_list_base<tbb::internal::intrusive_list<tbb::internal::arena>, tbb::internal::arena>::iterator next_arena' changed:
142                                         entity changed from 'class tbb::internal::intrusive_list_base<tbb::internal::intrusive_list<tbb::internal::arena>, tbb::internal::arena>::iterator' to 'tbb::internal::arena*'
143                                         type size hasn't changed
144                                   type size hasn't changed
145                                 and offset changed from 576 to 640 (in bits) (by +64 bits)
146                                 'uintptr_t my_arenas_aba_epoch' offset changed from 1536 to 1600 (in bits) (by +64 bits)
147                                 'tbb::internal::generic_scheduler* my_workers[1]' offset changed from 1600 to 1664 (in bits) (by +64 bits)
148                           and offset changed from 768 to 896 (in bits) (by +128 bits)
149                           'tbb::internal::FastRandom my_random' offset changed from 832 to 960 (in bits) (by +128 bits)
150                           'tbb::task* my_free_list' offset changed from 960 to 1024 (in bits) (by +64 bits)
151                           'tbb::task* my_dummy_task' offset changed from 1024 to 1088 (in bits) (by +64 bits)
152                           'long int my_ref_count' offset changed from 1088 to 1152 (in bits) (by +64 bits)
153                           'bool my_auto_initialized' offset changed from 1152 to 1216 (in bits) (by +64 bits)
154                           'intptr_t my_small_task_count' offset changed from 1216 to 1280 (in bits) (by +64 bits)
155                           'tbb::task* my_return_list' offset changed from 1280 to 1344 (in bits) (by +64 bits)
156                           'char _padding1[112]' offset changed from 1344 to 1408 (in bits) (by +64 bits)
157                           'tbb::internal::context_list_node_t my_context_list_head' offset changed from 2240 to 2304 (in bits) (by +64 bits)
158                           'tbb::spin_mutex my_context_list_mutex' offset changed from 2368 to 2432 (in bits) (by +64 bits)
159                           'uintptr_t my_context_state_propagation_epoch' offset changed from 2432 to 2496 (in bits) (by +64 bits)
160                           'tbb::atomic<long unsigned int> my_local_ctx_list_update' offset changed from 2496 to 2560 (in bits) (by +64 bits)
161                           'uintptr_t my_local_reload_epoch' offset changed from 2816 to 2752 (in bits) (by -64 bits)
162                           'volatile bool my_pool_reshuffling_pending' offset changed from 2880 to 2816 (in bits) (by -64 bits)
163                           'tbb::atomic<long unsigned int> my_nonlocal_ctx_list_update' offset changed from 2944 to 2880 (in bits) (by -64 bits)
164                           '__cilk_tbb_unwatch_thunk my_cilk_unwatch_thunk' offset changed from 3008 to 2944 (in bits) (by -64 bits)
165
166     [C] 'method void tbb::internal::concurrent_queue_base_v3::assign(const tbb::internal::concurrent_queue_base&)' at concurrent_queue.cpp:570:1 has some indirect sub-type changes:
167       implicit parameter 0 of type 'tbb::internal::concurrent_queue_base_v3*' has sub-type changes:
168         in pointed to type 'class tbb::internal::concurrent_queue_base_v3' at _concurrent_queue_impl.h:834:1:
169           type size hasn't changed
170           no member function changes (7 filtered);
171           1 data member change:
172             type of 'tbb::internal::concurrent_queue_rep* my_rep' changed:
173               in pointed to type 'class tbb::internal::concurrent_queue_rep' at concurrent_queue.cpp:129:1:
174                 type size hasn't changed
175                 1 data member changes (2 filtered):
176                   type of 'tbb::internal::concurrent_monitor items_avail' changed:
177                     type size hasn't changed
178                     1 data member change:
179                       'tbb::spin_mutex mutex_ec' offset changed from 0 to 8 (in bits) (by +8 bits)
180
181     [C] 'method bool tbb::internal::hash_map_segment_base::internal_grow_predicate() const' at concurrent_hash_map.cpp:44:1 has some indirect sub-type changes:
182       implicit parameter 0 of type 'const tbb::internal::hash_map_segment_base*' has sub-type changes:
183         in pointed to type 'const tbb::internal::hash_map_segment_base':
184           in unqualified underlying type 'struct tbb::internal::hash_map_segment_base' at concurrent_hash_map.cpp:27:1:
185             type size hasn't changed
186             1 data member change:
187               type of 'tbb::internal::hash_map_segment_base::segment_mutex_t my_mutex' changed:
188                 underlying type 'typedef tbb::spin_rw_mutex' at spin_rw_mutex.h:39:1 changed:
189                   underlying type 'class tbb::spin_rw_mutex_v3' at spin_rw_mutex.h:43:1 changed:
190                     type size hasn't changed
191                     1 base class insertion:
192                       class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1
193                     no data member change (1 filtered);
194
195     [C] 'function void tbb::internal::throw_exception_v4(tbb::internal::exception_id)' at tbb_misc.cpp:119:1 has some indirect sub-type changes:
196       parameter 1 of type 'enum tbb::internal::exception_id' has sub-type changes:
197         type size hasn't changed
198         1 enumerator insertion:
199           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
200         1 enumerator change:
201           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
202
203     [C] 'method void tbb::mutex::internal_construct()' at mutex.h:218:1 has some indirect sub-type changes:
204       implicit parameter 0 of type 'tbb::mutex*' has sub-type changes:
205         in pointed to type 'class tbb::mutex' at mutex.h:40:1:
206           type size hasn't changed
207           1 base class insertion:
208             class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1
209
210     [C] 'method void tbb::queuing_mutex::internal_construct()' at queuing_mutex.h:106:1 has some indirect sub-type changes:
211       implicit parameter 0 of type 'tbb::queuing_mutex*' has sub-type changes:
212         in pointed to type 'class tbb::queuing_mutex' at queuing_mutex.h:45:1:
213           type size hasn't changed
214           1 base class insertion:
215             class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1
216
217     [C] 'method void tbb::queuing_rw_mutex::internal_construct()' at queuing_rw_mutex.h:146:1 has some indirect sub-type changes:
218       implicit parameter 0 of type 'tbb::queuing_rw_mutex*' has sub-type changes:
219         in pointed to type 'class tbb::queuing_rw_mutex' at queuing_rw_mutex.h:47:1:
220           type size hasn't changed
221           1 base class insertion:
222             class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1
223
224     [C] 'method void tbb::recursive_mutex::internal_construct()' at recursive_mutex.h:224:1 has some indirect sub-type changes:
225       implicit parameter 0 of type 'tbb::recursive_mutex*' has sub-type changes:
226         in pointed to type 'class tbb::recursive_mutex' at recursive_mutex.h:39:1:
227           type size hasn't changed
228           1 base class insertion:
229             class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1
230
231     [C] 'method tbb::thread_bound_filter::result_type tbb::thread_bound_filter::process_item()' at pipeline.cpp:712:1 has some indirect sub-type changes:
232       implicit parameter 0 of type 'tbb::thread_bound_filter*' has sub-type changes:
233         in pointed to type 'class tbb::thread_bound_filter' at pipeline.h:197:1:
234           type size hasn't changed
235           1 base class change:
236             'class tbb::filter' at pipeline.h:74:1 changed:
237               details were reported earlier
238
239   3 Removed variable symbols not referenced by debug info:
240
241     [D] _ZTVN3rml16versioned_objectE
242     [D] _ZTVN3rml6clientE
243     [D] _ZTVN3rml6serverE
244
245 ================ end of changes of 'libtbb.so.2'===============
246
247 ================ changes of 'libtbbmalloc.so.2'===============
248   Functions changes summary: 9 Removed, 0 Changed, 0 Added functions
249   Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
250   Function symbols changes summary: 0 Removed, 27 Added function symbols not referenced by debug info
251   Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info
252
253   9 Removed functions:
254
255     [D] 'function void* rml::internal::__TBB_internal_calloc(size_t, size_t)'    {__TBB_internal_calloc}
256     [D] 'function void rml::internal::__TBB_internal_free(void*)'    {__TBB_internal_free}
257     [D] 'function void* rml::internal::__TBB_internal_malloc(size_t)'    {__TBB_internal_malloc}
258     [D] 'function int rml::internal::__TBB_internal_posix_memalign(void**, size_t, size_t)'    {__TBB_internal_posix_memalign}
259     [D] 'function void* rml::internal::__TBB_internal_realloc(void*, size_t)'    {__TBB_internal_realloc}
260     [D] 'function void* safer_scalable_aligned_realloc(void*, size_t, size_t, void*)'    {safer_scalable_aligned_realloc}
261     [D] 'function void safer_scalable_free(void*, void (void*)*)'    {safer_scalable_free}
262     [D] 'function size_t safer_scalable_msize(void*, typedef size_t (void*)*)'    {safer_scalable_msize}
263     [D] 'function void* safer_scalable_realloc(void*, size_t, void*)'    {safer_scalable_realloc}
264
265   27 Added function symbols not referenced by debug info:
266
267     [A] _Z10BitScanRevm
268     [A] _Z10FencedLoadRVKl
269     [A] _Z11FencedStoreRVll
270     [A] _Z15AtomicIncrementRVl
271     [A] _Z15SpinWaitWhileEqRVKll
272     [A] _Z16AtomicFetchStorePVvm
273     [A] _Z21AtomicCompareExchangeRVlll
274     [A] _Z8AtomicOrPVvm
275     [A] _Z8do_yieldv
276     [A] _Z9AtomicAddRVll
277     [A] _Z9AtomicAndPVvm
278     [A] _ZN11MallocMutex11scoped_lockC1ERS_
279     [A] _ZN11MallocMutex11scoped_lockC1ERS_bPb, aliases _ZN11MallocMutex11scoped_lockC2ERS_bPb
280     [A] _ZN11MallocMutex11scoped_lockC2ERS_, aliases _ZN11MallocMutex11scoped_lockC1ERS_
281     [A] _ZN11MallocMutex11scoped_lockC2ERS_bPb
282     [A] _ZN11MallocMutex11scoped_lockD1Ev, aliases _ZN11MallocMutex11scoped_lockD2Ev
283     [A] _ZN11MallocMutex11scoped_lockD2Ev
284     [A] _ZN11MallocMutexC1Ev, aliases _ZN11MallocMutexC2Ev
285     [A] _ZN11MallocMutexC2Ev
286     [A] _ZdlPvS_
287     [A] _ZnwmPv
288     [A] __TBB_malloc_safer_aligned_msize
289     [A] __TBB_malloc_safer_aligned_realloc
290     [A] __TBB_malloc_safer_free
291     [A] __TBB_malloc_safer_msize
292     [A] __TBB_malloc_safer_realloc
293     [A] scalable_allocation_command
294
295 ================ end of changes of 'libtbbmalloc.so.2'===============
296
297 ================ changes of 'libtbbmalloc_proxy.so.2'===============
298   Functions changes summary: 1 Removed, 0 Changed, 3 Added functions
299   Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
300
301   1 Removed function:
302
303     [D] 'function bool __TBB_internal_find_original_malloc(int, const char**, void**)'    {__TBB_internal_find_original_malloc}
304
305   3 Added functions:
306
307     [A] 'function void __libc_free(void*)'    {__libc_free}
308     [A] 'function void* __libc_realloc(void*, size_t)'    {__libc_realloc}
309     [A] 'function size_t malloc_usable_size(void*)'    {malloc_usable_size}
310
311 ================ end of changes of 'libtbbmalloc_proxy.so.2'===============
312