New test.
[mono.git] / mcs / class / System.Runtime.Remoting / Test / ContextsTest.cs
1 //\r
2 // MonoTests.Remoting.ContextsTest.cs\r
3 //\r
4 // Author: Lluis Sanchez Gual (lluis@ximian.com)\r
5 //\r
6 // 2003 (C) Copyright, Ximian, Inc.\r
7 //\r
8 \r
9 using System;\r
10 using System.Net;\r
11 using System.Threading;\r
12 using System.Collections;\r
13 using System.Runtime.Remoting;\r
14 using System.Runtime.Remoting.Channels;\r
15 using System.Runtime.Remoting.Lifetime;\r
16 using System.Runtime.Remoting.Channels.Tcp;\r
17 using System.Runtime.Remoting.Activation;\r
18 using System.Runtime.Remoting.Contexts;\r
19 using NUnit.Framework;\r
20 \r
21 namespace MonoTests.Remoting\r
22 {\r
23         [TestFixture]\r
24         public class ContextsTest\r
25         {\r
26                 TcpChannel ch;\r
27                 \r
28                 [TestFixtureSetUp]\r
29                 public void Run()\r
30                 {\r
31                         CallSeq.CommonDomainId = 1;\r
32                         Context.RegisterDynamicProperty (new DynProperty("global"), null, null);\r
33 \r
34                         ch = new TcpChannel(0);\r
35                         ChannelServices.RegisterChannel (ch);\r
36                 }\r
37 \r
38                 [TestFixtureTearDown]\r
39                 public void End ()\r
40                 {\r
41                         Context.UnregisterDynamicProperty ("global", null, null);\r
42                         if (ch != null)\r
43                                 ChannelServices.UnregisterChannel (ch);\r
44                 }\r
45 \r
46                 [Test]\r
47                 public void TestSameContext ()\r
48                 {\r
49                         CallSeq.Init("TestSameContext");\r
50                         CallSeq.Add (">> TestSameContext");\r
51                         CallSeq.Add (">> Creating instance");\r
52                         ServerList list = new ServerList();\r
53                         CallSeq.Add ("<< Creating instance");\r
54                         RunTestObject (list);\r
55                         CallSeq.Add ("<< TestSameContext");\r
56                         CallSeq.Check (Checks.seqSameContext,1);\r
57                 }\r
58 \r
59                 [Test]\r
60                 public void TestNewContext ()\r
61                 {\r
62                         CallSeq.Init("TestNewContext");\r
63                         CallSeq.Add (">> TestNewContext");\r
64                         object[] at = new object[] { new ContextHookAttribute ("1",true)};\r
65                         CallSeq.Add (">> Creating instance");\r
66                         ServerList list = (ServerList) Activator.CreateInstance (typeof (ServerList),null,at);\r
67                         CallSeq.Add ("<< Creating instance");\r
68                         RunTestObject (list);\r
69                         CallSeq.Add ("<< TestNewContext");\r
70                         CallSeq.Check (Checks.seqNewContext,1);\r
71                 }\r
72 \r
73                 [Test]\r
74                 public void TestRemoteContext ()\r
75                 {\r
76                         AppDomain domain = AppDomain.CreateDomain ("test");\r
77                         DomainServer server = (DomainServer) domain.CreateInstanceAndUnwrap(GetType().Assembly.FullName,"MonoTests.Remoting.DomainServer");\r
78                         try\r
79                         {\r
80                                 CallSeq.Init("TestRemoteContext");\r
81                                 CallSeq.Add (">> TestRemoteContext");\r
82                                 object[] at = new object[] { new ContextHookAttribute ("1",true), new UrlAttribute ("tcp://localhost:1122")};\r
83                                 CallSeq.Add (">> Creating instance");\r
84                                 ServerList list = (ServerList) Activator.CreateInstance (typeof (ServerList),null,at);\r
85                                 CallSeq.Add ("<< Creating instance");\r
86                                 RunTestObject (list);\r
87                                 CallSeq.Add ("<< TestRemoteContext");\r
88                                 CallSeq.Check (Checks.seqRemoteContext,1);\r
89 \r
90                                 CallSeq.Init ("TestRemoteContext Server");\r
91                                 CallSeq.Seq = server.GetRemoteSeq ();\r
92                                 CallSeq.Check (Checks.seqRemoteContext,2);\r
93                         }\r
94                         catch (Exception ex)\r
95                         {\r
96                                 Console.WriteLine (ex);\r
97                                 throw ex;\r
98                         }\r
99                         finally\r
100                         {\r
101                                 server.Stop ();\r
102                         }\r
103 //                      AppDomain.Unload (domain);\r
104                 }\r
105 \r
106                 void RunTestObject (ServerList list)\r
107                 {\r
108                         DynProperty prop1 = new DynProperty("defcontext");\r
109                         DynProperty prop2 = new DynProperty("proxy");\r
110 \r
111                         try\r
112                         {\r
113                                 Context.RegisterDynamicProperty (prop1, null, Context.DefaultContext);\r
114                                 Context.RegisterDynamicProperty (prop2, list, null);\r
115 \r
116                                 CallSeq.Add(">> Clear");\r
117                                 list.GetType().GetMethod ("Clear").Invoke (list, null);\r
118                                 CallSeq.Add("<< Clear");\r
119 \r
120                                 CallSeq.Add(">> Set fields");\r
121                                 list.NumVal = 4;\r
122                                 list.StrVal = "hi";\r
123                                 CallSeq.Add("<< Set fields");\r
124 \r
125                                 CallSeq.Add(">> Get fields");\r
126                                 int nv = list.NumVal;\r
127                                 string sv = list.StrVal;\r
128                                 CallSeq.Add("<< Get fields");\r
129                                 CallSeq.Add ("Get fields Result: " + nv + " / " + sv);\r
130 \r
131                                 CallSeq.Add(">> ParameterTest1");\r
132                                 string b;\r
133                                 list.ParameterTest1 (112, out b);\r
134                                 CallSeq.Add("<< ParameterTest1");\r
135                                 CallSeq.Add("ParameterTest1 Result: " + b);\r
136 \r
137                                 CallSeq.Add(">> ParameterTest2");\r
138                                 int bn;\r
139                                 list.ParameterTest2 (112, out bn);\r
140                                 CallSeq.Add("<< ParameterTest2");\r
141                                 CallSeq.Add("ParameterTest2 Result: " + bn);\r
142 \r
143                                 // These are remote calls that return references to remote objects\r
144 \r
145                                 CallSeq.Add (">> Creating two remote items");\r
146                                 ServerObject item0 = list.CreateItem ("S0", 33);\r
147 \r
148                                 item0.SetValue (55);\r
149                                 list.Add (item0);\r
150 \r
151                                 ServerObject item1 = list.NewItem ("S1");\r
152                                 item1.SetValue (111);\r
153                                 ServerObject item2 = list.NewItem ("S2");\r
154                                 item2.SetValue (222);\r
155                                 CallSeq.Add ("<< Creating two remote items");\r
156 \r
157                                 // Two objects created in this client app\r
158 \r
159                                 CallSeq.Add (">> Creating two client items");\r
160                                 ServerObject item3 = new ServerObject ("C1");\r
161                                 item3.SetValue (333);\r
162                                 ServerObject item4 = new ServerObject ("C2");\r
163                                 item4.SetValue (444);\r
164                                 CallSeq.Add ("<< Creating two client items");\r
165 \r
166                                 // Object references passed to the remote list\r
167 \r
168                                 CallSeq.Add (">> Adding items");\r
169                                 list.Add (item3);\r
170                                 list.Add (item4);\r
171                                 CallSeq.Add ("<< Adding items");\r
172 \r
173                                 // This sums all values of the ServerObjects in the list. The server\r
174                                 // makes a remote call to this client to get the value of the\r
175                                 // objects created locally\r
176 \r
177                                 CallSeq.Add (">> Processing items");\r
178                                 list.ProcessItems ();\r
179                                 CallSeq.Add ("<< Processing items");\r
180                         }\r
181                         catch (Exception ex)\r
182                         {\r
183                                 Console.WriteLine ("ERR:" + ex.ToString());\r
184                                 throw;\r
185                         }\r
186                         \r
187                         Context.UnregisterDynamicProperty ("defcontext", null, Context.DefaultContext);\r
188                         Context.UnregisterDynamicProperty ("proxy", list, null);\r
189                 }\r
190         }\r
191 \r
192         class DomainServer: MarshalByRefObject\r
193         {\r
194                 TcpChannel ch;\r
195                 \r
196                 public DomainServer()\r
197                 {\r
198                         CallSeq.CommonDomainId = 2;\r
199                         try\r
200                         {\r
201                                 ch = new TcpChannel(1122);\r
202                                 ChannelServices.RegisterChannel (ch);\r
203 \r
204                                 RemotingConfiguration.RegisterActivatedServiceType (typeof (ServerList));\r
205                                 RemotingConfiguration.RegisterActivatedServiceType (typeof (ServerObject));\r
206                         }\r
207                         catch (Exception ex)\r
208                         {\r
209                                 Console.WriteLine (ex.ToString());\r
210                                 throw;\r
211                         }\r
212                 }\r
213 \r
214                 public ArrayList GetRemoteSeq()\r
215                 {\r
216                         return CallSeq.Seq;\r
217                 }\r
218 \r
219                 public void Stop ()\r
220                 {\r
221                         if (ch != null)\r
222                                 ChannelServices.UnregisterChannel (ch);\r
223                 }\r
224         }\r
225 \r
226         class Checks\r
227         {\r
228                 public static string[] seqSameContext = \r
229                         {\r
230                                 "001 (d1,c0) >> TestSameContext",\r
231                                 "002 (d1,c0) >> Creating instance",\r
232                                 "003 (d1,c0) ContextHookAttribute(x.d1).IsContextOK",\r
233                                 "004 (d1,c0) List created",\r
234                                 "005 (d1,c0) << Creating instance",\r
235                                 "006 (d1,c0) IContributeDynamicSink(defcontext).GetDynamicSink",\r
236                                 "007 (d1,c0) IContributeDynamicSink(proxy).GetDynamicSink",\r
237                                 "008 (d1,c0) >> Clear",\r
238                                 "009 (d1,c0) Clearing",\r
239                                 "010 (d1,c0) << Clear",\r
240                                 "011 (d1,c0) >> Set fields",\r
241                                 "012 (d1,c0) << Set fields",\r
242                                 "013 (d1,c0) >> Get fields",\r
243                                 "014 (d1,c0) << Get fields",\r
244                                 "015 (d1,c0) Get fields Result: 4 / hi",\r
245                                 "016 (d1,c0) >> ParameterTest1",\r
246                                 "017 (d1,c0) << ParameterTest1",\r
247                                 "018 (d1,c0) ParameterTest1 Result: adeu 112",\r
248                                 "019 (d1,c0) >> ParameterTest2",\r
249                                 "020 (d1,c0) << ParameterTest2",\r
250                                 "021 (d1,c0) ParameterTest2 Result: 113",\r
251                                 "022 (d1,c0) >> Creating two remote items",\r
252                                 "023 (d1,c0) ServerObject S0: setting 33",\r
253                                 "024 (d1,c0) ServerObject S0: setting 55",\r
254                                 "025 (d1,c0) Added S0",\r
255                                 "026 (d1,c0) Added S1",\r
256                                 "027 (d1,c0) ServerObject S1: setting 111",\r
257                                 "028 (d1,c0) Added S2",\r
258                                 "029 (d1,c0) ServerObject S2: setting 222",\r
259                                 "030 (d1,c0) << Creating two remote items",\r
260                                 "031 (d1,c0) >> Creating two client items",\r
261                                 "032 (d1,c0) ServerObject C1: setting 333",\r
262                                 "033 (d1,c0) ServerObject C2: setting 444",\r
263                                 "034 (d1,c0) << Creating two client items",\r
264                                 "035 (d1,c0) >> Adding items",\r
265                                 "036 (d1,c0) Added C1",\r
266                                 "037 (d1,c0) Added C2",\r
267                                 "038 (d1,c0) << Adding items",\r
268                                 "039 (d1,c0) >> Processing items",\r
269                                 "040 (d1,c0) Processing",\r
270                                 "041 (d1,c0) ServerObject S0: getting 55",\r
271                                 "042 (d1,c0) ServerObject S1: getting 111",\r
272                                 "043 (d1,c0) ServerObject S2: getting 222",\r
273                                 "044 (d1,c0) ServerObject C1: getting 333",\r
274                                 "045 (d1,c0) ServerObject C2: getting 444",\r
275                                 "046 (d1,c0) Total: 1165",\r
276                                 "047 (d1,c0) << Processing items",\r
277                                 "048 (d1,c0) << TestSameContext",\r
278                 };\r
279 \r
280                 public static string[] seqNewContext =\r
281                         {\r
282                                 "001 (d1,c0) >> TestNewContext",\r
283                                 "002 (d1,c0) >> Creating instance",\r
284                                 "003 (d1,c0) ContextHookAttribute(1.d1).IsContextOK",\r
285                                 "004 (d1,c0) IContextAttribute(1.d1).GetPropertiesForNewContext",\r
286                                 "005 (d1,c0) IContextAttribute(x.d1).GetPropertiesForNewContext",\r
287                                 "006 (d1,c0) <-> global DynamicSink Start .ctor client:True",\r
288                                 "007 (d1,c0) ContextHookAttribute(1.d1).Freeze",\r
289                                 "008 (d1,c0) ContextHookAttribute(x.d1).Freeze",\r
290                                 "009 (d1,c0) ContextHookAttribute(1.d1).IsNewContextOK",\r
291                                 "010 (d1,c0) ContextHookAttribute(x.d1).IsNewContextOK",\r
292                                 "011 (d1,c1) IContributeServerContextSink(x.d1).GetServerContextSink",\r
293                                 "012 (d1,c1) IContributeServerContextSink(1.d1).GetServerContextSink",\r
294                                 "013 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage .ctor",\r
295                                 "014 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage .ctor",
296                                 
297                                 // Changed the order. I think this is a safe chenge, since it is
298                                 // not defined where the call to GetEnvoySink should be made.
299                                 "015 (d1,c1) IContributeEnvoySink(1.d1).GetEnvoySink",\r
300                                 "016 (d1,c1) IContributeEnvoySink(x.d1).GetEnvoySink",\r
301                                 "017 (d1,c1) List created",
302                                 
303 /*                              "015 (d1,c1) List created",
304                                 "016 (d1,c1) IContributeEnvoySink(1.d1).GetEnvoySink",\r
305                                 "017 (d1,c1) IContributeEnvoySink(x.d1).GetEnvoySink",\r
306 */                              \r
307                                 "018 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage .ctor",\r
308                                 "019 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage .ctor",\r
309                                 "020 (d1,c0) <-> global DynamicSink Finish .ctor client:True",\r
310                                 "021 (d1,c0) << Creating instance",\r
311                                 "022 (d1,c0) IContributeDynamicSink(defcontext).GetDynamicSink",\r
312                                 "023 (d1,c0) IContributeDynamicSink(proxy).GetDynamicSink",\r
313                                 "024 (d1,c0) >> Clear",\r
314                                 "025 (d1,c0) <-> proxy DynamicSink Start Clear client:True",\r
315                                 "026 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage Clear",\r
316                                 "027 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage Clear",\r
317                                 "028 (d1,c0) <-> global DynamicSink Start Clear client:True",\r
318                                 "029 (d1,c0) <-> defcontext DynamicSink Start Clear client:True",\r
319                                 "030 (d1,c1) <-> global DynamicSink Start Clear client:False",\r
320                                 "031 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage Clear",\r
321                                 "032 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage Clear",\r
322                                 "033 (d1,c1) IContributeObjectSink(x.d1).GetObjectSink",\r
323                                 "034 (d1,c1) IContributeObjectSink(1.d1).GetObjectSink",\r
324                                 "035 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage Clear",\r
325                                 "036 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage Clear",\r
326                                 "037 (d1,c1) Clearing",\r
327                                 "038 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage Clear",\r
328                                 "039 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage Clear",\r
329                                 "040 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage Clear",\r
330                                 "041 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage Clear",\r
331                                 "042 (d1,c1) <-> global DynamicSink Finish Clear client:False",\r
332                                 "043 (d1,c0) <-> global DynamicSink Finish Clear client:True",\r
333                                 "044 (d1,c0) <-> defcontext DynamicSink Finish Clear client:True",\r
334                                 "045 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage Clear",\r
335                                 "046 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage Clear",\r
336                                 "047 (d1,c0) <-> proxy DynamicSink Finish Clear client:True",\r
337                                 "048 (d1,c0) << Clear",\r
338                                 "049 (d1,c0) >> Set fields",\r
339                                 "050 (d1,c0) <-> proxy DynamicSink Start FieldSetter client:True",\r
340                                 "051 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage FieldSetter",\r
341                                 "052 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage FieldSetter",\r
342                                 "053 (d1,c0) <-> global DynamicSink Start FieldSetter client:True",\r
343                                 "054 (d1,c0) <-> defcontext DynamicSink Start FieldSetter client:True",\r
344                                 "055 (d1,c1) <-> global DynamicSink Start FieldSetter client:False",\r
345                                 "056 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage FieldSetter",\r
346                                 "057 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage FieldSetter",\r
347                                 "058 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage FieldSetter",\r
348                                 "059 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage FieldSetter",\r
349                                 "060 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage FieldSetter",\r
350                                 "061 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage FieldSetter",\r
351                                 "062 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage FieldSetter",\r
352                                 "063 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage FieldSetter",\r
353                                 "064 (d1,c1) <-> global DynamicSink Finish FieldSetter client:False",\r
354                                 "065 (d1,c0) <-> global DynamicSink Finish FieldSetter client:True",\r
355                                 "066 (d1,c0) <-> defcontext DynamicSink Finish FieldSetter client:True",\r
356                                 "067 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage FieldSetter",\r
357                                 "068 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage FieldSetter",\r
358                                 "069 (d1,c0) <-> proxy DynamicSink Finish FieldSetter client:True",\r
359                                 "070 (d1,c0) <-> proxy DynamicSink Start FieldSetter client:True",\r
360                                 "071 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage FieldSetter",\r
361                                 "072 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage FieldSetter",\r
362                                 "073 (d1,c0) <-> global DynamicSink Start FieldSetter client:True",\r
363                                 "074 (d1,c0) <-> defcontext DynamicSink Start FieldSetter client:True",\r
364                                 "075 (d1,c1) <-> global DynamicSink Start FieldSetter client:False",\r
365                                 "076 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage FieldSetter",\r
366                                 "077 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage FieldSetter",\r
367                                 "078 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage FieldSetter",\r
368                                 "079 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage FieldSetter",\r
369                                 "080 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage FieldSetter",\r
370                                 "081 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage FieldSetter",\r
371                                 "082 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage FieldSetter",\r
372                                 "083 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage FieldSetter",\r
373                                 "084 (d1,c1) <-> global DynamicSink Finish FieldSetter client:False",\r
374                                 "085 (d1,c0) <-> global DynamicSink Finish FieldSetter client:True",\r
375                                 "086 (d1,c0) <-> defcontext DynamicSink Finish FieldSetter client:True",\r
376                                 "087 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage FieldSetter",\r
377                                 "088 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage FieldSetter",\r
378                                 "089 (d1,c0) <-> proxy DynamicSink Finish FieldSetter client:True",\r
379                                 "090 (d1,c0) << Set fields",\r
380                                 "091 (d1,c0) >> Get fields",\r
381                                 "092 (d1,c0) <-> proxy DynamicSink Start FieldGetter client:True",\r
382                                 "093 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage FieldGetter",\r
383 \r
384                                 "094 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage FieldGetter",\r
385                                 "095 (d1,c0) <-> global DynamicSink Start FieldGetter client:True",\r
386                                 "096 (d1,c0) <-> defcontext DynamicSink Start FieldGetter client:True",\r
387                                 "097 (d1,c1) <-> global DynamicSink Start FieldGetter client:False",\r
388                                 "098 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage FieldGetter",\r
389                                 "099 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage FieldGetter",\r
390                                 "100 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage FieldGetter",\r
391                                 "101 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage FieldGetter",\r
392                                 "102 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage FieldGetter",\r
393                                 "103 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage FieldGetter",\r
394                                 "104 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage FieldGetter",\r
395                                 "105 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage FieldGetter",\r
396                                 "106 (d1,c1) <-> global DynamicSink Finish FieldGetter client:False",\r
397                                 "107 (d1,c0) <-> global DynamicSink Finish FieldGetter client:True",\r
398                                 "108 (d1,c0) <-> defcontext DynamicSink Finish FieldGetter client:True",\r
399                                 "109 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage FieldGetter",\r
400                                 "110 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage FieldGetter",\r
401                                 "111 (d1,c0) <-> proxy DynamicSink Finish FieldGetter client:True",\r
402                                 "112 (d1,c0) <-> proxy DynamicSink Start FieldGetter client:True",\r
403                                 "113 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage FieldGetter",\r
404                                 "114 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage FieldGetter",\r
405                                 "115 (d1,c0) <-> global DynamicSink Start FieldGetter client:True",\r
406                                 "116 (d1,c0) <-> defcontext DynamicSink Start FieldGetter client:True",\r
407                                 "117 (d1,c1) <-> global DynamicSink Start FieldGetter client:False",\r
408                                 "118 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage FieldGetter",\r
409                                 "119 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage FieldGetter",\r
410                                 "120 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage FieldGetter",\r
411                                 "121 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage FieldGetter",\r
412 \r
413                                 "122 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage FieldGetter",\r
414                                 "123 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage FieldGetter",\r
415                                 "124 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage FieldGetter",\r
416                                 "125 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage FieldGetter",\r
417                                 "126 (d1,c1) <-> global DynamicSink Finish FieldGetter client:False",\r
418                                 "127 (d1,c0) <-> global DynamicSink Finish FieldGetter client:True",\r
419                                 "128 (d1,c0) <-> defcontext DynamicSink Finish FieldGetter client:True",\r
420                                 "129 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage FieldGetter",\r
421                                 "130 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage FieldGetter",\r
422                                 "131 (d1,c0) <-> proxy DynamicSink Finish FieldGetter client:True",\r
423                                 "132 (d1,c0) << Get fields",\r
424                                 "133 (d1,c0) Get fields Result: 4 / hi",\r
425                                 "134 (d1,c0) >> ParameterTest1",\r
426                                 "135 (d1,c0) <-> proxy DynamicSink Start ParameterTest1 client:True",\r
427                                 "136 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage ParameterTest1",\r
428                                 "137 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage ParameterTest1",\r
429                                 "138 (d1,c0) <-> global DynamicSink Start ParameterTest1 client:True",\r
430                                 "139 (d1,c0) <-> defcontext DynamicSink Start ParameterTest1 client:True",\r
431                                 "140 (d1,c1) <-> global DynamicSink Start ParameterTest1 client:False",\r
432                                 "141 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage ParameterTest1",\r
433                                 "142 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage ParameterTest1",\r
434                                 "143 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage ParameterTest1",\r
435                                 "144 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage ParameterTest1",\r
436                                 "145 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage ParameterTest1",\r
437                                 "146 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage ParameterTest1",\r
438                                 "147 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage ParameterTest1",\r
439                                 "148 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage ParameterTest1",\r
440                                 "149 (d1,c1) <-> global DynamicSink Finish ParameterTest1 client:False",\r
441                                 "150 (d1,c0) <-> global DynamicSink Finish ParameterTest1 client:True",\r
442                                 "151 (d1,c0) <-> defcontext DynamicSink Finish ParameterTest1 client:True",\r
443                                 "152 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage ParameterTest1",\r
444                                 "153 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage ParameterTest1",\r
445                                 "154 (d1,c0) <-> proxy DynamicSink Finish ParameterTest1 client:True",\r
446                                 "155 (d1,c0) << ParameterTest1",\r
447                                 "156 (d1,c0) ParameterTest1 Result: adeu 112",\r
448                                 "157 (d1,c0) >> ParameterTest2",\r
449                                 "158 (d1,c0) <-> proxy DynamicSink Start ParameterTest2 client:True",\r
450                                 "159 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage ParameterTest2",\r
451                                 "160 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage ParameterTest2",\r
452                                 "161 (d1,c0) <-> global DynamicSink Start ParameterTest2 client:True",\r
453                                 "162 (d1,c0) <-> defcontext DynamicSink Start ParameterTest2 client:True",\r
454                                 "163 (d1,c1) <-> global DynamicSink Start ParameterTest2 client:False",\r
455                                 "164 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage ParameterTest2",\r
456 \r
457                                 "165 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage ParameterTest2",\r
458                                 "166 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage ParameterTest2",\r
459                                 "167 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage ParameterTest2",\r
460                                 "168 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage ParameterTest2",\r
461                                 "169 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage ParameterTest2",\r
462                                 "170 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage ParameterTest2",\r
463                                 "171 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage ParameterTest2",\r
464                                 "172 (d1,c1) <-> global DynamicSink Finish ParameterTest2 client:False",\r
465                                 "173 (d1,c0) <-> global DynamicSink Finish ParameterTest2 client:True",\r
466                                 "174 (d1,c0) <-> defcontext DynamicSink Finish ParameterTest2 client:True",\r
467                                 "175 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage ParameterTest2",\r
468                                 "176 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage ParameterTest2",\r
469                                 "177 (d1,c0) <-> proxy DynamicSink Finish ParameterTest2 client:True",\r
470                                 "178 (d1,c0) << ParameterTest2",\r
471                                 "179 (d1,c0) ParameterTest2 Result: 113",\r
472                                 "180 (d1,c0) >> Creating two remote items",\r
473                                 "181 (d1,c0) <-> proxy DynamicSink Start CreateItem client:True",\r
474                                 "182 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage CreateItem",\r
475                                 "183 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage CreateItem",\r
476                                 "184 (d1,c0) <-> global DynamicSink Start CreateItem client:True",\r
477                                 "185 (d1,c0) <-> defcontext DynamicSink Start CreateItem client:True",\r
478                                 "186 (d1,c1) <-> global DynamicSink Start CreateItem client:False",\r
479                                 "187 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage CreateItem",\r
480                                 "188 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage CreateItem",\r
481                                 "189 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage CreateItem",\r
482                                 "190 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage CreateItem",\r
483                                 "191 (d1,c1) ServerObject S0: setting 33",\r
484                                 "192 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage CreateItem",\r
485                                 "193 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage CreateItem",\r
486                                 "194 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage CreateItem",\r
487                                 "195 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage CreateItem",\r
488                                 "196 (d1,c1) <-> global DynamicSink Finish CreateItem client:False",\r
489                                 "197 (d1,c0) <-> global DynamicSink Finish CreateItem client:True",\r
490                                 "198 (d1,c0) <-> defcontext DynamicSink Finish CreateItem client:True",\r
491                                 "199 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage CreateItem",\r
492                                 "200 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage CreateItem",\r
493                                 "201 (d1,c0) <-> proxy DynamicSink Finish CreateItem client:True",\r
494                                 "202 (d1,c0) ServerObject S0: setting 55",\r
495                                 "203 (d1,c0) <-> proxy DynamicSink Start Add client:True",\r
496                                 "204 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage Add",\r
497                                 "205 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage Add",\r
498                                 "206 (d1,c0) <-> global DynamicSink Start Add client:True",\r
499                                 "207 (d1,c0) <-> defcontext DynamicSink Start Add client:True",\r
500                                 "208 (d1,c1) <-> global DynamicSink Start Add client:False",\r
501                                 "209 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage Add",\r
502                                 "210 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage Add",\r
503                                 "211 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage Add",\r
504                                 "212 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage Add",\r
505                                 "213 (d1,c1) Added S0",\r
506                                 "214 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage Add",\r
507                                 "215 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage Add",\r
508                                 "216 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage Add",\r
509                                 "217 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage Add",\r
510                                 "218 (d1,c1) <-> global DynamicSink Finish Add client:False",\r
511                                 "219 (d1,c0) <-> global DynamicSink Finish Add client:True",\r
512                                 "220 (d1,c0) <-> defcontext DynamicSink Finish Add client:True",\r
513                                 "221 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage Add",\r
514                                 "222 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage Add",\r
515                                 "223 (d1,c0) <-> proxy DynamicSink Finish Add client:True",\r
516                                 "224 (d1,c0) <-> proxy DynamicSink Start NewItem client:True",\r
517                                 "225 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage NewItem",\r
518                                 "226 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage NewItem",\r
519                                 "227 (d1,c0) <-> global DynamicSink Start NewItem client:True",\r
520                                 "228 (d1,c0) <-> defcontext DynamicSink Start NewItem client:True",\r
521                                 "229 (d1,c1) <-> global DynamicSink Start NewItem client:False",\r
522                                 "230 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage NewItem",\r
523                                 "231 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage NewItem",\r
524                                 "232 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage NewItem",\r
525                                 "233 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage NewItem",\r
526                                 "234 (d1,c1) Added S1",\r
527                                 "235 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage NewItem",\r
528                                 "236 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage NewItem",\r
529                                 "237 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage NewItem",\r
530                                 "238 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage NewItem",\r
531                                 "239 (d1,c1) <-> global DynamicSink Finish NewItem client:False",\r
532                                 "240 (d1,c0) <-> global DynamicSink Finish NewItem client:True",\r
533                                 "241 (d1,c0) <-> defcontext DynamicSink Finish NewItem client:True",\r
534                                 "242 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage NewItem",\r
535                                 "243 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage NewItem",\r
536                                 "244 (d1,c0) <-> proxy DynamicSink Finish NewItem client:True",\r
537                                 "245 (d1,c0) ServerObject S1: setting 111",\r
538                                 "246 (d1,c0) <-> proxy DynamicSink Start NewItem client:True",\r
539                                 "247 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage NewItem",\r
540                                 "248 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage NewItem",\r
541                                 "249 (d1,c0) <-> global DynamicSink Start NewItem client:True",\r
542                                 "250 (d1,c0) <-> defcontext DynamicSink Start NewItem client:True",\r
543                                 "251 (d1,c1) <-> global DynamicSink Start NewItem client:False",\r
544                                 "252 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage NewItem",\r
545                                 "253 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage NewItem",\r
546                                 "254 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage NewItem",\r
547                                 "255 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage NewItem",\r
548                                 "256 (d1,c1) Added S2",\r
549                                 "257 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage NewItem",\r
550                                 "258 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage NewItem",\r
551                                 "259 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage NewItem",\r
552                                 "260 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage NewItem",\r
553                                 "261 (d1,c1) <-> global DynamicSink Finish NewItem client:False",\r
554                                 "262 (d1,c0) <-> global DynamicSink Finish NewItem client:True",\r
555                                 "263 (d1,c0) <-> defcontext DynamicSink Finish NewItem client:True",\r
556                                 "264 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage NewItem",\r
557                                 "265 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage NewItem",\r
558                                 "266 (d1,c0) <-> proxy DynamicSink Finish NewItem client:True",\r
559                                 "267 (d1,c0) ServerObject S2: setting 222",\r
560                                 "268 (d1,c0) << Creating two remote items",\r
561                                 "269 (d1,c0) >> Creating two client items",\r
562                                 "270 (d1,c0) ServerObject C1: setting 333",\r
563                                 "271 (d1,c0) ServerObject C2: setting 444",\r
564                                 "272 (d1,c0) << Creating two client items",\r
565                                 "273 (d1,c0) >> Adding items",\r
566                                 "274 (d1,c0) <-> proxy DynamicSink Start Add client:True",\r
567                                 "275 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage Add",\r
568                                 "276 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage Add",\r
569                                 "277 (d1,c0) <-> global DynamicSink Start Add client:True",\r
570                                 "278 (d1,c0) <-> defcontext DynamicSink Start Add client:True",\r
571                                 "279 (d1,c1) <-> global DynamicSink Start Add client:False",\r
572                                 "280 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage Add",\r
573                                 "281 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage Add",\r
574                                 "282 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage Add",\r
575                                 "283 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage Add",\r
576                                 "284 (d1,c1) Added C1",\r
577                                 "285 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage Add",\r
578                                 "286 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage Add",\r
579                                 "287 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage Add",\r
580                                 "288 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage Add",\r
581                                 "289 (d1,c1) <-> global DynamicSink Finish Add client:False",\r
582                                 "290 (d1,c0) <-> global DynamicSink Finish Add client:True",\r
583                                 "291 (d1,c0) <-> defcontext DynamicSink Finish Add client:True",\r
584                                 "292 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage Add",\r
585                                 "293 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage Add",\r
586                                 "294 (d1,c0) <-> proxy DynamicSink Finish Add client:True",\r
587                                 "295 (d1,c0) <-> proxy DynamicSink Start Add client:True",\r
588                                 "296 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage Add",\r
589                                 "297 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage Add",\r
590                                 "298 (d1,c0) <-> global DynamicSink Start Add client:True",\r
591                                 "299 (d1,c0) <-> defcontext DynamicSink Start Add client:True",\r
592                                 "300 (d1,c1) <-> global DynamicSink Start Add client:False",\r
593                                 "301 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage Add",\r
594                                 "302 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage Add",\r
595 \r
596                                 "303 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage Add",\r
597                                 "304 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage Add",\r
598                                 "305 (d1,c1) Added C2",\r
599                                 "306 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage Add",\r
600                                 "307 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage Add",\r
601                                 "308 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage Add",\r
602                                 "309 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage Add",\r
603                                 "310 (d1,c1) <-> global DynamicSink Finish Add client:False",\r
604                                 "311 (d1,c0) <-> global DynamicSink Finish Add client:True",\r
605                                 "312 (d1,c0) <-> defcontext DynamicSink Finish Add client:True",\r
606                                 "313 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage Add",\r
607                                 "314 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage Add",\r
608                                 "315 (d1,c0) <-> proxy DynamicSink Finish Add client:True",\r
609                                 "316 (d1,c0) << Adding items",\r
610                                 "317 (d1,c0) >> Processing items",\r
611                                 "318 (d1,c0) <-> proxy DynamicSink Start ProcessItems client:True",\r
612                                 "319 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage ProcessItems",\r
613                                 "320 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage ProcessItems",\r
614                                 "321 (d1,c0) <-> global DynamicSink Start ProcessItems client:True",\r
615                                 "322 (d1,c0) <-> defcontext DynamicSink Start ProcessItems client:True",\r
616                                 "323 (d1,c1) <-> global DynamicSink Start ProcessItems client:False",\r
617                                 "324 (d1,c1) --> ServerContextSink(1.d1) SyncProcessMessage ProcessItems",\r
618                                 "325 (d1,c1) --> ServerContextSink(x.d1) SyncProcessMessage ProcessItems",\r
619                                 "326 (d1,c1) --> ObjectSink(1.d1) SyncProcessMessage ProcessItems",\r
620                                 "327 (d1,c1) --> ObjectSink(x.d1) SyncProcessMessage ProcessItems",\r
621                                 "328 (d1,c1) Processing",\r
622                                 "329 (d1,c1) ServerObject S0: getting 55",\r
623                                 "330 (d1,c1) ServerObject S1: getting 111",\r
624                                 "331 (d1,c1) ServerObject S2: getting 222",\r
625                                 "332 (d1,c1) ServerObject C1: getting 333",\r
626                                 "333 (d1,c1) ServerObject C2: getting 444",\r
627                                 "334 (d1,c1) Total: 1165",\r
628                                 "335 (d1,c1) <-- ObjectSink(x.d1) SyncProcessMessage ProcessItems",\r
629                                 "336 (d1,c1) <-- ObjectSink(1.d1) SyncProcessMessage ProcessItems",\r
630                                 "337 (d1,c1) <-- ServerContextSink(x.d1) SyncProcessMessage ProcessItems",\r
631                                 "338 (d1,c1) <-- ServerContextSink(1.d1) SyncProcessMessage ProcessItems",\r
632                                 "339 (d1,c1) <-> global DynamicSink Finish ProcessItems client:False",\r
633                                 "340 (d1,c0) <-> global DynamicSink Finish ProcessItems client:True",\r
634                                 "341 (d1,c0) <-> defcontext DynamicSink Finish ProcessItems client:True",\r
635 \r
636                                 "342 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage ProcessItems",\r
637                                 "343 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage ProcessItems",\r
638                                 "344 (d1,c0) <-> proxy DynamicSink Finish ProcessItems client:True",\r
639                                 "345 (d1,c0) << Processing items",\r
640                                 "346 (d1,c0) << TestNewContext",\r
641                 };\r
642 \r
643                 public static string[] seqRemoteContext =\r
644                         {\r
645                                 "001 (d1,c0) >> TestRemoteContext",\r
646                                 "002 (d1,c0) >> Creating instance",\r
647                                 "003 (d1,c0) IContextAttribute(1.d1).GetPropertiesForNewContext",\r
648                                 "004 (d1,c0) IContextAttribute(x.d1).GetPropertiesForNewContext",\r
649                                 "005 (d1,c0) <-> global DynamicSink Start .ctor client:True",\r
650                                 "006 (d1,c0) <-> global DynamicSink Start Activate client:True",\r
651                                 "001 (d2,c0) IContextAttribute(x.d2).GetPropertiesForNewContext",\r
652                                 "002 (d2,c0) ContextHookAttribute(1.d1).Freeze",\r
653                                 "003 (d2,c0) ContextHookAttribute(x.d1).Freeze",\r
654                                 "004 (d2,c0) ContextHookAttribute(x.d2).Freeze",\r
655                                 "005 (d2,c0) ContextHookAttribute(1.d1).IsNewContextOK",\r
656                                 "006 (d2,c0) ContextHookAttribute(x.d1).IsNewContextOK",\r
657                                 "007 (d2,c0) ContextHookAttribute(x.d2).IsNewContextOK",\r
658                                 "008 (d2,c1) IContributeServerContextSink(x.d2).GetServerContextSink",\r
659                                 "009 (d2,c1) IContributeServerContextSink(x.d1).GetServerContextSink",\r
660                                 "010 (d2,c1) IContributeServerContextSink(1.d1).GetServerContextSink",\r
661                                 "011 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage .ctor",\r
662                                 "012 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage .ctor",\r
663                                 "013 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage .ctor",     \r
664                                 "014 (d2,c1) IContributeEnvoySink(1.d1).GetEnvoySink",\r
665                                 "015 (d2,c1) IContributeEnvoySink(x.d1).GetEnvoySink",\r
666                                 "016 (d2,c1) IContributeEnvoySink(x.d2).GetEnvoySink",\r
667                                 "017 (d2,c1) List created",\r
668                                 "018 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage .ctor",\r
669                                 "019 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage .ctor",\r
670                                 "020 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage .ctor",\r
671                                 "#021 (d2,c0) IContributeObjectSink(x.d2).GetObjectSink",\r
672                                 "#022 (d2,c0) IContributeObjectSink(x.d1).GetObjectSink",\r
673                                 "#023 (d2,c0) IContributeObjectSink(1.d1).GetObjectSink",\r
674                                 "024 (d2,c0) --> EnvoySink(x.d2) SyncProcessMessage InitializeLifetimeService",\r
675                                 "025 (d2,c0) --> EnvoySink(x.d1) SyncProcessMessage InitializeLifetimeService",\r
676                                 "026 (d2,c0) --> EnvoySink(1.d1) SyncProcessMessage InitializeLifetimeService",\r
677                                 "027 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage InitializeLifetimeService",\r
678                                 "028 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage InitializeLifetimeService",\r
679                                 "029 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage InitializeLifetimeService",\r
680                                 "030 (d2,c1) IContributeObjectSink(x.d2).GetObjectSink",\r
681                                 "031 (d2,c1) IContributeObjectSink(x.d1).GetObjectSink",\r
682                                 "032 (d2,c1) IContributeObjectSink(1.d1).GetObjectSink",\r
683                                 "033 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage InitializeLifetimeService",\r
684                                 "034 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage InitializeLifetimeService",\r
685                                 "035 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage InitializeLifetimeService",\r
686                                 "036 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage InitializeLifetimeService",\r
687                                 "037 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage InitializeLifetimeService",\r
688                                 "038 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage InitializeLifetimeService",\r
689                                 "039 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage InitializeLifetimeService",\r
690                                 "040 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage InitializeLifetimeService",\r
691                                 "041 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage InitializeLifetimeService",\r
692                                 "042 (d2,c0) <-- EnvoySink(1.d1) SyncProcessMessage InitializeLifetimeService",\r
693                                 "043 (d2,c0) <-- EnvoySink(x.d1) SyncProcessMessage InitializeLifetimeService",\r
694                                 "044 (d2,c0) <-- EnvoySink(x.d2) SyncProcessMessage InitializeLifetimeService",\r
695                                 "007 (d1,c0) <-> global DynamicSink Finish Activate client:True",\r
696                                 "008 (d1,c0) <-> global DynamicSink Finish .ctor client:True",\r
697                                 "009 (d1,c0) << Creating instance",\r
698                                 "010 (d1,c0) IContributeDynamicSink(defcontext).GetDynamicSink",\r
699                                 "011 (d1,c0) IContributeDynamicSink(proxy).GetDynamicSink",\r
700                                 "012 (d1,c0) >> Clear",\r
701                                 "013 (d1,c0) <-> proxy DynamicSink Start Clear client:True",\r
702                                 "014 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage Clear",\r
703                                 "015 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage Clear",\r
704                                 "016 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage Clear",\r
705                                 "017 (d1,c0) <-> global DynamicSink Start Clear client:True",\r
706                                 "018 (d1,c0) <-> defcontext DynamicSink Start Clear client:True",\r
707                                 "045 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage Clear",\r
708                                 "046 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage Clear",\r
709                                 "047 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage Clear",\r
710                                 "048 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage Clear",\r
711                                 "049 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage Clear",\r
712                                 "050 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage Clear",\r
713                                 "051 (d2,c1) Clearing",\r
714                                 "052 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage Clear",\r
715                                 "053 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage Clear",\r
716                                 "054 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage Clear",\r
717                                 "055 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage Clear",\r
718                                 "056 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage Clear",\r
719                                 "057 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage Clear",\r
720                                 "019 (d1,c0) <-> global DynamicSink Finish Clear client:True",\r
721                                 "020 (d1,c0) <-> defcontext DynamicSink Finish Clear client:True",\r
722                                 "021 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage Clear",\r
723                                 "022 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage Clear",\r
724                                 "023 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage Clear",\r
725                                 "024 (d1,c0) <-> proxy DynamicSink Finish Clear client:True",\r
726                                 "025 (d1,c0) << Clear",\r
727                                 "026 (d1,c0) >> Set fields",\r
728                                 "027 (d1,c0) <-> proxy DynamicSink Start FieldSetter client:True",\r
729                                 "028 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage FieldSetter",\r
730                                 "029 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage FieldSetter",\r
731                                 "030 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage FieldSetter",\r
732                                 "031 (d1,c0) <-> global DynamicSink Start FieldSetter client:True",\r
733                                 "032 (d1,c0) <-> defcontext DynamicSink Start FieldSetter client:True",\r
734                                 "058 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage FieldSetter",\r
735                                 "059 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage FieldSetter",\r
736                                 "060 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage FieldSetter",\r
737                                 "061 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage FieldSetter",\r
738                                 "062 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage FieldSetter",\r
739                                 "063 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage FieldSetter",\r
740                                 "064 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage FieldSetter",\r
741                                 "065 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage FieldSetter",\r
742                                 "066 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage FieldSetter",\r
743                                 "067 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage FieldSetter",\r
744                                 "068 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage FieldSetter",\r
745                                 "069 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage FieldSetter",\r
746                                 "033 (d1,c0) <-> global DynamicSink Finish FieldSetter client:True",\r
747                                 "034 (d1,c0) <-> defcontext DynamicSink Finish FieldSetter client:True",\r
748                                 "035 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage FieldSetter",\r
749                                 "036 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage FieldSetter",\r
750 \r
751                                 "037 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage FieldSetter",\r
752 \r
753                                 "038 (d1,c0) <-> proxy DynamicSink Finish FieldSetter client:True",\r
754                                 "039 (d1,c0) <-> proxy DynamicSink Start FieldSetter client:True",\r
755                                 "040 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage FieldSetter",\r
756                                 "041 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage FieldSetter",\r
757                                 "042 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage FieldSetter",\r
758                                 "043 (d1,c0) <-> global DynamicSink Start FieldSetter client:True",\r
759                                 "044 (d1,c0) <-> defcontext DynamicSink Start FieldSetter client:True",\r
760                                 "070 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage FieldSetter",\r
761                                 "071 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage FieldSetter",\r
762                                 "072 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage FieldSetter",\r
763                                 "073 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage FieldSetter",\r
764                                 "074 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage FieldSetter",\r
765                                 "075 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage FieldSetter",\r
766                                 "076 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage FieldSetter",\r
767                                 "077 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage FieldSetter",\r
768                                 "078 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage FieldSetter",\r
769                                 "079 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage FieldSetter",\r
770                                 "080 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage FieldSetter",\r
771                                 "081 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage FieldSetter",\r
772                                 "045 (d1,c0) <-> global DynamicSink Finish FieldSetter client:True",\r
773                                 "046 (d1,c0) <-> defcontext DynamicSink Finish FieldSetter client:True",\r
774                                 "047 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage FieldSetter",\r
775                                 "048 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage FieldSetter",\r
776                                 "049 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage FieldSetter",\r
777                                 "050 (d1,c0) <-> proxy DynamicSink Finish FieldSetter client:True",\r
778                                 "051 (d1,c0) << Set fields",\r
779                                 "052 (d1,c0) >> Get fields",\r
780                                 "053 (d1,c0) <-> proxy DynamicSink Start FieldGetter client:True",\r
781                                 "054 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage FieldGetter",\r
782                                 "055 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage FieldGetter",\r
783                                 "056 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage FieldGetter",\r
784                                 "057 (d1,c0) <-> global DynamicSink Start FieldGetter client:True",\r
785                                 "058 (d1,c0) <-> defcontext DynamicSink Start FieldGetter client:True",\r
786                                 "082 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage FieldGetter",\r
787                                 "083 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage FieldGetter",\r
788                                 "084 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage FieldGetter",\r
789                                 "085 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage FieldGetter",\r
790                                 "086 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage FieldGetter",\r
791                                 "087 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage FieldGetter",\r
792                                 "088 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage FieldGetter",\r
793                                 "089 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage FieldGetter",\r
794                                 "090 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage FieldGetter",\r
795                                 "091 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage FieldGetter",\r
796                                 "092 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage FieldGetter",\r
797                                 "093 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage FieldGetter",\r
798                                 "059 (d1,c0) <-> global DynamicSink Finish FieldGetter client:True",\r
799                                 "060 (d1,c0) <-> defcontext DynamicSink Finish FieldGetter client:True",\r
800                                 "061 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage FieldGetter",\r
801                                 "062 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage FieldGetter",\r
802                                 "063 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage FieldGetter",\r
803                                 "064 (d1,c0) <-> proxy DynamicSink Finish FieldGetter client:True",\r
804                                 "065 (d1,c0) <-> proxy DynamicSink Start FieldGetter client:True",\r
805                                 "066 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage FieldGetter",\r
806                                 "067 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage FieldGetter",\r
807                                 "068 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage FieldGetter",\r
808                                 "069 (d1,c0) <-> global DynamicSink Start FieldGetter client:True",\r
809                                 "070 (d1,c0) <-> defcontext DynamicSink Start FieldGetter client:True",\r
810                                 "094 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage FieldGetter",\r
811                                 "095 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage FieldGetter",\r
812                                 "096 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage FieldGetter",\r
813                                 "097 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage FieldGetter",\r
814                                 "098 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage FieldGetter",\r
815                                 "099 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage FieldGetter",\r
816                                 "100 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage FieldGetter",\r
817                                 "101 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage FieldGetter",\r
818                                 "102 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage FieldGetter",\r
819                                 "103 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage FieldGetter",\r
820                                 "104 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage FieldGetter",\r
821                                 "105 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage FieldGetter",\r
822                                 "071 (d1,c0) <-> global DynamicSink Finish FieldGetter client:True",\r
823                                 "072 (d1,c0) <-> defcontext DynamicSink Finish FieldGetter client:True",\r
824                                 "073 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage FieldGetter",\r
825                                 "074 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage FieldGetter",\r
826                                 "075 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage FieldGetter",\r
827                                 "076 (d1,c0) <-> proxy DynamicSink Finish FieldGetter client:True",\r
828                                 "077 (d1,c0) << Get fields",\r
829                                 "078 (d1,c0) Get fields Result: 4 / hi",\r
830                                 "079 (d1,c0) >> ParameterTest1",\r
831                                 "080 (d1,c0) <-> proxy DynamicSink Start ParameterTest1 client:True",\r
832                                 "081 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage ParameterTest1",\r
833                                 "082 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage ParameterTest1",\r
834                                 "083 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage ParameterTest1",\r
835                                 "084 (d1,c0) <-> global DynamicSink Start ParameterTest1 client:True",\r
836                                 "085 (d1,c0) <-> defcontext DynamicSink Start ParameterTest1 client:True",\r
837                                 "106 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage ParameterTest1",\r
838                                 "107 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage ParameterTest1",\r
839                                 "108 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage ParameterTest1",\r
840                                 "109 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage ParameterTest1",\r
841                                 "110 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage ParameterTest1",\r
842                                 "111 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage ParameterTest1",\r
843                                 "112 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage ParameterTest1",\r
844                                 "113 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage ParameterTest1",\r
845                                 "114 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage ParameterTest1",\r
846                                 "115 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage ParameterTest1",\r
847                                 "116 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage ParameterTest1",\r
848                                 "117 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage ParameterTest1",\r
849                                 "086 (d1,c0) <-> global DynamicSink Finish ParameterTest1 client:True",\r
850                                 "087 (d1,c0) <-> defcontext DynamicSink Finish ParameterTest1 client:True",\r
851                                 "088 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage ParameterTest1",\r
852                                 "089 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage ParameterTest1",\r
853                                 "090 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage ParameterTest1",\r
854                                 "091 (d1,c0) <-> proxy DynamicSink Finish ParameterTest1 client:True",\r
855                                 "092 (d1,c0) << ParameterTest1",\r
856                                 "093 (d1,c0) ParameterTest1 Result: adeu 112",\r
857                                 "094 (d1,c0) >> ParameterTest2",\r
858                                 "095 (d1,c0) <-> proxy DynamicSink Start ParameterTest2 client:True",\r
859                                 "096 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage ParameterTest2",\r
860                                 "097 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage ParameterTest2",\r
861                                 "098 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage ParameterTest2",\r
862                                 "099 (d1,c0) <-> global DynamicSink Start ParameterTest2 client:True",\r
863                                 "100 (d1,c0) <-> defcontext DynamicSink Start ParameterTest2 client:True",\r
864                                 "118 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage ParameterTest2",\r
865                                 "119 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage ParameterTest2",\r
866 \r
867                                 "120 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage ParameterTest2",\r
868                                 "121 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage ParameterTest2",\r
869                                 "122 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage ParameterTest2",\r
870                                 "123 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage ParameterTest2",\r
871                                 "124 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage ParameterTest2",\r
872                                 "125 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage ParameterTest2",\r
873                                 "126 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage ParameterTest2",\r
874                                 "127 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage ParameterTest2",\r
875                                 "128 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage ParameterTest2",\r
876                                 "129 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage ParameterTest2",\r
877                                 "101 (d1,c0) <-> global DynamicSink Finish ParameterTest2 client:True",\r
878                                 "102 (d1,c0) <-> defcontext DynamicSink Finish ParameterTest2 client:True",\r
879                                 "103 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage ParameterTest2",\r
880                                 "104 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage ParameterTest2",\r
881                                 "105 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage ParameterTest2",\r
882                                 "106 (d1,c0) <-> proxy DynamicSink Finish ParameterTest2 client:True",\r
883                                 "107 (d1,c0) << ParameterTest2",\r
884                                 "108 (d1,c0) ParameterTest2 Result: 113",\r
885                                 "109 (d1,c0) >> Creating two remote items",\r
886                                 "110 (d1,c0) <-> proxy DynamicSink Start CreateItem client:True",\r
887                                 "111 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage CreateItem",\r
888                                 "112 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage CreateItem",\r
889                                 "113 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage CreateItem",\r
890                                 "114 (d1,c0) <-> global DynamicSink Start CreateItem client:True",\r
891                                 "115 (d1,c0) <-> defcontext DynamicSink Start CreateItem client:True",\r
892                                 "130 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage CreateItem",\r
893                                 "131 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage CreateItem",\r
894                                 "132 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage CreateItem",\r
895                                 "133 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage CreateItem",\r
896                                 "134 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage CreateItem",\r
897                                 "135 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage CreateItem",\r
898                                 "136 (d2,c1) ServerObject S0: setting 33",\r
899                                 "137 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage CreateItem",\r
900                                 "138 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage CreateItem",\r
901                                 "139 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage CreateItem",\r
902                                 "140 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage CreateItem",\r
903                                 "141 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage CreateItem",\r
904                                 "142 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage CreateItem",\r
905                                 "143 (d2,c0) ### ServerObject.CreateObjRef",\r
906                                 "116 (d1,c0) <-> global DynamicSink Finish CreateItem client:True",\r
907                                 "117 (d1,c0) <-> defcontext DynamicSink Finish CreateItem client:True",\r
908                                 "118 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage CreateItem",\r
909                                 "119 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage CreateItem",\r
910                                 "120 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage CreateItem",\r
911                                 "121 (d1,c0) <-> proxy DynamicSink Finish CreateItem client:True",\r
912                                 "122 (d1,c0) <-> global DynamicSink Start SetValue client:True",\r
913                                 "123 (d1,c0) <-> defcontext DynamicSink Start SetValue client:True",\r
914                                 "144 (d2,c0) ServerObject S0: setting 55",\r
915                                 "124 (d1,c0) <-> global DynamicSink Finish SetValue client:True",\r
916                                 "125 (d1,c0) <-> defcontext DynamicSink Finish SetValue client:True",\r
917                                 "126 (d1,c0) <-> proxy DynamicSink Start Add client:True",\r
918                                 "127 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage Add",\r
919                                 "128 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage Add",\r
920                                 "129 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage Add",\r
921                                 "130 (d1,c0) <-> global DynamicSink Start Add client:True",\r
922                                 "131 (d1,c0) <-> defcontext DynamicSink Start Add client:True",\r
923                                 "145 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage Add",\r
924                                 "146 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage Add",\r
925                                 "147 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage Add",\r
926                                 "148 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage Add",\r
927                                 "149 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage Add",\r
928                                 "150 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage Add",\r
929                                 "151 (d2,c1) Added S0",\r
930                                 "152 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage Add",\r
931                                 "153 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage Add",\r
932                                 "154 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage Add",\r
933                                 "155 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage Add",\r
934                                 "156 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage Add",\r
935                                 "157 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage Add",\r
936                                 "132 (d1,c0) <-> global DynamicSink Finish Add client:True",\r
937                                 "133 (d1,c0) <-> defcontext DynamicSink Finish Add client:True",\r
938                                 "134 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage Add",\r
939                                 "135 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage Add",\r
940                                 "136 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage Add",\r
941                                 "137 (d1,c0) <-> proxy DynamicSink Finish Add client:True",\r
942                                 "138 (d1,c0) <-> proxy DynamicSink Start NewItem client:True",\r
943                                 "139 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage NewItem",\r
944                                 "140 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage NewItem",\r
945                                 "141 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage NewItem",\r
946                                 "142 (d1,c0) <-> global DynamicSink Start NewItem client:True",\r
947                                 "143 (d1,c0) <-> defcontext DynamicSink Start NewItem client:True",\r
948                                 "158 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage NewItem",\r
949                                 "159 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage NewItem",\r
950                                 "160 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage NewItem",\r
951                                 "161 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage NewItem",\r
952                                 "162 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage NewItem",\r
953                                 "163 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage NewItem",\r
954                                 "164 (d2,c1) Added S1",\r
955                                 "165 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage NewItem",\r
956                                 "166 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage NewItem",\r
957                                 "167 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage NewItem",\r
958                                 "168 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage NewItem",\r
959                                 "169 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage NewItem",\r
960                                 "170 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage NewItem",\r
961                                 "171 (d2,c0) ### ServerObject.CreateObjRef",\r
962                                 "144 (d1,c0) <-> global DynamicSink Finish NewItem client:True",\r
963                                 "145 (d1,c0) <-> defcontext DynamicSink Finish NewItem client:True",\r
964                                 "146 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage NewItem",\r
965                                 "147 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage NewItem",\r
966                                 "148 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage NewItem",\r
967                                 "149 (d1,c0) <-> proxy DynamicSink Finish NewItem client:True",\r
968                                 "150 (d1,c0) <-> global DynamicSink Start SetValue client:True",\r
969                                 "151 (d1,c0) <-> defcontext DynamicSink Start SetValue client:True",\r
970                                 "172 (d2,c0) ServerObject S1: setting 111",\r
971                                 "152 (d1,c0) <-> global DynamicSink Finish SetValue client:True",\r
972                                 "153 (d1,c0) <-> defcontext DynamicSink Finish SetValue client:True",\r
973                                 "154 (d1,c0) <-> proxy DynamicSink Start NewItem client:True",\r
974                                 "155 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage NewItem",\r
975                                 "156 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage NewItem",\r
976                                 "157 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage NewItem",\r
977                                 "158 (d1,c0) <-> global DynamicSink Start NewItem client:True",\r
978                                 "159 (d1,c0) <-> defcontext DynamicSink Start NewItem client:True",\r
979                                 "173 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage NewItem",\r
980                                 "174 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage NewItem",\r
981                                 "175 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage NewItem",\r
982                                 "176 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage NewItem",\r
983                                 "177 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage NewItem",\r
984                                 "178 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage NewItem",\r
985                                 "179 (d2,c1) Added S2",\r
986                                 "180 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage NewItem",\r
987                                 "181 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage NewItem",\r
988                                 "182 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage NewItem",\r
989                                 "183 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage NewItem",\r
990                                 "184 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage NewItem",\r
991                                 "185 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage NewItem",\r
992                                 "186 (d2,c0) ### ServerObject.CreateObjRef",\r
993                                 "160 (d1,c0) <-> global DynamicSink Finish NewItem client:True",\r
994                                 "161 (d1,c0) <-> defcontext DynamicSink Finish NewItem client:True",\r
995                                 "162 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage NewItem",\r
996                                 "163 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage NewItem",\r
997                                 "164 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage NewItem",\r
998                                 "165 (d1,c0) <-> proxy DynamicSink Finish NewItem client:True",\r
999                                 "166 (d1,c0) <-> global DynamicSink Start SetValue client:True",\r
1000                                 "167 (d1,c0) <-> defcontext DynamicSink Start SetValue client:True",\r
1001                                 "187 (d2,c0) ServerObject S2: setting 222",\r
1002                                 "168 (d1,c0) <-> global DynamicSink Finish SetValue client:True",\r
1003                                 "169 (d1,c0) <-> defcontext DynamicSink Finish SetValue client:True",\r
1004                                 "170 (d1,c0) << Creating two remote items",\r
1005                                 "171 (d1,c0) >> Creating two client items",\r
1006                                 "172 (d1,c0) ServerObject C1: setting 333",\r
1007                                 "173 (d1,c0) ServerObject C2: setting 444",\r
1008                                 "174 (d1,c0) << Creating two client items",\r
1009                                 "175 (d1,c0) >> Adding items",\r
1010                                 "176 (d1,c0) <-> proxy DynamicSink Start Add client:True",\r
1011                                 "177 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage Add",\r
1012                                 "178 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage Add",\r
1013                                 "179 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage Add",\r
1014                                 "180 (d1,c0) <-> global DynamicSink Start Add client:True",\r
1015                                 "181 (d1,c0) <-> defcontext DynamicSink Start Add client:True",\r
1016                                 "182 (d1,c0) ### ServerObject.CreateObjRef",\r
1017                                 "188 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage Add",\r
1018                                 "189 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage Add",\r
1019                                 "190 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage Add",\r
1020                                 "191 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage Add",\r
1021                                 "192 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage Add",\r
1022                                 "193 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage Add",\r
1023                                 "194 (d2,c1) IContributeClientContextSink(1.d1).GetClientContextSink",\r
1024                                 "195 (d2,c1) IContributeClientContextSink(x.d1).GetClientContextSink",\r
1025                                 "196 (d2,c1) IContributeClientContextSink(x.d2).GetClientContextSink",\r
1026                                 "197 (d2,c1) --> ClientContextSink(x.d2) SyncProcessMessage get_Name",\r
1027                                 "198 (d2,c1) --> ClientContextSink(x.d1) SyncProcessMessage get_Name",\r
1028                                 "199 (d2,c1) --> ClientContextSink(1.d1) SyncProcessMessage get_Name",\r
1029                                 "183 (d1,c0) <-> global DynamicSink Start get_Name client:False",\r
1030                                 "184 (d1,c0) <-> defcontext DynamicSink Start get_Name client:False",\r
1031                                 "185 (d1,c0) <-> global DynamicSink Finish get_Name client:False",\r
1032                                 "186 (d1,c0) <-> defcontext DynamicSink Finish get_Name client:False",\r
1033                                 "200 (d2,c1) <-- ClientContextSink(1.d1) SyncProcessMessage get_Name",\r
1034                                 "201 (d2,c1) <-- ClientContextSink(x.d1) SyncProcessMessage get_Name",\r
1035                                 "202 (d2,c1) <-- ClientContextSink(x.d2) SyncProcessMessage get_Name",\r
1036                                 "203 (d2,c1) Added C1",\r
1037                                 "204 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage Add",\r
1038                                 "205 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage Add",\r
1039                                 "206 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage Add",\r
1040                                 "207 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage Add",\r
1041                                 "208 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage Add",\r
1042                                 "209 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage Add",\r
1043                                 "187 (d1,c0) <-> global DynamicSink Finish Add client:True",\r
1044                                 "188 (d1,c0) <-> defcontext DynamicSink Finish Add client:True",\r
1045                                 "189 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage Add",\r
1046                                 "190 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage Add",\r
1047                                 "191 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage Add",\r
1048                                 "192 (d1,c0) <-> proxy DynamicSink Finish Add client:True",\r
1049                                 "193 (d1,c0) <-> proxy DynamicSink Start Add client:True",\r
1050                                 "194 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage Add",\r
1051                                 "195 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage Add",\r
1052                                 "196 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage Add",\r
1053                                 "197 (d1,c0) <-> global DynamicSink Start Add client:True",\r
1054                                 "198 (d1,c0) <-> defcontext DynamicSink Start Add client:True",\r
1055                                 "199 (d1,c0) ### ServerObject.CreateObjRef",\r
1056                                 "210 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage Add",\r
1057                                 "211 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage Add",\r
1058                                 "212 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage Add",\r
1059                                 "213 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage Add",\r
1060                                 "214 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage Add",\r
1061                                 "215 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage Add",\r
1062                                 "216 (d2,c1) --> ClientContextSink(x.d2) SyncProcessMessage get_Name",\r
1063                                 "217 (d2,c1) --> ClientContextSink(x.d1) SyncProcessMessage get_Name",\r
1064                                 "218 (d2,c1) --> ClientContextSink(1.d1) SyncProcessMessage get_Name",\r
1065                                 "200 (d1,c0) <-> global DynamicSink Start get_Name client:False",\r
1066                                 "201 (d1,c0) <-> defcontext DynamicSink Start get_Name client:False",\r
1067                                 "202 (d1,c0) <-> global DynamicSink Finish get_Name client:False",\r
1068                                 "203 (d1,c0) <-> defcontext DynamicSink Finish get_Name client:False",\r
1069                                 "219 (d2,c1) <-- ClientContextSink(1.d1) SyncProcessMessage get_Name",\r
1070                                 "220 (d2,c1) <-- ClientContextSink(x.d1) SyncProcessMessage get_Name",\r
1071                                 "221 (d2,c1) <-- ClientContextSink(x.d2) SyncProcessMessage get_Name",\r
1072                                 "222 (d2,c1) Added C2",\r
1073                                 "223 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage Add",\r
1074                                 "224 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage Add",\r
1075                                 "225 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage Add",\r
1076                                 "226 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage Add",\r
1077                                 "227 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage Add",\r
1078                                 "228 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage Add",\r
1079                                 "204 (d1,c0) <-> global DynamicSink Finish Add client:True",\r
1080                                 "205 (d1,c0) <-> defcontext DynamicSink Finish Add client:True",\r
1081                                 "206 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage Add",\r
1082                                 "207 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage Add",\r
1083                                 "208 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage Add",\r
1084                                 "209 (d1,c0) <-> proxy DynamicSink Finish Add client:True",\r
1085                                 "210 (d1,c0) << Adding items",\r
1086                                 "211 (d1,c0) >> Processing items",\r
1087                                 "212 (d1,c0) <-> proxy DynamicSink Start ProcessItems client:True",\r
1088                                 "213 (d1,c0) --> EnvoySink(x.d2) SyncProcessMessage ProcessItems",\r
1089                                 "214 (d1,c0) --> EnvoySink(x.d1) SyncProcessMessage ProcessItems",\r
1090                                 "215 (d1,c0) --> EnvoySink(1.d1) SyncProcessMessage ProcessItems",\r
1091                                 "216 (d1,c0) <-> global DynamicSink Start ProcessItems client:True",\r
1092                                 "217 (d1,c0) <-> defcontext DynamicSink Start ProcessItems client:True",\r
1093                                 "229 (d2,c1) --> ServerContextSink(1.d1) SyncProcessMessage ProcessItems",\r
1094                                 "230 (d2,c1) --> ServerContextSink(x.d1) SyncProcessMessage ProcessItems",\r
1095                                 "231 (d2,c1) --> ServerContextSink(x.d2) SyncProcessMessage ProcessItems",\r
1096                                 "232 (d2,c1) --> ObjectSink(1.d1) SyncProcessMessage ProcessItems",\r
1097                                 "233 (d2,c1) --> ObjectSink(x.d1) SyncProcessMessage ProcessItems",\r
1098                                 "234 (d2,c1) --> ObjectSink(x.d2) SyncProcessMessage ProcessItems",\r
1099                                 "235 (d2,c1) Processing",\r
1100                                 "236 (d2,c1) ServerObject S0: getting 55",\r
1101                                 "237 (d2,c1) ServerObject S1: getting 111",\r
1102                                 "238 (d2,c1) ServerObject S2: getting 222",\r
1103                                 "239 (d2,c1) --> ClientContextSink(x.d2) SyncProcessMessage GetValue",\r
1104                                 "240 (d2,c1) --> ClientContextSink(x.d1) SyncProcessMessage GetValue",\r
1105                                 "241 (d2,c1) --> ClientContextSink(1.d1) SyncProcessMessage GetValue",\r
1106                                 "218 (d1,c0) <-> global DynamicSink Start GetValue client:False",\r
1107                                 "219 (d1,c0) <-> defcontext DynamicSink Start GetValue client:False",\r
1108                                 "220 (d1,c0) ServerObject C1: getting 333",\r
1109                                 "221 (d1,c0) <-> global DynamicSink Finish GetValue client:False",\r
1110                                 "222 (d1,c0) <-> defcontext DynamicSink Finish GetValue client:False",\r
1111                                 "242 (d2,c1) <-- ClientContextSink(1.d1) SyncProcessMessage GetValue",\r
1112                                 "243 (d2,c1) <-- ClientContextSink(x.d1) SyncProcessMessage GetValue",\r
1113                                 "244 (d2,c1) <-- ClientContextSink(x.d2) SyncProcessMessage GetValue",\r
1114                                 "245 (d2,c1) --> ClientContextSink(x.d2) SyncProcessMessage GetValue",\r
1115                                 "246 (d2,c1) --> ClientContextSink(x.d1) SyncProcessMessage GetValue",\r
1116                                 "247 (d2,c1) --> ClientContextSink(1.d1) SyncProcessMessage GetValue",\r
1117                                 "223 (d1,c0) <-> global DynamicSink Start GetValue client:False",\r
1118                                 "224 (d1,c0) <-> defcontext DynamicSink Start GetValue client:False",\r
1119                                 "225 (d1,c0) ServerObject C2: getting 444",\r
1120                                 "226 (d1,c0) <-> global DynamicSink Finish GetValue client:False",\r
1121                                 "227 (d1,c0) <-> defcontext DynamicSink Finish GetValue client:False",\r
1122                                 "248 (d2,c1) <-- ClientContextSink(1.d1) SyncProcessMessage GetValue",\r
1123                                 "249 (d2,c1) <-- ClientContextSink(x.d1) SyncProcessMessage GetValue",\r
1124                                 "250 (d2,c1) <-- ClientContextSink(x.d2) SyncProcessMessage GetValue",\r
1125                                 "251 (d2,c1) Total: 1165",\r
1126                                 "252 (d2,c1) <-- ObjectSink(x.d2) SyncProcessMessage ProcessItems",\r
1127                                 "253 (d2,c1) <-- ObjectSink(x.d1) SyncProcessMessage ProcessItems",\r
1128                                 "254 (d2,c1) <-- ObjectSink(1.d1) SyncProcessMessage ProcessItems",\r
1129                                 "255 (d2,c1) <-- ServerContextSink(x.d2) SyncProcessMessage ProcessItems",\r
1130                                 "256 (d2,c1) <-- ServerContextSink(x.d1) SyncProcessMessage ProcessItems",\r
1131                                 "257 (d2,c1) <-- ServerContextSink(1.d1) SyncProcessMessage ProcessItems",\r
1132                                 "228 (d1,c0) <-> global DynamicSink Finish ProcessItems client:True",\r
1133                                 "229 (d1,c0) <-> defcontext DynamicSink Finish ProcessItems client:True",\r
1134                                 "230 (d1,c0) <-- EnvoySink(1.d1) SyncProcessMessage ProcessItems",\r
1135                                 "231 (d1,c0) <-- EnvoySink(x.d1) SyncProcessMessage ProcessItems",\r
1136                                 "232 (d1,c0) <-- EnvoySink(x.d2) SyncProcessMessage ProcessItems",\r
1137                                 "233 (d1,c0) <-> proxy DynamicSink Finish ProcessItems client:True",\r
1138                                 "234 (d1,c0) << Processing items",\r
1139                                 "235 (d1,c0) << TestRemoteContext",\r
1140                 };\r
1141         }\r
1142 }