diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 17:20:00 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 17:20:00 +0000 |
commit | 8daa83a594a2e98f39d764422bfbdbc62c9efd44 (patch) | |
tree | 4099e8021376c7d8c05bdf8503093d80e9c7bad0 /testprogs/win32/midltests | |
parent | Initial commit. (diff) | |
download | samba-8daa83a594a2e98f39d764422bfbdbc62c9efd44.tar.xz samba-8daa83a594a2e98f39d764422bfbdbc62c9efd44.zip |
Adding upstream version 2:4.20.0+dfsg.upstream/2%4.20.0+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testprogs/win32/midltests')
79 files changed, 10355 insertions, 0 deletions
diff --git a/testprogs/win32/midltests/Makefile b/testprogs/win32/midltests/Makefile new file mode 100644 index 0000000..ded98e9 --- /dev/null +++ b/testprogs/win32/midltests/Makefile @@ -0,0 +1,16 @@ + +all: + @echo "nmake targets:" + @echo " clean" + @echo " simple" + @echo " tcp" + +clean: + @call nmake /f Makefile.simple /A /NOLOGO clean + @call nmake /f Makefile.tcp /A /NOLOGO clean + +simple: + @call nmake /f Makefile.simple /A /NOLOGO all + +tcp: + @call nmake /f Makefile.tcp /A /NOLOGO all diff --git a/testprogs/win32/midltests/Makefile.simple b/testprogs/win32/midltests/Makefile.simple new file mode 100644 index 0000000..ec4a542 --- /dev/null +++ b/testprogs/win32/midltests/Makefile.simple @@ -0,0 +1,27 @@ +INCLUDES=-I +CFLAGS=$(INCLUDES) -Zi -D_WIN32_WINNT=0x502 +LIBS=rpcrt4.lib + +all: midltests_simple.exe + +clean: + del *~ *.obj *.exe midltests.h midltests_s.c midltests_c.c + +#MIDL_ARGS=/target NT50 +MIDL_ARGS=/Os /prefix client cli_ /prefix server srv_ /prefix switch swi_ +midltests.h midltests_s.c midltests_c.c: midltests.idl midltests.acf + midl $(MIDL_ARGS) /acf midltests.acf midltests.idl + +MIDLTESTS_OBJ = midltests_simple.obj midltests_s_m.obj midltests_c_m.obj midltests_marshall.obj utils.obj +midltests_simple.exe: $(MIDLTESTS_OBJ) + $(CC) -o midltests_simple.exe $(MIDLTESTS_OBJ) $(LIBS) + +midltests_simple.obj: midltests.h midltests.idl +midltests_c_m.c: midltests_c.c +midltests_s_m.c: midltests_s.c + +midltests_simple.obj: midltests.h midltests.idl midltests_simple.c +midltests_s_m.obj: midltests_marshall.h midltests_s.c midltests_s_m.c +midltests_c_m.obj: midltests_marshall.h midltests_c.c midltests_c_m.c +midltests_marshall.obj: midltests.h midltests_marshall.c +utils.obj: midltests.h utils.c diff --git a/testprogs/win32/midltests/Makefile.tcp b/testprogs/win32/midltests/Makefile.tcp new file mode 100644 index 0000000..19c1f11 --- /dev/null +++ b/testprogs/win32/midltests/Makefile.tcp @@ -0,0 +1,22 @@ +INCLUDES=-I +CFLAGS=$(INCLUDES) -Zi -D_WIN32_WINNT=0x610 +LIBS=rpcrt4.lib ws2_32.lib + +all: midltests_tcp.exe + +clean: + del *~ *.obj *.exe midltests.h midltests_s.c midltests_c.c + +MIDL_ARGS=/target NT60 /prefix client cli_ /prefix server srv_ /prefix switch swi_ +midltests.h midltests_s.c midltests_c.c: midltests.idl midltests.acf + midl $(MIDL_ARGS) /acf midltests.acf midltests.idl + +MIDLTESTS_OBJ = midltests_tcp.obj midltests_s.obj midltests_c.obj midltests_marshall.obj utils.obj +midltests_tcp.exe: $(MIDLTESTS_OBJ) + $(CC) -o midltests_tcp.exe $(MIDLTESTS_OBJ) $(LIBS) + +midltests_tcp.obj: midltests.h midltests.idl + +midltests_tcp.obj: midltests.h midltests.idl midltests_tcp.c +midltests_marshall.obj: midltests.h midltests_marshall.c +utils.obj: midltests.h utils.c diff --git a/testprogs/win32/midltests/invalid/README.txt b/testprogs/win32/midltests/invalid/README.txt new file mode 100644 index 0000000..f10cc15 --- /dev/null +++ b/testprogs/win32/midltests/invalid/README.txt @@ -0,0 +1,3 @@ +This directory contains IDL files which give errors, +when they're compiled as midltests.idl. + diff --git a/testprogs/win32/midltests/invalid/midltests_pipe_struct_union_01.idl b/testprogs/win32/midltests/invalid/midltests_pipe_struct_union_01.idl new file mode 100644 index 0000000..517806b --- /dev/null +++ b/testprogs/win32/midltests/invalid/midltests_pipe_struct_union_01.idl @@ -0,0 +1,279 @@ +#ifndef MIDLTESTS_C_CODE + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef pipe char pipe_char; + typedef pipe hyper pipe_hyper; + typedef struct { + long l; + short s; + [switch_is(l)] union { + [case(0)]; + [case(1)] char c; + [case(2)] short s; + [case(4)] long l; + [case(8)] hyper h; + } u; + } structtype; + typedef pipe structtype pipe_structtype; + + struct msg { + long l; + [size_is(l)] char *m; + }; + + long midltests_fn( + [out,ref] struct msg *out1, + [out,ref] pipe_structtype *outp, + [in,ref] pipe_structtype *inp, + [in] struct msg in1 + ); + + long midltests_ping( [in] struct msg in1); + +} + +#elif MIDLTESTS_C_CODE + +struct pipe_char_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_char_pull( + char * _state, + unsigned char * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_char_state *state = (struct pipe_char_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_char_push( + char * _state, + unsigned char * buf, + unsigned long ecount) +{ + struct pipe_char_state *state = (struct pipe_char_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_char_alloc( + char * _state, + unsigned long bsize, + unsigned char * * buf, + unsigned long * bcount) +{ + struct pipe_char_state *state = (struct pipe_char_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} + +struct pipe_hyper_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_hyper_pull( + char * _state, + hyper * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_hyper_push( + char * _state, + hyper * buf, + unsigned long ecount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_hyper_alloc( + char * _state, + unsigned long bsize, + hyper * * buf, + unsigned long * bcount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} +struct pipe_structtype_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_structtype_pull( + char * _state, + structtype * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_structtype_push( + char * _state, + structtype * buf, + unsigned long ecount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_structtype_alloc( + char * _state, + unsigned long bsize, + structtype * * buf, + unsigned long * bcount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} +static void midltests(void) +{ + struct msg out1; + unsigned char out1b[3]; + struct pipe_structtype_state outs; + pipe_structtype outp; + struct pipe_structtype_state ins; + pipe_structtype inp; + struct msg in1; + unsigned char in1b[3]; + + in1.l = sizeof(in1b); + memset(&in1b, 0xAA, sizeof(in1b)); + in1.m = in1b; + + memset(&outs, 0, sizeof(outs)); + outs.name = "outp"; + memset(&outp, 0, sizeof(outp)); + outp.pull = pipe_structtype_pull; + outp.push = pipe_structtype_push; + outp.alloc = pipe_structtype_alloc; + outp.state = (char *)&outs; + + memset(&ins, 0, sizeof(ins)); + ins.name = "inp"; + ins.count = 1; + memset(&inp, 0, sizeof(inp)); + inp.pull = pipe_structtype_pull; + inp.push = pipe_structtype_push; + inp.alloc = pipe_structtype_alloc; + inp.state = (char *)&ins; + + out1.l = sizeof(out1b); + memset(&out1b, 0xFF, sizeof(out1b)); + out1.m = out1b; + + cli_midltests_ping(in1); + cli_midltests_fn(&out1, outp, inp, in1); +} + +long srv_midltests_fn( + /* [ref][out] */ struct msg *out1, + /* [out] */ pipe_structtype outp, + /* [in] */ pipe_structtype inp, + /* [in] */ struct msg in1) +{ + structtype inb[500]; + unsigned long inb_len = 0; + structtype *outb = NULL; + unsigned long outb_size = 0; + unsigned long outb_len = 0; + + printf("srv_midltests_fn: Start\n"); + + do { + inp.pull(inp.state, inb, sizeof(inb), &inb_len); + printf("pull inp_len[%u]\n", inb_len); + } while (inb_len > 0); + + outb_size = 5; + do { + outp.alloc(outp.state, outb_size, &outb, &outb_len); + memset(outb, 0xCC, outb_len * sizeof(*outb)); + outp.push(outp.state, outb, outb_len); + printf("push outb_len[%u]\n", outb_len); + //Sleep(1000); + outb_size--; + } while (outb_len > 0); + + out1->l = 3; + out1->m = (unsigned char *)malloc(out1->l); + memset(out1->m, 0xBB, out1->l); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +long srv_midltests_ping( + /* [in] */ struct msg in1) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} +#endif diff --git a/testprogs/win32/midltests/invalid/midltests_pipe_struct_union_01.txt b/testprogs/win32/midltests/invalid/midltests_pipe_struct_union_01.txt new file mode 100644 index 0000000..46f8de5 --- /dev/null +++ b/testprogs/win32/midltests/invalid/midltests_pipe_struct_union_01.txt @@ -0,0 +1,17 @@ + +Microsoft (R) Program Maintenance Utility Version 10.00.30319.01 +Copyright (C) Microsoft Corporation. All rights reserved. + + midl /target NT60 /prefix client cli_ /prefix server srv_ /prefix switch swi_ /acf midltests.acf midltests.idl +Microsoft (R) 32b/64b MIDL Compiler Version 7.00.0555 +Copyright (c) Microsoft Corporation. All rights reserved. +64 bit Processing .\midltests.idl +midltests.idl +64 bit Processing .\midltests.acf +midltests.acf +.\midltests.idl(34) : error MIDL2028 : feature not implemented : pipes can't contain unions [ Type 'pipe_structtype' ( Parameter 'outp' ) ] +.\midltests.idl(34) : error MIDL2028 : feature not implemented : pipes can't contain unions [ Type 'pipe_structtype' ( Parameter 'inp' ) ] +NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\x64\midl.EXE"' : return code '0x8a6' +Stop. +NMAKE : fatal error U1077: 'call' : return code '0x2' +Stop. diff --git a/testprogs/win32/midltests/midltests.acf b/testprogs/win32/midltests/midltests.acf new file mode 100644 index 0000000..a04bb5d --- /dev/null +++ b/testprogs/win32/midltests/midltests.acf @@ -0,0 +1,6 @@ +[ + implicit_handle (handle_t midltests_IfHandle) +] +interface midltests +{ +} diff --git a/testprogs/win32/midltests/midltests.idl b/testprogs/win32/midltests/midltests.idl new file mode 100644 index 0000000..0c0bbf8 --- /dev/null +++ b/testprogs/win32/midltests/midltests.idl @@ -0,0 +1,51 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + long midltests_fn( + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + cli_midltests_fn(); +} + +long srv_midltests_fn(void) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/midltests_c_m.c b/testprogs/win32/midltests/midltests_c_m.c new file mode 100644 index 0000000..facf735 --- /dev/null +++ b/testprogs/win32/midltests/midltests_c_m.c @@ -0,0 +1,2 @@ +#include "midltests_marshall.h" +#include "midltests_c.c" diff --git a/testprogs/win32/midltests/midltests_marshall.c b/testprogs/win32/midltests/midltests_marshall.c new file mode 100644 index 0000000..f0fc78a --- /dev/null +++ b/testprogs/win32/midltests/midltests_marshall.c @@ -0,0 +1,125 @@ +/* + MIDLTESTS client. + + Copyright (C) Stefan Metzmacher 2008 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <ctype.h> +#include "midltests.h" + +#define MIN(a,b) ((a)<(b)?(a):(b)) +static void print_asc(const unsigned char *buf,int len) +{ + int i; + for (i=0;i<len;i++) + printf("%c", isprint(buf[i])?buf[i]:'.'); +} + +void dump_data(const unsigned char *buf1,int len) +{ + const unsigned char *buf = (const unsigned char *)buf1; + int i=0; + if (len<=0) return; + + printf("[%03X] ",i); + for (i=0;i<len;) { + printf("%02X ",(int)buf[i]); + i++; + if (i%8 == 0) printf(" "); + if (i%16 == 0) { + print_asc(&buf[i-16],8); printf(" "); + print_asc(&buf[i-8],8); printf("\n"); + if (i<len) printf("[%03X] ",i); + } + } + if (i%16) { + int n; + n = 16 - (i%16); + printf(" "); + if (n>8) printf(" "); + while (n--) printf(" "); + n = MIN(8,i%16); + print_asc(&buf[i-(i%16)],n); printf( " " ); + n = (i%16) - n; + if (n>0) print_asc(&buf[i-n],n); + printf("\n"); + } +} + +#if _WIN32_WINNT < 0x600 + +void NdrGetBufferMarshall(PMIDL_STUB_MESSAGE stubmsg, unsigned long len, RPC_BINDING_HANDLE hnd) +{ + stubmsg->RpcMsg->Buffer = HeapAlloc(GetProcessHeap(), 0, len); + memset(stubmsg->RpcMsg->Buffer, 0xef, len); + stubmsg->RpcMsg->BufferLength = len; + stubmsg->Buffer = stubmsg->RpcMsg->Buffer; + stubmsg->BufferLength = stubmsg->RpcMsg->BufferLength; + stubmsg->fBufferValid = TRUE; +} + +void __RPC_STUB midltests_midltests_fn(PRPC_MESSAGE _pRpcMessage); + +void NdrSendReceiveMarshall(PMIDL_STUB_MESSAGE StubMsg, unsigned char *buffer) +{ + unsigned long DataRepresentation; + + StubMsg->RpcMsg->BufferLength = buffer - (unsigned char *)StubMsg->RpcMsg->Buffer; + + printf("[in] Buffer[%d/%d]\n", + StubMsg->RpcMsg->BufferLength, StubMsg->BufferLength); + dump_data(StubMsg->RpcMsg->Buffer, StubMsg->RpcMsg->BufferLength); + + DataRepresentation = StubMsg->RpcMsg->DataRepresentation; + StubMsg->RpcMsg->DataRepresentation = NDR_LOCAL_DATA_REPRESENTATION; + midltests_midltests_fn(StubMsg->RpcMsg); + StubMsg->RpcMsg->DataRepresentation = DataRepresentation; + + StubMsg->BufferLength = StubMsg->RpcMsg->BufferLength; + StubMsg->BufferStart = StubMsg->RpcMsg->Buffer; + StubMsg->BufferEnd = StubMsg->BufferStart + StubMsg->BufferLength; + StubMsg->Buffer = StubMsg->BufferStart; + + printf("[out] Buffer[%d]\n", + StubMsg->RpcMsg->BufferLength); + dump_data(StubMsg->RpcMsg->Buffer, StubMsg->RpcMsg->BufferLength); +} + +void NdrServerInitializeNewMarshall(PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDesc) +{ + memset(pStubMsg, 0, sizeof(*pStubMsg)); + pStubMsg->RpcMsg = pRpcMsg; + pStubMsg->Buffer = pStubMsg->BufferStart = pRpcMsg->Buffer; + pStubMsg->BufferEnd = pStubMsg->Buffer + pRpcMsg->BufferLength; + pStubMsg->BufferLength = pRpcMsg->BufferLength; + pStubMsg->pfnAllocate = pStubDesc->pfnAllocate; + pStubMsg->pfnFree = pStubDesc->pfnFree; + pStubMsg->StubDesc = pStubDesc; + pStubMsg->dwDestContext = MSHCTX_DIFFERENTMACHINE; +} + +RPC_STATUS WINAPI I_RpcGetBufferMarshall(PRPC_MESSAGE RpcMsg) +{ + RpcMsg->Buffer = HeapAlloc(GetProcessHeap(), 0, RpcMsg->BufferLength); + memset(RpcMsg->Buffer, 0xcd, RpcMsg->BufferLength); + return 0; +} + +#endif /* _WIN32_WINNT < 0x600 */ diff --git a/testprogs/win32/midltests/midltests_marshall.h b/testprogs/win32/midltests/midltests_marshall.h new file mode 100644 index 0000000..8bb59b9 --- /dev/null +++ b/testprogs/win32/midltests/midltests_marshall.h @@ -0,0 +1,19 @@ +#include "rpc.h" +#include "rpcndr.h" + +void dump_data(const unsigned char *buf1,int len); + +#if _WIN32_WINNT < 0x600 +#define NdrSendReceive NdrSendReceiveMarshall +void NdrSendReceiveMarshall(PMIDL_STUB_MESSAGE stubmsg, unsigned char *buffer); +#define NdrGetBuffer NdrGetBufferMarshall +void NdrGetBufferMarshall(PMIDL_STUB_MESSAGE stubmsg, unsigned long len, RPC_BINDING_HANDLE hnd); +#define NdrServerInitializeNew NdrServerInitializeNewMarshall +void NdrServerInitializeNewMarshall(PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDesc); +#define I_RpcGetBuffer I_RpcGetBufferMarshall +RPC_STATUS WINAPI I_RpcGetBufferMarshall(PRPC_MESSAGE pMsg); + +#endif /* _WIN32_WINNT < 0x600 */ + diff --git a/testprogs/win32/midltests/midltests_s_m.c b/testprogs/win32/midltests/midltests_s_m.c new file mode 100644 index 0000000..7e0862d --- /dev/null +++ b/testprogs/win32/midltests/midltests_s_m.c @@ -0,0 +1,2 @@ +#include "midltests_marshall.h" +#include "midltests_s.c" diff --git a/testprogs/win32/midltests/midltests_simple.c b/testprogs/win32/midltests/midltests_simple.c new file mode 100644 index 0000000..61d4ce0 --- /dev/null +++ b/testprogs/win32/midltests/midltests_simple.c @@ -0,0 +1,42 @@ +/* + MIDLTESTS client. + + Copyright (C) Stefan Metzmacher 2008 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <ctype.h> +#include "midltests.h" + +#define MIDLTESTS_C_CODE 1 +#include "midltests.idl" + +int main(int argc, char **argv) +{ + int ret; + + midltests_IfHandle = NULL; + + RpcTryExcept { + midltests(); + } RpcExcept(1) { + ret = RpcExceptionCode(); + printf("Runtime error 0x%x\n", ret); + } RpcEndExcept + + return ret; +} diff --git a/testprogs/win32/midltests/midltests_tcp.c b/testprogs/win32/midltests/midltests_tcp.c new file mode 100644 index 0000000..3046f6d --- /dev/null +++ b/testprogs/win32/midltests/midltests_tcp.c @@ -0,0 +1,646 @@ +/* + MIDLTESTS client. + + Copyright (C) Stefan Metzmacher 2008 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <ctype.h> +#include <winsock.h> +#include "midltests.h" + +#ifndef _M_AMD64 +#error "please run 'vcvarsall.bat amd64' -midltests_tcp needs 64-bit support!" +#endif + +#define MIDLTESTS_C_CODE 1 +#include "midltests.idl" + +#ifndef LISTEN_IP +#define LISTEN_IP "127.0.0.1" +#endif + +#ifndef FORWARD_IP +#define FORWARD_IP "127.0.0.1" +#endif + +#ifndef CONNECT_IP +#define CONNECT_IP "127.0.0.1" +#endif + +struct NDRTcpThreadCtx; + +struct NDRProxyThreadCtx { + const struct NDRTcpThreadCtx *ctx; + SOCKET InSocket; + SOCKET OutSocket; + DWORD dwThreadId; + HANDLE hThread; +}; + +struct NDRTcpThreadCtx { + const char *name; + short listen_port; + short client_port; + BOOL ndr64; + BOOL stop; +}; + +struct dcerpc_header { + BYTE rpc_vers; /* RPC version */ + BYTE rpc_vers_minor; /* Minor version */ + BYTE ptype; /* Packet type */ + BYTE pfc_flags; /* Fragmentation flags */ + BYTE drep[4]; /* NDR data representation */ + short frag_length; /* Total length of fragment */ + short auth_length; /* authenticator length */ + DWORD call_id; /* Call identifier */ +}; + +static void dump_packet(const char *ctx, const char *direction, + const unsigned char *buf, int len) +{ + struct dcerpc_header *hdr = (struct dcerpc_header *)buf; + + if (len < sizeof(struct dcerpc_header)) { + printf("%s:%s: invalid dcerpc pdu len(%d)\n", + ctx, direction, len); + fflush(stdout); + return; + } + + if (hdr->rpc_vers != 5 || hdr->rpc_vers_minor != 0) { + printf("%s:%s: invalid dcerpc pdu len(%d) ver:%d min:%d\n", + ctx, direction, len, + hdr->rpc_vers, hdr->rpc_vers_minor); + fflush(stdout); + return; + } + + if (hdr->frag_length != len) { + printf("%s:%s: invalid dcerpc pdu len(%d) should be (%d)\n", + ctx, direction, len, hdr->frag_length); + fflush(stdout); + return; + } + + + switch (hdr->ptype) { + case 0: /* request */ + printf("%s:%s: ptype[request] flen[%d] plen[%d] ahint[%d]\n\n", + ctx, direction, hdr->frag_length, + len - 24, *(DWORD *)(&buf[0x10])); + dump_data(buf + 24, len - 24); + printf("\n"); + fflush(stdout); + break; + + case 2: /* response */ + printf("\n%s:%s: ptype[response] flen[%d] plen[%d] ahint[%d]\n\n", + ctx, direction, hdr->frag_length, + len - 24, *(DWORD *)(&buf[0x10])); + dump_data(buf + 24, len - 24); + printf("\n"); + fflush(stdout); + break; + + case 11: /* bind */ +#if 0 + printf("%s:%s: ptype[bind] flen[%d] call[%d] contexts[%d]\n\n" + ctx, direction, hdr->frag_length, hdr->call_id, + buf[24]); + dump_data(buf + 24, len - 24); + printf("\n"); + fflush(stdout); +#endif + break; + + case 12: /* bind ack */ +#if 0 + printf("%s:%s: ptype[bind_ack] flen[%d] call[%d]\n\n", + ctx, direction, hdr->frag_length, hdr->call_id); + fflush(stdout); +#endif + break; + + case 14: /* alter_req */ +#if 1 + printf("%s:%s: ptype[alter_req] flen[%d] call[%d] contexts[%d]\n\n", + ctx, direction, hdr->frag_length, hdr->call_id, + buf[24]); + //dump_data(buf + 24, len - 24); + printf("\n"); + fflush(stdout); +#endif + break; + + case 15: /* alter_ack */ +#if 1 + printf("%s:%s: ptype[alter_ack] flen[%d] call[%d]\n\n", + ctx, direction, hdr->frag_length, hdr->call_id); + fflush(stdout); +#endif + break; + + default: + printf("%s:%s: ptype[%d] flen[%d] call[%d]\n\n", + ctx, direction, hdr->ptype, hdr->frag_length, hdr->call_id); + fflush(stdout); + break; + } +} + +static void change_packet(const char *ctx, BOOL ndr64, + unsigned char *buf, int len) +{ + struct dcerpc_header *hdr = (struct dcerpc_header *)buf; + BOOL is_ndr64 = FALSE; + const unsigned char ndr64_buf[] = { + 0x33, 0x05, 0x71, 0x71, 0xBA, 0xBE, 0x37, 0x49, + 0x83, 0x19, 0xB5, 0xDB, 0xEF, 0x9C, 0xCC, 0x36 + }; + + if (len < sizeof(struct dcerpc_header)) { + printf("%s: invalid dcerpc pdu len(%d)\n", + ctx, len); + fflush(stdout); + return; + } + + if (hdr->rpc_vers != 5 || hdr->rpc_vers_minor != 0) { + printf("%s: invalid dcerpc pdu len(%d) ver:%d min:%d\n", + ctx, len, + hdr->rpc_vers, hdr->rpc_vers_minor); + fflush(stdout); + return; + } + + if (hdr->frag_length != len) { + printf("%s: invalid dcerpc pdu len(%d) should be (%d)\n", + ctx, len, hdr->frag_length); + fflush(stdout); + return; + } + + switch (hdr->ptype) { + case 11: /* bind */ + case 14: /* alter_req */ + + if (buf[24] >= 2) { + int ret; + + ret = memcmp(&buf[0x60], ndr64_buf, 16); + if (ret == 0) { + is_ndr64 = TRUE; + } + } + + if (is_ndr64 && !ndr64) { + buf[24+0x48] = 0xFF; + memset(&buf[0x60], 0xFF, 16); + printf("%s: disable NDR64\n\n", ctx); + } else if (!is_ndr64 && ndr64) { + printf("\n%s: got NDR32 downgrade\n\n", ctx); +#ifndef DONOT_FORCE_NDR64 + printf("\n\tERROR!!!\n\n"); + memset(&buf[0x34], 0xFF, 16); + printf("You may need to run 'vcvarsall.bat amd64' before 'nmake tcp'\n"); +#endif + printf("\n"); + } else if (is_ndr64) { + printf("%s: got NDR64\n\n", ctx); + } else { + printf("%s: got NDR32\n\n", ctx); + } + //printf("%s: bind with %u pres\n", ctx, buf[24]); + fflush(stdout); + break; + } +} + +static int sock_pending(SOCKET s) +{ + int ret, error; + int value = 0; + int len; + + ret = ioctlsocket(s, FIONREAD, &value); + if (ret == -1) { + return ret; + } + + if (ret != 0) { + /* this should not be reached */ + return -1; + } + + if (value != 0) { + return value; + } + + error = 0; + len = sizeof(error); + + /* + * if no data is available check if the socket is in error state. For + * dgram sockets it's the way to return ICMP error messages of + * connected sockets to the caller. + */ + ret = getsockopt(s, SOL_SOCKET, SO_ERROR, (char *)&error, &len); + if (ret == -1) { + return ret; + } + if (error != 0) { + return -1; + } + return 0; +} + +DWORD WINAPI NDRProxyThread(LPVOID lpParameter) +{ + struct NDRProxyThreadCtx *p = (struct NDRProxyThreadCtx *)lpParameter; + + while (!p->ctx->stop) { + int r, s; + int ret = -1; + BYTE buf[5840]; + + Sleep(250); + + ret = sock_pending(p->InSocket); + if (ret == 0) { + goto out; + } + + r = recv(p->InSocket, buf, sizeof(buf), 0); + if (r <= 0) { + ret = WSAGetLastError(); + printf("%s: recv(in) failed[%d][%d]\n", p->ctx->name, r, ret); + fflush(stdout); + goto stop; + } + + change_packet(p->ctx->name, p->ctx->ndr64, buf, r); + fflush(stdout); + + dump_packet(p->ctx->name, "in => out", buf, r); + fflush(stdout); + +out: + s = send(p->OutSocket, buf, r, 0); + if (s <= 0) { + ret = WSAGetLastError(); + printf("%s: send(out) failed[%d][%d]\n", p->ctx->name, s, ret); + fflush(stdout); + goto stop; + } + + ret = sock_pending(p->OutSocket); + if (ret == 0) { + goto next; + } + + r = recv(p->OutSocket, buf, sizeof(buf), 0); + if (r <= 0) { + ret = WSAGetLastError(); + printf("%s: recv(out) failed[%d][%d]\n", p->ctx->name, r, ret); + fflush(stdout); + goto stop; + } + + dump_packet(p->ctx->name, "out => in", buf, r); + fflush(stdout); + + s = send(p->InSocket, buf, r, 0); + if (s <= 0) { + ret = WSAGetLastError(); + printf("%s: send(in) failed[%d][%d]\n", p->ctx->name, s, ret); + fflush(stdout); + goto stop; + } +next: + continue; + } +stop: + closesocket(p->InSocket); + closesocket(p->OutSocket); + + printf("NDRTcpThread[%s] stop\n", p->ctx->name); + fflush(stdout); + return 0; +} + +DWORD WINAPI NDRTcpThread(LPVOID lpParameter) +{ + struct NDRTcpThreadCtx *ctx = (struct NDRTcpThreadCtx *)lpParameter; + int ret = -1; + SOCKET ListenSocket; + struct sockaddr_in saServer; + struct sockaddr_in saClient; + + //printf("NDRTcpThread[%s] start\n", ctx->name); + fflush(stdout); + + ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (ListenSocket == INVALID_SOCKET) { + ret = WSAGetLastError(); + printf("socket() failed[%d][%d]\n", ListenSocket, ret); + fflush(stdout); + goto failed; + } + + saServer.sin_family = AF_INET; + saServer.sin_addr.s_addr = inet_addr(LISTEN_IP); + saServer.sin_port = htons(ctx->listen_port); + + saClient.sin_family = AF_INET; + saClient.sin_addr.s_addr = inet_addr(FORWARD_IP); + saClient.sin_port = htons(ctx->client_port); + + ret = bind(ListenSocket, (SOCKADDR*)&saServer, sizeof(saServer)); + if (ret == SOCKET_ERROR) { + ret = WSAGetLastError(); + printf("bind() failed[%d]\n", ret); + fflush(stdout); + goto failed; + } + + ret = listen(ListenSocket, 10); + if (ret == SOCKET_ERROR) { + ret = WSAGetLastError(); + printf("listen() failed[%d]\n", ret); + fflush(stdout); + goto failed; + } + + while (!ctx->stop) { + struct sockaddr_in sa; + int sa_len = sizeof(sa); + struct NDRProxyThreadCtx *p = malloc(sizeof(*p)); + p->ctx = ctx; + + p->InSocket = accept(ListenSocket, (SOCKADDR *)&sa, &sa_len); + if (p->InSocket == INVALID_SOCKET) { + ret = WSAGetLastError(); + printf("%s: accept() failed[%d][%d]\n", p->ctx->name, p->InSocket, ret); + fflush(stdout); + continue; + } + + p->OutSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (p->OutSocket == INVALID_SOCKET) { + ret = WSAGetLastError(); + printf("%s: socket(out) failed[%d][%d]\n", p->ctx->name, p->OutSocket, ret); + fflush(stdout); + closesocket(p->InSocket); + continue; + } + + ret = connect(p->OutSocket, (SOCKADDR*)&saClient, sizeof(saClient)); + if (ret == SOCKET_ERROR) { + ret = WSAGetLastError(); + printf("%s: connect() failed[%d]\n", p->ctx->name, ret); + fflush(stdout); + closesocket(p->InSocket); + closesocket(p->OutSocket); + continue; + } + + p->hThread = CreateThread( + NULL, // default security attributes + 0, // use default stack size + NDRProxyThread, // thread function name + p, // argument to thread function + 0, // use default creation flags + &p->dwThreadId);// returns the thread identifier + if (p->hThread == NULL) { + printf("failed to create thread ndr32\n"); + fflush(stdout); + return -1; + } + } + + //printf("NDRTcpThread[%s] stop\n", ctx->name); + fflush(stdout); + return 0; +failed: + printf("NDRTcpThread[%s] failed[%d]\n", ctx->name, ret); + fflush(stdout); + return ret; +} + +struct NDRRpcThreadCtx { + const char *name; + short listen_port; +}; + +DWORD WINAPI NDRRpcThread(LPVOID lpParameter) +{ + struct NDRRpcThreadCtx *ctx = (struct NDRRpcThreadCtx *)lpParameter; + int ret = -1; + RPC_STATUS status; + RPC_BINDING_VECTOR *pBindingVector; + +#define RPC_MIN_CALLS 1 +#define RPC_MAX_CALLS 20 + + //printf("NDRRpcThread[%s] start\n", ctx->name); + fflush(stdout); + status = RpcServerUseProtseqEp("ncacn_ip_tcp", RPC_MAX_CALLS, "5055", NULL); + if (status) { + printf("Failed to register ncacn_ip_tcp endpoint\n"); + fflush(stdout); + return status; + } + + status = RpcServerInqBindings(&pBindingVector); + if (status) { + printf("Failed RpcServerInqBindings\n"); + fflush(stdout); + return status; + } + +#if 0 + status = RpcEpRegister(srv_midltests_v0_0_s_ifspec, pBindingVector, NULL, "midltests server"); + if (status) { + printf("Failed RpcEpRegister\n"); + fflush(stdout); + return status; + } +#endif + status = RpcServerRegisterIf(srv_midltests_v0_0_s_ifspec, NULL, NULL); + if (status) { + printf("Failed to register interface\n"); + fflush(stdout); + return status; + } + + status = RpcServerListen(RPC_MIN_CALLS, RPC_MAX_CALLS, FALSE); + if (status) { + printf("RpcServerListen returned error %d\n", status); + fflush(stdout); + return status; + } + + printf("NDRRpcThread[%s] stop\n", ctx->name); + fflush(stdout); + return 0; +failed: + printf("NDRRpcThread[%s] failed[%d]\n", ctx->name, ret); + fflush(stdout); + return ret; +} + +int main(int argc, char **argv) +{ + int ret; + struct NDRTcpThreadCtx ctx_ndr32; + struct NDRTcpThreadCtx ctx_ndr64; + struct NDRRpcThreadCtx ctx_rpc; + DWORD dwThreadIdArray[3]; + HANDLE hThreadArray[3]; + WORD wVersionRequested = MAKEWORD(2, 2); + WSADATA wsaData; + char *binding; + RPC_STATUS status; + + ret = WSAStartup(wVersionRequested, &wsaData); + if (ret != 0) { + printf("WSAStartup failed with error: %d\n", ret); + fflush(stdout); + return -1; + } + + ctx_ndr32.name = "ndr32"; + ctx_ndr32.listen_port = 5032; + ctx_ndr32.client_port = 5055; + ctx_ndr32.ndr64 = FALSE; + ctx_ndr32.stop = FALSE; + hThreadArray[0] = CreateThread( + NULL, // default security attributes + 0, // use default stack size + NDRTcpThread, // thread function name + &ctx_ndr32, // argument to thread function + 0, // use default creation flags + &dwThreadIdArray[0]); // returns the thread identifier + if (hThreadArray[0] == NULL) { + printf("failed to create thread ndr32\n"); + fflush(stdout); + return -1; + } + + ctx_ndr64.name = "ndr64"; + ctx_ndr64.listen_port = 5064; + ctx_ndr64.client_port = 5055; + ctx_ndr64.ndr64 = TRUE; + ctx_ndr64.stop = FALSE; + hThreadArray[1] = CreateThread( + NULL, // default security attributes + 0, // use default stack size + NDRTcpThread, // thread function name + &ctx_ndr64, // argument to thread function + 0, // use default creation flags + &dwThreadIdArray[1]); // returns the thread identifier + if (hThreadArray[1] == NULL) { + printf("failed to create thread ndr64\n"); + fflush(stdout); + return -1; + } + + ctx_rpc.name = "rpc"; + ctx_rpc.listen_port = 5050; + hThreadArray[2] = CreateThread( + NULL, // default security attributes + 0, // use default stack size + NDRRpcThread, // thread function name + &ctx_rpc, // argument to thread function + 0, // use default creation flags + &dwThreadIdArray[2]); // returns the thread identifier + if (hThreadArray[2] == NULL) { + printf("failed to create thread rpc\n"); + fflush(stdout); + return -1; + } + + printf("Wait for setup of server threads\n"); + fflush(stdout); + ret = WaitForMultipleObjects(3, hThreadArray, TRUE, 3000); + if (ret == WAIT_TIMEOUT) { + /* OK */ + } else { + printf("Failed to setup of server threads %d:%d\n", + ret, GetLastError()); + fflush(stdout); + return -1; + } + ret = 0; + + printf("\nTest NDR32\n\n"); + fflush(stdout); + binding = "ncacn_ip_tcp:" CONNECT_IP "[5032]"; + status = RpcBindingFromStringBinding( + binding, + &midltests_IfHandle); + if (status) { + printf("RpcBindingFromStringBinding returned %d\n", status); + fflush(stdout); + return status; + } + + RpcTryExcept { + midltests(); + } RpcExcept(1) { + ret = RpcExceptionCode(); + printf("NDR32 Runtime error 0x%x\n", ret); + fflush(stdout); + } RpcEndExcept + ctx_ndr32.stop = TRUE; + + Sleep(250); + + printf("\nTest NDR64\n\n"); + binding = "ncacn_ip_tcp:" CONNECT_IP "[5064]"; + status = RpcBindingFromStringBinding( + binding, + &midltests_IfHandle); + if (status) { + printf("RpcBindingFromStringBinding returned %d\n", status); + fflush(stdout); + return status; + } + + RpcTryExcept { + midltests(); + } RpcExcept(1) { + ret = RpcExceptionCode(); + printf("Runtime error 0x%x\n", ret); + fflush(stdout); + } RpcEndExcept + ctx_ndr64.stop = TRUE; + + WaitForMultipleObjects(3, hThreadArray, TRUE, 2000); + + if (ret == 0) { + printf("\nTest OK\n"); + fflush(stdout); + } else { + printf("\nTest FAILED[%d]\n", ret); + fflush(stdout); + } + + return ret; +} diff --git a/testprogs/win32/midltests/todo/midltests-array-range.idl b/testprogs/win32/midltests/todo/midltests-array-range.idl new file mode 100644 index 0000000..1d60fd6 --- /dev/null +++ b/testprogs/win32/midltests/todo/midltests-array-range.idl @@ -0,0 +1,39 @@ +#ifndef MIDLTESTS_C_CODE + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + long midltests_fn( + [out,ref] long *count, + [out,ref,size_is(,*count),range(0,1)] long **array, + [out,ref] long *error + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + long count; + long *array; + long error; + + cli_midltests_fn(&count, &array, &error); +} + +long srv_midltests_fn(long *count, long **array, long *error) +{ + printf("srv_midltests_fn: Start\n"); + *count=2; + *array=(long *)malloc((*count) * sizeof(long)); + (*array)[0] = 7; + (*array)[1] = 7; + *error=0; + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/todo/midltests-pipe-02.idl b/testprogs/win32/midltests/todo/midltests-pipe-02.idl new file mode 100644 index 0000000..e6be283 --- /dev/null +++ b/testprogs/win32/midltests/todo/midltests-pipe-02.idl @@ -0,0 +1,153 @@ +#ifndef MIDLTESTS_C_CODE + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef pipe char pipe_char; + + struct msg { + long l; + [size_is(l)] char *m; + }; + + long midltests_fn( + [out,ref] struct msg *out1, + [out] pipe_char outp, + [in] pipe_char inp, + [in] struct msg in1 + ); +} + +#elif MIDLTESTS_C_CODE +
+struct pipe_char_state {
+ const char *name;
+ unsigned long count;
+ unsigned long sleep;
+};
+
+void pipe_char_pull(
+ char * _state,
+ unsigned char * buf,
+ unsigned long esize,
+ unsigned long * ecount)
+{
+ struct pipe_char_state *state = (struct pipe_char_state *)_state;
+
+ printf("pull1:%s: esize[%u] ecount[%u]\n",
+ state->name, esize, *ecount);
+ *ecount = state->count--;
+ if (*ecount > esize) {
+ *ecount = esize;
+ }
+ memset(buf, 0xDD, *ecount);
+ printf("pull2:%s: esize[%u] ecount[%u]\n",
+ state->name, esize, *ecount);
+}
+
+void pipe_char_push(
+ char * _state,
+ unsigned char * buf,
+ unsigned long ecount)
+{
+ struct pipe_char_state *state = (struct pipe_char_state *)_state;
+
+ printf("push:%s: ecount[%u]\n",
+ state->name, ecount);
+}
+
+void pipe_char_alloc(
+ char * _state,
+ unsigned long bsize,
+ unsigned char * * buf,
+ unsigned long * bcount)
+{
+ struct pipe_char_state *state = (struct pipe_char_state *)_state;
+
+ printf("alloc1:%s: bsize[%u], bcount[%u]\n",
+ state->name, bsize, *bcount);
+ *bcount = bsize / sizeof(**buf);
+ *buf = malloc(*bcount * sizeof(**buf));
+ printf("alloc2:%s: bsize[%u], bcount[%u]\n",
+ state->name, bsize, *bcount);
+}
+ +static void midltests(void) +{ + struct msg out1; + unsigned char out1b[3]; + struct pipe_char_state outs; + pipe_char outp; + struct pipe_char_state ins; + pipe_char inp; + struct msg in1; + unsigned char in1b[3]; + + in1.l = sizeof(in1b); + memset(&in1b, 0xAA, sizeof(in1b)); + in1.m = in1b; + + memset(&outs, 0, sizeof(outs)); + outs.name = "outp"; + memset(&outp, 0, sizeof(outp)); + outp.pull = pipe_char_pull; + outp.push = pipe_char_push; + outp.alloc = pipe_char_alloc; + outp.state = (char *)&outs; + + memset(&ins, 0, sizeof(ins)); + ins.name = "inp"; + ins.count = 1; + memset(&inp, 0, sizeof(inp)); + inp.pull = pipe_char_pull; + inp.push = pipe_char_push; + inp.alloc = pipe_char_alloc; + inp.state = (char *)&ins; + + out1.l = sizeof(out1b); + memset(&out1b, 0xFF, sizeof(out1b)); + out1.m = out1b; + + cli_midltests_fn(&out1, outp, inp, in1); +} + +long srv_midltests_fn( + /* [ref][out] */ struct msg *out1,
+ /* [out] */ pipe_char outp,
+ /* [in] */ pipe_char inp,
+ /* [in] */ struct msg in1) +{ + char inb[500]; + unsigned long inb_len = 0; + char *outb = NULL; + unsigned long outb_size = 0; + unsigned long outb_len = 0; + + printf("srv_midltests_fn: Start\n"); + + do { + inp.pull(inp.state, inb, sizeof(inb), &inb_len); + printf("pull inp_len[%u]\n", inb_len); + } while (inb_len > 0); + + outb_size = 5; + do { + outp.alloc(outp.state, outb_size, &outb, &outb_len); + memset(outb, 0xCC, outb_len); + outp.push(outp.state, outb, outb_len); + printf("push outb_len[%u]\n", outb_len); + //Sleep(1000); + outb_size--; + } while (outb_len > 0); + + out1->l = 3; + out1->m = (unsigned char *)malloc(out1->l); + memset(out1->m, 0xBB, out1->l); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/todo/midltests-pipe-03-hyper.idl b/testprogs/win32/midltests/todo/midltests-pipe-03-hyper.idl new file mode 100644 index 0000000..475aedd --- /dev/null +++ b/testprogs/win32/midltests/todo/midltests-pipe-03-hyper.idl @@ -0,0 +1,205 @@ +#ifndef MIDLTESTS_C_CODE + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef pipe char pipe_char; + typedef pipe hyper pipe_hyper; + + struct msg { + long l; + [size_is(l)] char *m; + }; + + long midltests_fn( + [out,ref] struct msg *out1, + [out] pipe_hyper outp, + [in] pipe_hyper inp, + [in] struct msg in1 + ); +} + +#elif MIDLTESTS_C_CODE +
+struct pipe_char_state {
+ const char *name;
+ unsigned long count;
+ unsigned long sleep;
+};
+
+void pipe_char_pull(
+ char * _state,
+ unsigned char * buf,
+ unsigned long esize,
+ unsigned long * ecount)
+{
+ struct pipe_char_state *state = (struct pipe_char_state *)_state;
+
+ printf("pull1:%s: esize[%u] ecount[%u]\n",
+ state->name, esize, *ecount);
+ *ecount = state->count--;
+ if (*ecount > esize) {
+ *ecount = esize;
+ }
+ memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n",
+ state->name, esize, *ecount);
+}
+
+void pipe_char_push(
+ char * _state,
+ unsigned char * buf,
+ unsigned long ecount)
+{
+ struct pipe_char_state *state = (struct pipe_char_state *)_state;
+
+ printf("push:%s: ecount[%u]\n",
+ state->name, ecount);
+}
+
+void pipe_char_alloc(
+ char * _state,
+ unsigned long bsize,
+ unsigned char * * buf,
+ unsigned long * bcount)
+{
+ struct pipe_char_state *state = (struct pipe_char_state *)_state;
+
+ printf("alloc1:%s: bsize[%u], bcount[%u]\n",
+ state->name, bsize, *bcount);
+ *bcount = bsize / sizeof(**buf);
+ *buf = malloc(*bcount * sizeof(**buf));
+ printf("alloc2:%s: bsize[%u], bcount[%u]\n",
+ state->name, bsize, *bcount);
+}
+ +struct pipe_hyper_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_hyper_pull( + char * _state, + hyper * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_hyper_push( + char * _state, + hyper * buf, + unsigned long ecount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_hyper_alloc( + char * _state, + unsigned long bsize, + hyper * * buf, + unsigned long * bcount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} +static void midltests(void) +{ + struct msg out1; + unsigned char out1b[3]; + struct pipe_hyper_state outs; + pipe_hyper outp; + struct pipe_hyper_state ins; + pipe_hyper inp; + struct msg in1; + unsigned char in1b[3]; + + in1.l = sizeof(in1b); + memset(&in1b, 0xAA, sizeof(in1b)); + in1.m = in1b; + + memset(&outs, 0, sizeof(outs)); + outs.name = "outp"; + memset(&outp, 0, sizeof(outp)); + outp.pull = pipe_hyper_pull; + outp.push = pipe_hyper_push; + outp.alloc = pipe_hyper_alloc; + outp.state = (char *)&outs; + + memset(&ins, 0, sizeof(ins)); + ins.name = "inp"; + ins.count = 1; + memset(&inp, 0, sizeof(inp)); + inp.pull = pipe_hyper_pull; + inp.push = pipe_hyper_push; + inp.alloc = pipe_hyper_alloc; + inp.state = (char *)&ins; + + out1.l = sizeof(out1b); + memset(&out1b, 0xFF, sizeof(out1b)); + out1.m = out1b; + + cli_midltests_fn(&out1, outp, inp, in1); +} + +long srv_midltests_fn( + /* [ref][out] */ struct msg *out1,
+ /* [out] */ pipe_hyper outp, + /* [in] */ pipe_hyper inp, + /* [in] */ struct msg in1) +{ + hyper inb[500]; + unsigned long inb_len = 0; + hyper *outb = NULL; + unsigned long outb_size = 0; + unsigned long outb_len = 0; + + printf("srv_midltests_fn: Start\n"); + + do { + inp.pull(inp.state, inb, sizeof(inb), &inb_len); + printf("pull inp_len[%u]\n", inb_len); + } while (inb_len > 0); + + outb_size = 5; + do { + outp.alloc(outp.state, outb_size, &outb, &outb_len); + memset(outb, 0xCC, outb_len * sizeof(*outb)); + outp.push(outp.state, outb, outb_len); + printf("push outb_len[%u]\n", outb_len); + //Sleep(1000); + outb_size--; + } while (outb_len > 0); + + out1->l = 3; + out1->m = (unsigned char *)malloc(out1->l); + memset(out1->m, 0xBB, out1->l); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/todo/midltests-pipe-04-struct.idl b/testprogs/win32/midltests/todo/midltests-pipe-04-struct.idl new file mode 100644 index 0000000..07921b8 --- /dev/null +++ b/testprogs/win32/midltests/todo/midltests-pipe-04-struct.idl @@ -0,0 +1,272 @@ +#ifndef MIDLTESTS_C_CODE + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef pipe char pipe_char; + typedef pipe hyper pipe_hyper; + typedef struct { + long l; + short s; + } structtype; + typedef pipe structtype pipe_structtype; + + struct msg { + long l; + [size_is(l)] char *m; + }; + + long midltests_fn( + [out,ref] struct msg *out1, + [out] pipe_structtype outp, + [in] pipe_structtype inp, + [in] struct msg in1 + ); + + long midltests_ping( [in] struct msg in1); + +} + +#elif MIDLTESTS_C_CODE +
+struct pipe_char_state {
+ const char *name;
+ unsigned long count;
+ unsigned long sleep;
+};
+
+void pipe_char_pull(
+ char * _state,
+ unsigned char * buf,
+ unsigned long esize,
+ unsigned long * ecount)
+{
+ struct pipe_char_state *state = (struct pipe_char_state *)_state;
+
+ printf("pull1:%s: esize[%u] ecount[%u]\n",
+ state->name, esize, *ecount);
+ *ecount = state->count--;
+ if (*ecount > esize) {
+ *ecount = esize;
+ }
+ memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n",
+ state->name, esize, *ecount);
+}
+
+void pipe_char_push(
+ char * _state,
+ unsigned char * buf,
+ unsigned long ecount)
+{
+ struct pipe_char_state *state = (struct pipe_char_state *)_state;
+
+ printf("push:%s: ecount[%u]\n",
+ state->name, ecount);
+}
+
+void pipe_char_alloc(
+ char * _state,
+ unsigned long bsize,
+ unsigned char * * buf,
+ unsigned long * bcount)
+{
+ struct pipe_char_state *state = (struct pipe_char_state *)_state;
+
+ printf("alloc1:%s: bsize[%u], bcount[%u]\n",
+ state->name, bsize, *bcount);
+ *bcount = bsize / sizeof(**buf);
+ *buf = malloc(*bcount * sizeof(**buf));
+ printf("alloc2:%s: bsize[%u], bcount[%u]\n",
+ state->name, bsize, *bcount);
+}
+ +struct pipe_hyper_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_hyper_pull( + char * _state, + hyper * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_hyper_push( + char * _state, + hyper * buf, + unsigned long ecount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_hyper_alloc( + char * _state, + unsigned long bsize, + hyper * * buf, + unsigned long * bcount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} +struct pipe_structtype_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_structtype_pull( + char * _state, + structtype * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_structtype_push( + char * _state, + structtype * buf, + unsigned long ecount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_structtype_alloc( + char * _state, + unsigned long bsize, + structtype * * buf, + unsigned long * bcount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} +static void midltests(void) +{ + struct msg out1; + unsigned char out1b[3]; + struct pipe_structtype_state outs; + pipe_structtype outp; + struct pipe_structtype_state ins; + pipe_structtype inp; + struct msg in1; + unsigned char in1b[3]; + + in1.l = sizeof(in1b); + memset(&in1b, 0xAA, sizeof(in1b)); + in1.m = in1b; + + memset(&outs, 0, sizeof(outs)); + outs.name = "outp"; + memset(&outp, 0, sizeof(outp)); + outp.pull = pipe_structtype_pull; + outp.push = pipe_structtype_push; + outp.alloc = pipe_structtype_alloc; + outp.state = (char *)&outs; + + memset(&ins, 0, sizeof(ins)); + ins.name = "inp"; + ins.count = 1; + memset(&inp, 0, sizeof(inp)); + inp.pull = pipe_structtype_pull; + inp.push = pipe_structtype_push; + inp.alloc = pipe_structtype_alloc; + inp.state = (char *)&ins; + + out1.l = sizeof(out1b); + memset(&out1b, 0xFF, sizeof(out1b)); + out1.m = out1b; + + cli_midltests_ping(in1); + cli_midltests_fn(&out1, outp, inp, in1); +} + +long srv_midltests_fn( + /* [ref][out] */ struct msg *out1,
+ /* [out] */ pipe_structtype outp, + /* [in] */ pipe_structtype inp, + /* [in] */ struct msg in1) +{ + structtype inb[500]; + unsigned long inb_len = 0; + structtype *outb = NULL; + unsigned long outb_size = 0; + unsigned long outb_len = 0; + + printf("srv_midltests_fn: Start\n"); + + do { + inp.pull(inp.state, inb, sizeof(inb), &inb_len); + printf("pull inp_len[%u]\n", inb_len); + } while (inb_len > 0); + + outb_size = 5; + do { + outp.alloc(outp.state, outb_size, &outb, &outb_len); + memset(outb, 0xCC, outb_len * sizeof(*outb)); + outp.push(outp.state, outb, outb_len); + printf("push outb_len[%u]\n", outb_len); + //Sleep(1000); + outb_size--; + } while (outb_len > 0); + + out1->l = 3; + out1->m = (unsigned char *)malloc(out1->l); + memset(out1->m, 0xBB, out1->l); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +long srv_midltests_ping( + /* [in] */ struct msg in1) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} +#endif diff --git a/testprogs/win32/midltests/todo/midltests-pipe-first.idl b/testprogs/win32/midltests/todo/midltests-pipe-first.idl new file mode 100755 index 0000000..ef28943 --- /dev/null +++ b/testprogs/win32/midltests/todo/midltests-pipe-first.idl @@ -0,0 +1,233 @@ +#ifndef MIDLTESTS_C_CODE +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ +/* typedef struct st_wire { + long len; + //[size_is(len)] char data[*]; + [size_is(l2)] char *d2; + long l2; + } st_wire_t; + struct st_local { + short s1; + short s2; + }; + typedef [transmit_as(st_wire_t)] struct st_local st_local_t; + + long midltests_fn( + [in] st_local_t st + + ); +*/ +/* struct my_ace { + long ace1; + long ace2; + }; + struct my_acl { + long revision; + long num_aces; + [size_is(num_aces)] struct my_ace *aces; + }; + long midltests_fn( + [in,ref] struct my_acl *acl + ); +*/ +/* struct my_str { + long l1; + [string] wchar_t str[260+1]; + long l2; + }; + long midltests_fn( + [in,out,ref] struct my_str *str + ); +*/ + long foo(); + long midltests_fn( + [in] long size, + [out,ref,size_is(size),length_is(*length)] byte *bytes, + [out,ref] long *length + ); + + typedef pipe byte BYTE_PIPE; + typedef pipe long LONG_PIPE; + + long midltests_fn_pipe( + [in] long count, + [out,ref] long *start_magic, + [out] BYTE_PIPE b, + [out, ref] long *mid_magic, + [out] LONG_PIPE l, + [out,ref] long *end_magic + ); + +} +#elif MIDLTESTS_C_CODE +/* +void __RPC_USER st_local_t_to_xmit(st_local_t *l, st_wire_t **w) +{ + *w = malloc(4+ sizeof(st_wire_t)); + (*w)->len = sizeof(st_local_t); + //(*w)->data = malloc((*w)->len); + memcpy((*w)->data, l, sizeof(st_local_t)); + //memset(*w, 0xcd, sizeof(st_wire_t)); +} + +void __RPC_USER st_local_t_from_xmit(st_wire_t *w, st_local_t *l) +{ + memcpy(l, w->data, sizeof(st_local_t)); +// memset(l, 0, sizeof(st_local_t)); +} + +void __RPC_USER st_local_t_free_inst(st_local_t *l) +{ + +} + +void __RPC_USER st_local_t_free_xmit(st_wire_t *w) +{ + //free(w->data); + free(w); +} +*/ + +void __RPC_USER cli_push_b(char * state, + byte * buf, + unsigned long ecount) +{ + printf("cli_push_b ecount[%lu]\n", ecount); +} + +void __RPC_USER cli_alloc_b(char * state, + unsigned long bsize, + byte * * buf, + unsigned long * bcount ) +{ + printf("cli_alloc_b bsize[%lu]\n", bsize); + *buf = NULL; + *bcount = 0; +} + +void __RPC_USER cli_push_l(char * state, + long * buf, + unsigned long ecount) +{ + printf("cli_push_l ecount[%lu]\n", ecount); +} + +void __RPC_USER cli_alloc_l(char * state, + unsigned long bsize, + long * * buf, + unsigned long * bcount ) +{ + printf("cli_alloc_l bsize[%lu]\n", bsize); + *buf = NULL; + *bcount = 0; +} + +static void midltests() +{ +/* st_local_t st; + st.s1 = 1; + st.s2 = 2; + cli_midltests_fn(st); +*/ +/* struct my_acl acl; + struct my_ace aces[3]; + aces[0].ace1 = 1; + aces[0].ace2 = 2; + aces[1].ace1 = 1; + aces[1].ace2 = 2; + aces[2].ace1 = 1; + aces[2].ace2 = 2; + acl.revision = 5; + acl.num_aces = 1; + acl.aces = aces; + cli_midltests_fn(&acl); +*/ +/* struct my_str str; + memset(&str, 0, sizeof(str)); + str.l1 = 1; + printf("here: %d\n", __LINE__); + //wcscpy(str.str, L'Hello World\0'); + str.l2 = 2; + printf("here: %d\n", __LINE__); + cli_midltests_fn(&str); +*/ + byte buf[10]; + long length = 0; + memset(buf, 0xdf, sizeof(buf)); +// cli_midltests_fn(sizeof(buf), buf, &length); + +/* long count = 2; + long start_magic; + BYTE_PIPE b; + long mid_magic; + LONG_PIPE l; + long end_magic; + + + memset(&b, 0, sizeof(b)); + memset(&l, 0, sizeof(l)); + + b.alloc = cli_alloc_b; + b.push = cli_push_b; + + l.alloc = cli_alloc_l; + l.push = cli_push_l; + + printf("cli call start\n"); + cli_midltests_fn(count, + &start_magic, + b, + &mid_magic, + l, + &end_magic); + printf("cli call end\n"); +*/ +} + +//long srv_midltests_fn(struct my_str *str)//struct my_acl *acl)//st_local_t st) +//long srv_midltests_fn(long size, byte *bytes, long *length) +#if 1 +long srv_midltests_fn( + /* [in] */ long count, + /* [ref][out] */ long *start_magic, + /* [out] */ BYTE_PIPE b, + /* [ref][out] */ long *mid_magic, + /* [out] */ LONG_PIPE l, + /* [ref][out] */ long *end_magic) +#endif +{ +/* byte bytes[10]; + long longs[10]; + int i; +*/ + printf("srv_midltests_fn: Start\n"); + //printf("s1[%d] s2[%d]\n", st.s1, st.s2); + //printf(l1[%d] str[%s] l2[%d]\n", str->l1, str->str, str->l2); + +/* *start_magic = 0x01234567; + *mid_magic = 0x88888888; + *end_magic = 0xFEDCBA09; + + memset(bytes, 0xBE, sizeof(bytes)); + memset(longs, 0xAC, sizeof(longs)); + + for (i=0; i < count; i++) { + b.push(b.state, bytes, sizeof(bytes)/sizeof(bytes[0])); + } + b.push(b.state, NULL, 0); + + for (i=0; i < count; i++) { + l.push(l.state, longs, sizeof(longs)/sizeof(longs[0])); + } + l.push(l.state, NULL, 0); +*/ + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif
\ No newline at end of file diff --git a/testprogs/win32/midltests/todo/midltests-pipe-sync-ndr32-downgrade-02.idl b/testprogs/win32/midltests/todo/midltests-pipe-sync-ndr32-downgrade-02.idl new file mode 100644 index 0000000..760401e --- /dev/null +++ b/testprogs/win32/midltests/todo/midltests-pipe-sync-ndr32-downgrade-02.idl @@ -0,0 +1,296 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ + +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") + + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef pipe char pipe_char; + typedef pipe hyper pipe_hyper; + typedef struct { + long l; + short s; + } structtype; + typedef pipe structtype pipe_structtype; + + struct msg { + long l; + [size_is(l)] char *m; + }; + + long midltests_fn( + [out,ref] struct msg *out1, + [out] pipe_structtype outp, + [in] pipe_structtype inp, + [in] struct msg in1 + ); + + long midltests_ping( [in] struct msg in1); + +} + +#elif MIDLTESTS_C_CODE + +struct pipe_char_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_char_pull( + char * _state, + unsigned char * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_char_state *state = (struct pipe_char_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_char_push( + char * _state, + unsigned char * buf, + unsigned long ecount) +{ + struct pipe_char_state *state = (struct pipe_char_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_char_alloc( + char * _state, + unsigned long bsize, + unsigned char * * buf, + unsigned long * bcount) +{ + struct pipe_char_state *state = (struct pipe_char_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} + +struct pipe_hyper_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_hyper_pull( + char * _state, + hyper * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_hyper_push( + char * _state, + hyper * buf, + unsigned long ecount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_hyper_alloc( + char * _state, + unsigned long bsize, + hyper * * buf, + unsigned long * bcount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} +struct pipe_structtype_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_structtype_pull( + char * _state, + structtype * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_structtype_push( + char * _state, + structtype * buf, + unsigned long ecount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_structtype_alloc( + char * _state, + unsigned long bsize, + structtype * * buf, + unsigned long * bcount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} +static void midltests(void) +{ + struct msg out1; + unsigned char out1b[3]; + struct pipe_structtype_state outs; + pipe_structtype outp; + struct pipe_structtype_state ins; + pipe_structtype inp; + struct msg in1; + unsigned char in1b[5000]; + + in1.l = sizeof(in1b); + memset(&in1b, 0xAA, sizeof(in1b)); + in1.m = in1b; + + memset(&outs, 0, sizeof(outs)); + outs.name = "outp"; + memset(&outp, 0, sizeof(outp)); + outp.pull = pipe_structtype_pull; + outp.push = pipe_structtype_push; + outp.alloc = pipe_structtype_alloc; + outp.state = (char *)&outs; + + memset(&ins, 0, sizeof(ins)); + ins.name = "inp"; + ins.count = 100; + memset(&inp, 0, sizeof(inp)); + inp.pull = pipe_structtype_pull; + inp.push = pipe_structtype_push; + inp.alloc = pipe_structtype_alloc; + inp.state = (char *)&ins; + + out1.l = sizeof(out1b); + memset(&out1b, 0xFF, sizeof(out1b)); + out1.m = out1b; + + cli_midltests_ping(in1); + cli_midltests_fn(&out1, outp, inp, in1); +} + +long srv_midltests_fn( + /* [ref][out] */ struct msg *out1, + /* [out] */ pipe_structtype outp, + /* [in] */ pipe_structtype inp, + /* [in] */ struct msg in1) +{ + structtype inb[500]; + unsigned long inb_len = 0; + structtype *outb = NULL; + unsigned long outb_size = 0; + unsigned long outb_len = 0; + + printf("srv_midltests_fn: Start\n"); + + do { + inp.pull(inp.state, inb, sizeof(inb), &inb_len); + printf("pull inp_len[%u]\n", inb_len); + } while (inb_len > 0); + + outb_size = 5; + do { + outp.alloc(outp.state, outb_size, &outb, &outb_len); + memset(outb, 0xCC, outb_len * sizeof(*outb)); + outp.push(outp.state, outb, outb_len); + printf("push outb_len[%u]\n", outb_len); + //Sleep(1000); + outb_size--; + } while (outb_len > 0); + + out1->l = 3; + out1->m = (unsigned char *)malloc(out1->l); + memset(out1->m, 0xBB, out1->l); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +long srv_midltests_ping( + /* [in] */ struct msg in1) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} +#endif diff --git a/testprogs/win32/midltests/todo/midltests-string-in-out-ref.idl b/testprogs/win32/midltests/todo/midltests-string-in-out-ref.idl new file mode 100644 index 0000000..4db6f96 --- /dev/null +++ b/testprogs/win32/midltests/todo/midltests-string-in-out-ref.idl @@ -0,0 +1,33 @@ +#ifndef MIDLTESTS_C_CODE + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + long midltests_fn( + [in,out,ref,string] wchar_t *s + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + wchar_t s[] = { 's', 'a', 'm', 'b', 'a', 0 }; + + cli_midltests_fn(s); +} + +long srv_midltests_fn(wchar_t *s) +{ + printf("srv_midltests_fn: Start\n"); + s[1] = 0; + s[2] = 'M'; + s[5] = '4'; + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/todo/midltests-transmit-as.idl b/testprogs/win32/midltests/todo/midltests-transmit-as.idl new file mode 100755 index 0000000..bf5bc3f --- /dev/null +++ b/testprogs/win32/midltests/todo/midltests-transmit-as.idl @@ -0,0 +1,59 @@ +#ifndef MIDLTESTS_C_CODE +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef struct st_wire { + char data[20]; + } st_wire_t; + struct st_local { + short s1; + short s2; + }; + typedef [transmit_as(st_wire_t)] struct st_local st_local_t; + + long midltests_fn( + [in] st_local_t st + ); +} +#elif MIDLTESTS_C_CODE + +void __RPC_USER st_local_t_to_xmit(st_local_t *l, st_wire_t **w) +{ + *w = malloc(sizeof(st_wire_t)); + memset(*w, 0xcd, sizeof(st_wire_t)); +} + +void __RPC_USER st_local_t_from_xmit(st_wire_t *w, st_local_t *l) +{ + memset(l, 0, sizeof(st_local_t)); +} + +void __RPC_USER st_local_t_free_inst(st_local_t *l) +{ + +} + +void __RPC_USER st_local_t_free_xmit(st_wire_t *w) +{ + free(w); +} + +static void midltests() +{ + char s[64]; + st_local_t st; + strcpy(s, "TestString"); + cli_midltests_fn(st); +} + +long srv_midltests_fn(st_local_t st) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif
\ No newline at end of file diff --git a/testprogs/win32/midltests/todo/midltests_pointer_default.idl b/testprogs/win32/midltests/todo/midltests_pointer_default.idl new file mode 100755 index 0000000..9e0c18f --- /dev/null +++ b/testprogs/win32/midltests/todo/midltests_pointer_default.idl @@ -0,0 +1,20 @@ +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(ptr) +] +interface midltests +{ + struct midltests_struct { + [ref] long ****p; + [ref] long **a; + [ref] long **b; + [ref] long **c; + }; + + void midltests_fn( + //[in] long size, + [in,out,ref] struct midltests_struct *s + //[in,ref,size_is(,size)] long ***array + ); + +}
\ No newline at end of file diff --git a/testprogs/win32/midltests/utils.c b/testprogs/win32/midltests/utils.c new file mode 100644 index 0000000..8c4833d --- /dev/null +++ b/testprogs/win32/midltests/utils.c @@ -0,0 +1,32 @@ +/* + MIDLTESTS utility functions. + + Copyright (C) Tim Potter 2003 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "midltests.h" + +/* MIDL allocate and free functions */ + +void __RPC_FAR *__RPC_USER midl_user_allocate(size_t len) +{ + return(malloc(len)); +} + +void __RPC_USER midl_user_free(void __RPC_FAR *ptr) +{ + free(ptr); +} diff --git a/testprogs/win32/midltests/valid/README.txt b/testprogs/win32/midltests/valid/README.txt new file mode 100644 index 0000000..9208fae --- /dev/null +++ b/testprogs/win32/midltests/valid/README.txt @@ -0,0 +1,6 @@ +This directory contains IDL files which demonstrate +the relationship between IDL definitions and NDR representation. + +In order to test them, you can compile them as midltests.idl. + +Note: some examples trigger runtime errors. diff --git a/testprogs/win32/midltests/valid/midltests-pipe-sync-ndr32-downgrade-01.idl b/testprogs/win32/midltests/valid/midltests-pipe-sync-ndr32-downgrade-01.idl new file mode 100644 index 0000000..26ef939 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests-pipe-sync-ndr32-downgrade-01.idl @@ -0,0 +1,296 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef pipe char pipe_char; + typedef pipe hyper pipe_hyper; + typedef struct { + long l; + short s; + } structtype; + typedef pipe structtype pipe_structtype; + + struct msg { + long l; + [size_is(l)] char *m; + }; + + long midltests_fn( + [out,ref] struct msg *out1, + [out] pipe_structtype outp, + [in] pipe_structtype inp, + [in] struct msg in1 + ); + + long midltests_ping( [in] struct msg in1); + +} + +#elif MIDLTESTS_C_CODE + +struct pipe_char_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_char_pull( + char * _state, + unsigned char * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_char_state *state = (struct pipe_char_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_char_push( + char * _state, + unsigned char * buf, + unsigned long ecount) +{ + struct pipe_char_state *state = (struct pipe_char_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_char_alloc( + char * _state, + unsigned long bsize, + unsigned char * * buf, + unsigned long * bcount) +{ + struct pipe_char_state *state = (struct pipe_char_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} + +struct pipe_hyper_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_hyper_pull( + char * _state, + hyper * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_hyper_push( + char * _state, + hyper * buf, + unsigned long ecount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_hyper_alloc( + char * _state, + unsigned long bsize, + hyper * * buf, + unsigned long * bcount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} +struct pipe_structtype_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_structtype_pull( + char * _state, + structtype * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_structtype_push( + char * _state, + structtype * buf, + unsigned long ecount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_structtype_alloc( + char * _state, + unsigned long bsize, + structtype * * buf, + unsigned long * bcount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} +static void midltests(void) +{ + struct msg out1; + unsigned char out1b[3]; + struct pipe_structtype_state outs; + pipe_structtype outp; + struct pipe_structtype_state ins; + pipe_structtype inp; + struct msg in1; + unsigned char in1b[3]; + + in1.l = sizeof(in1b); + memset(&in1b, 0xAA, sizeof(in1b)); + in1.m = in1b; + + memset(&outs, 0, sizeof(outs)); + outs.name = "outp"; + memset(&outp, 0, sizeof(outp)); + outp.pull = pipe_structtype_pull; + outp.push = pipe_structtype_push; + outp.alloc = pipe_structtype_alloc; + outp.state = (char *)&outs; + + memset(&ins, 0, sizeof(ins)); + ins.name = "inp"; + ins.count = 1; + memset(&inp, 0, sizeof(inp)); + inp.pull = pipe_structtype_pull; + inp.push = pipe_structtype_push; + inp.alloc = pipe_structtype_alloc; + inp.state = (char *)&ins; + + out1.l = sizeof(out1b); + memset(&out1b, 0xFF, sizeof(out1b)); + out1.m = out1b; + + cli_midltests_ping(in1); + cli_midltests_fn(&out1, outp, inp, in1); +} + +long srv_midltests_fn( + /* [ref][out] */ struct msg *out1, + /* [out] */ pipe_structtype outp, + /* [in] */ pipe_structtype inp, + /* [in] */ struct msg in1) +{ + structtype inb[500]; + unsigned long inb_len = 0; + structtype *outb = NULL; + unsigned long outb_size = 0; + unsigned long outb_len = 0; + + printf("srv_midltests_fn: Start\n"); + + do { + inp.pull(inp.state, inb, sizeof(inb), &inb_len); + printf("pull inp_len[%u]\n", inb_len); + } while (inb_len > 0); + + outb_size = 5; + do { + outp.alloc(outp.state, outb_size, &outb, &outb_len); + memset(outb, 0xCC, outb_len * sizeof(*outb)); + outp.push(outp.state, outb, outb_len); + printf("push outb_len[%u]\n", outb_len); + //Sleep(1000); + outb_size--; + } while (outb_len > 0); + + out1->l = 3; + out1->m = (unsigned char *)malloc(out1->l); + memset(out1->m, 0xBB, out1->l); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +long srv_midltests_ping( + /* [in] */ struct msg in1) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} +#endif diff --git a/testprogs/win32/midltests/valid/midltests-pipe-sync-ndr32-downgrade-01.txt b/testprogs/win32/midltests/valid/midltests-pipe-sync-ndr32-downgrade-01.txt new file mode 100644 index 0000000..1c8d003 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests-pipe-sync-ndr32-downgrade-01.txt @@ -0,0 +1,138 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[39] plen[15] + +[000] 03 00 00 00 00 00 02 00 03 00 00 00 AA AA AA ........ ....... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] + +[000] 54 72 75 65 True + +ndr32: got NDR32 + +alloc1:inp: bsize[5000], bcount[0] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[1] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[0] +ndr32:in => out: ptype[alter_req] flen[72] call[3] contexts[1] + + +ndr32:out => in: ptype[alter_ack] flen[56] call[3] + +ndr32:in => out: ptype[request] flen[56] plen[32] + +[000] 03 00 00 00 00 00 02 00 03 00 00 00 AA AA AA 00 ........ ........ +[010] 01 00 00 00 DD DD DD DD DD DD 08 00 00 00 00 00 ........ ........ + +srv_midltests_fn: Start +pull inp_len[1] +pull inp_len[0] +push outb_len[5] +push outb_len[4] +push outb_len[3] +push outb_len[2] +push outb_len[1] +push outb_len[0] +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[188] plen[164] + +[000] 05 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[010] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[020] CC CC CC CC CC CC CC CC CC CC 00 00 04 00 00 00 ........ ........ +[030] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[040] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[050] 03 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[060] CC CC CC CC CC CC CC CC CC CC 00 00 02 00 00 00 ........ ........ +[070] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[080] 01 00 00 00 CC CC CC CC CC CC 00 00 00 00 00 00 ........ ........ +[090] 03 00 00 00 00 00 02 00 03 00 00 00 BB BB BB 00 ........ ........ +[0A0] 54 72 75 65 True + +alloc1:outp: bsize[6664], bcount[1] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[15] +push:outp: ecount[0] +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[51] plen[27] + +[000] 03 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 ........ ........ +[010] 03 00 00 00 00 00 00 00 AA AA AA ........ ... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] + +[000] 54 72 75 65 True + + +ndr64: got NDR32 downgrade + + +alloc1:inp: bsize[5000], bcount[0] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[1] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[0] +ndr64:in => out: ptype[alter_req] flen[72] call[3] contexts[1] + + +ndr64:out => in: ptype[alter_ack] flen[56] call[3] + +ndr64:in => out: ptype[request] flen[56] plen[32] + +[000] 03 00 00 00 00 00 02 00 03 00 00 00 AA AA AA 00 ........ ........ +[010] 01 00 00 00 DD DD DD DD DD DD 00 00 00 00 00 00 ........ ........ + +srv_midltests_fn: Start +pull inp_len[1] +pull inp_len[0] +push outb_len[5] +push outb_len[4] +push outb_len[3] +push outb_len[2] +push outb_len[1] +push outb_len[0] +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[188] plen[164] + +[000] 05 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[010] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[020] CC CC CC CC CC CC CC CC CC CC 00 00 04 00 00 00 ........ ........ +[030] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[040] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[050] 03 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[060] CC CC CC CC CC CC CC CC CC CC 00 00 02 00 00 00 ........ ........ +[070] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[080] 01 00 00 00 CC CC CC CC CC CC 00 00 00 00 00 00 ........ ........ +[090] 03 00 00 00 00 00 02 00 03 00 00 00 BB BB BB 00 ........ ........ +[0A0] 54 72 75 65 True + +alloc1:outp: bsize[6664], bcount[1] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[15] +push:outp: ecount[0] +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests-pipe-sync-ndr32-downgrade-02.idl b/testprogs/win32/midltests/valid/midltests-pipe-sync-ndr32-downgrade-02.idl new file mode 100644 index 0000000..888ba79 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests-pipe-sync-ndr32-downgrade-02.idl @@ -0,0 +1,300 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef pipe char pipe_char; + typedef pipe hyper pipe_hyper; + typedef struct { + long l; + short s; + } structtype; + typedef pipe structtype pipe_structtype; + + struct msg { + long l; + [size_is(l)] char *m; + }; + + long midltests_fn( + [out,ref] struct msg *out1, + [out] pipe_structtype outp, + [in] pipe_structtype inp, + [in] struct msg in1 + ); + + long midltests_ping( [in] struct msg in1); + +} + +#elif MIDLTESTS_C_CODE + +struct pipe_char_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_char_pull( + char * _state, + unsigned char * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_char_state *state = (struct pipe_char_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_char_push( + char * _state, + unsigned char * buf, + unsigned long ecount) +{ + struct pipe_char_state *state = (struct pipe_char_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_char_alloc( + char * _state, + unsigned long bsize, + unsigned char * * buf, + unsigned long * bcount) +{ + struct pipe_char_state *state = (struct pipe_char_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} + +struct pipe_hyper_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_hyper_pull( + char * _state, + hyper * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_hyper_push( + char * _state, + hyper * buf, + unsigned long ecount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_hyper_alloc( + char * _state, + unsigned long bsize, + hyper * * buf, + unsigned long * bcount) +{ + struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} +struct pipe_structtype_state { + const char *name; + unsigned long count; + unsigned long sleep; +}; + +void pipe_structtype_pull( + char * _state, + structtype * buf, + unsigned long esize, + unsigned long * ecount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("pull1:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); + *ecount = state->count--; + if (*ecount > esize) { + *ecount = esize; + } + memset(buf, 0xDD, *ecount * sizeof(*buf)); + printf("pull2:%s: esize[%u] ecount[%u]\n", + state->name, esize, *ecount); +} + +void pipe_structtype_push( + char * _state, + structtype * buf, + unsigned long ecount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("push:%s: ecount[%u]\n", + state->name, ecount); +} + +void pipe_structtype_alloc( + char * _state, + unsigned long bsize, + structtype * * buf, + unsigned long * bcount) +{ + struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state; + + printf("alloc1:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); + *bcount = bsize / sizeof(**buf); + *buf = malloc(*bcount * sizeof(**buf)); + printf("alloc2:%s: bsize[%u], bcount[%u]\n", + state->name, bsize, *bcount); +} +static void midltests(void) +{ + struct msg out1; + unsigned char out1b[3]; + struct pipe_structtype_state outs; + pipe_structtype outp; + struct pipe_structtype_state ins; + pipe_structtype inp; + struct msg in1; + unsigned char in1b[3000]; + + in1.l = sizeof(in1b); + memset(&in1b, 0xAA, sizeof(in1b)); + in1.m = in1b; + + memset(&outs, 0, sizeof(outs)); + outs.name = "outp"; + memset(&outp, 0, sizeof(outp)); + outp.pull = pipe_structtype_pull; + outp.push = pipe_structtype_push; + outp.alloc = pipe_structtype_alloc; + outp.state = (char *)&outs; + + memset(&ins, 0, sizeof(ins)); + ins.name = "inp"; + ins.count = 35; + memset(&inp, 0, sizeof(inp)); + inp.pull = pipe_structtype_pull; + inp.push = pipe_structtype_push; + inp.alloc = pipe_structtype_alloc; + inp.state = (char *)&ins; + + out1.l = sizeof(out1b); + memset(&out1b, 0xFF, sizeof(out1b)); + out1.m = out1b; + + cli_midltests_ping(in1); + cli_midltests_fn(&out1, outp, inp, in1); +} + +long srv_midltests_fn( + /* [ref][out] */ struct msg *out1, + /* [out] */ pipe_structtype outp, + /* [in] */ pipe_structtype inp, + /* [in] */ struct msg in1) +{ + structtype inb[2500]; + unsigned long inb_len = 0; + structtype *outb = NULL; + unsigned long outb_size = 0; + unsigned long outb_len = 0; + + printf("srv_midltests_fn: Start\n"); + fflush(stdout); + + do { + inp.pull(inp.state, inb, sizeof(inb), &inb_len); + printf("pull inp_len[%u]\n", inb_len); + fflush(stdout); + } while (inb_len > 0); + + outb_size = 50; + do { + outp.alloc(outp.state, outb_size, &outb, &outb_len); + memset(outb, 0xCC, outb_len * sizeof(*outb)); + printf("push outb_len[%u]\n", outb_len); + fflush(stdout); + outp.push(outp.state, outb, outb_len); + //Sleep(1000); + outb_size--; + } while (outb_len > 0); + + out1->l = 3; + out1->m = (unsigned char *)malloc(out1->l); + memset(out1->m, 0xBB, out1->l); + printf("srv_midltests_fn: End\n"); + fflush(stdout); + return 0x65757254; +} + +long srv_midltests_ping( + /* [in] */ struct msg in1) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} +#endif diff --git a/testprogs/win32/midltests/valid/midltests-pipe-sync-ndr32-downgrade-02.txt b/testprogs/win32/midltests/valid/midltests-pipe-sync-ndr32-downgrade-02.txt new file mode 100644 index 0000000..9ae037e --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests-pipe-sync-ndr32-downgrade-02.txt @@ -0,0 +1,3266 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[3036] plen[3012] ahint[3012] + +[000] B8 0B 00 00 00 00 02 00 B8 0B 00 00 AA AA AA AA ........ ........ +[010] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[020] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[030] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[040] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[050] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[060] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[070] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[080] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[090] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[100] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[110] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[120] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[130] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[140] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[150] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[160] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[170] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[180] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[190] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[200] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[210] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[220] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[230] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[240] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[250] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[260] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[270] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[280] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[290] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[300] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[310] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[320] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[330] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[340] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[350] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[360] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[370] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[380] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[390] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[400] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[410] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[420] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[430] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[440] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[450] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[460] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[470] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[480] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[490] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[500] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[510] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[520] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[530] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[540] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[550] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[560] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[570] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[580] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[590] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[600] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[610] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[620] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[630] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[640] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[650] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[660] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[670] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[680] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[690] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[700] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[710] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[720] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[730] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[740] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[750] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[760] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[770] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[780] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[790] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[800] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[810] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[820] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[830] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[840] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[850] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[860] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[870] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[880] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[890] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[900] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[910] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[920] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[930] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[940] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[950] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[960] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[970] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[980] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[990] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A00] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A10] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A20] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A30] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A40] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A50] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A60] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A70] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A80] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A90] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AA0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AB0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AC0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AD0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AE0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AF0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B00] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B10] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B20] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B30] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B40] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B50] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B60] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B70] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B80] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B90] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[BA0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[BB0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[BC0] AA AA AA AA .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32: disable NDR64 + +alloc1:inp: bsize[5000], bcount[0] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[35] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[34] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[33] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[32] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[31] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[30] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[29] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[28] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[27] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[26] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[25] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[24] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[23] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[22] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[21] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[20] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[19] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[18] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[17] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[16] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[15] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[14] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[13] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[12] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[11] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[10] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[9] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[8] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[7] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[6] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[5] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[4] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[3] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[2] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[1] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[0] +ndr32:in => out: ptype[request] flen[5840] plen[5816] ahint[3012] + +[000] B8 0B 00 00 00 00 02 00 B8 0B 00 00 AA AA AA AA ........ ........ +[010] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[020] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[030] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[040] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[050] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[060] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[070] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[080] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[090] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[100] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[110] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[120] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[130] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[140] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[150] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[160] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[170] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[180] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[190] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[200] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[210] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[220] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[230] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[240] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[250] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[260] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[270] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[280] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[290] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[300] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[310] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[320] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[330] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[340] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[350] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[360] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[370] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[380] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[390] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[400] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[410] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[420] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[430] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[440] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[450] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[460] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[470] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[480] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[490] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[500] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[510] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[520] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[530] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[540] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[550] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[560] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[570] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[580] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[590] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[600] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[610] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[620] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[630] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[640] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[650] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[660] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[670] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[680] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[690] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[700] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[710] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[720] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[730] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[740] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[750] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[760] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[770] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[780] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[790] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[800] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[810] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[820] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[830] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[840] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[850] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[860] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[870] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[880] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[890] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[900] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[910] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[920] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[930] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[940] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[950] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[960] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[970] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[980] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[990] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A00] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A10] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A20] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A30] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A40] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A50] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A60] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A70] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A80] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A90] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AA0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AB0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AC0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AD0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AE0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AF0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B00] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B10] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B20] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B30] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B40] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B50] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B60] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B70] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B80] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B90] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[BA0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[BB0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[BC0] AA AA AA AA 23 00 00 00 DD DD DD DD DD DD DD DD ....#... ........ +[BD0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[BE0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[BF0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C00] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C10] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C20] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C30] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C40] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C50] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C60] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C70] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C80] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C90] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[CA0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[CB0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[CC0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[CD0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD 00 00 ........ ........ +[CE0] 22 00 00 00 DD DD DD DD DD DD DD DD DD DD DD DD "....... ........ +[CF0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D00] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D10] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D20] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D30] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D40] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D50] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D60] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D70] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D80] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D90] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[DA0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[DB0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[DC0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[DD0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[DE0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[DF0] DD DD 00 00 21 00 00 00 DD DD DD DD DD DD DD DD ....!... ........ +[E00] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E10] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E20] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E30] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E40] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E50] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E60] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E70] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E80] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E90] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[EA0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[EB0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[EC0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[ED0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[EE0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[EF0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD 00 00 ........ ........ +[F00] 20 00 00 00 DD DD DD DD DD DD DD DD DD DD DD DD ....... ........ +[F10] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F20] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F30] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F40] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F50] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F60] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F70] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F80] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F90] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[FA0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[FB0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[FC0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[FD0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[FE0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[FF0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1000] DD DD 00 00 1F 00 00 00 DD DD DD DD DD DD DD DD ........ ........ +[1010] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1020] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1030] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1040] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1050] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1060] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1070] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1080] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1090] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[10A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[10B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[10C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[10D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[10E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[10F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD 00 00 ........ ........ +[1100] 1E 00 00 00 DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1110] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1120] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1130] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1140] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1150] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1160] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1170] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1180] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1190] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[11A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[11B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[11C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[11D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[11E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[11F0] DD DD 00 00 1D 00 00 00 DD DD DD DD DD DD DD DD ........ ........ +[1200] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1210] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1220] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1230] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1240] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1250] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1260] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1270] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1280] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1290] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[12A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[12B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[12C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[12D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD 00 00 ........ ........ +[12E0] 1C 00 00 00 DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[12F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1300] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1310] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1320] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1330] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1340] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1350] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1360] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1370] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1380] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1390] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[13A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[13B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[13C0] DD DD 00 00 1B 00 00 00 DD DD DD DD DD DD DD DD ........ ........ +[13D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[13E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[13F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1400] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1410] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1420] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1430] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1440] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1450] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1460] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1470] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1480] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1490] DD DD DD DD DD DD DD DD DD DD DD DD DD DD 00 00 ........ ........ +[14A0] 1A 00 00 00 DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[14B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[14C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[14D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[14E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[14F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1500] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1510] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1520] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1530] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1540] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1550] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1560] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1570] DD DD 00 00 19 00 00 00 DD DD DD DD DD DD DD DD ........ ........ +[1580] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1590] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[15A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[15B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[15C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[15D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[15E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[15F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1600] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1610] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1620] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1630] DD DD DD DD DD DD DD DD DD DD DD DD DD DD 00 00 ........ ........ +[1640] 18 00 00 00 DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1650] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1660] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1670] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1680] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1690] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[16A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[16B0] DD DD DD DD DD DD DD DD ........ + +srv_midltests_fn: Start +pull inp_len[344] +ndr32:in => out: ptype[request] flen[2404] plen[2380] ahint[2380] + +[000] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[010] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[020] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[030] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[040] DD DD DD DD DD DD DD DD DD DD 00 00 17 00 00 00 ........ ........ +[050] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[060] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[070] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[080] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[090] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[0A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[0B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[0C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[0D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[0E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[0F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[100] DD DD DD DD DD DD AA AA 16 00 00 00 DD DD DD DD ........ ........ +[110] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[120] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[130] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[140] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[150] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[160] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[170] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[180] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[190] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1B0] DD DD DD DD DD DD DD DD DD DD AA AA 15 00 00 00 ........ ........ +[1C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[200] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[210] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[220] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[230] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[240] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[250] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[260] DD DD DD DD DD DD AA AA 14 00 00 00 DD DD DD DD ........ ........ +[270] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[280] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[290] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[2A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[2B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[2C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[2D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[2E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[2F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[300] DD DD DD DD DD DD DD DD DD DD AA AA 13 00 00 00 ........ ........ +[310] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[320] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[330] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[340] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[350] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[360] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[370] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[380] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[390] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[3A0] DD DD DD DD DD DD AA AA 12 00 00 00 DD DD DD DD ........ ........ +[3B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[3C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[3D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[3E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[3F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[400] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[410] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[420] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[430] DD DD DD DD DD DD DD DD DD DD AA AA 11 00 00 00 ........ ........ +[440] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[450] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[460] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[470] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[480] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[490] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[4A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[4B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[4C0] DD DD DD DD DD DD AA AA 10 00 00 00 DD DD DD DD ........ ........ +[4D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[4E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[4F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[500] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[510] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[520] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[530] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[540] DD DD DD DD DD DD DD DD DD DD AA AA 0F 00 00 00 ........ ........ +[550] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[560] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[570] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[580] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[590] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[5A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[5B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[5C0] DD DD DD DD DD DD AA AA 0E 00 00 00 DD DD DD DD ........ ........ +[5D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[5E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[5F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[600] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[610] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[620] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[630] DD DD DD DD DD DD DD DD DD DD AA AA 0D 00 00 00 ........ ........ +[640] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[650] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[660] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[670] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[680] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[690] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[6A0] DD DD DD DD DD DD AA AA 0C 00 00 00 DD DD DD DD ........ ........ +[6B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[6C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[6D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[6E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[6F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[700] DD DD DD DD DD DD DD DD DD DD AA AA 0B 00 00 00 ........ ........ +[710] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[720] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[730] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[740] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[750] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[760] DD DD DD DD DD DD AA AA 0A 00 00 00 DD DD DD DD ........ ........ +[770] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[780] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[790] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[7A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[7B0] DD DD DD DD DD DD DD DD DD DD AA AA 09 00 00 00 ........ ........ +[7C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[7D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[7E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[7F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[800] DD DD DD DD DD DD AA AA 08 00 00 00 DD DD DD DD ........ ........ +[810] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[820] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[830] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[840] DD DD DD DD DD DD DD DD DD DD AA AA 07 00 00 00 ........ ........ +[850] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[860] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[870] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[880] DD DD DD DD DD DD AA AA 06 00 00 00 DD DD DD DD ........ ........ +[890] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[8A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[8B0] DD DD DD DD DD DD DD DD DD DD AA AA 05 00 00 00 ........ ........ +[8C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[8D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[8E0] DD DD DD DD DD DD AA AA 04 00 00 00 DD DD DD DD ........ ........ +[8F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[900] DD DD DD DD DD DD DD DD DD DD AA AA 03 00 00 00 ........ ........ +[910] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[920] DD DD DD DD DD DD AA AA 02 00 00 00 DD DD DD DD ........ ........ +[930] DD DD DD DD DD DD DD DD DD DD AA AA 01 00 00 00 ........ ........ +[940] DD DD DD DD DD DD AA AA 00 00 00 00 ........ .... + +pull inp_len[286] +pull inp_len[0] +push outb_len[50] +push outb_len[49] +push outb_len[48] +push outb_len[47] +push outb_len[46] +push outb_len[45] +push outb_len[44] +push outb_len[43] +push outb_len[42] +push outb_len[41] +push outb_len[40] +push outb_len[39] +push outb_len[38] +push outb_len[37] +push outb_len[36] +push outb_len[35] +push outb_len[34] +push outb_len[33] +push outb_len[32] +push outb_len[31] +push outb_len[30] +push outb_len[29] +push outb_len[28] +push outb_len[27] +push outb_len[26] +push outb_len[25] +push outb_len[24] +push outb_len[23] +push outb_len[22] +push outb_len[21] +push outb_len[20] +push outb_len[19] +push outb_len[18] +push outb_len[17] +push outb_len[16] +push outb_len[15] +push outb_len[14] +push outb_len[13] +push outb_len[12] +push outb_len[11] +push outb_len[10] +push outb_len[9] +push outb_len[8] +push outb_len[7] +push outb_len[6] +push outb_len[5] +push outb_len[4] +push outb_len[3] +push outb_len[2] +push outb_len[1] +push outb_len[0] +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[5840] plen[5816] ahint[5816] + +[000] 32 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC 2....... ........ +[010] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[020] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[030] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[040] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[050] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[060] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[070] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[080] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[090] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[100] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[110] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[120] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[130] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[140] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[150] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[160] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[170] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[180] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[190] CC CC 00 00 31 00 00 00 CC CC CC CC CC CC CC CC ....1... ........ +[1A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[200] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[210] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[220] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[230] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[240] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[250] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[260] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[270] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[280] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[290] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[300] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[310] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[320] 30 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC 0....... ........ +[330] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[340] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[350] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[360] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[370] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[380] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[390] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[400] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[410] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[420] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[430] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[440] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[450] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[460] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[470] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[480] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[490] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4A0] CC CC 00 00 2F 00 00 00 CC CC CC CC CC CC CC CC ..../... ........ +[4B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[500] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[510] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[520] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[530] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[540] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[550] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[560] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[570] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[580] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[590] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[600] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[610] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[620] 2E 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[630] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[640] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[650] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[660] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[670] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[680] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[690] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[700] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[710] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[720] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[730] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[740] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[750] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[760] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[770] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[780] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[790] CC CC 00 00 2D 00 00 00 CC CC CC CC CC CC CC CC ....-... ........ +[7A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[800] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[810] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[820] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[830] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[840] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[850] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[860] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[870] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[880] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[890] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[900] 2C 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC ,....... ........ +[910] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[920] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[930] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[940] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[950] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[960] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[970] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[980] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[990] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A60] CC CC 00 00 2B 00 00 00 CC CC CC CC CC CC CC CC ....+... ........ +[A70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[BC0] 2A 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC *....... ........ +[BD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D10] CC CC 00 00 29 00 00 00 CC CC CC CC CC CC CC CC ....)... ........ +[D20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[E60] 28 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC (....... ........ +[E70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[ED0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FA0] CC CC 00 00 27 00 00 00 CC CC CC CC CC CC CC CC ....'... ........ +[FB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1000] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1010] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1020] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1030] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1040] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1050] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1060] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1070] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1080] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1090] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[10E0] 26 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC &....... ........ +[10F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1100] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1110] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1120] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1130] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1140] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1150] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1160] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1170] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1180] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1190] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1200] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1210] CC CC 00 00 25 00 00 00 CC CC CC CC CC CC CC CC ....%... ........ +[1220] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1230] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1240] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1250] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1260] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1270] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1280] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1290] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[12A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[12B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[12C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[12D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[12E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[12F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1300] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1310] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1320] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1330] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[1340] 24 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC $....... ........ +[1350] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1360] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1370] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1380] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1390] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[13A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[13B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[13C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[13D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[13E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[13F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1400] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1410] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1420] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1430] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1440] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1450] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1460] CC CC 00 00 23 00 00 00 CC CC CC CC CC CC CC CC ....#... ........ +[1470] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1480] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1490] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[14A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[14B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[14C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[14D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[14E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[14F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1500] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1510] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1520] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1530] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1540] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1550] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1560] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1570] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[1580] 22 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC "....... ........ +[1590] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[15A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[15B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[15C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[15D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[15E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[15F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1600] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1610] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1620] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1630] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1640] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1650] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1660] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1670] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1680] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1690] CC CC 00 00 21 00 00 00 CC CC CC CC CC CC CC CC ....!... ........ +[16A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[16B0] CC CC CC CC CC CC CC CC ........ + + +ndr32:out => in: ptype[response] flen[4632] plen[4608] ahint[4608] + +[000] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[010] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[020] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[030] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[040] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[050] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[060] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[070] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[080] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[090] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0E0] CC CC CC CC CC CC 00 00 20 00 00 00 CC CC CC CC ........ ....... +[0F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[100] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[110] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[120] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[130] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[140] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[150] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[160] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[170] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[180] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[190] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1E0] CC CC CC CC CC CC CC CC CC CC CC CC 1F 00 00 00 ........ ........ +[1F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[200] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[210] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[220] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[230] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[240] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[250] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[260] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[270] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[280] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[290] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2E0] CC CC CC CC CC CC CC CC 1E 00 00 00 CC CC CC CC ........ ........ +[2F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[300] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[310] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[320] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[330] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[340] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[350] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[360] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[370] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[380] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[390] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3D0] CC CC CC CC CC CC CC CC CC CC CC CC 1D 00 00 00 ........ ........ +[3E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[400] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[410] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[420] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[430] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[440] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[450] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[460] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[470] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[480] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[490] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4C0] CC CC CC CC CC CC CC CC 1C 00 00 00 CC CC CC CC ........ ........ +[4D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[500] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[510] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[520] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[530] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[540] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[550] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[560] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[570] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[580] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[590] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5A0] CC CC CC CC CC CC CC CC CC CC CC CC 1B 00 00 00 ........ ........ +[5B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[600] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[610] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[620] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[630] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[640] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[650] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[660] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[670] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[680] CC CC CC CC CC CC CC CC 1A 00 00 00 CC CC CC CC ........ ........ +[690] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[700] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[710] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[720] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[730] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[740] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[750] CC CC CC CC CC CC CC CC CC CC CC CC 19 00 00 00 ........ ........ +[760] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[770] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[780] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[790] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[800] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[810] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[820] CC CC CC CC CC CC CC CC 18 00 00 00 CC CC CC CC ........ ........ +[830] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[840] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[850] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[860] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[870] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[880] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[890] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8E0] CC CC CC CC CC CC CC CC CC CC CC CC 17 00 00 00 ........ ........ +[8F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[900] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[910] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[920] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[930] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[940] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[950] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[960] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[970] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[980] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[990] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9A0] CC CC CC CC CC CC CC CC 16 00 00 00 CC CC CC CC ........ ........ +[9B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A50] CC CC CC CC CC CC CC CC CC CC CC CC 15 00 00 00 ........ ........ +[A60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B00] CC CC CC CC CC CC CC CC 14 00 00 00 CC CC CC CC ........ ........ +[B10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BA0] CC CC CC CC CC CC CC CC CC CC CC CC 13 00 00 00 ........ ........ +[BB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C40] CC CC CC CC CC CC CC CC 12 00 00 00 CC CC CC CC ........ ........ +[C50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CD0] CC CC CC CC CC CC CC CC CC CC CC CC 11 00 00 00 ........ ........ +[CE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D60] CC CC CC CC CC CC CC CC 10 00 00 00 CC CC CC CC ........ ........ +[D70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DE0] CC CC CC CC CC CC CC CC CC CC CC CC 0F 00 00 00 ........ ........ +[DF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E60] CC CC CC CC CC CC CC CC 0E 00 00 00 CC CC CC CC ........ ........ +[E70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[ED0] CC CC CC CC CC CC CC CC CC CC CC CC 0D 00 00 00 ........ ........ +[EE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F40] CC CC CC CC CC CC CC CC 0C 00 00 00 CC CC CC CC ........ ........ +[F50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FA0] CC CC CC CC CC CC CC CC CC CC CC CC 0B 00 00 00 ........ ........ +[FB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1000] CC CC CC CC CC CC CC CC 0A 00 00 00 CC CC CC CC ........ ........ +[1010] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1020] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1030] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1040] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1050] CC CC CC CC CC CC CC CC CC CC CC CC 09 00 00 00 ........ ........ +[1060] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1070] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1080] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1090] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10A0] CC CC CC CC CC CC CC CC 08 00 00 00 CC CC CC CC ........ ........ +[10B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10E0] CC CC CC CC CC CC CC CC CC CC CC CC 07 00 00 00 ........ ........ +[10F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1100] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1110] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1120] CC CC CC CC CC CC CC CC 06 00 00 00 CC CC CC CC ........ ........ +[1130] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1140] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1150] CC CC CC CC CC CC CC CC CC CC CC CC 05 00 00 00 ........ ........ +[1160] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1170] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1180] CC CC CC CC CC CC CC CC 04 00 00 00 CC CC CC CC ........ ........ +[1190] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11A0] CC CC CC CC CC CC CC CC CC CC CC CC 03 00 00 00 ........ ........ +[11B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11C0] CC CC CC CC CC CC CC CC 02 00 00 00 CC CC CC CC ........ ........ +[11D0] CC CC CC CC CC CC CC CC CC CC CC CC 01 00 00 00 ........ ........ +[11E0] CC CC CC CC CC CC CC CC 00 00 00 00 03 00 00 00 ........ ........ +[11F0] 00 00 02 00 03 00 00 00 BB BB BB 00 54 72 75 65 ........ ....True + +alloc1:outp: bsize[6664], bcount[1] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[27] +push:outp: ecount[0] +NDRTcpThread[ndr32] stop +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[3048] plen[3024] ahint[3024] + +[000] B8 0B 00 00 00 00 00 00 00 00 02 00 00 00 00 00 ........ ........ +[010] B8 0B 00 00 00 00 00 00 AA AA AA AA AA AA AA AA ........ ........ +[020] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[030] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[040] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[050] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[060] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[070] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[080] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[090] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[100] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[110] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[120] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[130] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[140] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[150] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[160] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[170] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[180] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[190] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[200] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[210] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[220] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[230] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[240] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[250] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[260] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[270] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[280] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[290] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[300] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[310] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[320] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[330] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[340] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[350] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[360] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[370] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[380] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[390] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[400] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[410] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[420] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[430] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[440] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[450] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[460] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[470] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[480] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[490] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[500] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[510] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[520] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[530] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[540] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[550] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[560] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[570] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[580] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[590] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[600] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[610] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[620] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[630] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[640] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[650] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[660] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[670] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[680] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[690] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[700] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[710] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[720] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[730] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[740] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[750] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[760] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[770] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[780] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[790] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[800] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[810] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[820] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[830] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[840] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[850] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[860] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[870] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[880] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[890] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[900] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[910] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[920] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[930] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[940] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[950] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[960] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[970] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[980] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[990] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A00] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A10] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A20] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A30] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A40] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A50] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A60] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A70] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A80] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A90] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AA0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AB0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AC0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AD0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AE0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AF0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B00] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B10] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B20] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B30] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B40] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B50] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B60] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B70] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B80] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B90] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[BA0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[BB0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[BC0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64: got NDR64 + +alloc1:inp: bsize[5000], bcount[0] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[35] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[34] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[33] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[32] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[31] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[30] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[29] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[28] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[27] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[26] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[25] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[24] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[23] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[22] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[21] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[20] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[19] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[18] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[17] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[16] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[15] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[14] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[13] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[12] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[11] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[10] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[9] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[8] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[7] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[6] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[5] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[4] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[3] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[2] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[1] +alloc1:inp: bsize[5000], bcount[625] +alloc2:inp: bsize[5000], bcount[625] +pull1:inp: esize[78] ecount[78] +pull2:inp: esize[78] ecount[0] + +ndr64: got NDR32 downgrade + + +ndr64:in => out: ptype[alter_req] flen[72] call[3] contexts[1] + + +ndr64:out => in: ptype[alter_ack] flen[56] call[3] + +ndr64:in => out: ptype[request] flen[5840] plen[5816] ahint[3012] + +[000] B8 0B 00 00 00 00 02 00 B8 0B 00 00 AA AA AA AA ........ ........ +[010] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[020] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[030] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[040] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[050] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[060] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[070] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[080] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[090] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[0F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[100] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[110] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[120] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[130] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[140] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[150] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[160] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[170] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[180] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[190] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[1F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[200] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[210] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[220] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[230] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[240] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[250] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[260] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[270] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[280] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[290] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[2F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[300] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[310] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[320] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[330] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[340] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[350] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[360] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[370] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[380] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[390] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[3F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[400] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[410] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[420] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[430] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[440] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[450] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[460] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[470] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[480] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[490] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[4F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[500] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[510] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[520] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[530] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[540] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[550] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[560] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[570] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[580] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[590] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[5F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[600] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[610] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[620] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[630] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[640] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[650] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[660] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[670] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[680] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[690] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[6F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[700] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[710] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[720] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[730] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[740] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[750] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[760] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[770] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[780] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[790] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[7F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[800] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[810] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[820] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[830] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[840] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[850] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[860] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[870] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[880] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[890] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[8F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[900] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[910] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[920] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[930] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[940] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[950] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[960] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[970] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[980] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[990] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9A0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9B0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9C0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9D0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9E0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[9F0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A00] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A10] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A20] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A30] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A40] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A50] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A60] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A70] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A80] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[A90] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AA0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AB0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AC0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AD0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AE0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[AF0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B00] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B10] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B20] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B30] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B40] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B50] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B60] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B70] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B80] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[B90] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[BA0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[BB0] AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA ........ ........ +[BC0] AA AA AA AA 23 00 00 00 DD DD DD DD DD DD DD DD ....#... ........ +[BD0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[BE0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[BF0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C00] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C10] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C20] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C30] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C40] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C50] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C60] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C70] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C80] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[C90] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[CA0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[CB0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[CC0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[CD0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD 00 00 ........ ........ +[CE0] 22 00 00 00 DD DD DD DD DD DD DD DD DD DD DD DD "....... ........ +[CF0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D00] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D10] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D20] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D30] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D40] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D50] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D60] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D70] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D80] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[D90] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[DA0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[DB0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[DC0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[DD0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[DE0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[DF0] DD DD 00 00 21 00 00 00 DD DD DD DD DD DD DD DD ....!... ........ +[E00] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E10] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E20] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E30] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E40] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E50] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E60] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E70] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E80] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[E90] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[EA0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[EB0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[EC0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[ED0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[EE0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[EF0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD 00 00 ........ ........ +[F00] 20 00 00 00 DD DD DD DD DD DD DD DD DD DD DD DD ....... ........ +[F10] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F20] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F30] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F40] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F50] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F60] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F70] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F80] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[F90] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[FA0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[FB0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[FC0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[FD0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[FE0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[FF0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1000] DD DD 00 00 1F 00 00 00 DD DD DD DD DD DD DD DD ........ ........ +[1010] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1020] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1030] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1040] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1050] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1060] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1070] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1080] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1090] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[10A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[10B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[10C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[10D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[10E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[10F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD 00 00 ........ ........ +[1100] 1E 00 00 00 DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1110] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1120] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1130] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1140] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1150] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1160] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1170] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1180] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1190] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[11A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[11B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[11C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[11D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[11E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[11F0] DD DD 00 00 1D 00 00 00 DD DD DD DD DD DD DD DD ........ ........ +[1200] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1210] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1220] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1230] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1240] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1250] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1260] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1270] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1280] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1290] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[12A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[12B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[12C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[12D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD 00 00 ........ ........ +[12E0] 1C 00 00 00 DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[12F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1300] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1310] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1320] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1330] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1340] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1350] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1360] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1370] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1380] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1390] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[13A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[13B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[13C0] DD DD 00 00 1B 00 00 00 DD DD DD DD DD DD DD DD ........ ........ +[13D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[13E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[13F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1400] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1410] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1420] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1430] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1440] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1450] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1460] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1470] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1480] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1490] DD DD DD DD DD DD DD DD DD DD DD DD DD DD 00 00 ........ ........ +[14A0] 1A 00 00 00 DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[14B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[14C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[14D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[14E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[14F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1500] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1510] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1520] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1530] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1540] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1550] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1560] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1570] DD DD 00 00 19 00 00 00 DD DD DD DD DD DD DD DD ........ ........ +[1580] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1590] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[15A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[15B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[15C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[15D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[15E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[15F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1600] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1610] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1620] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1630] DD DD DD DD DD DD DD DD DD DD DD DD DD DD 00 00 ........ ........ +[1640] 18 00 00 00 DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1650] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1660] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1670] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1680] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1690] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[16A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[16B0] DD DD DD DD DD DD DD DD ........ + +srv_midltests_fn: Start +pull inp_len[344] +ndr64:in => out: ptype[request] flen[2404] plen[2380] ahint[2380] + +[000] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[010] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[020] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[030] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[040] DD DD DD DD DD DD DD DD DD DD 00 00 17 00 00 00 ........ ........ +[050] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[060] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[070] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[080] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[090] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[0A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[0B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[0C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[0D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[0E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[0F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[100] DD DD DD DD DD DD AA AA 16 00 00 00 DD DD DD DD ........ ........ +[110] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[120] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[130] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[140] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[150] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[160] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[170] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[180] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[190] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1B0] DD DD DD DD DD DD DD DD DD DD AA AA 15 00 00 00 ........ ........ +[1C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[1F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[200] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[210] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[220] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[230] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[240] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[250] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[260] DD DD DD DD DD DD AA AA 14 00 00 00 DD DD DD DD ........ ........ +[270] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[280] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[290] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[2A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[2B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[2C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[2D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[2E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[2F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[300] DD DD DD DD DD DD DD DD DD DD AA AA 13 00 00 00 ........ ........ +[310] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[320] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[330] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[340] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[350] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[360] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[370] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[380] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[390] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[3A0] DD DD DD DD DD DD AA AA 12 00 00 00 DD DD DD DD ........ ........ +[3B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[3C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[3D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[3E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[3F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[400] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[410] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[420] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[430] DD DD DD DD DD DD DD DD DD DD AA AA 11 00 00 00 ........ ........ +[440] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[450] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[460] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[470] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[480] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[490] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[4A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[4B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[4C0] DD DD DD DD DD DD AA AA 10 00 00 00 DD DD DD DD ........ ........ +[4D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[4E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[4F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[500] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[510] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[520] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[530] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[540] DD DD DD DD DD DD DD DD DD DD AA AA 0F 00 00 00 ........ ........ +[550] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[560] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[570] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[580] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[590] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[5A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[5B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[5C0] DD DD DD DD DD DD AA AA 0E 00 00 00 DD DD DD DD ........ ........ +[5D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[5E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[5F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[600] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[610] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[620] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[630] DD DD DD DD DD DD DD DD DD DD AA AA 0D 00 00 00 ........ ........ +[640] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[650] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[660] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[670] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[680] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[690] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[6A0] DD DD DD DD DD DD AA AA 0C 00 00 00 DD DD DD DD ........ ........ +[6B0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[6C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[6D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[6E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[6F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[700] DD DD DD DD DD DD DD DD DD DD AA AA 0B 00 00 00 ........ ........ +[710] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[720] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[730] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[740] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[750] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[760] DD DD DD DD DD DD AA AA 0A 00 00 00 DD DD DD DD ........ ........ +[770] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[780] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[790] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[7A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[7B0] DD DD DD DD DD DD DD DD DD DD AA AA 09 00 00 00 ........ ........ +[7C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[7D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[7E0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[7F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[800] DD DD DD DD DD DD AA AA 08 00 00 00 DD DD DD DD ........ ........ +[810] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[820] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[830] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[840] DD DD DD DD DD DD DD DD DD DD AA AA 07 00 00 00 ........ ........ +[850] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[860] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[870] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[880] DD DD DD DD DD DD AA AA 06 00 00 00 DD DD DD DD ........ ........ +[890] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[8A0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[8B0] DD DD DD DD DD DD DD DD DD DD AA AA 05 00 00 00 ........ ........ +[8C0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[8D0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[8E0] DD DD DD DD DD DD AA AA 04 00 00 00 DD DD DD DD ........ ........ +[8F0] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[900] DD DD DD DD DD DD DD DD DD DD AA AA 03 00 00 00 ........ ........ +[910] DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD ........ ........ +[920] DD DD DD DD DD DD AA AA 02 00 00 00 DD DD DD DD ........ ........ +[930] DD DD DD DD DD DD DD DD DD DD AA AA 01 00 00 00 ........ ........ +[940] DD DD DD DD DD DD AA AA 00 00 00 00 ........ .... + +pull inp_len[286] +pull inp_len[0] +push outb_len[50] +push outb_len[49] +push outb_len[48] +push outb_len[47] +push outb_len[46] +push outb_len[45] +push outb_len[44] +push outb_len[43] +push outb_len[42] +push outb_len[41] +push outb_len[40] +push outb_len[39] +push outb_len[38] +push outb_len[37] +push outb_len[36] +push outb_len[35] +push outb_len[34] +push outb_len[33] +push outb_len[32] +push outb_len[31] +push outb_len[30] +push outb_len[29] +push outb_len[28] +push outb_len[27] +push outb_len[26] +push outb_len[25] +push outb_len[24] +push outb_len[23] +push outb_len[22] +push outb_len[21] +push outb_len[20] +push outb_len[19] +push outb_len[18] +push outb_len[17] +push outb_len[16] +push outb_len[15] +push outb_len[14] +push outb_len[13] +push outb_len[12] +push outb_len[11] +push outb_len[10] +push outb_len[9] +push outb_len[8] +push outb_len[7] +push outb_len[6] +push outb_len[5] +push outb_len[4] +push outb_len[3] +push outb_len[2] +push outb_len[1] +push outb_len[0] +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[5840] plen[5816] ahint[5816] + +[000] 32 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC 2....... ........ +[010] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[020] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[030] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[040] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[050] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[060] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[070] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[080] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[090] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[100] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[110] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[120] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[130] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[140] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[150] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[160] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[170] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[180] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[190] CC CC 00 00 31 00 00 00 CC CC CC CC CC CC CC CC ....1... ........ +[1A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[200] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[210] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[220] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[230] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[240] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[250] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[260] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[270] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[280] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[290] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[300] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[310] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[320] 30 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC 0....... ........ +[330] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[340] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[350] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[360] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[370] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[380] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[390] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[400] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[410] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[420] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[430] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[440] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[450] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[460] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[470] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[480] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[490] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4A0] CC CC 00 00 2F 00 00 00 CC CC CC CC CC CC CC CC ..../... ........ +[4B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[500] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[510] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[520] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[530] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[540] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[550] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[560] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[570] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[580] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[590] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[600] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[610] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[620] 2E 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[630] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[640] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[650] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[660] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[670] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[680] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[690] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[700] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[710] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[720] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[730] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[740] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[750] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[760] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[770] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[780] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[790] CC CC 00 00 2D 00 00 00 CC CC CC CC CC CC CC CC ....-... ........ +[7A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[800] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[810] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[820] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[830] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[840] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[850] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[860] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[870] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[880] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[890] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[900] 2C 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC ,....... ........ +[910] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[920] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[930] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[940] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[950] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[960] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[970] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[980] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[990] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A60] CC CC 00 00 2B 00 00 00 CC CC CC CC CC CC CC CC ....+... ........ +[A70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[BC0] 2A 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC *....... ........ +[BD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D10] CC CC 00 00 29 00 00 00 CC CC CC CC CC CC CC CC ....)... ........ +[D20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[E60] 28 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC (....... ........ +[E70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[ED0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FA0] CC CC 00 00 27 00 00 00 CC CC CC CC CC CC CC CC ....'... ........ +[FB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1000] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1010] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1020] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1030] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1040] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1050] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1060] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1070] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1080] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1090] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[10E0] 26 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC &....... ........ +[10F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1100] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1110] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1120] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1130] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1140] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1150] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1160] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1170] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1180] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1190] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1200] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1210] CC CC 00 00 25 00 00 00 CC CC CC CC CC CC CC CC ....%... ........ +[1220] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1230] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1240] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1250] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1260] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1270] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1280] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1290] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[12A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[12B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[12C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[12D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[12E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[12F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1300] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1310] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1320] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1330] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[1340] 24 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC $....... ........ +[1350] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1360] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1370] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1380] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1390] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[13A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[13B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[13C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[13D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[13E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[13F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1400] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1410] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1420] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1430] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1440] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1450] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1460] CC CC 00 00 23 00 00 00 CC CC CC CC CC CC CC CC ....#... ........ +[1470] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1480] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1490] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[14A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[14B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[14C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[14D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[14E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[14F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1500] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1510] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1520] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1530] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1540] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1550] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1560] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1570] CC CC CC CC CC CC CC CC CC CC CC CC CC CC 00 00 ........ ........ +[1580] 22 00 00 00 CC CC CC CC CC CC CC CC CC CC CC CC "....... ........ +[1590] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[15A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[15B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[15C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[15D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[15E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[15F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1600] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1610] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1620] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1630] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1640] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1650] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1660] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1670] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1680] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1690] CC CC 00 00 21 00 00 00 CC CC CC CC CC CC CC CC ....!... ........ +[16A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[16B0] CC CC CC CC CC CC CC CC ........ + + +ndr64:out => in: ptype[response] flen[4632] plen[4608] ahint[4608] + +[000] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[010] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[020] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[030] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[040] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[050] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[060] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[070] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[080] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[090] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[0E0] CC CC CC CC CC CC 00 00 20 00 00 00 CC CC CC CC ........ ....... +[0F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[100] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[110] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[120] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[130] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[140] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[150] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[160] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[170] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[180] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[190] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1E0] CC CC CC CC CC CC CC CC CC CC CC CC 1F 00 00 00 ........ ........ +[1F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[200] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[210] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[220] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[230] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[240] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[250] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[260] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[270] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[280] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[290] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[2E0] CC CC CC CC CC CC CC CC 1E 00 00 00 CC CC CC CC ........ ........ +[2F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[300] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[310] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[320] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[330] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[340] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[350] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[360] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[370] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[380] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[390] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3D0] CC CC CC CC CC CC CC CC CC CC CC CC 1D 00 00 00 ........ ........ +[3E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[3F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[400] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[410] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[420] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[430] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[440] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[450] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[460] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[470] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[480] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[490] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4C0] CC CC CC CC CC CC CC CC 1C 00 00 00 CC CC CC CC ........ ........ +[4D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[4F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[500] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[510] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[520] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[530] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[540] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[550] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[560] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[570] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[580] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[590] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5A0] CC CC CC CC CC CC CC CC CC CC CC CC 1B 00 00 00 ........ ........ +[5B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[5F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[600] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[610] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[620] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[630] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[640] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[650] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[660] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[670] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[680] CC CC CC CC CC CC CC CC 1A 00 00 00 CC CC CC CC ........ ........ +[690] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[6F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[700] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[710] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[720] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[730] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[740] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[750] CC CC CC CC CC CC CC CC CC CC CC CC 19 00 00 00 ........ ........ +[760] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[770] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[780] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[790] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[7F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[800] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[810] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[820] CC CC CC CC CC CC CC CC 18 00 00 00 CC CC CC CC ........ ........ +[830] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[840] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[850] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[860] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[870] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[880] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[890] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8A0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[8E0] CC CC CC CC CC CC CC CC CC CC CC CC 17 00 00 00 ........ ........ +[8F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[900] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[910] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[920] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[930] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[940] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[950] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[960] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[970] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[980] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[990] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9A0] CC CC CC CC CC CC CC CC 16 00 00 00 CC CC CC CC ........ ........ +[9B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9E0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[9F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A50] CC CC CC CC CC CC CC CC CC CC CC CC 15 00 00 00 ........ ........ +[A60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[A90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[AF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B00] CC CC CC CC CC CC CC CC 14 00 00 00 CC CC CC CC ........ ........ +[B10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[B90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BA0] CC CC CC CC CC CC CC CC CC CC CC CC 13 00 00 00 ........ ........ +[BB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[BF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C40] CC CC CC CC CC CC CC CC 12 00 00 00 CC CC CC CC ........ ........ +[C50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[C90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CD0] CC CC CC CC CC CC CC CC CC CC CC CC 11 00 00 00 ........ ........ +[CE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[CF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D60] CC CC CC CC CC CC CC CC 10 00 00 00 CC CC CC CC ........ ........ +[D70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[D90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[DE0] CC CC CC CC CC CC CC CC CC CC CC CC 0F 00 00 00 ........ ........ +[DF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E40] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E60] CC CC CC CC CC CC CC CC 0E 00 00 00 CC CC CC CC ........ ........ +[E70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[E90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EA0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[ED0] CC CC CC CC CC CC CC CC CC CC CC CC 0D 00 00 00 ........ ........ +[EE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[EF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F00] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F10] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F20] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F30] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F40] CC CC CC CC CC CC CC CC 0C 00 00 00 CC CC CC CC ........ ........ +[F50] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F60] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F70] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F80] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[F90] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FA0] CC CC CC CC CC CC CC CC CC CC CC CC 0B 00 00 00 ........ ........ +[FB0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FC0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FD0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FE0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[FF0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1000] CC CC CC CC CC CC CC CC 0A 00 00 00 CC CC CC CC ........ ........ +[1010] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1020] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1030] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1040] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1050] CC CC CC CC CC CC CC CC CC CC CC CC 09 00 00 00 ........ ........ +[1060] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1070] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1080] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1090] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10A0] CC CC CC CC CC CC CC CC 08 00 00 00 CC CC CC CC ........ ........ +[10B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10C0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10D0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[10E0] CC CC CC CC CC CC CC CC CC CC CC CC 07 00 00 00 ........ ........ +[10F0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1100] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1110] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1120] CC CC CC CC CC CC CC CC 06 00 00 00 CC CC CC CC ........ ........ +[1130] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1140] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1150] CC CC CC CC CC CC CC CC CC CC CC CC 05 00 00 00 ........ ........ +[1160] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1170] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[1180] CC CC CC CC CC CC CC CC 04 00 00 00 CC CC CC CC ........ ........ +[1190] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11A0] CC CC CC CC CC CC CC CC CC CC CC CC 03 00 00 00 ........ ........ +[11B0] CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC ........ ........ +[11C0] CC CC CC CC CC CC CC CC 02 00 00 00 CC CC CC CC ........ ........ +[11D0] CC CC CC CC CC CC CC CC CC CC CC CC 01 00 00 00 ........ ........ +[11E0] CC CC CC CC CC CC CC CC 00 00 00 00 03 00 00 00 ........ ........ +[11F0] 00 00 02 00 03 00 00 00 BB BB BB 00 54 72 75 65 ........ ....True + +alloc1:outp: bsize[6664], bcount[1] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[104] +alloc1:outp: bsize[6664], bcount[833] +alloc2:outp: bsize[6664], bcount[833] +push:outp: ecount[27] +push:outp: ecount[0] +NDRTcpThread[ndr64] stop +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_DRS_EXTENSIONS.idl b/testprogs/win32/midltests/valid/midltests_DRS_EXTENSIONS.idl new file mode 100644 index 0000000..73aeb16 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_DRS_EXTENSIONS.idl @@ -0,0 +1,64 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + + typedef struct { + [range(1,10000)] long cb; + [size_is(cb)] char rcg[]; + } DRS_EXTENSIONS; + + long midltests_fn( + [out] DRS_EXTENSIONS **e + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + DRS_EXTENSIONS *e = NULL; + cli_midltests_fn(&e); +} + +long srv_midltests_fn(DRS_EXTENSIONS **_e) +{ + DRS_EXTENSIONS *e; + printf("srv_midltests_fn: Start\n"); + e = (DRS_EXTENSIONS *)malloc(sizeof(DRS_EXTENSIONS) + 0x34); + e->cb = 0x34; + memset(e->rcg, 0xcd, e->cb); + *_e = e; + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_DRS_EXTENSIONS.out b/testprogs/win32/midltests/valid/midltests_DRS_EXTENSIONS.out new file mode 100644 index 0000000..e0b3a0e --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_DRS_EXTENSIONS.out @@ -0,0 +1,43 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[24] plen[0] ahint[0] + + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[92] plen[68] ahint[68] + +[000] 00 00 02 00 34 00 00 00 34 00 00 00 CD CD CD CD ....4... 4....... +[010] CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ +[020] CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ +[030] CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ +[040] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[24] plen[0] ahint[0] + + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[100] plen[76] ahint[76] + +[000] 00 00 02 00 00 00 00 00 34 00 00 00 00 00 00 00 ........ 4....... +[010] 34 00 00 00 CD CD CD CD CD CD CD CD CD CD CD CD 4....... ........ +[020] CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ +[030] CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ +[040] CD CD CD CD CD CD CD CD 54 72 75 65 ........ True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_fixed_size_in_array_01.idl b/testprogs/win32/midltests/valid/midltests_fixed_size_in_array_01.idl new file mode 100644 index 0000000..170b147 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_fixed_size_in_array_01.idl @@ -0,0 +1,29 @@ +#ifndef MIDLTESTS_C_CODE + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + long midltests_fn( + [in] long a[2] + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + long a[2] = { 1, 2 }; + cli_midltests_fn(a); +} + +long srv_midltests_fn(long a[2]) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_fixed_size_in_array_01.txt b/testprogs/win32/midltests/valid/midltests_fixed_size_in_array_01.txt new file mode 100644 index 0000000..8903c4c --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_fixed_size_in_array_01.txt @@ -0,0 +1,6 @@ +[in] Buffer[8/24]
+[000] 01 00 00 00 02 00 00 00 ........
+srv_midltests_fn: Start
+srv_midltests_fn: End
+[out] Buffer[4]
+[000] 54 72 75 65 True
diff --git a/testprogs/win32/midltests/valid/midltests_strings_array_01.err.txt b/testprogs/win32/midltests/valid/midltests_strings_array_01.err.txt new file mode 100644 index 0000000..dbbc89a --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_strings_array_01.err.txt @@ -0,0 +1,13 @@ +[in] Buffer[53/53]
+[000] 03 00 00 00 03 00 00 00 00 00 02 00 04 00 02 00 ........ ........
+[010] 00 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 ........ ........
+[020] 66 6F 6F 00 05 00 00 00 00 00 00 00 05 00 00 00 foo..... ........
+[030] 62 61 72 32 00 bar2.
+srv_midltests_fn: Start
+srv_midltests_fn: End
+[out] Buffer[60]
+[000] 03 00 00 00 03 00 00 00 00 00 02 00 04 00 02 00 ........ ........
+[010] 00 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 ........ ........
+[020] 66 6F 6F 00 05 00 00 00 00 00 00 00 05 00 00 00 foo..... ........
+[030] 62 61 72 32 00 00 00 00 54 72 75 65 bar2.... True
+Runtime error 0x6f7
diff --git a/testprogs/win32/midltests/valid/midltests_strings_array_01.idl b/testprogs/win32/midltests/valid/midltests_strings_array_01.idl new file mode 100644 index 0000000..db05bb2 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_strings_array_01.idl @@ -0,0 +1,44 @@ +#ifndef MIDLTESTS_C_CODE + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + struct strings { + long count; + [size_is(count),string] char *val[]; + }; + + long midltests_fn( + [in,out,ref] struct strings *s + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + const char *s1 = "foo"; + const char *s2 = "bar"; + char *a[] = { "foo", "bar2", NULL }; + char buffer[1024]; + struct strings *s = buffer; + + s->count = 3; + s->val[0] = "foo"; + s->val[1] = "bar2"; + s->val[2] = NULL; + + cli_midltests_fn(s); +} + +long srv_midltests_fn(struct strings *a) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_strings_array_02.idl b/testprogs/win32/midltests/valid/midltests_strings_array_02.idl new file mode 100644 index 0000000..46154c9 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_strings_array_02.idl @@ -0,0 +1,44 @@ +#ifndef MIDLTESTS_C_CODE + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + struct strings { + long count; + [size_is(count),string] char *val[]; + }; + + long midltests_fn( + [in,ref] struct strings *s + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + const char *s1 = "foo"; + const char *s2 = "bar"; + char *a[] = { "foo", "bar2", NULL }; + char buffer[1024]; + struct strings *s = buffer; + + s->count = 3; + s->val[0] = "foo"; + s->val[1] = "bar2"; + s->val[2] = NULL; + + cli_midltests_fn(s); +} + +long srv_midltests_fn(struct strings *a) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_strings_array_02.txt b/testprogs/win32/midltests/valid/midltests_strings_array_02.txt new file mode 100644 index 0000000..2bec6a0 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_strings_array_02.txt @@ -0,0 +1,9 @@ +[in] Buffer[53/53]
+[000] 03 00 00 00 03 00 00 00 00 00 02 00 04 00 02 00 ........ ........
+[010] 00 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 ........ ........
+[020] 66 6F 6F 00 05 00 00 00 00 00 00 00 05 00 00 00 foo..... ........
+[030] 62 61 72 32 00 bar2.
+srv_midltests_fn: Start
+srv_midltests_fn: End
+[out] Buffer[4]
+[000] 54 72 75 65 True
diff --git a/testprogs/win32/midltests/valid/midltests_union_align_01.idl b/testprogs/win32/midltests/valid/midltests_union_align_01.idl new file mode 100644 index 0000000..fcea072 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_01.idl @@ -0,0 +1,42 @@ +#ifndef MIDLTESTS_C_CODE + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + [switch_type(short)] union u { + [case(0)]; + [case(2)] short s; + [case(4)] long l; + [case(8)] hyper h; + }; + + long midltests_fn( + [in] short level, + [in,switch_is(level)] union u u + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + cli_midltests_fn(0, u); + cli_midltests_fn(2, u); + cli_midltests_fn(4, u); + cli_midltests_fn(8, u); +} + +long srv_midltests_fn(short level, union u u) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_01.txt b/testprogs/win32/midltests/valid/midltests_union_align_01.txt new file mode 100644 index 0000000..cc372c8 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_01.txt @@ -0,0 +1,24 @@ +[in] Buffer[4/8] +[000] 00 00 00 00 .... +srv_midltests_fn: Start +srv_midltests_fn: End +[out] Buffer[4] +[000] 54 72 75 65 True +[in] Buffer[6/10] +[000] 02 00 02 00 FF FF ...... +srv_midltests_fn: Start +srv_midltests_fn: End +[out] Buffer[4] +[000] 54 72 75 65 True +[in] Buffer[8/12] +[000] 04 00 04 00 FF FF FF FF ........ +srv_midltests_fn: Start +srv_midltests_fn: End +[out] Buffer[4] +[000] 54 72 75 65 True +[in] Buffer[16/16] +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ +srv_midltests_fn: Start +srv_midltests_fn: End +[out] Buffer[4] +[000] 54 72 75 65 True diff --git a/testprogs/win32/midltests/valid/midltests_union_align_02.idl b/testprogs/win32/midltests/valid/midltests_union_align_02.idl new file mode 100644 index 0000000..dc2d84d --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_02.idl @@ -0,0 +1,61 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef [switch_type(char)] union { + [case(1)] char c; + } u; + long midltests_fn( + [in] char l, + [in,switch_is(l)] u u + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + char l; + u u; + + l = 1; + u.c = 'A'; + cli_midltests_fn(l,u); +} + +long srv_midltests_fn(char l, u u) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_02.txt b/testprogs/win32/midltests/valid/midltests_union_align_02.txt new file mode 100644 index 0000000..16186ea --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_02.txt @@ -0,0 +1,37 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[27] plen[3] ahint[3] + +[000] 01 01 41 ..A + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[27] plen[3] ahint[3] + +[000] 01 01 41 ..A + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_03.idl b/testprogs/win32/midltests/valid/midltests_union_align_03.idl new file mode 100644 index 0000000..699dd6c --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_03.idl @@ -0,0 +1,64 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef [switch_type(short)] union { + [case(1)] char c; + } u; + long midltests_fn( + [in] short l, + [in] char v, + [in,switch_is(l)] u u + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + short l; + char v; + u u; + + l = 1; + v = 'V'; + u.c = 'C'; + cli_midltests_fn(l, v, u); +} + +long srv_midltests_fn(short l, char v, u u) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_03.txt b/testprogs/win32/midltests/valid/midltests_union_align_03.txt new file mode 100644 index 0000000..7078dd3 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_03.txt @@ -0,0 +1,37 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[31] plen[7] ahint[7] + +[000] 01 00 56 00 01 00 43 ..V...C + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[31] plen[7] ahint[7] + +[000] 01 00 56 00 01 00 43 ..V...C + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_04.idl b/testprogs/win32/midltests/valid/midltests_union_align_04.idl new file mode 100644 index 0000000..a7c6ad7 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_04.idl @@ -0,0 +1,64 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef [switch_type(long)] union { + [case(1)] char c; + } u; + long midltests_fn( + [in] long l, + [in] char v, + [in,switch_is(l)] u u + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + long l; + char v; + u u; + + l = 1; + v = 'V'; + u.c = 'C'; + cli_midltests_fn(l, v, u); +} + +long srv_midltests_fn(long l, char v, u u) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_04.txt b/testprogs/win32/midltests/valid/midltests_union_align_04.txt new file mode 100644 index 0000000..d323860 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_04.txt @@ -0,0 +1,37 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[37] plen[13] ahint[13] + +[000] 01 00 00 00 56 00 00 00 01 00 00 00 43 ....V... ....C + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[37] plen[13] ahint[13] + +[000] 01 00 00 00 56 00 00 00 01 00 00 00 43 ....V... ....C + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_05.idl b/testprogs/win32/midltests/valid/midltests_union_align_05.idl new file mode 100644 index 0000000..da46bab --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_05.idl @@ -0,0 +1,61 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef [switch_type(char)] union { + [case(1)] short c; + } u; + long midltests_fn( + [in] char l, + [in,switch_is(l)] u u + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + char l; + u u; + + l = 1; + u.c = 'C'; + cli_midltests_fn(l, u); +} + +long srv_midltests_fn(hyper l, u u) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_05.txt b/testprogs/win32/midltests/valid/midltests_union_align_05.txt new file mode 100644 index 0000000..1938b0a --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_05.txt @@ -0,0 +1,37 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[28] plen[4] ahint[4] + +[000] 01 01 43 00 ..C. + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[30] plen[6] ahint[6] + +[000] 01 00 01 00 43 00 ....C. + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_06.idl b/testprogs/win32/midltests/valid/midltests_union_align_06.idl new file mode 100644 index 0000000..63fb310 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_06.idl @@ -0,0 +1,61 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef [switch_type(char)] union { + [case(1)] long c; + } u; + long midltests_fn( + [in] char l, + [in,switch_is(l)] u u + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + char l; + u u; + + l = 1; + u.c = 'C'; + cli_midltests_fn(l, u); +} + +long srv_midltests_fn(hyper l, u u) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_06.txt b/testprogs/win32/midltests/valid/midltests_union_align_06.txt new file mode 100644 index 0000000..c864e51 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_06.txt @@ -0,0 +1,37 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[32] plen[8] ahint[8] + +[000] 01 01 00 00 43 00 00 00 ....C... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[36] plen[12] ahint[12] + +[000] 01 00 00 00 01 00 00 00 43 00 00 00 ........ C... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_07.idl b/testprogs/win32/midltests/valid/midltests_union_align_07.idl new file mode 100644 index 0000000..892460d --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_07.idl @@ -0,0 +1,61 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef [switch_type(char)] union { + [case(1)] hyper c; + } u; + long midltests_fn( + [in] char l, + [in,switch_is(l)] u u + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + char l; + u u; + + l = 1; + u.c = 'C'; + cli_midltests_fn(l, u); +} + +long srv_midltests_fn(hyper l, u u) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_07.txt b/testprogs/win32/midltests/valid/midltests_union_align_07.txt new file mode 100644 index 0000000..88b44ec --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_07.txt @@ -0,0 +1,38 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[40] plen[16] ahint[16] + +[000] 01 01 00 00 00 00 00 00 43 00 00 00 00 00 00 00 ........ C....... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[48] plen[24] ahint[24] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] 43 00 00 00 00 00 00 00 C....... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_08.idl b/testprogs/win32/midltests/valid/midltests_union_align_08.idl new file mode 100644 index 0000000..0cbdbfe --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_08.idl @@ -0,0 +1,68 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + [switch_type(char)] union u { + [case(0)]; + [case(1)] char c; + [case(2)] short s; + [case(4)] long l; + [case(8)] hyper h; + }; + + long midltests_fn( + [in] char level, + [in,switch_is(level)] union u u + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + cli_midltests_fn(0, u); + cli_midltests_fn(1, u); + cli_midltests_fn(2, u); + cli_midltests_fn(4, u); + cli_midltests_fn(8, u); +} + +long srv_midltests_fn(char level, union u u) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_08.txt b/testprogs/win32/midltests/valid/midltests_union_align_08.txt new file mode 100644 index 0000000..1bf5cd9 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_08.txt @@ -0,0 +1,129 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[26] plen[2] ahint[2] + +[000] 00 00 .. + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[27] plen[3] ahint[3] + +[000] 01 01 FF ... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[28] plen[4] ahint[4] + +[000] 02 02 FF FF .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[32] plen[8] ahint[8] + +[000] 04 04 00 00 FF FF FF FF ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[40] plen[16] ahint[16] + +[000] 08 08 00 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[40] plen[16] ahint[16] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF . + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[42] plen[18] ahint[18] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF .. + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[44] plen[20] ahint[20] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[48] plen[24] ahint[24] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_09.idl b/testprogs/win32/midltests/valid/midltests_union_align_09.idl new file mode 100644 index 0000000..358a598 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_09.idl @@ -0,0 +1,69 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + ms_union, + pointer_default(unique) +] +interface midltests +{ + [switch_type(char)] union u { + [case(0)]; + [case(1)] char c; + [case(2)] short s; + [case(4)] long l; + [case(8)] hyper h; + }; + + long midltests_fn( + [in] char level, + [in,switch_is(level)] union u u + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + cli_midltests_fn(0, u); + cli_midltests_fn(1, u); + cli_midltests_fn(2, u); + cli_midltests_fn(4, u); + cli_midltests_fn(8, u); +} + +long srv_midltests_fn(char level, union u u) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_09.txt b/testprogs/win32/midltests/valid/midltests_union_align_09.txt new file mode 100644 index 0000000..5e7e192 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_09.txt @@ -0,0 +1,129 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[32] plen[8] ahint[8] + +[000] 00 00 00 00 00 00 00 00 ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[33] plen[9] ahint[9] + +[000] 01 01 00 00 00 00 00 00 FF ........ . + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[34] plen[10] ahint[10] + +[000] 02 02 00 00 00 00 00 00 FF FF ........ .. + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[36] plen[12] ahint[12] + +[000] 04 04 00 00 00 00 00 00 FF FF FF FF ........ .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[40] plen[16] ahint[16] + +[000] 08 08 00 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[40] plen[16] ahint[16] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF . + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[42] plen[18] ahint[18] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF .. + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[44] plen[20] ahint[20] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[48] plen[24] ahint[24] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_10.idl b/testprogs/win32/midltests/valid/midltests_union_align_10.idl new file mode 100644 index 0000000..6d66272 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_10.idl @@ -0,0 +1,71 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + ms_union, + pointer_default(unique) +] +interface midltests +{ + enum level_enum { ZERO = 0, ONE = 1, TWO = 2, FOUR = 4, EIGHT = 8 }; + + [switch_type(long)] union u { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + }; + + long midltests_fn( + [in] enum level_enum level, + [in,switch_is(level)] union u u + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + cli_midltests_fn(ZERO, u); + cli_midltests_fn(ONE, u); + cli_midltests_fn(TWO, u); + cli_midltests_fn(FOUR, u); + cli_midltests_fn(EIGHT, u); +} + +long srv_midltests_fn(char level, union u u) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_10.txt b/testprogs/win32/midltests/valid/midltests_union_align_10.txt new file mode 100644 index 0000000..babae12 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_10.txt @@ -0,0 +1,129 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[32] plen[8] ahint[8] + +[000] 00 00 00 00 00 00 00 00 ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[33] plen[9] ahint[9] + +[000] 01 00 00 00 01 00 00 00 FF ........ . + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[34] plen[10] ahint[10] + +[000] 02 00 00 00 02 00 00 00 FF FF ........ .. + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[36] plen[12] ahint[12] + +[000] 04 00 00 00 04 00 00 00 FF FF FF FF ........ .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[40] plen[16] ahint[16] + +[000] 08 00 00 00 08 00 00 00 FF FF FF FF FF FF FF FF ........ ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[40] plen[16] ahint[16] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF . + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[42] plen[18] ahint[18] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF .. + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[44] plen[20] ahint[20] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[48] plen[24] ahint[24] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_11.idl b/testprogs/win32/midltests/valid/midltests_union_align_11.idl new file mode 100644 index 0000000..1036abe --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_11.idl @@ -0,0 +1,70 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + enum level_enum { ZERO = 0, ONE = 1, TWO = 2, FOUR = 4, EIGHT = 8 }; + + [switch_type(long)] union u { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + }; + + long midltests_fn( + [in] enum level_enum level, + [in,switch_is(level)] union u u + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + cli_midltests_fn(ZERO, u); + cli_midltests_fn(ONE, u); + cli_midltests_fn(TWO, u); + cli_midltests_fn(FOUR, u); + cli_midltests_fn(EIGHT, u); +} + +long srv_midltests_fn(char level, union u u) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_11.txt b/testprogs/win32/midltests/valid/midltests_union_align_11.txt new file mode 100644 index 0000000..babae12 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_11.txt @@ -0,0 +1,129 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[32] plen[8] ahint[8] + +[000] 00 00 00 00 00 00 00 00 ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[33] plen[9] ahint[9] + +[000] 01 00 00 00 01 00 00 00 FF ........ . + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[34] plen[10] ahint[10] + +[000] 02 00 00 00 02 00 00 00 FF FF ........ .. + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[36] plen[12] ahint[12] + +[000] 04 00 00 00 04 00 00 00 FF FF FF FF ........ .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[40] plen[16] ahint[16] + +[000] 08 00 00 00 08 00 00 00 FF FF FF FF FF FF FF FF ........ ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[40] plen[16] ahint[16] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF . + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[42] plen[18] ahint[18] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF .. + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[44] plen[20] ahint[20] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[48] plen[24] ahint[24] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_12.idl b/testprogs/win32/midltests/valid/midltests_union_align_12.idl new file mode 100644 index 0000000..6b27cb9 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_12.idl @@ -0,0 +1,70 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + enum level_enum { ZERO = 0, ONE = 1, TWO = 2, FOUR = 4, EIGHT = 8 }; + + [switch_type(enum level_enum)] union u { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + }; + + long midltests_fn( + [in] enum level_enum level, + [in,switch_is(level)] union u u + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + cli_midltests_fn(ZERO, u); + cli_midltests_fn(ONE, u); + cli_midltests_fn(TWO, u); + cli_midltests_fn(FOUR, u); + cli_midltests_fn(EIGHT, u); +} + +long srv_midltests_fn(char level, union u u) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_12.txt b/testprogs/win32/midltests/valid/midltests_union_align_12.txt new file mode 100644 index 0000000..1a32739 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_12.txt @@ -0,0 +1,129 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[28] plen[4] ahint[4] + +[000] 00 00 00 00 .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[29] plen[5] ahint[5] + +[000] 01 00 01 00 FF ..... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[30] plen[6] ahint[6] + +[000] 02 00 02 00 FF FF ...... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[32] plen[8] ahint[8] + +[000] 04 00 04 00 FF FF FF FF ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[40] plen[16] ahint[16] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[40] plen[16] ahint[16] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF . + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[42] plen[18] ahint[18] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF .. + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[44] plen[20] ahint[20] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[48] plen[24] ahint[24] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_13.idl b/testprogs/win32/midltests/valid/midltests_union_align_13.idl new file mode 100644 index 0000000..a29dcb9 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_13.idl @@ -0,0 +1,71 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + ms_union, + pointer_default(unique) +] +interface midltests +{ + enum level_enum { ZERO = 0, ONE = 1, TWO = 2, FOUR = 4, EIGHT = 8 }; + + [switch_type(enum level_enum)] union u { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + }; + + long midltests_fn( + [in] enum level_enum level, + [in,switch_is(level)] union u u + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + cli_midltests_fn(ZERO, u); + cli_midltests_fn(ONE, u); + cli_midltests_fn(TWO, u); + cli_midltests_fn(FOUR, u); + cli_midltests_fn(EIGHT, u); +} + +long srv_midltests_fn(char level, union u u) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_13.txt b/testprogs/win32/midltests/valid/midltests_union_align_13.txt new file mode 100644 index 0000000..8f0563b --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_13.txt @@ -0,0 +1,129 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[32] plen[8] ahint[8] + +[000] 00 00 00 00 00 00 00 00 ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[33] plen[9] ahint[9] + +[000] 01 00 01 00 00 00 00 00 FF ........ . + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[34] plen[10] ahint[10] + +[000] 02 00 02 00 00 00 00 00 FF FF ........ .. + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[36] plen[12] ahint[12] + +[000] 04 00 04 00 00 00 00 00 FF FF FF FF ........ .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[40] plen[16] ahint[16] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[40] plen[16] ahint[16] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF . + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[42] plen[18] ahint[18] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF .. + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[44] plen[20] ahint[20] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[48] plen[24] ahint[24] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF ........ + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_14.idl b/testprogs/win32/midltests/valid/midltests_union_align_14.idl new file mode 100644 index 0000000..c029f5a --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_14.idl @@ -0,0 +1,71 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + enum level_enum { ZERO = 0, ONE = 1, TWO = 2, FOUR = 4, EIGHT = 8 }; + + [switch_type(enum level_enum)] union u { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + }; + + long midltests_fn( + [in] enum level_enum level, + [in,switch_is(level)] union u u, + [in] char c + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + cli_midltests_fn(ZERO, u, 'c'); + cli_midltests_fn(ONE, u, 'c'); + cli_midltests_fn(TWO, u, 'c'); + cli_midltests_fn(FOUR, u, 'c'); + cli_midltests_fn(EIGHT, u, 'c'); +} + +long srv_midltests_fn(char level, union u u, char c) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_14.txt b/testprogs/win32/midltests/valid/midltests_union_align_14.txt new file mode 100644 index 0000000..9713788 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_14.txt @@ -0,0 +1,131 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[29] plen[5] ahint[5] + +[000] 00 00 00 00 63 ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[30] plen[6] ahint[6] + +[000] 01 00 01 00 FF 63 .....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[31] plen[7] ahint[7] + +[000] 02 00 02 00 FF FF 63 ......c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[33] plen[9] ahint[9] + +[000] 04 00 04 00 FF FF FF FF 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[42] plen[18] ahint[18] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF 63 .c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[43] plen[19] ahint[19] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF 63 ..c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[45] plen[21] ahint[21] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF 63 ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[49] plen[25] ahint[25] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_15.idl b/testprogs/win32/midltests/valid/midltests_union_align_15.idl new file mode 100644 index 0000000..c8037b8 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_15.idl @@ -0,0 +1,72 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + ms_union, + pointer_default(unique) +] +interface midltests +{ + enum level_enum { ZERO = 0, ONE = 1, TWO = 2, FOUR = 4, EIGHT = 8 }; + + [switch_type(enum level_enum)] union u { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + }; + + long midltests_fn( + [in] enum level_enum level, + [in,switch_is(level)] union u u, + [in] char c + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + cli_midltests_fn(ZERO, u, 'c'); + cli_midltests_fn(ONE, u, 'c'); + cli_midltests_fn(TWO, u, 'c'); + cli_midltests_fn(FOUR, u, 'c'); + cli_midltests_fn(EIGHT, u, 'c'); +} + +long srv_midltests_fn(char level, union u u, char c) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_15.txt b/testprogs/win32/midltests/valid/midltests_union_align_15.txt new file mode 100644 index 0000000..4754930 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_15.txt @@ -0,0 +1,131 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[33] plen[9] ahint[9] + +[000] 00 00 00 00 00 00 00 00 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[34] plen[10] ahint[10] + +[000] 01 00 01 00 00 00 00 00 FF 63 ........ .c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[35] plen[11] ahint[11] + +[000] 02 00 02 00 00 00 00 00 FF FF 63 ........ ..c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[37] plen[13] ahint[13] + +[000] 04 00 04 00 00 00 00 00 FF FF FF FF 63 ........ ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr32:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[42] plen[18] ahint[18] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF 63 .c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[43] plen[19] ahint[19] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF 63 ..c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[45] plen[21] ahint[21] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF 63 ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +ndr64:in => out: ptype[request] flen[49] plen[25] ahint[25] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_16.idl b/testprogs/win32/midltests/valid/midltests_union_align_16.idl new file mode 100644 index 0000000..683a79a --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_16.idl @@ -0,0 +1,93 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + enum level_enum { ZERO = 0, ONE = 1, TWO = 2, FOUR = 4, EIGHT = 8 }; + + [switch_type(enum level_enum)] union u { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + }; + + struct us { + enum level_enum level; + [switch_is(level)] union { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + } u; + }; + + void midltests_fn( + [in,ref] enum level_enum *level, + [in,switch_is(*level)] union u u, + [out,ref] struct us *us, + [in,out,ref] char *c + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + enum level_enum level; + unsigned char c = 'c'; + struct us us; + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + level = ZERO; + cli_midltests_fn(&level, u, &us, &c); + level = ONE; + cli_midltests_fn(&level, u, &us, &c); + level = TWO; + cli_midltests_fn(&level, u, &us, &c); + level = FOUR; + cli_midltests_fn(&level, u, &us, &c); + level = EIGHT; + cli_midltests_fn(&level, u, &us, &c); +} + +void srv_midltests_fn(enum level_enum *level, union u u, struct us *us, unsigned char *c) +{ + printf("srv_midltests_fn: Start\n"); + us->level = *level; + us->u.h = u.h; + printf("srv_midltests_fn: End\n"); + return; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_16.txt b/testprogs/win32/midltests/valid/midltests_union_align_16.txt new file mode 100644 index 0000000..5366c14 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_16.txt @@ -0,0 +1,137 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[29] plen[5] ahint[5] + +[000] 00 00 00 00 63 ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[29] plen[5] ahint[5] + +[000] 00 00 00 00 63 ....c + +ndr32:in => out: ptype[request] flen[30] plen[6] ahint[6] + +[000] 01 00 01 00 FF 63 .....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[30] plen[6] ahint[6] + +[000] 01 00 01 00 FF 63 .....c + +ndr32:in => out: ptype[request] flen[31] plen[7] ahint[7] + +[000] 02 00 02 00 FF FF 63 ......c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[31] plen[7] ahint[7] + +[000] 02 00 02 00 FF FF 63 ......c + +ndr32:in => out: ptype[request] flen[33] plen[9] ahint[9] + +[000] 04 00 04 00 FF FF FF FF 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[33] plen[9] ahint[9] + +[000] 04 00 04 00 FF FF FF FF 63 ........ c + +ndr32:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[41] plen[17] ahint[17] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ +[010] 63 c + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[41] plen[17] ahint[17] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ +[010] 63 c + +ndr64:in => out: ptype[request] flen[42] plen[18] ahint[18] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF 63 .c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF 00 00 00 00 00 00 00 63 ........ c + +ndr64:in => out: ptype[request] flen[43] plen[19] ahint[19] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF 63 ..c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF 00 00 00 00 00 00 63 ........ c + +ndr64:in => out: ptype[request] flen[45] plen[21] ahint[21] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF 63 ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF 00 00 00 00 63 ........ c + +ndr64:in => out: ptype[request] flen[49] plen[25] ahint[25] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF 63 ........ c + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_17.idl b/testprogs/win32/midltests/valid/midltests_union_align_17.idl new file mode 100644 index 0000000..f151452 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_17.idl @@ -0,0 +1,94 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + ms_union, + pointer_default(unique) +] +interface midltests +{ + enum level_enum { ZERO = 0, ONE = 1, TWO = 2, FOUR = 4, EIGHT = 8 }; + + [switch_type(enum level_enum)] union u { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + }; + + struct us { + enum level_enum level; + [switch_is(level)] union { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + } u; + }; + + void midltests_fn( + [in,ref] enum level_enum *level, + [in,switch_is(*level)] union u u, + [out,ref] struct us *us, + [in,out,ref] char *c + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + enum level_enum level; + char c = 'c'; + struct us us; + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + level = ZERO; + cli_midltests_fn(&level, u, &us, &c); + level = ONE; + cli_midltests_fn(&level, u, &us, &c); + level = TWO; + cli_midltests_fn(&level, u, &us, &c); + level = FOUR; + cli_midltests_fn(&level, u, &us, &c); + level = EIGHT; + cli_midltests_fn(&level, u, &us, &c); +} + +void srv_midltests_fn(enum level_enum *level, union u u, struct us *us, char *c) +{ + printf("srv_midltests_fn: Start\n"); + us->level = *level; + us->u.h = u.h; + printf("srv_midltests_fn: End\n"); + return; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_17.txt b/testprogs/win32/midltests/valid/midltests_union_align_17.txt new file mode 100644 index 0000000..7b62241 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_17.txt @@ -0,0 +1,137 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[33] plen[9] ahint[9] + +[000] 00 00 00 00 00 00 00 00 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[33] plen[9] ahint[9] + +[000] 00 00 00 00 00 00 00 00 63 ........ c + +ndr32:in => out: ptype[request] flen[34] plen[10] ahint[10] + +[000] 01 00 01 00 00 00 00 00 FF 63 ........ .c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[34] plen[10] ahint[10] + +[000] 01 00 01 00 00 00 00 00 FF 63 ........ .c + +ndr32:in => out: ptype[request] flen[35] plen[11] ahint[11] + +[000] 02 00 02 00 00 00 00 00 FF FF 63 ........ ..c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[35] plen[11] ahint[11] + +[000] 02 00 02 00 00 00 00 00 FF FF 63 ........ ..c + +ndr32:in => out: ptype[request] flen[37] plen[13] ahint[13] + +[000] 04 00 04 00 00 00 00 00 FF FF FF FF 63 ........ ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[37] plen[13] ahint[13] + +[000] 04 00 04 00 00 00 00 00 FF FF FF FF 63 ........ ....c + +ndr32:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[41] plen[17] ahint[17] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ +[010] 63 c + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[41] plen[17] ahint[17] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ +[010] 63 c + +ndr64:in => out: ptype[request] flen[42] plen[18] ahint[18] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF 63 .c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF 00 00 00 00 00 00 00 63 ........ c + +ndr64:in => out: ptype[request] flen[43] plen[19] ahint[19] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF 63 ..c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF 00 00 00 00 00 00 63 ........ c + +ndr64:in => out: ptype[request] flen[45] plen[21] ahint[21] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF 63 ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF 00 00 00 00 63 ........ c + +ndr64:in => out: ptype[request] flen[49] plen[25] ahint[25] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF 63 ........ c + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_18.idl b/testprogs/win32/midltests/valid/midltests_union_align_18.idl new file mode 100644 index 0000000..542973b --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_18.idl @@ -0,0 +1,93 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + enum level_enum { ZERO = 0, ONE = 1, TWO = 2, FOUR = 4, EIGHT = 8 }; + + [switch_type(enum level_enum),ms_union] union u { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + }; + + struct us { + enum level_enum level; + [switch_is(level)] union { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + } u; + }; + + void midltests_fn( + [in,ref] enum level_enum *level, + [in,switch_is(*level)] union u u, + [out,ref] struct us *us, + [in,out,ref] char *c + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + enum level_enum level; + char c = 'c'; + struct us us; + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + level = ZERO; + cli_midltests_fn(&level, u, &us, &c); + level = ONE; + cli_midltests_fn(&level, u, &us, &c); + level = TWO; + cli_midltests_fn(&level, u, &us, &c); + level = FOUR; + cli_midltests_fn(&level, u, &us, &c); + level = EIGHT; + cli_midltests_fn(&level, u, &us, &c); +} + +void srv_midltests_fn(enum level_enum *level, union u u, struct us *us, char *c) +{ + printf("srv_midltests_fn: Start\n"); + us->level = *level; + us->u.h = u.h; + printf("srv_midltests_fn: End\n"); + return; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_18.txt b/testprogs/win32/midltests/valid/midltests_union_align_18.txt new file mode 100644 index 0000000..5693dd3 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_18.txt @@ -0,0 +1,137 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[33] plen[9] ahint[9] + +[000] 00 00 00 00 00 00 00 00 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[29] plen[5] ahint[5] + +[000] 00 00 00 00 63 ....c + +ndr32:in => out: ptype[request] flen[34] plen[10] ahint[10] + +[000] 01 00 01 00 00 00 00 00 FF 63 ........ .c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[30] plen[6] ahint[6] + +[000] 01 00 01 00 FF 63 .....c + +ndr32:in => out: ptype[request] flen[35] plen[11] ahint[11] + +[000] 02 00 02 00 00 00 00 00 FF FF 63 ........ ..c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[31] plen[7] ahint[7] + +[000] 02 00 02 00 FF FF 63 ......c + +ndr32:in => out: ptype[request] flen[37] plen[13] ahint[13] + +[000] 04 00 04 00 00 00 00 00 FF FF FF FF 63 ........ ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[33] plen[9] ahint[9] + +[000] 04 00 04 00 FF FF FF FF 63 ........ c + +ndr32:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[41] plen[17] ahint[17] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ +[010] 63 c + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[41] plen[17] ahint[17] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ +[010] 63 c + +ndr64:in => out: ptype[request] flen[42] plen[18] ahint[18] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF 63 .c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF 00 00 00 00 00 00 00 63 ........ c + +ndr64:in => out: ptype[request] flen[43] plen[19] ahint[19] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF 63 ..c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF 00 00 00 00 00 00 63 ........ c + +ndr64:in => out: ptype[request] flen[45] plen[21] ahint[21] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF 63 ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF 00 00 00 00 63 ........ c + +ndr64:in => out: ptype[request] flen[49] plen[25] ahint[25] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF 63 ........ c + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_19.idl b/testprogs/win32/midltests/valid/midltests_union_align_19.idl new file mode 100644 index 0000000..b8ff0d6 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_19.idl @@ -0,0 +1,90 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + enum level_enum { ZERO = 0, ONE = 1, TWO = 2, FOUR = 4, EIGHT = 8 }; + + [switch_type(enum level_enum)] union u { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + }; + + union ue switch(enum level_enum level) u { + case(ZERO):; + case(ONE): char c; + case(TWO): short s; + case(FOUR): long l; + case(EIGHT): hyper h; + }; + + void midltests_fn( + [in,out,ref] enum level_enum *level, + [in,switch_is(*level)] union u u, + [out,ref] union ue *ue, + [in,out,ref] char *c + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + enum level_enum level; + unsigned char c = 'c'; + struct ue ue; + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + level = ZERO; + cli_midltests_fn(&level, u, &ue, &c); + level = ONE; + cli_midltests_fn(&level, u, &ue, &c); + level = TWO; + cli_midltests_fn(&level, u, &ue, &c); + level = FOUR; + cli_midltests_fn(&level, u, &ue, &c); + level = EIGHT; + cli_midltests_fn(&level, u, &ue, &c); +} + +void srv_midltests_fn(enum level_enum *level, union u u, struct ue *ue, unsigned char *c) +{ + printf("srv_midltests_fn: Start\n"); + ue->level = *level; + ue->u.h = u.h; + printf("srv_midltests_fn: End\n"); + return; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_19.txt b/testprogs/win32/midltests/valid/midltests_union_align_19.txt new file mode 100644 index 0000000..804f0ed --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_19.txt @@ -0,0 +1,137 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[29] plen[5] ahint[5] + +[000] 00 00 00 00 63 ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[29] plen[5] ahint[5] + +[000] 00 00 00 00 63 ....c + +ndr32:in => out: ptype[request] flen[30] plen[6] ahint[6] + +[000] 01 00 01 00 FF 63 .....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[30] plen[6] ahint[6] + +[000] 01 00 01 00 FF 63 .....c + +ndr32:in => out: ptype[request] flen[31] plen[7] ahint[7] + +[000] 02 00 02 00 FF FF 63 ......c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[31] plen[7] ahint[7] + +[000] 02 00 02 00 FF FF 63 ......c + +ndr32:in => out: ptype[request] flen[33] plen[9] ahint[9] + +[000] 04 00 04 00 FF FF FF FF 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[33] plen[9] ahint[9] + +[000] 04 00 04 00 FF FF FF FF 63 ........ c + +ndr32:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[41] plen[17] ahint[17] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ +[010] 63 c + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[41] plen[17] ahint[17] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ +[010] 63 c + +ndr64:in => out: ptype[request] flen[42] plen[18] ahint[18] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF 63 .c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[42] plen[18] ahint[18] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF 63 .c + +ndr64:in => out: ptype[request] flen[43] plen[19] ahint[19] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF 63 ..c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[43] plen[19] ahint[19] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF 63 ..c + +ndr64:in => out: ptype[request] flen[45] plen[21] ahint[21] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF 63 ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[45] plen[21] ahint[21] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF 63 ....c + +ndr64:in => out: ptype[request] flen[49] plen[25] ahint[25] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF 63 ........ c + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_union_align_20.idl b/testprogs/win32/midltests/valid/midltests_union_align_20.idl new file mode 100644 index 0000000..fe8bb72 --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_20.idl @@ -0,0 +1,91 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + ms_union, + pointer_default(unique) +] +interface midltests +{ + enum level_enum { ZERO = 0, ONE = 1, TWO = 2, FOUR = 4, EIGHT = 8 }; + + [switch_type(enum level_enum)] union u { + [case(ZERO)]; + [case(ONE)] char c; + [case(TWO)] short s; + [case(FOUR)] long l; + [case(EIGHT)] hyper h; + }; + + union ue switch(enum level_enum level) u { + case(ZERO):; + case(ONE): char c; + case(TWO): short s; + case(FOUR): long l; + case(EIGHT): hyper h; + }; + + void midltests_fn( + [in,out,ref] enum level_enum *level, + [in,switch_is(*level)] union u u, + [out,ref] union ue *ue, + [in,out,ref] char *c + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + enum level_enum level; + unsigned char c = 'c'; + struct ue ue; + union u u; + u.h = 0xFFFFFFFFFFFFFFFFLL; + + level = ZERO; + cli_midltests_fn(&level, u, &ue, &c); + level = ONE; + cli_midltests_fn(&level, u, &ue, &c); + level = TWO; + cli_midltests_fn(&level, u, &ue, &c); + level = FOUR; + cli_midltests_fn(&level, u, &ue, &c); + level = EIGHT; + cli_midltests_fn(&level, u, &ue, &c); +} + +void srv_midltests_fn(enum level_enum *level, union u u, struct ue *ue, unsigned char *c) +{ + printf("srv_midltests_fn: Start\n"); + ue->level = *level; + ue->u.h = u.h; + printf("srv_midltests_fn: End\n"); + return; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_union_align_20.txt b/testprogs/win32/midltests/valid/midltests_union_align_20.txt new file mode 100644 index 0000000..84d62aa --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_union_align_20.txt @@ -0,0 +1,137 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[33] plen[9] ahint[9] + +[000] 00 00 00 00 00 00 00 00 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[29] plen[5] ahint[5] + +[000] 00 00 00 00 63 ....c + +ndr32:in => out: ptype[request] flen[34] plen[10] ahint[10] + +[000] 01 00 01 00 00 00 00 00 FF 63 ........ .c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[30] plen[6] ahint[6] + +[000] 01 00 01 00 FF 63 .....c + +ndr32:in => out: ptype[request] flen[35] plen[11] ahint[11] + +[000] 02 00 02 00 00 00 00 00 FF FF 63 ........ ..c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[31] plen[7] ahint[7] + +[000] 02 00 02 00 FF FF 63 ......c + +ndr32:in => out: ptype[request] flen[37] plen[13] ahint[13] + +[000] 04 00 04 00 00 00 00 00 FF FF FF FF 63 ........ ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[33] plen[9] ahint[9] + +[000] 04 00 04 00 FF FF FF FF 63 ........ c + +ndr32:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[41] plen[17] ahint[17] + +[000] 08 00 08 00 00 00 00 00 FF FF FF FF FF FF FF FF ........ ........ +[010] 63 c + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[41] plen[17] ahint[17] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ +[010] 63 c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[41] plen[17] ahint[17] + +[000] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ +[010] 63 c + +ndr64:in => out: ptype[request] flen[42] plen[18] ahint[18] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF 63 .c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[42] plen[18] ahint[18] + +[000] 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........ +[010] FF 63 .c + +ndr64:in => out: ptype[request] flen[43] plen[19] ahint[19] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF 63 ..c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[43] plen[19] ahint[19] + +[000] 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........ ........ +[010] FF FF 63 ..c + +ndr64:in => out: ptype[request] flen[45] plen[21] ahint[21] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF 63 ....c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[45] plen[21] ahint[21] + +[000] 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF 63 ....c + +ndr64:in => out: ptype[request] flen[49] plen[25] ahint[25] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF 63 ........ c + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[49] plen[25] ahint[25] + +[000] 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........ ........ +[010] FF FF FF FF FF FF FF FF 63 ........ c + +NDRTcpThread[ndr64] stop + +Test OK diff --git a/testprogs/win32/midltests/valid/midltests_v1_enum_01.idl b/testprogs/win32/midltests/valid/midltests_v1_enum_01.idl new file mode 100644 index 0000000..18a5ceb --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_v1_enum_01.idl @@ -0,0 +1,56 @@ +#ifndef MIDLTESTS_C_CODE + +/* + * For midltests_tcp.exe you may want to + * redirect the traffic via rinetd + * with a /etc/rinetd.conf like this: + * + * 172.31.9.1 5032 172.31.9.8 5032 + * 172.31.9.1 5064 172.31.9.8 5064 + * + * This is useful to watch the traffic with + * a network sniffer. + */ +/* +cpp_quote("#define LISTEN_IP \"0.0.0.0\"") +cpp_quote("#define FORWARD_IP \"127.0.0.1\"") +cpp_quote("#define CONNECT_IP \"172.31.9.1\"") +*/ + +/* + * With midltests_tcp.exe NDR64 is enforced by default. + * For testing it might be needed to allow downgrades + * to NDR32. This is needed when you use 'pipe'. + */ +//cpp_quote("#define DONOT_FORCE_NDR64 1") + +[ + uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"), + pointer_default(unique) +] +interface midltests +{ + typedef [v1_enum] enum { + value1 = -1 + } midltests_enum; + + long midltests_fn( + midltests_enum v + ); +} + +#elif MIDLTESTS_C_CODE + +static void midltests(void) +{ + cli_midltests_fn(value1); +} + +long srv_midltests_fn(enum midltests_enum v) +{ + printf("srv_midltests_fn: Start\n"); + printf("srv_midltests_fn: End\n"); + return 0x65757254; +} + +#endif diff --git a/testprogs/win32/midltests/valid/midltests_v1_enum_01.txt b/testprogs/win32/midltests/valid/midltests_v1_enum_01.txt new file mode 100644 index 0000000..d4d018c --- /dev/null +++ b/testprogs/win32/midltests/valid/midltests_v1_enum_01.txt @@ -0,0 +1,37 @@ +Wait for setup of server threads + +Test NDR32 + +ndr32: disable NDR64 + +ndr32:in => out: ptype[request] flen[28] plen[4] ahint[4] + +[000] FF FF FF FF .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr32:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr32] stop + +Test NDR64 + +ndr64: got NDR64 + +ndr64:in => out: ptype[request] flen[28] plen[4] ahint[4] + +[000] FF FF FF FF .... + +srv_midltests_fn: Start +srv_midltests_fn: End + +ndr64:out => in: ptype[response] flen[28] plen[4] ahint[4] + +[000] 54 72 75 65 True + +NDRTcpThread[ndr64] stop + +Test OK |